clrh55_lt_kamebuchi_public

27
5分で分かった気になる かもしれない Kerberos認証 2011.02.05 第55回CLR/H勉強会 @kamebuchi

Upload: keiji-kamebuchi

Post on 05-Dec-2014

2.903 views

Category:

Technology


0 download

DESCRIPTION

第55回 CLR/H 勉強会 ライトニングトーク - 5分でわかった気になるかもしれないKerberos認証

TRANSCRIPT

Page 1: Clrh55_LT_kamebuchi_public

5分で分かった気になる かもしれない Kerberos認証

2011.02.05 第55回CLR/H勉強会

@kamebuchi

Page 2: Clrh55_LT_kamebuchi_public

自己紹介

O Twitter: @kamebuchi

O Blog: http://buchizo.wordpress.com/

O クラウド上にActive Directory構築したりする普通なWindows Azure使いで、本州から来ました。Windows 2000 Server発売時から関わり続けてきたKerberos認証を、自分が作ったアンドロイドを育てたような気分で紹介したり、洗浄したり、VerUpしたいと思います!(にゃ!

2 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 3: Clrh55_LT_kamebuchi_public

その前に

3 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 4: Clrh55_LT_kamebuchi_public

Kerberosとは何か

O 安全で

O ネットワーク上にパスワードを流したりしない

O 暗号化されてる

O シングルサインオンができて

O 一度ログオンすれば透過的にアクセスできる

O 信頼できる第三者機関で

O 全ての認証を集中化できる

O 相互認証ができるしくみ

O サーバー/クライアントどちらも相互に正当かどうか確認できる

4 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 5: Clrh55_LT_kamebuchi_public

構成要素:3つのA

Authentication 認証

Authorization 認可

Auditing 監査

身元確認 ID/Password 生体認証

許可/拒否 ACL

認証ログ アクセスログ 反応型

5 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 6: Clrh55_LT_kamebuchi_public

構成要素:用語とパズル

O KDC=Key Distribution Center:鍵配布センター O 暗号化鍵・プリンシパルのデータベース

O 認証サーバー

O 暗号化されたチケット交付チケット(TGT)を発行

O チケット交付サーバー

O 要求元にチケットを発行

O プリンシパル(Principal:主) O ユーザー・サービス・ホストの一意な情報

O レルム(Realm:領域) O プリンシパルが属する領域

O 例:ユーザープリンシパル名(UPN)

O [email protected]

6

レルム ユーザー名

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 7: Clrh55_LT_kamebuchi_public

構成要素:用語とパズル

O チケット O 暗号化されたセッション毎の一意なデータ構造

O KDCが発行する

O 最終的な身元の確認と通信用の暗号化鍵の確立(短期)

O 以下の情報をまとめたもの

O 要求元プリンシパル名

O 対象のサービスプリンシパル名

O チケットの開始・終了時期

O チケットを使用するIPアドレス

O 通信用の共通鍵(セッション鍵:秘密暗号化鍵)

O チケットフラグ

O だいたい10~24時間だけ有効

O キャッシュも使える

7 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 8: Clrh55_LT_kamebuchi_public

構成要素:用語とパズル

O DNS

O レルムを管理したりKDCを検索したりいろいろ

O 時刻同期

O 前後5分ずれるとNG!!(大事!)

O ネットワーク

O UDP/88 TCP/88 TCP/749 UDP/4444 UDP/444

O NATは面倒くさい(IPアドレスみてるので)

O 要件があえば外部公開も可能

8 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 9: Clrh55_LT_kamebuchi_public

9

ざっくりまとめると

KDC

DNS

クライアント

サーバー サーバー

チケット

監査

認証 TCP/88

認可

委任

サービスの発見 レルムの管理

時刻同期

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 10: Clrh55_LT_kamebuchi_public

余談:PKIとは違うの?

O PKI(公開鍵基盤)とは別物

O PKIは、「身分を証明するための証明書を扱うための基盤」

O 身分の証明書=公開鍵

O 認証/認可/監査は別の仕組み

O 身分証明がはっきりしたほうがいい場合に利用

O S/MIME

O SSL

O PGP

O 鍵=証明書をどうやって公開/配布するかがポイント

10 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 11: Clrh55_LT_kamebuchi_public

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製品じゃね?

11 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 12: Clrh55_LT_kamebuchi_public

相互運用

O Microsoft以外でももちろんKerberos認証可能

O WebLogic Serverとか

O Firefoxとか(SPNEGO使えるはず)

O KDCもあるよ

O Macintoshも

O 相互運用はちと手間

O PAMの出来が..

O やっぱり多少の問題ある

O 規格はオープンなんだから実装がんばってね

O WS-Securityのバイナリトークンとか

12 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 13: Clrh55_LT_kamebuchi_public

活用例

OKerberosが威力を発揮するのは

O委任によるシングルサインオン

O認証情報の引き継ぎ

O WindowsでNTLMだと何がダメ?

O よくあるのがダブルホップ問題

13 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 14: Clrh55_LT_kamebuchi_public

ダブルホップとKerberos O NTLMの場合

14

Webサーバー

DBサーバー

WCF Data Services

Web 画面

クライアント(UserA)

UserA の認証情報

(1) Webへアクセス Windows統合認証(NTLM)によって UserAが認証される

UserA の認証情報

(2) WCF Data Servicesへアクセス Windows統合認証(NTLM)によって UserAが認証される

認証情報なし(Anonymous:匿名)

(3) DBへアクセス Windows統合認証(NTLM)はダブルホップ(認証情報の受け渡し/偽装)ができないため 認証情報無し=匿名ユーザーとしてアクセス ↓ DBへアクセスできない

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 15: Clrh55_LT_kamebuchi_public

ダブルホップとKerberos

15

Web サーバー

DBサーバー

WCF Data Services

Web 画面

クライアント(UserA)

UserA の認証情報

(1)Web へアクセス Windows統合認証(Kerberos)によって UserAが認証される

UserA の認証情報

(2) WCF Data Services へアクセス Windows統合認証(Kerberos)によって UserAが認証される (3) DBへアクセス

Windows統合認証(Kerberos)によってUserAが認証される ↓ DBへアクセス可 UserA の認証情報

O Kerberosの場合

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 16: Clrh55_LT_kamebuchi_public

やってみた O ただやるだけだと面白くない

O せっかくだからWindows Azure Connect で OnPremise と連携

16

Webサーバー(IIS)

Active Directory ドメインコントローラー (KDC他)

ファイルサーバー (画像置き場)

クライアント (IE)

Active Directory ドメイン

Windows Azure WebRole

Intranet

Windows Azure Windows Azure Connect

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 17: Clrh55_LT_kamebuchi_public

やってみた

17 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 18: Clrh55_LT_kamebuchi_public

やってみた

18 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 19: Clrh55_LT_kamebuchi_public

やってみた

19 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 20: Clrh55_LT_kamebuchi_public

やってみた

20 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 21: Clrh55_LT_kamebuchi_public

やってみた

21

サービスアカウントがもっているSPN(サービスプリンシパル名)

委任できるように設定

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 22: Clrh55_LT_kamebuchi_public

やってみた

22 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 23: Clrh55_LT_kamebuchi_public

やってみた

23

発行されたチケット

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 24: Clrh55_LT_kamebuchi_public

やってみた

24

ドメインコントローラーとWebRoleと しか通信してないクライアント

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 25: Clrh55_LT_kamebuchi_public

やってみた

25

LogonTypeが3は Kerberos認証

(c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 26: Clrh55_LT_kamebuchi_public

まとめ

O Kerberosはいろいろ大きめの認証基盤

O 理解は難しいが、ある程度知っていれば得られるものは大きい

O クラウド時代でも、まぁ使えないことはない

O Active Directoryをもっと活用しよう

Microsoft製品でやるなら、 Active DirectoryとKerberosで

はっぴはっぴはっぴ~

26 (c) Copyright 2011, Keiji Kamebuchi, All right reserved

Page 27: Clrh55_LT_kamebuchi_public

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

27 (c) Copyright 2011, Keiji Kamebuchi, All right reserved