Kerberos_PHP チュートリアルの概要
Kerberos の概要
Kerberos プロトコル:
Kerberos プロトコルは、主にコンピュータ ネットワークの本人認証 (Authentication) に使用され、その特徴は、ユーザーがチケット (チケット交付チケット) を取得するために認証情報を 1 回入力するだけで済むことです。この検証に基づいて)、複数のサービス、つまり SSO (シングル サインオン) にアクセスします。各クライアントとサービスの間で共有キーが確立されるため、プロトコルは非常に安全です。
条件
まず、Kerberos プロトコルの前提条件を見てみましょう:
クライアントと KDC、KDC とサービスは、プロトコルが機能する前にすでに独自の共有キーを持っており、プロトコル内のメッセージはファイアウォールを通過できないため、これらの条件はこれにより、Kerberos プロトコルの使用が組織内での使用に制限され、そのアプリケーション シナリオが X.509 PKI とは異なります。
プロセス
Kerberos プロトコルは 2 つの部分に分かれています:
1. クライアントは ID 情報を KDC に送信し、KDC はチケット認可サービスから TGT (チケット認可チケット) を取得し、クライアントと KDC の間で情報を使用します。プロトコルが開始される前に、間にキーを使用して TGT 暗号化応答がクライアントに送信されます。
現時点では、本物のクライアントのみが、クライアントと KDC の間でキーを使用して、暗号化された TGT を復号化し、TGT を取得できます。
(このプロセスは、クライアントが検証を通過するためにパスワードを KDC に直接送信するという安全でない方法を回避します)
2. クライアントは、以前に取得した TGT を使用して、他のサービスのチケットを KDC に要求し、それによって、他のサービスの ID 認証。
Kerberos プロトコルの焦点は 2 番目の部分にあり、導入は次のとおりです。
1.クライアントは、以前に取得した TGT と要求するサービス情報 (サービス名など) を KDC に送信します。KDC 内のチケット認可サービスは、クライアントを認証するために、クライアントとサービスの間でセッション キーを生成します。 。次に、KDC はセッション キーをユーザー名、ユーザー アドレス (IP)、サービス名、有効期間、タイムスタンプとともにチケットにパッケージ化し (この情報は最終的にサービスがクライアントを認証するために使用します)、サービスに送信します。ただし、Kerberos プロトコルはチケットをサービスに直接送信するのではなく、クライアント経由でサービスに転送します。そのため、2 番目のステップがあります。
2. この時点で、KDC は正しいチケットをクライアントに転送します。このチケットはサービス用であり、クライアントには表示できないため、KDC は、プロトコルがチケットの暗号化を開始する前に、KDC とサービスの間でキーを使用してチケットをクライアントに送信します。同時に、クライアントとサービスの間でシークレット (最初のステップで KDC によって作成されたセッション キー) を共有するために、KDC はクライアントとサービスの間でそのキーを使用してセッション キーを暗号化し、一緒にクライアントに返します。暗号化されたチケットを使用して。
3. チケットの配信を完了するために、クライアントは受信したばかりのチケットをサービスに転送します。クライアントは KDC とサービスの間のキーを知らないため、チケット内の情報を変更できません。同時に、クライアントは受信したセッション キーを復号化し、ユーザー名とユーザー アドレス (IP) をオーセンティケーターにパッケージ化し、セッション キーで暗号化し、サービスに送信します。
4.チケットを受信した後、サービスはチケットと KDC 間のキーを使用してチケット内の情報を復号化し、それによりセッション キー、ユーザー名、ユーザー アドレス (IP)、サービス名、有効期間を取得します。次に、セッション キーを使用してオーセンティケータを復号化し、ユーザー名とユーザー アドレス (IP) を取得し、それを前のチケットで復号化したユーザー名とユーザー アドレス (IP) と比較して、クライアントの身元を確認します。
5. サービスが結果を返した場合は、それをクライアントに返します。
kinit - Kerberos チケット認可チケットの取得とキャッシュ
kinit は、Kerberos チケット認可チケットの取得とキャッシュに使用されます。このツールは、SEAM などの他の Kerberos 実装で一般的に見られる kinit ツールと機能的に似ています。
kinit を実行する前に、ユーザーはキー配布センター (KDC) にプリンシパルとして登録されている必要があります。
SYNOPSIS
kinit [ コマンド ] <プリンシパル名> [<パスワード>]
概要
要約すると、Kerberos プロトコルは主に 2 つのことを行います
1.チケットの安全な配送。
2.セッションキーの安全なリリース。
タイムスタンプの使用と組み合わせることで、ユーザー認証のセキュリティが大幅に保証されます。また、セッションキーを使用することで、認証を通過した後にクライアントとサービスの間で受け渡されるメッセージもConfidentiality(機密性)とIntegrity(完全性)によって保証することができます。ただし、非対称鍵を使用しないため、否認防止ができず、用途も限定されます。ただし、X.509 PKI ID 認証方法よりも実装が比較的簡単です。
特定のプロセス
(注: このプロセスは対称暗号化を使用します。このプロセスは特定の Kerberos レルムで発生します。小文字の c、d、および e はクライアントによって送信されたメッセージであり、大文字の A、B、およびE、F、G、H は各サーバーから返信されたメッセージです)
まず、ユーザーはクライアント (ユーザー自身のマシン) 上のプログラムを使用してログインします。
- ユーザーはクライアントにユーザーIDとパスワードを入力します。
- クライアント プログラムは、一方向関数 (主にハッシュ) を実行して、パスワードをキーに変換します。これは、クライアント (ユーザー) の「ユーザー キー」(K_client) です。信頼された AS も、何らかの安全な手段を通じてこのキーと同じキーを取得します。
その後、クライアントが認証されます (クライアントは AS からチケット (TGT) のチケットを取得します):
- クライアントは 1 つのメッセージを AS に送信します (注: ユーザーはキー (K_client) を AS に送信せず、パスワードも送信しません):
- 「ユーザー Sunny がサービスをリクエストしたいと考えています」などのユーザー ID を含むクリア テキスト メッセージ (Sunny はユーザー ID)
- メッセージA: ユーザーキー (K_client) によって暗号化された「クライアント-TGS セッションキー」 (K_TGS-session) (セッションキーは、クライアントと TGS 間の今後の通信 (セッション) に使用されます)
- メッセージ B: TGS キー (K_TGS) で暗号化「チケット認証チケット」(TGT) (TGT には、クライアント - TGS セッション キー (K_TGS-session)、ユーザー ID、ユーザー URL、TGT 有効期間が含まれます)
次に、サービス認可 (クライアントは TGS からチケット (T) を取得します):
- クライアントは次の 2 つのメッセージを TGS に送信します:
- メッセージ c: つまり、メッセージ B (K_TGS 暗号化された TGT)、および取得したいサービスのサービス ID (注: ユーザー ID ではありません)
- メッセージ d: クライアント TGS セッション キー (K_TGS セッション) の暗号化された「認証子」 (認証子にはユーザー ID、タイムスタンプが含まれます)
- メッセージ E: サーバー キー (K_SS) で暗号化された「クライアント サーバー チケット」 (T) (T には以下が含まれます:クライアント-SSセッション鍵(K_SS-session)、ユーザーID、ユーザーURL、T有効期間)
- メッセージF: クライアント-TGSセッション鍵(K_TGS-session)暗号化された「クライアントSSセッション鍵」(K_SS_session)
最後に、サービスリクエスト(クライアントはSSからサービスを取得します):
- クライアントはSSに2つのメッセージを送信します:
- メッセージe:つまりメッセージE
- メッセージg:クライアントサーバーセッションキー(K_SS_session)暗号化された「新しい認証子」 (新しい認証子には、ユーザー ID、タイムスタンプが含まれます)
- メッセージ H: クライアント サーバー セッション キー(K_SS_session) 暗号化後の「新しいタイムスタンプ」 (新しいタイムスタンプは、クライアントによって送信されたタイムスタンプに 1 を加えたものです)
欠陥
- 単一点で失敗します。中央サーバーからの継続的な応答が必要です。 Kerberos サービスが終了すると、誰もサーバーに接続できなくなります。この欠点は、複合 Kerberos サーバーと欠陥のある認証メカニズムを使用することで補うことができます。
- Kerberos では、通信に参加しているホストのクロックが同期している必要があります。チケットには有効期間があるため、ホストの時計が Kerberos サーバーの時計と同期していない場合、認証は失敗します。デフォルト設定では、クロック時刻の差が 10 分以内であることが必要です。実際には、ホスト クロックの同期を維持するために Network Time Protocol デーモンがよく使用されます。
- 管理プロトコルは標準化されておらず、サーバー実装ツールにはいくつかの違いがあります。 RFC 3244 では、パスワードの変更について説明しています。
- すべてのユーザーが使用するキーは中央サーバーに保存されるため、サーバーのセキュリティが侵害されると、すべてのユーザーのキーが侵害されます。
- 危険なクライアントはユーザーのパスワードを侵害します。
参考:
http://idior.cnblogs.com/archive/2006/03/20/354027.html
http://bey2nd.blog.163.com/blog/static/12063183120141275250466/
http:/ /docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/kinit.html 。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

OnLeaks は、X (旧 Twitter) のフォロワーから 4,000 ドル以上を集めようとして失敗した数日後、Android Headlines と提携して Galaxy S25 Ultra のファーストルックを提供しました。コンテキストとして、h の下に埋め込まれたレンダリング イメージ

TCLは、2つの新しいスマートフォンの発表に加えて、NXTPAPER 14と呼ばれる新しいAndroidタブレットも発表しました。その巨大な画面サイズはセールスポイントの1つです。 NXTPAPER 14 は、TCL の代表的なブランドであるマット LCD パネルのバージョン 3.0 を搭載しています。

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Vivo Y300 Pro は完全に公開されたばかりで、大容量バッテリーを備えた最もスリムなミッドレンジ Android スマートフォンの 1 つです。正確に言うと、このスマートフォンの厚さはわずか 7.69 mm ですが、6,500 mAh のバッテリーを搭載しています。これは最近発売されたものと同じ容量です

サムスンは、ファンエディション(FE)スマートフォンシリーズをいつアップデートするかについて、まだ何のヒントも提供していない。現時点では、Galaxy S23 FE は 2023 年 10 月初めに発表された同社の最新版のままです。

Redmi Note 14 Pro Plusは、昨年のRedmi Note 13 Pro Plus(Amazonで現在375ドル)の直接の後継者として正式に発表されました。予想通り、Redmi Note 14 Pro Plusは、Redmi Note 14およびRedmi Note 14 Proと並んでRedmi Note 14シリーズをリードします。李

Motorola は今年数え切れないほどのデバイスをリリースしましたが、そのうち折りたたみ式デバイスは 2 つだけです。ちなみに、世界の大部分ではこのペアが Razr 50 および Razr 50 Ultra として受け入れられていますが、Motorola は北米では Razr 2024 および Razr 2 として提供しています。
