Kerberosで使う暗号化

 
先日、up in the air(邦題:マイレージ、マイライフ)という映画を見ました。
邦題のつけ方が印象的なことはもちろんなのですが、
1000万マイルを貯めることが最大の目標と語る主人公に向かって、
「バカみたい」と一蹴する主人公の部下のひと言が印象的な映画でした。
 
一部の人の間では「おぉすげえ」と思うようなことでも、
興味のない人にとってはどうでもよいことってありますよね。
そのことをActive Directoryに置き換えるならば、
Kerberosの暗号化レベルがそのひとつではないでしょうか?
 
ちなみに私は、1000万マイルも、Kerberosの暗号化レベルも、
「おぉすげえ」派なので、Kerberosの暗号化レベルについて気付いたことを
書き留めておきたいと思います。
 
 
先日、グループポリシーの項目を眺めていたら、
Active Directoryの認証に使われるKerberos暗号化の種類が
増えていることに気がつきました。
 
具体的には、Windows 7 / Vista / 2008R2 / 2008で
暗号化にAESを使うことができます。
(ただし、ドメイン機能レベルはWindows Server 2008以上であることが前提です)
 
AESという高いレベルでの暗号化を実装したい!という方は
次の方法で実装することができます。
 
■方法1 – ユーザーのプロパティから設定
 
ユーザーごとに設定する方法で、
AES128ビットまたは256ビットを選択することができます。
 
 
■方法2 – グループポリシーから設定
 
Windows Server 2008 R2またはWindows 7のみで利用できるGPO設定項目なのですが、
グループポリシーのセキュリティオプションに
ネットワークセキュリティ:Kerberosで許可する暗号化の種類を構成する
という項目があるので、これを使います。
 
 
上図のとおり、設定項目としては次のものがあります。
・DES_CBC_CRC

・DES_CBC_MD5
Windows以外のシステムとの互換性を持たせるための暗号レベル 
・RC4_HMAC_MD5
Windows Vista以前のクライアントコンピューターが利用する暗号レベルです。
・AES128_HMAC_SHA1
・AES256_HMAC_SHA1
方法1で紹介した、AES128ビットまたは256ビットを利用する暗号レベルです。
 
AESが利用できる環境であれば、他のOSとの互換性もありますので、
ぜひとも使いたいところです。
 
 
ここから先は未確認情報なので、
そのことを認識したうえでご覧下さい。
——————————————————————
AESをサポートしていないWindows Server 2003 R2以前の
ドメインコントローラーにAESの設定が有効になっているWindows 7 / Vistaクライアントが
ログオンしようとすると、ログオンに失敗します。
ただし、これは内部的なプロセスで、失敗した後にもう一度AESを使わないで
ログオン認証を試みるので、結果的に成功します。
互換性があるので、AESを使おうが、使うまいが、
どちらでも見た目にはログオンできるわけですから、どっちでも一緒です。
ただ、内部的にログオンに一度失敗するというプロセスが発生する分だけ、
ログオンに時間がかかることだけ注意してください。
——————————————————————
 
ちなみに、自分が利用している暗号レベルを確認したい場合、
マイクロソフトからtokenszというツールが提供されていますから、
これを利用するとよいでしょう。
 
■tokensz