📜  质询响应认证机制 (CRAM)

📅  最后修改于: 2022-05-13 01:57:02.598000             🧑  作者: Mango

质询响应认证机制 (CRAM)

质询响应身份验证机制 (CRAM)是最常用的操作身份验证方式。它们是一组协议,其中一方提出挑战(待回答),另一方必须对挑战提出正确答案(待检查/验证)才能获得身份验证。

图 – CRAM 活动流程图

两种类型的问题(挑战) -

  • 顾名思义,静态问题涉及挑战选择的静态方法。用户可以选择他的挑战并验证自己。例如,以电子邮件服务中的 FORGET PASSWORD 用例为例。静态挑战是您在帐户设置中保存的“安全问题”。这些问题的正确答案预计不会随着时间而改变。
  • 动态问题涉及挑战选择和身份验证的动态方法。挑战是随机选择的,假设用户知道挑战的有效答案,考虑到用户是真实的。

CRAM 的执行方式 –

  • 验证码:
    用于区分计算机和人类的全自动公共图灵测试。 CAPTCHA 用于防止垃圾邮件和自动注册电子邮件或网站的新帐户。
  • SSH(安全外壳):
    SSH 是一种加密网络协议,用于在不安全的网络上安全地运行网络服务。
  • 密码:
    通过匹配正确的密码将密码发送到服务器进行验证。
  • Salted Challenge Response Authentication Mechanism(SCRAM,CRAM的一种变体):
    挑战使用哈希进行加盐,以确保密码仅使用一次。哈希被发送到服务器以与正确密码的哈希匹配,而不是纯文本密码本身的匹配。因此,密码不会被泄露,以防止中间人攻击和重放攻击,因为密码只能使用一次。
  • 生物识别:
    记录唯一的生物特征细节(视网膜扫描、指纹扫描),每次用户想要验证自己的身份时,他都必须向身份验证系统出示他的生物特征凭据以进行验证。

用例 -

  • 区分计算机和人类:
    向用户呈现图像(通常难以一目了然地阅读),并要求用户通过读取图像中的字符来进行输入。然后将输入与实际字符进行匹配,以防止机器人进入系统。
  • 在训练机器学习模型时:
    一幅图像被拼凑起来并呈现给用户,以进行某种真正的人类用户可以进行的验证。输入用于用户验证。用户给出的答案与 ML 模型给出的答案相匹配。混乱的图像是“挑战”,选择正确的部分就是例子。常见于 Google CAPTCHA 认证。
  • 用于登录(身份验证)目的:
    密码输入(直接或间接)与正确的密码(已存储在您尝试访问的服务器中)进行匹配。

对 CRAM 的常见攻击 –

  • 窃听
  • 网络钓鱼攻击
  • 域名攻击
  • 中间人攻击
  • DNS 缓存中毒攻击
  • 木马攻击
  • 电话中的人攻击
  • 浏览器中毒攻击
  • 字典攻击
  • 蛮力攻击
  • 零知识密码证明
  • 可重复使用的密码攻击

限制——
密码的一个基本问题是密码被重复使用。当服务器接收到密码时,服务器无法确定真实用户是否正在输入密码。

较新的 CRAM 还采用加密技术,以便匹配密码的哈希而不是普通密码。
加密 CRAM 的一些示例 –

  • SCRAM – 盐渍挑战响应认证机制
  • CRAM-MD5