【密码学】密码协议的分类:②认证协议

        密码协议的分类有很多种方式,这里我采取的是基于协议实现的目的来分类。可以将密码协议分成三类:认证协议密钥建立协议认证密钥建立协议

一、认证协议是什么?

        认证协议都在认证些什么东西呢?认证一般要认证三个东西:消息认证、数据源认证和实体认证,用于防止欺骗、伪装等攻击。简单说明一下这三者:

  • 消息认证:目的是要确保数据没有被篡改。
  • 数据源认证:目的是确保接收到的消息确实来自声称的发送者,而不是由第三方伪造的。
  • 实体认证:目的是验证双方身份的真实性,确保通信的另一方是真实的、授权的实体,而不是冒充者。

二、有哪些认证方法?

         认证方法多种多样,每种方法都有其优缺点和适用场景。重点理解数字证书认证基于挑战应答的认证

(1)口令认证

        传统的认证方法是采用口令来解决这个问题。比如:账号密码(静态口令认证)或者手机验证码(动态口令认证)

(2)数字证书认证

        数字证书认证基于公钥基础设施(PKI),通过颁发数字证书CA来验证用户的身份。数字证书包含了用户的公钥、身份信息以及证书颁发机构的数字签名等信息。用户在进行身份认证时,需要出示有效的数字证书,并由接收方进行验证。

CA认证工作原理图

 

数字证书认证工作原理

  1. 用户申请数字证书时,需向CA提交个人或组织的相关信息。
  2. CA审核通过后,使用自己的私钥对用户的公钥和相关信息进行签名,生成数字证书。
  3. 用户在网络通信中使用数字证书证明自己的身份,接收方通过验证证书上的签名确认证书的真实性,并使用证书中的公开密钥进行加密通信。

(3)基于挑战应答的认证

        挑战应答认证方式要求认证服务器向用户发送一个随机数(又叫“挑战值”),用户根据这个随机数和自己的私钥生成一个应答发送给服务器。服务器再根据自己的私钥和用户的公钥验证应答的正确性。这种方式可以有效防止重放攻击和中间人攻击,提高了认证的安全性。

挑战应答认证工作原理图

挑战应答认证工作原理

  1. 客户端向认证服务器发出身份认证请求。
  2. 认证服务器生成一个随机的挑战字串发送给客户端。
  3. 客户端根据挑战字串和约定的规则生成应答字串,并发送给认证服务器。
  4. 认证服务器验证应答字串的正确性,若正确则认证通过,否则认证失败。

对比数字证书认证与基于挑战应答的认证:

数字证书认证基于挑战应答的认证
安全性与特点数字证书由权威的CA签发,具有广泛的认可度。用户无需在网络上传输敏感信息(如密码),提高了安全性。
使用证书中的公开密钥进行加密通信,确保信息传输的安全性。每次认证都生成不同的挑战字串,增加了攻击者破解的难度。
数字签名技术确保信息的发送方无法抵赖曾发送过该信息。可以根据需要自定义挑战和应答的规则,适用于多种场景。
应用场景广泛应用于电子政务、电子商务、网上银行等领域,为机构和个人提供身份认证和信用认证服务。适用于需要高安全性身份认证的场景,如远程登录、VPN接入、敏感信息访问等。

(4)其他认证方式

        生物特征认证:利用人体固有的生物特征进行身份认证,如指纹、面部识别、虹膜识别、声纹识别等。这种认证方式具有高度的唯一性和便携性,难以伪造,因此安全性较高。然而,生物特征信息的采集和存储需要严格遵守隐私保护规定,以防止信息泄露。

        智能卡认证:通过智能卡硬件的不可复制性来确保用户身份的真实性。智能卡通常包含用户的私钥等敏感信息,用户在进行身份认证时需要插入智能卡并输入密码或进行其他操作。这种方式结合了物理硬件和密码的双重保护,提高了安全性。

        此外还有基于行为的认证(如通过分析用户的操作习惯来验证身份)、多因素认证(结合多种认证方式以提高安全性)等。

        但是口令容易被窃取,所以采用口令认证的方式,其安全性比较脆弱。要解决这个问题,必须设计安全的认证协议,以防止假冒和欺骗等攻击。认证可以分为单向认证和双向认证。

三、具体有哪些认证协议?

(1)采用单向函数的认证协议

        在单向函数的认证协议中,发送方计算消息的散列值并将其发送给接收方,接收方使用相同的单向函数重新计算接收到的消息的散列值,以验证消息的完整性和来源。 

采用单向函数的认证协议实现HOST验证Alice的身份

 【注】采用单向函数的认证协议无法抵抗字典攻击。

(2)采用双钥体制的认证

Alice向Host采用双钥体制的实现单向认证

【注】上图中的随机数R可以看成是一个挑战值。

(3)采用联锁协议的双向认证

        采用联锁协议的双向认证旨在提供双向的身份验证,确保双方都能够确认彼此的身份。

采用联锁协议的双向认证

(4)单向SKID身份识别协议——SKID2

        这是一种简单的单向身份识别协议,其中SKID代表“Simple Key ID”,Alice和Bob在SKID协议里事先共享了密钥K

Bob向Alice采用SKID2认证协议认证其身份
  • 步骤
  1. 验证者Alice向被验证者Bob发送一个挑战。
  2. Bob使用其私钥对挑战进行签名(图中通过MAC实现数字签名)。
  3. Bob将签名后的挑战发送回Alice。
  4. 验证者Alice使用被验证者Bob的公钥验证签名。
  • 优点:简单且易于实施。
  • 缺点:没有防止重放攻击的能力。

(5)双向SKID身份识别协议——SKID3

        Alice和Bob在SKID协议里事先共享了密钥K

  • 步骤
  1. Alice向Bob发送一个挑战(上图中的随机数R_A)。
  2. Bob使用自己的私钥对挑战进行签名,并发送回Alice,还发送了用于验证Alice身份的挑战(R_B)。
  3. Alice验证签名,并向Bob发生Alice自己的签名。
  4. Bob验证签名,并确认双方身份。
  • 优点:提供了更强的身份验证保障,实现了双向认证。
  • 缺点:增加了交互次数和复杂度。
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值