ホームページ  >  記事  >  ウェブフロントエンド  >  https 時代が到来しましたが、まだ何も知りませんか?

https 時代が到来しましたが、まだ何も知りませんか?

阿神
阿神オリジナル
2017-01-23 15:22:091186ブラウズ

主要な有名な Web サイトを開くと、アドレス バーに小さな緑色の鍵が追加されていることにお気づきでしょうか?

https 時代が到来しましたが、まだ何も知りませんか?

そう、これはhttpsです、httpsの時代です。

ところで、httpsって分かりますか?

簡単に言うと、https は SSL/TLS でラップされた http であり、安全な http です。安全とは何ですか?安全なネットワーク通信環境には、次の 3 つの問題を解決する必要があります:

1. 通信内容の機密性

2. 通信内容の完全性

そして、https はこれら 3 つの主要な問題を解決するために生まれました。 (正確には、SSL のはずです) これら 3 つの問題の解決策をそれぞれ見てみましょう。

通信内容の機密性

通信内容の機密性は暗号化によって達成される必要があります。私たちのインターネット環境は非常に透過的であり、通信は受信者に到達するまでに多くの中継を通過する必要があります。この状況は、授業中に最前列のシャオホンにメモを渡すのに似ています。メモには、「今夜真夜中に遊び場で会いましょう」と直接書くのではなく、巧みに「同じ場所で会いましょう」と書きます。 」この古い場所について知っているのはあなたとシャオホンだけなので、シャオミンとシャオリがメモを見ても、古い場所が図書館なのか英語コーナーなのかはわかりません。これは暗号化されており、古い場所はいわゆるです。鍵。

もちろん、この例はあまり正確ではありません。簡単に言うと、暗号化と復号化は関数であり、キーはこの関数のパラメーターです。たとえば、単純な暗号化関数 f(x)=x+b を定義します。x は入力平文、b はキーです。復号化関数は暗号化関数の逆関数、つまり g(x) です。 =x-b. bが分からない場合は、暗号文を見ても実際の内容を推測することができないため、暗号化が成立します。この種の暗号化と復号化では同じキーが使用されます。これは対称暗号化と呼ばれます。ただし、ここでのパラメータ b はどのようにネゴシエートされるのでしょうか。

あなたとXiaohongは1か月の前後に予約を取ることができますが、実際のネットワーク環境では、すべての通信がXiaomingとXiaoliを介して行われる場合、あなたとXiaohongが直接通信することはできません。メモ、それを回避するにはどうすればよいですか?ここでは、非対称暗号化アルゴリズムを使用する必要があります。このアルゴリズムには、公開キーと秘密キーのペアがあり、公開キーは誰もが取得できるキーであり、秘密キーはサーバーが秘密に保持するキーです。非対称暗号アルゴリズムでは、公開鍵で暗号化されたコンテンツは秘密鍵でのみ復号でき、秘密鍵で暗号化されたコンテンツは公開鍵でのみ復号できます。そのため、Xiaohong の公開キーを使用してメモを暗号化すると、Xiaoming や Xiaoli など、メモの配信を手伝ってくれる他の人は、秘密キーを持っている Xiaohong だけがあなたの情報を読み取ることができます。


対称暗号化アルゴリズムは暗号化と復号化に同じ秘密鍵を使用しますが、非対称暗号化アルゴリズムでは暗号化と復号化に 2 つの秘密鍵が必要です。その 2 つの秘密鍵は公開鍵 (略して公開鍵) です。キー、秘密キーと呼ばれます)。非対称暗号化アルゴリズムの原理に興味があるかもしれませんが、ここではアルゴリズムの詳細については説明しませんので、興味のある学生は自分で検索してください。

それでは、Xiaohong もあなたへの応答を暗号化したい場合はどうすればよいでしょうか?

Xiaohong が秘密鍵で暗号化すると、クラスの全員が公開鍵を知っており、公開鍵で秘密鍵を復号化できるため、全員が Xiaohong の応答メッセージを復号化できることになります。賢明な方であれば、解決策を思いついたはずです。非対称暗号化アルゴリズムを使用して Xiaohong への対称キーを暗号化し、Xiaohong は秘密キーを使用して対称キーを読み取り、次にこの対称キーを使用して対称暗号化を実行します。楽しいデートができますよ。

もちろん、https も同じことを行います。

通信相手の正体

暗号化後の通信プロセスは完璧なようですが?ちょっと待ってください、Xiaohong の公開鍵はどのようにして世界に知られるのでしょうか? ネットワーク環境におけるすべての情報のやりとりはメモの受け渡しによって行われることを知っておく必要があり、Xiaohong の公開鍵も例外ではなく、Xiaoming の手に渡ったときに交換されたらどうなるでしょうか。あなたの手元にあるXiaohong公開鍵が本物のXiaohong公開鍵であることを確認するにはどうすればよいでしょうか?クラスの狂気の男女についてのメモがさまざまな方法で交換されているのを見て、芸能委員のフェン姉妹が名乗り出ることにしました。フェン姉妹は、自分の身元を証明するために、すべての暗号化通信に証明書を持ち歩く方法を考え出しました。この証明書は、クラスの独身者全員のためにフェン姉妹が特別に作成したもので、証明書には公開キーに加えて、学生番号などのさまざまな情報も含まれています。 、名前、さらには星座、身長、寸法まで。証明書には大きな識別シールが押されていますが、これはフェン姉妹独自のシールであり、証明書に記載されている情報の信頼性がフェン姉妹によって保証されていることを意味します。実質シングル。

この情報により、相手がXiaohongかRuhuaかを知ることができます。これが証明書の仕組みです。

明らかに、証明書に記載されているフェン姉妹の公印が偽造されたのではないかと疑うでしょうが、その疑いは正当です。したがって、証明書の公印も非対称暗号化されており、暗号化方法は上記とは逆であり、馮姉妹の秘密鍵で暗号化され、馮姉妹の公開鍵で復号化されるため、証明書の信頼性が保証されます。検証されました。この公印は、証明書のデジタル署名です。具体的には、ハッシュ アルゴリズムを使用して証明書のダイジェストを抽出し、そのダイジェストを暗号化する処理です。さらに、証明書を持って Feng シスターに直接行くこともでき、Feng シスターが証明書の有効性を確認するお手伝いをします。 (証明書には期限があり、本物の証明書でも期限切れになる可能性があるので注意が必要です)

このメカニズムはかなり完成されているように見えますが、Feng 姉妹が保証しているのは、セキュリティメカニズムを構築するためにすべてを疑う必要があるということです。信頼できる。

しかし、フェン姉妹は本当にフェン姉妹なのでしょうか? ? ?

https 時代が到来しましたが、まだ何も知りませんか?

つまり、フェン姉妹自身も証明書によって保証されなければなりません。フェン姉妹の証明書は校長によって発行され、クラス担任の証明書は校長によって発行されます...この連鎖は最も権威のあるところまで続きます。 https システム内の機関、いわゆるルート CA。根は疑いようのない権威であり、自分自身に塩をもたらし、自分が誰であるかを証明します。 https 証明書システムでは、ルート証明書がオペレーティング システム/ブラウザーに付属しており、これらの組織によって認証された証明書を信頼して、Fengjie のレベルまで階層ごとに取得できます。

さらに、証明書は実際に取得するのが非常に簡単なので、地下鉄の入り口で10元かかり、ハーバードとスタンフォードの両方で10元かかります!したがって、有名な 12306 のように、ルート CA 組織にまったくアクセスせずに独自の証明書を作成する企業もあります。独自の証明書を作成し、ユーザーがダウンロードしてブラウザにインポートできるようにオンラインに公開することもできます。ただし、あなたにはフェン姉妹の影響力がないため、誰も信じません。もちろん、フェン姉妹さえ信じない人もいます。 ...

https 時代が到来しましたが、まだ何も知りませんか?

通信内容が完成しました

パスワードが追加され、フェン姉妹の公式シールも押されました、この仕組みは完璧ですか?

いいえ、考えてみてください。あなたに片思いしているシャオミンは、あなたがシャオホンにメモを送っているのを見たら、間違いなく不快に思うでしょう。たとえ理解できなくても、秘密のテキストを変更することはできます。当初、あなたはシャオホンに真夜中に運動場で会うように頼むつもりでしたが、シャオミンが暗号文の前半を削除し、解読した結果、たまたま「運動場で会いましょう」となったので、シャオホンは授業が終わるとすぐに運動場に走って行きました。 、でも、シャワーを浴びるために走って寮に戻りました。 。 。その後、シャオホンはシャオミンと一緒に逃げました~~

通信コンテンツの改ざんというシナリオについては誰もが深く理解していると思いますが、いくつかのサイトにアクセスすると、オペレーターからの広告が理由もなく表示されます。追加した! !したがって、コンテンツの整合性も保証する必要があります。これは比較的簡単です。最初にハッシュ アルゴリズムを使用してコンテンツの概要を抽出し、次にその概要を暗号化してデジタル署名を検証することで、通信内容の完全性。

上記は https で使用されるテクノロジーの簡略化されたバージョンです。http 通信プロセスは次のとおりです:

https 時代が到来しましたが、まだ何も知りませんか?


一般的な手順:

1.この記事には、SSL バージョン、利用可能なアルゴリズムのリスト、キーの長さなどが含まれています。

2. サーバーが SSL 通信をサポートしている場合、メッセージには、SSL バージョンと、ネゴシエートされた暗号化および復号化アルゴリズムである暗号化アルゴリズム構成も含まれます。

3. 次に、サーバーは証明書メッセージを送信します。つまり、証明書がクライアントに送信されます。

4. クライアントはクライアント キー交換メッセージを送信し、3 の証明書公開キーを使用してプレマスター シークレットのランダム パスワード文字列を暗号化し、その後このパスワードを通信の対称暗号化に使用します。

5. サーバーは秘密鍵を使用して復号化に成功すると、SSL 通信環境がセットアップされたことを示す応答を返します。

6. 次に、通常の http c/s 通信があります。

上記のように、渡された証明書と通信内容が改ざんされていないことを保証するために、ステップ 3 と 6 でダイジェスト アルゴリズムと署名アルゴリズムが使用されます。このプロセスから、https の核心は暗号化、特に鍵情報の送信に何度も使用される非対称暗号化アルゴリズムにあることがわかります。

暗号化を理解し、ネットワークの透明性を認識し、すべてに懐疑的になると、https システムを理解することが容易になります。


結論


最近、この記事ではhttp関連のことを体系的にレビューしていますが、httpsの基本原則についてはあまり詳しくありません。記事を修正していただければ幸いです。実際のアプリケーション、静的サーバー構成などは後ほど紹介します~



付録


https 中間者ハイジャックを回避するには?

誰かがあなたの DNS サーバーを乗っ取り、http://wwe.icbc.com をその違法な Web サイトに解決するか、プロキシ サーバーがあなたをその違法な Web サイトに誘導する場合、これは中間者攻撃です。 https がない場合、攻撃が発生します。では、https はどのようにしてそのような攻撃を回避するのでしょうか?

その答えは証明書認証を通じてです。

1. 証明書を申請する際、CAは申請するドメイン名に対して管理認証を行うため、隣のLao WangのWebサイトを利用して証明書を申請することはできません。 Lao Wang のサイトをハッキングしたとしても、証明書を申請する限り、Lao Wang はそれを知ることができます。

2. 権威ある CA によって発行されたものではない証明書を偽造した場合、ブラウザは証明書が違法であることを確認する際に警告を発します。もちろん、ユーザーは電車の切符などを入手するなどの操作を続けることができます。 。

3. 実際のサイトの証明書をダウンロードし、証明書のドメイン名が変更されていないが、公開キーが置き換えられた場合、ブラウザは証明書のデジタル署名を比較するときに、証明書が正しくないことがわかります。警察を呼んで下さい。

4. 仲介者が ICBC ホームの本物の証明書を直接使用した場合、クライアントのメッセージを受信することはできますが、暗号化を解除できないため、クライアントの要求に応答することができず、攻撃は無効になります。


証明書のデジタル署名


私はこれまでハッシュアルゴリズムとデジタル署名についてあまり知りませんでしたが、理解した後、その原理は実際には非常に単純であることがわかりました。ハッシュ アルゴリズムは大量のデータを固定長の要約に変換でき、その要約は入力に対応し、入力が変化すると要約も変化します。したがって、データにハッシュ アルゴリズムを適用して概要を取得し、その概要を比較することで、データが改ざんされているかどうかを判断できます。証明書は秘密キーを使用してダイジェストを暗号化し、クライアントは公開キーを使用してそれを復号化し、ハッシュ アルゴリズムによって計算されたダイジェストを比較することで、証明書が改ざんされているかどうかを判断できます。一方、公開鍵と秘密鍵はペアになっているため、改ざんされた証明書のダイジェストは取得できますが、署名は暗号化できないため、ダイジェストと暗号化を組み合わせることで証明書の信頼性を確保できます。ここでの秘密鍵は証明書の発行局の秘密鍵です。つまり、CA チェーン上の CA がユーザー サーバー証明書を暗号化し、上位 CA が下位 CA の証明書を暗号化し、トラスト リングを形成します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。