セキュリティと暗号化の基礎に関するLikbez

暗号化





暗号化の3つの柱は、ハッシュ、対称暗号化、非対称暗号化(公開鍵付き)です。 暗号化アルゴリズムは、大量の計算の複雑さに基づいていますが、さらに詳しくは、「スタッフィング」に特に興味がある場合は、教育プログラムと呼ばれる一般的なレビューではなく読む価値があります。 また、不必要なトラブルのない、つまり表面的な簡単な要約も含まれています。



ハッシュは、ハッシュ(ハッシュ関数の結果)によって取得されたデータを復元することができないため、関数、一方向関数です。 情報は入力され、出力は指紋、つまり固定長の文字列です。 同じ結果をもたらす入力を見つけることは困難な作業です。 したがって、結果-ディスクイメージ、ドキュメントなどの検証済みハッシュがある場合、結果のファイルのハッシュを計算して比較できます-それらが一致する場合、これは同じです。 パスワードは多くの場合同じ方法で処理されます-受信したパスワードのハッシュが既存のパスワード(たとえば/ etc / shadowなど)と一致すれば、検証は成功しました。



対称暗号化-対称鍵がそれぞれ使用される暗号化。 これは、何かのアーカイブを1つのキーで暗号化した場合、その逆の操作を行う必要があることを示唆しています。 また、秘密の知識をチェックするときにも使用できます。この秘密またはそのハッシュで一部の情報を暗号化し、結果を2番目の側に転送します。 秘密を知っているはずの2番目の側は、データを解読し、補完し、暗号化し、送り返します。 回答を受け取った最初の側は、再びそれを解読し、2番目の側がデータを正しく変更したかどうかを調べます。 2番目または1番目のサイドパームが間違ったシークレットから外れると、プロセスが失敗することは明らかです。 これは、Kerberosプロトコルで発生するプロセスの非常に一般的な説明でした。



非対称暗号化-2つのキーを使用する暗号化。通常はプライベート(秘密)とパブリック(誰もが知っている)と呼ばれます。 キーペアの1つで何かを暗号化すると、2番目のキーペアのみを復号化できます。 したがって、秘密鍵に関する知識の確認は非常に簡単です。特定の情報を公開鍵で暗号化し、秘密鍵を知っていれば簡単に読むことができます。 非対称キーを使用した暗号化では、PGPやPKIなどの多くのシステムが構築されます。 各ユーザーは、https://の形式のアドレスにアクセスするときに、このタイプの暗号化も使用しました。



認証と承認





認証は、アイデンティティを確立するプロセスです。 Habrでパスワードを入力すると、認証されます。 同時に、あなたはいかなる権利も受け取りません。



承認は、システムでアクションを実行するユーザーの権限がチェックされるプロセスです。 たとえば、デフォルトでは、個人のブログに書き込む権利がありますが、カルマが少ない場合、システムは集団ブログにhabratopikを公開することを許可しません。 ここでは、カルマの量に応じてアクションを実行するための承認が実行されます。ファイルシステムでは、ACL、グループメンバーシップなどを通じてアクションを実行する権利が与えられます。



もう一度- 認証プロセスを通じて、何かを実行する権利を取得することは不可能であり、承認プロセスはこれに関与し、認証はパーソナリティのみを確立します。



認証、物事の暗号化面について少し





認証は、多くの場合、秘密の知識のテストに基づいています。 最も簡単な方法は、パスワードを純粋な形式(!)で取得し、データベースに保存されているパスワードと比較することです。 オプションがあります-パスワードハッシュを確認します。これにより、サーバーはパスワードを知らず、そのハッシュを保存できます。 しかし、注意してください-ネットワーク内のパスワードは明確です! 2番目-パスワードの送信先がわからない場合、サーバーはダミーである可能性があります。 回避策はSSL / TLSと組み合わせてのみ使用することですが、この場合、サーバーには通常ではなく、信頼できるセンターによって発行された有効な期限切れのない証明書が必要です。



2番目のオプション-サーバーは秘密を知っている、あなたは知っている-対称暗号化の段落で説明されている方法を使用します。 これは、保存されたハッシュと比較するよりも優れています-パスワードはネットワーク全体で実行されず、サーバーもあなたの秘密を受信しません-サーバーと相互認証を行います。 この方法は非常に深刻なプロトコルに成長しました-Kerberosに1つの注意事項があります-ネットワーク上の専用サーバーのみがパスワードを知っています。 KerberosはMicrosoft Active Directoryで使用されています。例として、最も有名な製品として引用しています。結局のところ、教育プログラムがあります。



3番目のオプションである複雑なPKI。 彼の説明は教育プログラムの枠組みを超えています;興味深いことに、自分で読んでください。 基本的にKerberosに似ています-センターがありますが、非対称暗号化に基づいています。



Kerberos





アルゴリズムは、知覚を改善するために、いくつかの軽視で説明されています。 一般的な情報ではなく正確な職務記述書が必要な場合は、より深刻な文献を読むことをお勧めします



毎日、企業部門の従業員は、典型的な暗号化思想-Kerberosプロトコルを積極的に使用しています。これは、Microsoftソリューションに基づいて構築された企業ネットワークの広大な広がりを耕します。なぜなら、彼は肩にサービス(IMAP、SMTP、ファイルアクセス) 。



Kerberosプロトコルは、ハッシュ関数と対称暗号を使用した認証プロトコルです。 驚いたことに、Kerberosは「独自のものであり、何とでも互換性がなく、仕様のために魂を与えてくれる」という願望で、Microsoftのもう1つの製品ではありません。大学のキャンパスネットワークでの数年間。



対称暗号の説明を読み直してください。最後に例があります。 それで、その段落で提案された解決策の欠点は何ですか? そして、パスワードはネットワーク上の各サーバーに配置する必要があり、各サービスでさえパスワード、暗号化されていないパスワードにアクセスする必要があり、これらのパスワードも各サーバーに入力する必要があります。 少し漏れがあります。



Kerberosプロトコルでは、個別のサーバーがパスワードの保存用に割り当てられます-キー配布センター(キー配布サーバー)、プロセスの各参加者はユーザーとサービスの両方にキーを持っています。 ユーザーは暗号化アルゴリズムに必要な文字数を思い出せないため、ハッシュからパスワードからキーが取得されます。 ハッシュは常に固定長の文字列を返します。これは対称キーを使用した暗号化アルゴリズムに適しています。



ユーザーがHTTPサーバー(そこの企業ポータルなど)にアクセスする必要がある場合、HTTPサーバーにアクセスするためのキーを提供するリクエストでKDCにアクセスします(ライブラリがアクセスしていることは明らかです)。 KDCにはユーザーキーとサーバーキーがあります



KDCは、ランダムな対称キーを生成し、チケットと呼ばれるかなり複雑なデザインを作成します。これは、図で見るとわかりやすいです。







マトリョーシカはありますが、理解するのは非常に簡単です。 回答を受け取ったユーザーは、キーで自分自身を復号化し、生成されたキーとサーバーキーで暗号化されたパケットを受け取ります。 そのため、ユーザーはすでにこのパケットをHTTPサーバーに送信し、HTTPサーバーはこれを解読し、同じ生成されたキーを受け取ります。



現在、両方に共通のキーがあります。 そして今、あなたはお互いを認証することができます、方法はすでに説明されています-ユーザー名、IPアドレス、KDCから受信した時間、生成されたキーを暗号化し、サーバーに送信します。 サーバーは復号化され、予想されるユーザー名を受信すると、Pupkinはそれを認識します。 サーバーの番は自己紹介です。受信時間に1(単位)を追加し、すべてを暗号化して、ユーザーにパケットを送信します。 受信したパケットで、復号化の後に、ユーザーが送信したものと同じタイムスタンプが見つかったが、1つ増えた場合、サーバーは本物と認識されることは明らかです。



しかし、私は無駄ではない時間に言及しました。 アクセスは一定の時間(多くの場合10時間)許可され、時間はチケットにスタンプされ、有効期限が切れるとチケットは期限切れと見なされます-サーバーはそのようなチケットを受け入れなくなりますが、致命的ではありません-新しいチケットを取得します。 KDCを使用してPCの時間が5分以上異なる場合、Kerberosプロトコルはプロセスの参加者からの同期時間を必要とするため、チケットはネットワーク上のすべてのマシンで同時に期限切れになり、expiredを使用することはできません。どこからでもアクセスできるチケット。



したがって、チケットは10時間有効で、サーバーに入るためのパスワードは必要ありません。 しかし、ネットワーク上の各サーバーにパスワードを入力するのは非常に面倒です。特に、誰もパスワードを入力していないことに気付いているかもしれません。Windowsログインで一度パスワードを入力すると、共有ネットワークフォルダーにアクセスするためのパスワードを入力しなくなります。 そして、チケットごとにチケットを入手できるという事実からすべて! 同様のデザインはTGTと呼ばれます-チケットを受け取るためのチケットです。 ここではすべてが示されているように、Pupkin Pupkinを認識するチケットを発行するネットワークサービス(TGS-チケット許可サービス)にアクセスするためのチケットを取得します。 PupkinはPupkinなので、Pupkinがさまざまなネットワークサーバーにアクセスするためのチケットを彼に渡すことができます。



したがって、TGTの過程で、パスワードを再入力せずにネットワークサービスにアクセスするためのチケットを受け取ることができます。 便利に働きますよね?



Kerberosは、使用する権利があるかどうかにかかわらず、ネットワークサービスへのアクセス用のチケットを発行することに注意してください。認証プロトコルは重要ではありません。身元を確認するのはユーザー次第であり、まったく異なるメカニズムが権利を処理します。



PS Kerberosは他のOSでも機能します。 Windowsは、その普及率が高く、その結果、日常生活での可視性が高いため、例として役立ちます。



PPSコメントには、さらに詳細に学習することに興味がある場合、いくつかの側面のより詳細なプレゼンテーションへのリンクがあります-読んでください。



All Articles