公开密钥体系

公开密钥体系:
1.确认服务器的身份?
客户机请求通信并传送一明文让服务器加密,服务器用私钥加密后将密文传输给客户机,客户机用公钥对密文进行解密,如解密后的密文和明文不等,则确认不是服务器。(实际上服务器并不对客户机的明文直接进行加密,因为攻击者可以将有规律的字符串发送给服务器,如服务器对其直接加密返回,会威胁私钥的安全,所以服务器在加密时是对明文进行 hash计算得出一个hash值,将该hash值加密后发送给客户机,客户机用公钥解密得出hash值,再比较是否和自己字符串的hash值相等。)

2. 确认客户机的身份?
因为公钥是公开的,任何人都可以对私钥加密后的密文解密,所以不能保证只有授信客户机才能对密文进行解密。
解决方法:1后采用对称密钥体制
客户机传输一个加密算法和密钥给服务器,此后的通信采用对称密钥体制。

3.服务器如何将自己的公钥传递给客户机?
客户机在和服务器通信时,通信内容被截获,由攻击者生成一对公钥和密钥,并将公钥发送给客户机,进而达到伪造服务器的目的。
解决方法:数字证书(CA发布;组织申请;用户安装)
数字证书里有指纹和指纹算法,确保数字证书未被篡改,指纹和指纹算法需要加密,加密算法采用CA的私钥,之后安装在用户电脑中的CA数字证书用其公钥进行解密,解密指纹及指纹算法后,用指纹算法计算得到的数字证书的指纹并进行比较。

4.传输过程中确保密文未被修改?
虽然攻击者不能对密文进行解密,但可以进行篡改,客户和服务器需要有对密文是否篡改的机制。
解决方法:数字签名
将明文经过hash计算得到一hash值,用私钥将该hash值加密即数字签名,任何数据和用户私钥组合产生相同数字签名的可能性为0。

猜你喜欢

转载自blog.csdn.net/tichgd/article/details/80335632