网络环境的身份认证机制,可以从三个部分来看:身份认证信息管理(就是密钥,口令等信息如何存,存在哪儿)、客户端和服务器端。在了解身份认证机制之前,首先介绍下加密。
加密可以简单地分为对称密码体制(也叫单钥加密)和非对称密码体制(也叫双钥加密):简单地说,对称密码体制就是加密解密采用相同密钥的加密方法;非对称密码体制就是加密解密采用不同密钥的加密方法。其中,对称密码体制效率高,可以用于对大量数据的加密,而非对称密码体制开销比较大,效率不高。而非对称密码体制又可以分为两种,即公钥加密和数字签名:公钥加密是指加密的时候采用公开的密钥,解密的时候采用私有的密钥;数字签名是指加密的时采用私有密钥,解密的时采用公开密钥的方法。公钥加密和数字签名分别用于不同的应用场景:公钥加密是一种主要用于确定收信人的方法,具体地,好多人都可以用A的公钥对某信息进行加,密然后将信息发给A,但是只有用A的私钥才可以将信息正确解密,而A的私钥只有A本人才有(不然怎么叫私钥呢),这样就可以保证只有A才可以收到该信息;数字签名是一种主要用来确定发信人的方法,具体地,A用自己的私钥对某信息加密后,发给了多个收信人(都有A的公钥),收信人用A的公钥对该信息进行解密,这样只有A发的信息才可以被收信人解密,从而保证了发信人只能是A。
网络通信肯定要求时效性,因此采用的肯定是对称密钥体制。然而两者如何协商通信采用的密钥呢?接下来解决这个问题,如下图。
如图,假定网络上要进行通信的两个人是Alice和Bob。首先由Alice生成一个会话密钥Ksess,对改密钥用Bob的公钥进行加密,然后对该结果用其私钥进行加密后发给Bob。Bob收到后,用Alice的公钥对其解密(解密成功,说明该信息来自于Alice),然后对该结果用其私钥对其解密,从而得到会话密钥Ksess。然后Bob用Alice的公钥对Ksess进行加密,并对该结果用自己的私钥加密后发给Alice。Alice收到后,用Bob的公钥对其解密(解密成功,说明来自Bob),然后对该结果用自己的私钥解密,从而得到Ksess。将该结果和一开始发出的Ksess比对,两者相同说明,Bob已经收到了自己发的会话密钥并确认。最后Alice和Bob就可以用该会话密钥相互传递信息。
感觉很巧秒,所以贴这儿。文章浅显,欢迎拍砖,转载注明出处。