2. 自己紹介
O Twitter: @kamebuchi
O Blog: http://buchizo.wordpress.com/
O クラウド上にActive Directory構築したりする普通
なWindows Azure使いで、本州から来ました。
Windows 2000 Server発売時から関わり続けて
きたKerberos認証を、自分が作ったアンドロイドを
育てたような気分で紹介したり、洗浄したり、VerUp
したいと思います!(にゃ!
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 2
4. Kerberosとは何か
O 安全で
O ネットワーク上にパスワードを流したりしない
O 暗号化されてる
O シングルサインオンができて
O 一度ログオンすれば透過的にアクセスできる
O 信頼できる第三者機関で
O 全ての認証を集中化できる
O 相互認証ができるしくみ
O サーバー/クライアントどちらも相互に正当かどうか確認できる
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 4
6. 構成要素:用語とパズル
O KDC=Key Distribution Center:鍵配布センター
O 暗号化鍵・プリンシパルのデータベース
O 認証サーバー
O 暗号化されたチケット交付チケット(TGT)を発行
O チケット交付サーバー
O 要求元にチケットを発行
O プリンシパル(Principal:主)
O ユーザー・サービス・ホストの一意な情報
O レルム(Realm:領域)
O プリンシパルが属する領域
O 例:ユーザープリンシパル名(UPN)
O kamebuchi@hogehoge.local
ユーザー名 レルム
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 6
7. 構成要素:用語とパズル
O チケット
O 暗号化されたセッション毎の一意なデータ構造
O KDCが発行する
O 最終的な身元の確認と通信用の暗号化鍵の確立(短期)
O 以下の情報をまとめたもの
O 要求元プリンシパル名
O 対象のサービスプリンシパル名
O チケットの開始・終了時期
O チケットを使用するIPアドレス
O 通信用の共通鍵(セッション鍵:秘密暗号化鍵)
O チケットフラグ
O だいたい10~24時間だけ有効
O キャッシュも使える
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 7
8. 構成要素:用語とパズル
O DNS
O レルムを管理したりKDCを検索したりいろいろ
O 時刻同期
O 前後5分ずれるとNG!!(大事!)
O ネットワーク
O UDP/88 TCP/88 TCP/749 UDP/4444 UDP/444
O NATは面倒くさい(IPアドレスみてるので)
O 要件があえば外部公開も可能
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 8
9. ざっくりまとめると
時刻同期
委任
KDC
サーバー サーバー
監査
認証
TCP/88
DNS 認可
チケット
サービスの発見
レルムの管理
クライアント
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 9
10. 余談:PKIとは違うの?
O PKI(公開鍵基盤)とは別物
O PKIは、「身分を証明するための証明書を扱うための基盤」
O 身分の証明書=公開鍵
O 認証/認可/監査は別の仕組み
O 身分証明がはっきりしたほうがいい場合に利用
O S/MIME
O SSL
O PGP
O 鍵=証明書をどうやって公開/配布するかがポイント
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 10
11. Microsoftでの実装
O Windows 2000 以降で標準対応(Kerberos v5)
O KDC = Active Directory ドメインコントローラー
O 意識しなくてもActive Directoryドメイン配下は
Kerberos認証つかってます
O 暗号化方式はRC4-HMAC (既定)/AES/3DES
O DESはWindows 7/Windows Server 2008は既定で無効
O Kerberos認証に対応した、その他Microsoft製品
O Internet Explorer
O SQL Server
O IIS
O Exchange
O SharePoint など
O ほとんどのMicrosoft製品じゃね?
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 11
12. 相互運用
O Microsoft以外でももちろんKerberos認証可能
O WebLogic Serverとか
O Firefoxとか(SPNEGO使えるはず)
O KDCもあるよ
O Macintoshも
O 相互運用はちと手間
O PAMの出来が..
O やっぱり多少の問題ある
O 規格はオープンなんだから実装がんばってね
O WS-Securityのバイナリトークンとか
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 12
13. 活用例
O Kerberosが威力を発揮するのは
O 委任によるシングルサインオン
O 認証情報の引き継ぎ
O WindowsでNTLMだと何がダメ?
O よくあるのがダブルホップ問題
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 13
14. ダブルホップとKerberos
O NTLMの場合 DBサーバー
(2) WCF Data Servicesへアクセス
Windows統合認証(NTLM)によって (3) DBへアクセス
UserAが認証される Windows統合認証(NTLM)はダブルホップ
(認証情報の受け渡し/偽装)ができないため
認証情報なし 認証情報無し=匿名ユーザーとしてアクセス
(Anonymous:匿名) ↓
DBへアクセスできない
WCF Data Services
Webサーバー
Web 画面
UserA の認証情報
UserA の認証情報
(1) Webへアクセス
Windows統合認証(NTLM)によって
UserAが認証される
クライアント(UserA)
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 14
15. ダブルホップとKerberos
O Kerberosの場合
DBサーバー
(2) WCF Data Services へアクセス
Windows統合認証(Kerberos)によって
UserAが認証される (3) DBへアクセス
Windows統合認証(Kerberos)によって
UserAが認証される
↓
UserA の認証情報 DBへアクセス可
WCF Data Services
Web サーバー
Web 画面
UserA の認証情報
UserA の認証情報
(1)Web へアクセス
Windows統合認証(Kerberos)によって
UserAが認証される
クライアント(UserA)
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 15
16. やってみた
O ただやるだけだと面白くない
O せっかくだからWindows Azure Connect で OnPremise と連携
Active Directory ドメイン
Webサーバー(IIS)
Windows Azure WebRole
Windows Azure Connect Windows Azure
Intranet
クライアント Active Directory ファイルサーバー
(IE) ドメインコントローラー (画像置き場)
(c) Copyright 2011, Keiji Kamebuchi, All (KDC他)
right reserved 16
27. Appendix
O Kerberos ネットワーク認証サービス v5 (RFC1510)
O http://www.ipa.go.jp/security/rfc /RFC1510-00JA.html
O Kerberos Authentication Technical Reference
O http://technet.microsoft.com/ja-jp/library/cc739058(WS.10).aspx
O Kerberos V5 認証
O http://technet.microsoft.com/ja-jp/library/cc783708(WS.10).aspx
O Kerbtray.exe
O http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4e3a
58be-29f6-49f6-85be-e866af8e7a88&displaylang=en
(c) Copyright 2011, Keiji Kamebuchi, All right reserved 27