挑战-应答认证机制 (CRAM)

2025年3月17日 | 阅读 3 分钟

最流行的操作认证方法是挑战响应认证机制 (CRAM)。它们是一组协议,其中一方发出一个挑战(需要解决),另一方需要提供正确的响应(需要验证/检查)才能获得认证。

Challenge Response Authentication Mechanism (CRAM)

挑战问题有两种类型

  • 顾名思义,静态问题在挑战选择方面采取静态方法。用户可以选择自己的挑战并确认自己的身份。以电子邮件服务的“忘记密码”功能为例。您在账户设置中保存的“安全问题”是一个静态挑战。预计这些问题的正确答案不会随时间而改变。
  • 动态问题对挑战使用动态选择和认证过程。任务是随机选择的,假设用户是真实的,他们会知道正确的答案。

CRAM 执行方法 -

1. CAPTCHA

完全自动化的图灵测试,用于区分计算机和人类。CAPTCHA 可以阻止垃圾邮件以及在网站或电子邮件上自动创建新账户。

2. 安全 Shell,或 SSH

SSH 是一种加密网络协议,可在不安全网络上安全地运行网络服务。

3. 密码

密码会被发送到服务器,并在服务器上与正确的密码进行比较以进行验证。

4. CRAM 的一个变体,称为加盐挑战响应认证机制 (SCRAM)

为了确保密码只使用一次,挑战会被哈希并加盐。服务器比较哈希值与正确密码的哈希值,而不是比较明文密码本身。由于密码只能使用一次,因此无法泄露,从而可以防止中间人攻击和重放攻击。

5. 生物识别

每次用户需要验证自己时,都必须向认证系统提供他/她独特的生物识别信息(如视网膜扫描或指纹扫描)以供验证。

如何使用挑战响应

挑战响应屏障是一种安全措施,用于保护资产免受未经授权的用户、活动、程序和物联网 (IoT) 设备的侵害。它要求网络攻击者完成一系列挑战,才能绕过安全屏障并访问更多内容。例如,一家商业银行使用挑战响应认证创建一个多因素认证 (MFA) 流程。此流程使用多个 CRAM 来验证用户身份。

双因素认证 (2FA) 流程可能涉及输入密码并通过电子邮件接收验证码。MFA 变体也可能要求回答个人问题,例如“您母亲的娘家姓是什么?”然而,账户登录并不是挑战响应认证的唯一用途。

CRAM 用例

  • 区分计算机和人类

向用户显示一个通常乍一看难以辨认的图像,然后要求用户通过解读图像中的字符来输入。为了阻止机器人访问系统,然后将输入与实际字符进行比较。

  • 在训练机器学习模型时

将图像分割并打乱,然后将其呈现给用户进行某种形式的人类用户可验证的认证。输入用于验证用户输入。将用户的响应与 ML 模型提供的答案进行比较。“任务”是从打乱的图像中选择正确的图像部分。在 Google CAPTCHA 认证中经常看到。

  • 用于登录(认证)

将您输入的密码与您尝试访问的服务器上已保存的正确密码进行比较(直接或间接),以查看它们是否匹配。

常见的 CRAM 攻击包括

  • 窃听
  • 网络钓鱼攻击
  • 网络欺骗攻击
  • 中间人攻击
  • DNS 缓存投毒攻击
  • 木马攻击
  • 电话中间人攻击
  • 浏览器中毒攻击
  • 字典攻击
  • 暴力破解攻击
  • 零知识密码证明
  • 可重用密码攻击

局限性 -

密码的一个基本问题是它们被反复使用。当服务器收到密码时,服务器无法确定输入的密码是否是真实用户输入的。

较新的 CRAM 也使用加密来匹配密码的哈希值,而不是明文密码。

一些加密 CRAM 示例 -

  • SCRAM 是加盐挑战响应认证机制 (Salted Challenge Response Authentication Mechanism) 的缩写。
  • CRAM-MD5

下一主题扩展访问列表