CRAM-MD5

暗号学において、CRAM-MD5はHMAC-MD5アルゴリズムに基づくチャレンジレスポンス認証メカニズム(CRAM)です。SA​​SL(簡易認証およびセキュリティ層)でサポートされているメカニズムの1つとして、電子メールソフトウェアのSMTP認証の一部として、 POPおよびIMAPユーザーの認証によく使用されます。また、LDAPXMPPBEEPなどのプロトコル を実装したアプリケーションでも使用されます

このようなソフトウェアが暗号化されていない接続での認証を必要とする場合、パスワードを「平文」で送信する や などのメカニズムよりも CRAM-MD5 が推奨されますLOGIN。ただし、ブルートフォース攻撃PLAINによるパスワードの導出を防ぐことはできないため、パスワードを使用しない代替メカニズムや、トランスポート層セキュリティ(TLS) で暗号化された接続を使用する代替メカニズムよりも効果は低くなります。

プロトコル

CRAM-MD5プロトコルは、単一のチャレンジとレスポンスのサイクルで構成され、サーバーによって開始されます

  1. 課題:サーバーはBase64でエンコードされた文字列をクライアントに送信します。エンコード前は任意のランダム文字列になる可能性がありますが、現在CRAM-MD5を定義している標準規格では、Message-ID電子メールヘッダー値(山括弧を含む)の形式であり、任意のランダムな数字の文字列、タイムスタンプ、サーバーの完全修飾ドメイン名を含むことが規定されています。
  2. 応答: クライアントは次のように作成された文字列で応答します。
    1. チャレンジは base64 でデコードされます。
    2. デコードされたチャレンジは、共有秘密(通常はユーザーのパスワードまたはそのハッシュ)を秘密鍵として使用し、HMAC-MD5 を使用してハッシュされます。
    3. ハッシュ化されたチャレンジは、小文字の 16 進数字の文字列に変換されます。
    4. ユーザーとスペース文字が 16 進数の先頭に追加されます。
    5. 連結されたデータはBase64でエンコードされ、サーバーに送信される。
  3. 比較: サーバーは同じ方法を用いて期待されるレスポンスを計算します。与えられたレスポンスと期待されるレスポンスが一致した場合、認証は成功です。

強み

一方向ハッシュとフレッシュランダムチャレンジは、3種類のセキュリティを提供します

  • パスワードを知らない限り、ハッシュを複製することはできません。これにより認証が実現します。
  • ハッシュをリプレイすることはできない。これは予測不可能なチャレンジに依存しているからだ。これはフレッシュネスやリプレイ防止など様々な呼び方がある。
  • 観察者はパスワードを知りません。これを秘密性と呼びます。

弱点

  • プロキシ機能:パスワード認証鍵共有(PAKE)方式とは異なり、CRAM-MD5は2つのエンドポイント間で共有される秘密鍵を確立しませんが、この秘密鍵は盗聴者には知られません。そのため、アクティブな中間者はサーバーへの接続を開き、チャレンジを取得し、そのチャレンジをクライアントに提示し、クライアントからのレスポンスを受信し、そのレスポンスをサーバーに転送することができます。こうすることで、サーバーに対してクライアントになりすまし、クライアントからの以降のメッセージを破棄することが可能になります。

標準

CRAM-MD5は、1997年初頭のRFC 2095に取って代わるIETF標準化過程文書RFC 2195で定義されています。これらの事実上の標準は、CRAM-MD5を電子メールメールボックス管理プロトコルであるPOPおよびIMAPの認証方法として定義しています

CRAM-MD5 は、1997 年の標準 RFC 2222 に代わる RFC 4422 で 2006 年に定義された、 Simple Authentication and Security Layer (SASL)でサポートされている認証方法の 1 つです。

インターネット割り当て番号機関(IANA)は、限定的な使用のためにCRAM-MD5を含む SASLメカニズムのレジストリ[ 3 ]を管理しています。

CRAM-MD5 は、RFC 2645 で定義されている オンデマンド メール リレー(ODMR)に必要です。

廃止

2008年11月20日にこの標準を廃止することが推奨されました。代替案として、TLSで保護されたSCRAMSASL Plainなどが推奨されています。[ 4 ]

参照

参考文献

  1. ^ 「function verify_credentials」 Dovecot 2.0 ソース2014年1月23日閲覧
  2. ^ "file hmac-md5.c" . Dovecot 2.0 ソース. 2014年1月23日閲覧
  3. ^ 「簡易認証およびセキュリティ層(SASL)メカニズム」 .プロトコルレジストリ. IANA .
  4. ^ Zeilenga, Kurt (2008年11月24日). 「CRAM-MD5 to Historic」 . tools.ietf.org . 2020年12月5日閲覧。