SASL
RFC 4422 Simple Authentication and Security Layer (SASL)
http://srgia.com/docs/rfc4422j.html
https://tex2e.github.io/rfc-translater/html/rfc4422.html
プロトコルと認証(メカニズム)を分けるインターフェース的なところ
プロトコル
TLSやSSH前提
SMTP
IMAP
https://tex2e.github.io/rfc-translater/html/rfc4959.html
POP3
RFC 5034 POP3 SASL 認証メカニズム http://srgia.com/docs/rfc5034j.html
LDAP
XMPP
ACAP?
SAML
OAuth
RFC 7628 A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth
メカニズム
GS2 経由? GSS-API
PRF
Kerberos
SCRAM
PLAIN
GS2 メカニズム群
RFC 5801
認証
EXTERNAL
RFC 6595 A Simple Authentication and Security Layer (SASL) and GSS-API Mechanism for the Security Assertion Markup Language (SAML)
RFC 4616 The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
RFC 5801 Using Generic Security Service Application Program Interface (GSS-API) Mechanisms in Simple Authentication and Security Layer (SASL): The GS2 Mechanism Family
SASLのGSS-APIメカニズム: GS2 メカニズム群
RFC 5802 Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms
RFC 7677 SCRAM-SHA-256 and SCRAM-SHA-256-PLUS Simple Authentication and Security Layer (SASL) Mechanisms
DIGEST-MD5 (Historic) RFC 1321, 2831, 6331
RFC 6331 Moving DIGEST-MD5 to Historic
https://tex2e.github.io/rfc-translater/html/rfc6331.html
https://www.rfc-editor.org/rfc/rfc6331
RFC 2831 (廃止 6331) Using Digest Authentication as a SASL Mechanism
https://tex2e.github.io/rfc-translater/html/rfc2831.html
RFC 2595 Using TLS with IMAP, POP3 and ACAP
RFC 2743 GSS-API
RFC 4752 The Kerberos V5 ("GSSAPI") Simple Authentication and Security Layer (SASL) Mechanism
RFC 2222 KERBEROS_IV (ふるい) → 4422, 4752 https://www.nic.ad.jp/ja/tech/ipa/RFC2222JA.html
RFC 4505 Anonymous Simple Authentication and Security Layer (SASL) Mechanism
RFC 2222 Simple Authentication and Security Layer (SASL) → 4422
https://tex2e.github.io/rfc-translater/html/rfc2222.html
RFC 2195 CRAM-MD5 → DIGEST-MD5?
PRECIS Framework (SASLprep)
RFC 8265 Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords
RFC 7613 (廃止 8265) Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords
RFC 4013 (廃止 7613) SASLprep: Stringprep Profile for User Names and Passwords
Java
javax.security.sasl
HTTPはちょっと別?
RFC 7616 HTTP Digest Access Authentication
RFC 7617 The 'Basic' HTTP Authentication Scheme
RFC 4422 (仮)
このメモのステータス
この文書は、インターネットコミュニティのためのインターネット標準化過程(STR)プロトコルを規定し、改善のための議論と提案を求めています。このプロトコルの標準化状況とステータスについては、「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。
著作権表示
Copyright (C) The Internet Society (2006).
概要
簡易認証セキュリティ層(SASL)は、コネクション指向プロトコルにおいて、置き換え可能なメカニズムを介して認証およびデータセキュリティサービスを提供するためのフレームワークです。プロトコルとメカニズム間の構造化されたインターフェースを提供します。このフレームワークにより、新しいプロトコルは既存のメカニズムを再利用でき、古いプロトコルは新しいメカニズムを利用できます。
このフレームワークはまた、データセキュリティ層内での後続のプロトコル交換をセキュリティ保護するためのプロトコルも提供します。
この文書では、SASLメカニズムの構造、プロトコルがSASLをサポートする方法、そしてコネクションを介してデータセキュリティ層を伝送するためのプロトコルを定義します。さらに、この文書ではSASLメカニズムの1つであるEXTERNALメカニズムを定義します。
この文書は RFC 2222 を廃止します。
1. はじめに
SASL(Simple Authentication and Security Layer)は、コネクション指向プロトコルにおいて、置き換え可能なメカニズムを介して認証およびデータセキュリティサービスを提供するフレームワークです。SA​​SLは、プロトコルとメカニズム間の構造化されたインターフェースを提供します。また、SASLは、データセキュリティ層内での後続のプロトコル交換をセキュアにするためのプロトコルも提供します。データセキュリティ層は、データの整合性、データの機密性、その他のサービスを提供できます。
SASLの設計は、新しいプロトコルが既存のメカニズムを再設計することなく再利用できるようにし、既存のプロトコルがプロトコルを再設計することなく新しいメカニズムを利用できるようにすることを目指しています。
SASLは、概念的には、次の図に示すように、プロトコルとメカニズムの間に抽象化層を提供するフレームワークです。
code:図
SMTP LDAP XMPP 他のプロトコルs ...
\ | | /
\ | | /
SASL abstraction layer
/ | | \
/ | | \
EXTERNAL GSSAPI PLAIN Other mechanisms ...
この抽象化層のインターフェースを通じて、フレームワークはあらゆるプロトコルがあらゆるメカニズムを利用できるようにします。この層は一般的に、プロトコルの詳細をメカニズムから、またメカニズムの詳細をプロトコルから隠蔽しますが、メカニズムの詳細をプロトコル実装から隠蔽することは通常ありません。例えば、メカニズムごとに動作に必要な情報は異なり、パスワードベースの認証を使用するものもあれば、レルム情報を必要とするものもあり、Kerberosチケットや証明書などを使用するものもあります。また、認可を実行するために、サーバー実装は通常、メカニズム固有の形式を持つ認証IDと、アプリケーションプロトコル固有の形式を持つ認可IDとの間のIDマッピングを実装する必要があります。第2章では、IDの概念について説明します。
このフレームワークは、類似のメカニズムの詳細を抽象化せずに設計・実装することが可能です。このようなフレームワーク実装、そしてメカニズム実装は、特定のプロトコルの複数の実装で共有できるだけでなく、複数のプロトコルの実装でも共有できるように設計できます。
このフレームワークには、認証交換を実行するプロトコルとメカニズムの両方とのインターフェースが組み込まれています。セクション3では、SASL認証交換について説明します。
SASLを使用するには、各プロトコルは(他の項目の中でも)使用するメカニズムを識別する方法、メカニズム固有のサーバチャレンジとクライアントレスポンスを交換する方法、そして認証交換の結果を伝達する方法を提供します。セクション4では、SASLプロトコルの要件について説明します。
各SASLメカニズムは(他の項目の中でも)認証サービスを提供し、データセキュリティサービスをネゴシエートする一連のサーバチャレンジとクライアントレスポンスを定義します。セクション5では、SASLメカニズムの要件について説明します。
セクション6では、セキュリティに関する考慮事項について説明します。セクション7では、IANAに関する考慮事項について説明します。付録Aでは、SASL EXTERNALメカニズムを定義します。
1.1. 対象読者
この文書は、以下の読者を対象として作成されています。
本仕様を用いてプロトコルの認証をサポートするプロトコル設計者
新しいSASLメカニズムを定義するメカニズム設計者
SASLをサポートするプロトコルのクライアントまたはサーバーの実装者
この文書の構成は、読者が自身のエンジニアリングに関連する詳細に集中できるように意図されていますが、この文書のあらゆる側面を読み、理解することを推奨します。
1.2. 他の文書との関係
本文書はRFC 2222を廃止するものであり、RFC 2222のセクション7.1(KERBEROS_IVメカニズム)、セクション7.2(GSSAPIメカニズム)、セクション7.3(SKEYメカニズム)を除くすべての部分を置き換えます。KERBEROS_IVおよびSKEYメカニズムは現在廃止されており、RFC 2222で規定されているこれらの仕様は歴史的仕様です。GSSAPIメカニズムは現在、別途規定されていますSASL-GSSAPI。
付録Bは、RFC 2222以降の変更点の概要を示しています。