公开密钥体系


公开密钥体系:
1.确认服务器的身份?
客户机请求通信并传送一明文让服务器加密,服务器用私钥加密后将密文传输给客户机,客户机用公钥对密文进行解密,如解密后的密文和明文不等,则确认不是服务器。(实际上服务器并不对客户机的明文直接加密,因为攻击者可以将有规律的字符串发送给服务器,如服务器对其直接加密返回,会威胁私钥安全,所以服务器在加密时是对明文进行hash计算得出一hash值,将该hash值加密后发送给客户机,客户机用公钥解密得出hash值,再比较是否和自己字符串的hash值相等)
2. 确认客户机的身份?
因为公钥是公开的,任何人都可以对私钥加密后的密文解密,所以不能保证只有授信客户机才能对密文进行解密。
解决方法:1后采用对称密钥体系
客户机传输一加密算法和密钥给服务器,此后双方通信采用对称密钥体系。
3.服务器如何将自己的公钥传递给客户机?
客户机在和服务器通信时,通信内容被截获,由攻击者生成一对公钥和密钥,并将公钥发送给客户机,进而达到伪造服务器的目的。
解决方法:数字证书(CA发布;组织申请;用户安装)
数字证书中有指纹及指纹算法,用以确保数字证书未被篡改。指纹和指纹算法采用CA私钥进行加密,安装在用户电脑中的CA数字证书用公钥进行解密,用解密出的指纹算法计算出数字证书的指纹,比较两指纹是否相等。
4.传输过程中确保密文未被修改?
攻击者无法解密密文,但可以进行篡改,客户和服务器通信需防篡改机制。
解决方法:数字签名
将明文经过hash计算得到一hash值,用私钥将该hash值加密即数字签名,任何数据和私钥组合产生相同数字签名的可能性为0。