开启生长之旅!这是我参与「日新方案 2 月更文挑战」的第 24天,点击查看活动概况

日常日子中辨别一个人的身份或许很简单,例如见面时经过彼此容貌进行识别,打电话时经过对方声音进行身份认证等。在计算机网络中身份认证是一个实体经过网络向对方证明自身身份的进程。由于网络中无法依托生物信息,例如,外部、声音等来识别。所以只能经过某些辨别协议(authentication protocol)来进行认证。辨别协议首要需求树立两边相互信任的标识,辨别完成后两边才继续后续沟通

一次性随机数

为了防止在网络传播进程中被第三者监听通讯进程,从而引起像IP诈骗、回放进犯等类安全问题。key采纳一次性随机数(Nonce),该随机数在整个生命周期内只用一次,如下图所示:

计算机网络中如何进行身份认证?

  1. Alice向Bob发送“我是Alice”的报文
  2. Bob选择一个随机数R回复给Alice
  3. Alice使用与Bob同享的对称隐隐秘钥Ka-b来加密这个随机数,然后发送给Bob
  4. 由于Alice知道这个对称隐隐秘钥,所以只需Bob解密出来就知道这个报文是Alice发的,而且还同时证明了Alice的存活

一次性随机数+公钥加密

一次性随机数尽管能够防止重放进犯,可是该方法需求通讯两边同享密钥。能够改善为使用一次性随机数+公钥加密技术。

计算机网络中如何进行身份认证?

  1. Alice向Bob发送“我是Alice”的报文
  2. Bob选择一个随机数R回复给Alice
  3. Alice使用她的私钥Ka-来加密R,然后把加密后的结果发送给Bob
  4. Bob向Alice索要公钥
  5. Alice发送自己的公钥给Bob
  6. Bob利用Alice的公钥Ka+来解密报文。如果结果和一次性随机数持平,则可确认Alice身份

乍一看好像这种方式也没什么问题,可是如果在Alice和Bob通讯的链路上有一个第三者Trudy呈现的话,就会呈现中间人进犯的安全隐患!Alice向Bob发送音讯,可是被中间人Trudy截获,Trudy将音讯转发给Bob;Bob接收到音讯后回复随机数R给他认为的音讯发送方Alice,可是实践是被Trudy绑架了,然后Trudy模仿Alice利用自己的私钥加密音讯,然后再给Bob自己的公钥,屏蔽Alice的一切音讯,这时候其实Bob一向以为在和Alice通讯,但实践是和Trudy在通讯。

计算机网络中如何进行身份认证?

密钥分发

解决上面中间人进犯的问题关键是要解决(对称)密钥分发和(公开)密钥自身的认证问题。对称密钥分发的典型方案是,通讯各方树立一个大家都信任的密钥分发中心(Key Distribution Center,KDC),且各方都和KDC之间坚持一个长期的同享密钥。通讯两边经过KDC生成一个临时会话密钥(Session Key)。在会话密钥树立之前,通讯两边与KDC之间的同享密钥主要用于通讯验证及两边之间的验证。KDC密钥生成方式有多种。

  • 方式一:由通讯发起方生成会话密钥
  • 方式二:由KDC为通讯两边生成通讯会话密钥

证书认证

要想证明一个公钥确实是你要通讯的实体的公钥,就必须得有一个权威的认证中心(Certification Authority,CA)。通常CA具有如下作用:

  1. CA能够证明一个实体的真实身份
  2. 一旦CA认证了某个实体,会生成一个证书(Certificate)来把其身份和实体的公钥绑定起来。其中包括这个实体的公钥和全局仅有的身份标识信息,并由CA对证书进行数字签名