ホームページ > 記事 > ウェブフロントエンド > httpsの時代なのに、まだ彼のことを何も知らないのですか?
この記事の著者: Qie Guo、フロントエンド開発の分野に焦点を当てています。その他の記事については、Zhihu コラム「フロントエンドの小さなこと」に注目してください
今、すべての有名な Web サイトを開いてください。アドレスバーに小さな緑色の鍵が追加されていることに気づきましたか?
そう、これはhttpsです、httpsの時代です。
ところで、httpsって分かりますか?
簡単に言うと、https は SSL/TLS でラップされた http であり、安全な http です。安全とは何ですか?安全なネットワーク通信環境は、次の 3 つの問題を解決する必要があります:
通信内容の機密性
通信双方の正体
通信内容の完全性
そして、https はこれら 3 つの主要な問題を解決します。そして誕生したもの(正確にはsslのはずですが)、これら3つの問題の解決策をそれぞれ見ていきましょう。
通信内容の機密性は暗号化によって実現する必要があります。私たちのインターネット環境は非常に透過的であり、通信は受信者に到達するまでに多くの中継を通過する必要があります。この状況は、授業中に最前列のシャオホンにメモを渡すのに似ています。メモには、「今夜真夜中に遊び場で会いましょう」と直接書くのではなく、巧みに「同じ場所で会いましょう」と書きます。 」この古い場所について知っているのはあなたとシャオホンだけなので、シャオミンとシャオリがメモを見ても、古い場所が図書館なのか英語コーナーなのかはわかりません。これは暗号化されており、古い場所はいわゆるです。鍵。
もちろん、この例はあまり正確ではありません。簡単に言うと、暗号化と復号化は関数であり、キーはこの関数のパラメータです。たとえば、単純な暗号化関数 f(x)=x+b を定義します。x は入力平文、b はキーです。復号化関数は暗号化関数の逆関数、つまり g(x) です。 =x-b. bが分からない場合は、暗号文を見ても実際の内容を推測することができないため、暗号化が成立します。この種の暗号化と復号化では同じキーが使用され、対称暗号化と呼ばれます。
しかし、ここでパラメータ b はどのようにネゴシエートされるのでしょうか?あなたと小紅は 1 ~ 2 か月前に B 値の予約を取ることができますが、実際のネットワーク環境では、すべての通信が小明と小利のメモの受け渡しに依存している場合、あなたと小紅が直接通信することはできません。 、どうしたらいいでしょうか?ここでは、非対称暗号化アルゴリズムを使用する必要があります。このアルゴリズムには、公開鍵と秘密鍵のペアがあり、公開鍵は誰でも取得できる鍵であり、秘密鍵は
サービスサーバーによって秘密に保持される鍵です。 。非対称暗号アルゴリズムでは、公開鍵で暗号化されたコンテンツは秘密鍵でのみ復号でき、秘密鍵で暗号化されたコンテンツは公開鍵でのみ復号できます。そのため、Xiaohong の公開キーを使用してメモを暗号化すると、Xiaoming や Xiaoli など、メモの配信を手伝ってくれる他の人は、秘密キーを持っている Xiaohong だけがあなたの情報を読み取ることができます。
対称暗号化アルゴリズムは暗号化と復号化に同じ秘密鍵を使用しますが、非対称暗号化アルゴリズムでは暗号化と復号化に 2 つの秘密鍵が必要です。その 2 つの秘密鍵は公開鍵 (公開鍵、略して公開鍵) です。 (略して秘密鍵)。非対称暗号化アルゴリズムの原理に興味があるかもしれませんが、ここではアルゴリズムについては説明しませんので、興味のある学生は自分で調べてください。Xiaohong が秘密鍵で暗号化すると、クラスの全員が公開鍵を知っており、公開鍵で秘密鍵を復号化できるため、全員が Xiaohong の応答メッセージを復号化できることになります。賢明な方なら、解決策を思いついたはずです:
非対称暗号化アルゴリズムを使用して Xiaohong への対称キーを暗号化し、Xiaohong は彼女の秘密キーを使用して対称キーを読み取り、あなたはこの対称キーを対称暗号化に使用します。 , そうすれば楽しいデートができるでしょう。
もちろん、https も同じことを行います。
通信相手の正体暗号化後、通信プロセスは完璧に見えますか?ちょっと待ってください、Xiaohong の公開鍵はどのようにして世界に知られるのでしょうか?
ネットワーク環境におけるすべての情報のやりとりはメモの受け渡しによって行われることを知っておく必要があり、Xiaohong の公開鍵も例外ではなく、Xiaoming の手に渡ったときに交換されたらどうなるでしょうか。あなたの手元にあるXiaohong公開鍵が本物のXiaohong公開鍵であることを確認するにはどうすればよいでしょうか?クラスの狂気の男女についてのメモがさまざまな方法で交換されているのを見て、芸能委員のフェン姉妹が名乗り出ることにしました。フェン姉妹は、自分の身元を証明するために、すべての暗号化通信に証明書を持ち歩く方法を考え出しました。この証明書は、クラスの独身者全員のためにフェン姉妹が特別に作成したもので、証明書には公開キーに加えて、学生番号などのさまざまな情報も含まれています。 、名前、さらには星座、身長、寸法まで。証明書には大きな識別シールが押されていますが、これはフェン姉妹独自のシールであり、証明書の情報の信頼性がフェン姉妹によって保証されていることを意味します。実質シングル。
この情報により、相手がXiaohongかRuhuaかを知ることができます。これが証明書の仕組みです。
証明書に記載されているフェン姉妹の公印が偽造されたのではないかと疑われるのは明らかですが、その疑いは正当です。したがって、証明書の公印も非対称暗号化されており、暗号化方法は上記とは逆であり、馮姉妹の秘密鍵で暗号化され、馮姉妹の公開鍵で復号化されるため、証明書の信頼性が保証されます。確認されました。この公式シールは証明書のデジタル署名です。具体的には、まずハッシュ アルゴリズムを使用して証明書の ダイジェスト を抽出し、次にそのダイジェストを暗号化するプロセスです。さらに、証明書を持って Feng シスターに直接行くこともでき、Feng シスターが証明書の有効性を確認するお手伝いをします。 (証明書には期限があり、本物の証明書でも期限切れになる可能性があるので注意が必要です)
このメカニズムはかなり完成されているように見えますが、Feng 姉妹が保証しているのは、セキュリティメカニズムを構築するためにすべてを疑う必要があるということです。信頼できる。
しかし、フェン姉妹は本当にフェン姉妹なのでしょうか? ? ?
つまり、フェン姉妹自身も証明書によって保証されなければなりません。フェン姉妹の証明書は校長によって発行され、校長の証明書は校長によって発行されます...この連鎖は最も長く続きます。 https システムにある権威機関。いわゆるルート CA です。根は疑いようのない権威であり、自分自身に塩をもたらし、自分が誰であるかを証明します。 https 証明書システムでは、ルート証明書がオペレーティング システム/ブラウザーに付属しており、これらの組織によって認証された証明書を信頼して、Fengjie のレベルまで階層ごとに取得できます。
さらに、証明書は実際に取得するのが非常に簡単なので、地下鉄の入り口で1枚あたり10元かかり、ハーバードとスタンフォードの両方で10元かかります!したがって、有名な 12306 のように、ルート CA 組織にまったくアクセスせずに独自の証明書を作成する企業もあります。独自の証明書を作成し、ユーザーがダウンロードしてブラウザにインポートできるようにオンラインに公開することもできます。ただし、あなたにはフェン姉妹の影響力がないため、誰も信じません。もちろん、フェン姉妹さえ信じない人もいます。 ...
のパスワードが追加され、フェン姉妹の公式シールが押されました この仕組みは完璧ですか?
いいえ、考えてみてください。あなたに片思いしているシャオミンは、あなたがシャオホンにメモを送っているのを見たら、間違いなく不快に思うでしょう。たとえ理解できなくても、秘密のテキストを変更することはできます。当初、あなたはシャオホンに真夜中に運動場で会うように頼むつもりでしたが、シャオミンが暗号文の前半を削除し、解読した結果、たまたま「運動場で会いましょう」となったので、シャオホンは授業が終わるとすぐに運動場に走って行きました。 、でも、シャワーを浴びるために走って寮に戻りました。 。 。その後、シャオホンはシャオミンと一緒に逃げました~~
通信コンテンツの改ざんというシナリオについては誰もが深く理解していると思いますが、いくつかのサイトにアクセスすると、オペレーターからの広告が理由もなく表示されます。追加した! !したがって、コンテンツの整合性も保証する必要があります。これは比較的簡単です。最初にハッシュ アルゴリズムを使用してコンテンツの概要を抽出し、次にその概要を暗号化してデジタル署名を検証することで、通信内容の完全性。
上記は、https で使用されるテクノロジーの簡略化されたバージョンです。http 通信プロセスは次のとおりです:
一般的な手順: クライアントは、Client Hello メッセージを送信して SSL 通信を開始します。メッセージには、SSL バージョン、利用可能なアルゴリズムのリスト、キーの長さなどが含まれます。if
icate メッセージを送信します。これは、証明書をクライアントに送信することを意味します。上記のように、渡された証明書と通信内容が改ざんされていないことを保証するために、ステップ 3 と 6 でダイジェスト アルゴリズムと署名アルゴリズムが使用されます。このプロセスから、https の核心は暗号化、特に鍵情報の送信に何度も使用される非対称暗号化アルゴリズムにあることがわかります。
暗号化を理解し、ネットワークの透明性を認識し、すべてに懐疑的になると、https システムを理解するのが容易になります。
結論最近、http関連のことを体系的にレビューしています。この記事ではまずhttpsの基本原則を紹介します。記事内に不適切な点があれば、ご容赦ください。それらを修正することができます!後ほど、実際のアプリケーション、静的サーバーの構成などを紹介します~付録
その答えは証明書認証を通じてです。
以上がhttpsの時代なのに、まだ彼のことを何も知らないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。