关于PKI架构(使用证书)保护Web访问的安全实现SSL的基本理论
当您正在使用电子商务、电子银行转存帐,可能您的Web页面需要经过安全加密处理,那么,此时您就必须用到https,其中的s是secure(安全保护的意思)https是在安全套接层(SSL)之上使用http,所以http的内容被SSL所保护。那么什么是SSL?
SSL(Secure Sockets Layer 安全套接层),是为网络通信提供安全及数据完整性保障的一种安全协议,它工作在传輸层和会话层之间,它使用公钥加密数据,提供数据的机密性保障、消息完整性认证,关于使用PKI架构保护Web页面的工作原理如下图3.56所示
第一步:web服务器生成一个证书申请文件,该申请文件中存放有Web站点相关身份的一些唯一性标识,如果Web服务器上已经存在了公钥,那么Web服务器会将自己的公钥存放到证书申请文件中,以备证书服务器认证Web公钥的合法性。
第二步:Web服务器将生成的证书申请文件提交给证书服务器,待证书服务器审查。
第三步:当证书服务器验证Web服务器申请文件后,证书服务器会为Web服务器颁发证书,证书中包括了Web服务器将要使用的公钥副本,并将公钥副本与Web服务器的身份相绑定。如果在第一步的申请文件中已经存在Web服务器的公钥,那么证书服务器就对Web的公钥进行合法性签字,注意Web服务器自己本地产生公钥,只由证书服务器来授权它公钥的合法性,这是完全有可能的。
第四步:Web将自己的公钥传送给客户端,以便客户端可以使用Web的公钥来加密相关消息,公钥潜在是可以公开的,所以Web服务器这样做,并没有造成任何安全隐患。
第五步:客户端将使用会话**(就是对称式**)来加密页面的内容,然后使用Web的公钥来加密会话**,因为会话**加密数据的速度快,并非对称式加密更安全。
第六步:客户端把使用Web服务公钥加密的消息通过网络传送给Web服务器,如果传送的数据被网络中的恶棍截取,也无法读取数据,因为他没有Web服务器的私钥。私钥存储在Web服务器上,它是不可公开的,其它人无法获取。
第七步:当Web服务器收到客户端使用自己公钥加密的消息后,它使用这把公钥对应的私钥解密消息,然后再解密会话**加密的内容,得到原始明文消息。
读者可能产生的疑问:在上面描述中的第五步和第七步中所提到的会话**,是什么,如果是对称**加密,那么客户端和服务端应该有一把相同的**加密和解密才行,那么这把在Web服务器和客户端上相同的**是怎么生成的,难道是通过网络发送的会话**吗,这样可能会不安全哟?
回答:绝不可能在网络上直接发送会话**(也就是对称式**),事实上这个会话**是计算出来的,这又回到了本项目开始的3.1.1理解Diffie-hellman算法,注意关注这个算法中的K值,它就是计算所得的会话**,并不是直接通过网络来发送会话**。