RADIUSおよびTACACS +はFIPS 140-2準拠のシナリオで許可されていますか?
RADIUSはMD5ハッシュアルゴリズムを使用しており、TACACS +も使用していると確信しています。また、RADIUSまたはMD5ハッシュアルゴリズムを使用しないTACACS +。間違っている場合は修正してください。
そして、MD5はFIPS 140-2標準で禁止されています。
しかし、私はこれを見つけました Cisco doc これは「RADIUSキーラップ」と呼ばれるものについて言及しており、キーラッピングを有効にするとRADIUSを使用できるようになることを意味しているようです、FIPSに準拠します。
だから... RADIUS Keywrappingとは何ですか?それはMD5アルゴリズムがもはや使用されなくなったことを意味しますか?それともFIPS安全なアルゴリズムの内部に安全でないアルゴリズムを「ラップ」しても維持されますか?
編集:mfinniがリンクしたドキュメントで見つかります:
RADIUSキーラップ
RADIUSキーラップサポートは、RADIUSプロトコルの拡張です。これは、Cisco Access ControlにFIPS-certifiable手段を提供しますRADIUSメッセージを認証し、セッションキーを配布するサーバー(ACS)。
RADIUSキーラップは、RADIUSプロトコル暗号化により、Advanced Encryption Standard(AES)キーラップアルゴリズムを使用してキーを転送し、パケットの整合性を保護するためにHMAC-SHA1アルゴリズムが使用されます。これにより、キー暗号化キー( KEK)とハッシュキーは互いに異なっている必要があり、パスワードに基づいてはならず、応答認証システムの計算に使用されるRADIUS共有シークレットとは暗号的に独立している必要があります。
OK ...それが答えです。
NISTにシスコのドキュメントのコピーがあり、これを具体的に示しているので、答えは「はい」だと思います。 IANASA(私はセキュリティ監査人ではありません)
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp948.pdf
RADIUSおよびTACACS +は、FIPS 140-2準拠のシナリオで許可されていますか?
Microsoftには、最近のオペレーティングシステム用にFIPS認定の暗号モジュールがあります (「Microsoft」を検索)。
グループポリシーを介してFIPSモードを有効にすると、その暗号化モジュールが強制的に使用されます。ただし、1つの回答が指摘するように、ほとんどのRADIUSプロトコルはFIPSで許可されていません。PAP 、CHAP、MS-CHAP、MS-CHAPv2はすべて、暗号化なし/制限または何らかの形式のMDハッシュ(FIPSでは許可されていません)を使用します。FIPSレベルの暗号化を使用するプロトコルには、EAPメソッド(PEAP、EAP-TLS)があります。
シスコはFIPSを通じてAAAサーバーを採用しています。ただし、回答の1つにリンクされているドキュメントから、それは802.11i(RADIUSを使用したワイヤレスセキュリティ)専用であり、TACACS +ピース用ではありません。
TACACS +の1つの問題(見つけにくい)は、MD5を使用してTACACS +トラフィックを保護しているようです。 「TACACS + MD5」を検索すると、このステートメントを作成するSANS Instituteのドキュメントが表示されます。シスコは、TACACS +が暗号化に使用するものをWebサイトで公開していません。
結論:TACACS + in FIPS mode?いいえ、TACACS +トラフィックが3DES以上の暗号化を使用していることを誰かが示すことができない場合を除きます。RADIUS in FIPSモード?はい、EAP方式を使用している限り可能です。
後世のために:TACACS +の「暗号化」は https://tools.ietf.org/html/draft-grant-tacacs-02 のドキュメントです
関連テキスト:
この場合[ed:暗号化が使用されます]、パケット本体は疑似ランダムパッドを使用してバイト単位でXORすることにより暗号化されます。
暗号化{data} ==データ^ pseudo_pad
パッドは、一連のMD5ハッシュ(それぞれ16バイト長)を連結し、それを入力データの長さに切り捨てることによって生成されます。
このドキュメントで使用される場合、MD5は[3]で指定されている「RSA Data Security、Inc. MD5メッセージダイジェストアルゴリズム」を指します。
pseudo_pad = {MD5_1 [、MD5_2 [...、MD5_n]]}はlen(data)に切り捨てられます
最初のMD5ハッシュは、session_id、秘密鍵、バージョン番号、シーケンス番号を連結して生成され、そのストリームでMD5を実行します。 TACACS +クライアントとデーモンの間の共有秘密である秘密鍵を除いて、これらの入力値はすべてパケットヘッダーで使用できます。
バージョン番号は、メジャーバージョン番号とマイナーバージョン番号の1バイトの組み合わせです。
セッションIDは、TACACS +ヘッダーに表示されるバイト順で使用されます。 (つまり、ホストのバイト順ではなく、ネットワークのバイト順です)。
後続のハッシュは、同じ入力ストリームを使用して生成されますが、入力ストリームの最後で前のハッシュ値を連結します。
MD5_1 = MD5 {session_id、key、version、seq_no}
MD5_2 = MD5 {session_id、key、version、seq_no、MD5_1}
....
MD5_n = MD5 {session_id、key、version、seq_no、MD5_n-1}