11.3、网络身份认证的过程、数字签名、秘钥分发中心(KDC)、公钥认证中心(CA)、安全电子邮件

一、网络身份认证的过程

假设网络中存在正常通信的结点Bob和Alice,还存在Bad Guys结点Trudy,Bod和Alice的目的是他们双方之间的通信不能被Trudy看见,那么Bod和Alice在通信的时候就需要进行以下一步一步的防御:

  • Bod和Alice规定协议ap1.0,直接通信,这种身份认证可以直接被Trudy截获和伪造,如下:

  • Bod和Alice规定协议ap2.0,在ap1.0协议上,多加了一个通信的IP分组并包含Alice的源IP地址,这种身份认证也可以直接被Trudy截获和伪造,如下:

  • Bod和Alice规定协议ap3.0,在ap2.0协议上,多加了一个密码,这种身份认证的信息可以被Trudy嗅探(sniffing)到并伪造出来,如下:

  • Bod和Alice规定协议ap3.1,在ap3.0协议上,将Alice的密码进行加密,这种身份认证的信息可以被Trudy记录下来,并进行回放攻击(playback attack),如下:

  • 为了避免回放攻击,Bod和Alice规定协议ap4.0,在ap3.1协议上,加入1个一次性随机数(一个链接内只用一次的随机数R),并利用Alice和Bob都知道的共享密钥对这个随机数R进行加密,如下:

在实际应用的场景中,怎样让Alice和Bob两个人都提前知道这个共享密钥对(共享密钥对的分发问题)是一个不好解决的问题(可以用密钥分发中心KDC解决),因此有了协议ap5.0。

  • 协议ap4.0需要一个共享密钥,并且Alice和Bob两个人必须都提前知道这个共享密钥KA-B ,为了解决这个问题,Bod和Alice规定协议ap5.0,利用一次性随机数技术(一个链接内只用一次的随机数R)+ 公钥加密技术,这种身份认证的方式可以被Trudy记录下来,并进行中间人攻击(man in the middle attack),如下:

虽然Bob与Alice可以收到彼此发送的所有信息,但是Trudy通过中间人攻击(man in the middle attack)也收到了所有信息。

二、用散列函数来保证报文完整性的方法与缺陷和数字签名

报文/消息完整性(message integrity),也称为报文/消息认证(或报文鉴别),有以下5个目标:

①、证明报文确实来自声称的发送方;

②、验证报文在传输过程中没有被篡改;

③、预防报文的时间、顺序被篡改;

④、预防报文持有期被修改;

⑤、预防发送方/接收方抵赖。

2.1、用散列函数来保证报文完整性的方法

对报文m应用散列函数H(MD5和SHA-1),得到一个固定长度的散列码,称为报文摘要(message digest), 记为H(m),H(m)可以作为报文m的数字指纹(fingerprint)。

通过报文摘要(message digest)进行报文认证的方式,有以下2种:

  • 直接用报文摘要(message digest)和报文组成扩展报文(m,H(m))

这种方式容易被伪造,可以用共享密钥的方式来保证报文的完整性

  • 报文摘要(message digest)生成时加入发送方和接收方都知道的认证密钥s来防止第三方伪造,该方式被称为报文认证码MAC(Message Authentication Code)技术

这种方式容易虽然可以防止第三方伪造报文摘要(message digest),但是不能防止接收方篡改报文(可伪造)

2.2、数字签名
  • 数字签名具有以下特性:

  • 数字签名的过程

  • 数字签名的可验证性和不可抵赖性

2.3、数字签名的应用------一般与散列函数(MD5或者SHA-1)一起应用

三、密钥分发中心(Key Distribution Center)---解决了ap4.0的问题

每个注册用户只知道自己其与KDC之间的密钥,比如Alice和Bob只知道自己与KDC之间的对称密钥,用于分别与KDC进行秘密通信,KDC为Alice与Bob之间发放共享密钥对的过程,如下所示:

以上KDC的执行过程,如下所示:

①、Alice要和Bob通信前,先用Alice和KDC之间对称密钥加密自己的身份信息和Bob的身份信息,结果为KA-KDC(A,B),发送给KDC;

②、KDC收Alice发送的 KA-KDC(A,B)后,KDC利用Alice和KDC之间对称密钥解密 KA-KDC(A,B)后,就知道了Alice希望与Bob进行通信,并产生R1;

③、然后,KDC利用Bob和KDC之间对称密钥加密Alice的身份信息和R1,结果为KB-KDC(A,R1),并将该结果和R1用Alice和KDC之间对称密钥再进行加密,形成KA-KDC(R1,KB-KDC(A,R1)),发送给Alice;

④、Alice收KDC发送的KA-KDC(R1,KB-KDC(A,R1))后,Alice利用Alice和KDC之间对称密钥解密KA-KDC(R1,KB-KDC(A,R1)),获取到了R1和KB-KDC(A,R1)(Alice无法解密该信息);

⑤、Alice将KB-KDC(A,R1)发送给Bob;

⑥、Bob收Alice发送的KB-KDC(A,R1)后,利用Bob和KDC之间对称密钥解密KB-KDC(A,R1),获取到了R1;

⑦、Alice和Bob用密钥R1进行通信。

四、公钥认证中心(CA)---解决了ap5.0的问题

ap5.0的问题主要点在于当Alice获得了Bob的公钥 (通过web网站、e-mail、磁盘等),她怎么确认这真的是Bob的公钥而不是Trudy的?因此就有了公钥认真中心,具体如下:

公钥证书的内容如下图所示:

五、安全电子邮件

安全电子邮件的要求有以下4个目标:

①、机密性:只有真正的接收方才能阅读邮件;

②、完整性:电子邮件在传输过程中不被修改;

③、身份认证性:电子邮件的发送者不被假冒;

④、抗抵赖性:发信人无法否认发过电子邮件。

5.1、只有机密性和完整性的电子邮件(缺少身份认证性和抗抵赖性)
5.2、只有身份认证性、完整性和抗抵赖性的电子邮件(缺少机密性)
5.3、符合所有安全电子邮件特性的电子邮件(机密性、完整性、身份认证性、抗抵赖性)------一般应用在实际工程中
5.4、安全电子邮件标准------PGP(Pretty Good Privacy)标准(5.3小节中描述的工作过程)

PGP的功能框架与5.3小节中 描述的工作过程相同,只是在最后传输的时候用了Base64编码。

5.4、S/MIME标准