本文简单详情非对称加密通信原理。
对称加密
设想如下场景:A打算发送一段信息给B。为了防止内容被中间人知晓,最容易想到的方式是对称加密。比方采使用DES,AES-GCM,CHACHA20等方式,对内容加密,而后通过同样的算法解密。因为加解密采使用的是相同算法,此种方式一旦猜到破解方式就会非常的不安全。
非对称加密
针对对称加密的问题,又产生的一种新的加密方式,称为非对称加密。首先,加密和解密采使用不同的密钥,分为公钥和私钥,互为加解密,那么对于A发送信息给B之前,首先应该是B自己产生一对公钥和私钥,而后把公钥告诉A。这样A在需要发送信息给B时的时候,必需采使用B的公钥加密。这就保证了这段信息只可以被接受者B自己的私钥解开。即便消息被截获,别人也不知道内容。
数字签名
在B收到A信息后,需要回复A,那么这个时候怎样保证回复的内容不会被中间人篡改呢。步骤如下
1、B会对自己的回复内容首先做hash,生成一个摘要,
2、B使用自己的私钥加密这个摘要,形成所谓“数字签名”。数字签名和内容一起发送给A
3、A收到B的回复后,使用B的公钥解开数字签名部分的内容,得到第一步hash之后的摘要。
4、A对内容正文也做hash,而后将hash结果和第三步的内容比照,假如完全相同说明内容没有被篡改。
CA证书中心
以上过程公钥和私钥可以互为加解密的工具,但是假如有人伪造别人的公钥,比方冒充某某银行,那么就会有很大的危险。为了确保公钥的确是属于某个机构的,就会使用到证书中心服务。证书中心认证并保证自己签发的证书是合法的。确认这个公钥的确属于这个机构。我们的浏览器在访问需要https加密的网站时,首先在自己的证书列表里面找到证书中心的证书,这里证书中心本身的合法性,使用户能手动信任,当然也有部分就是直接内置在浏览器中的。通过和证书中心的介入,能获取真正的第三方网站公钥,保证通信安全。