SCRAM
Salted Challenge Response Authentication Mechanism (SCRAM)
RFC 5802 Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms
https://tex2e.github.io/rfc-translater/html/rfc5802.html
CRAMにsaltとストレッチングなどを足してみたもの
SASL Mechanisms の一部?
PBKDF2っぽい
RFC 7677 SCRAM-SHA-256 and SCRAM-SHA-256-PLUS Simple Authentication and Security Layer (SASL) Mechanisms
https://tex2e.github.io/rfc-translater/html/rfc7677.html
RFC 7804 Salted Challenge Response HTTP Authentication Mechanism
最小反復回数
https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml
table:SASL SCRAM Family Mechanisms
RFC 5802,7677 SCRAM-SHA-1
RFC 5802,7677 SCRAM-SHA-1-PLUS
RFC 7677 SCRAM-SHA-256
RFC 7677 SCRAM-SHA-256-PLUS
RFC 5802 の一部
概要
インターネットアプリケーションプロトコルで最も広く導入・利用されている安全な認証メカニズムは、トランスポート層セキュリティ(TLS)で保護されたチャネルを介した平文パスワードの伝送です。
このメカニズムには重大なセキュリティ上の懸念事項がいくつか存在しますが、TLSで保護されたチャレンジ・レスポンス認証メカニズムを用いることで対処可能です。しかしながら、現在標準化が進められているチャレンジ・レスポンス認証メカニズムは、いずれも広範な導入に必要な要件を満たしておらず、限られた用途でしか成功していません。
本仕様では、Salted Challenge Response Authentication Mechanism(SCRAM)と呼ばれる、SASL(Simple Authentication and Security Layer; RFC 4422)認証メカニズムのファミリーについて説明します。SCRAMは、セキュリティ上の懸念事項に対処し、導入可能性の要件を満たしています。TLSまたは同等のセキュリティ層と組み合わせて使用​​することで、このファミリーのメカニズムは、アプリケーションプロトコル認証の現状を改善し、将来のアプリケーションプロトコル標準において実装必須のメカニズムとして適切な選択肢となる可能性があります。
1. はじめに
本仕様は、Salted Challenge Response Authentication Mechanism (SCRAM) と呼ばれる認証メカニズムファミリーについて記述するものです。SCRAMは、チャレンジレスポンスメカニズムを従来の試みよりも広く導入するために必要な要件に対応しています(付録Aおよび付録Bを参照)。トランスポート層セキュリティ(TLS、RFC 5246を参照)または同等のセキュリティ層と組み合わせて使用​​することで、このファミリーのメカニズムはアプリケーションプロトコル認証の現状を改善し、将来のアプリケーションプロトコル標準において実装が必須となるメカニズムとして適切な選択肢となる可能性があります。
簡潔にするため、このファミリーのメカニズムには、現時点ではセキュリティ層のネゴシエーションは含まれていません RFC 4422。これは、TLSやSSHなどの外部セキュリティ層と併用することを想定しており、オプションで外部セキュリティ層へのチャネルバインディング RFC 5056 も備えています。
SCRAMは、本書では純粋なSASL(Simple Authentication and Security Layer)RFC4422メカニズムとして規定されていますが、SASLとGSS-API(Generic Security Service Application Program Interface)間の新しいブリッジである「GS2」RFC5801に準拠しています。つまり、この文書ではSASLメカニズムとGSS-APIメカニズムの両方を定義しています。
SCRAMは以下のプロトコル機能を提供します。