世界は単純にHTTPSプロトコル、HTTPプロトコルだけではありません。 - 特定の友人はほとんど知っています

ある日、私は、先行指標を受けた:X.509は、関連する原則を学びます。

多くの可能な限りの開発者と私は言葉X.509は非常に奇妙だと思うが、実際に私たちは、多くの場合、それに対処するには、典型的な「毎日、私は知らない」事を。

X.509だからそれは何ですか?
X.509は、デジタル証明書フォーマット規格
現在広く使用され使用さHTTPSのSSL証明書に依存しているX.509形式の使用です。これは、私たちがサイトを開くたびに、それが使用されますhttpsで始まることを意味します。

フォーマット標準

、文書型宣言の冒頭:簡単に言えば、標準フォーマットは、HTMLファイルの仕様を書いている時点のようなものですhtmlルートタグとして、メタ情報headラベル、上のページコンテンツbodyようにラベル、および。
実際には、これが書かれた形式のHTMLファイルをブラウザに合わせて、それを解析することができないので、もちろん、この例では、それほど適切ではありません。
より適切な例JSONファイル形式である必要があり、ルールに違反した場合、それは正しく解析できない、ように、配列は括弧で囲む必要があり、中括弧を使用する必要がありネスティング関係は、文字列は二重引用符で囲む必要があります提供し、 。

この規格の具体的な内容は、それがどのようなものですか?
定義されたX.509形式は次のとおりです。

版本号
序列号
签名算法
颁发者
证书有效期
  开始日期
  终止日期
主题
主题公钥信息
  公钥算法
  主体公钥
颁发者唯一身份信息(可选)
主题唯一身份信息(可选)
扩展信息(可选)
签名

この図は、サイトのX.509証明書の情報であり、

certificate.jpg

デジタル証明書

だから、デジタル証明書とは何でしょうか?
簡単に言えば、デジタル証明書は、通信当事者の本当の身元を証明するために、「×××」を作成するための暗号化アルゴリズムを介してネットワークです。
この製造プロセスも非常に興味深いです「×××」、統一された組織によって発行されていませんが、問題の層。
保持、このような信頼された証明書は、それはBに証明書を発行し、その後C証明書にBも信頼できるあり、また信頼性の高いです。
証明書は、「端末証明書」Cさんのための「中間証明書」Bは、「ルート証明書」である「木」のデータ構造のような全体的な構造。
そして、A、Bは、CA(認証局)と呼ばれる、認証局と呼ばれています。

 根证书
   |
中介证书
   |
终端证书
  • ルート証明書:通常、プリインストールされたオペレーティングシステムやブラウザ、大企業や政府の共同制作によって、出発点として、証明書チェーンを(ユーザーは、独自に生成することができますが、セキュリティ上のリスクが存在します)。
  • 調停証明書:CAは、両方の料金も無料、無料の端末証明書で一般的に期間が1年で使用し、端末に証明書を発行する責任がある端末証明書を仲介する証明書を保持しています。
  • ターミナル証明書:一般的には証明書の端末は、我々は通常、特定のサイトのサービスのために、ブラウザに証明書を見ることができるということです。このような証明書は、新しい証明書として発行されません。

各証明書は、それによって信頼の連鎖を形成する、バックアップツリーのルート証明書に沿って追跡することができます。
例えば、この図では、サイトの証明書信頼チェーン情報以下です。

証明書chain.jpg

X.509コンテンツが完成について共有することになり。

しかし、この証明書は、それを飛ぶ探求し続けるために私を駆動し、彼の心に疑問?
認証局*** ***偽のウェブサイトの証明書があれば、それ?

セキュリティ

証明書は、情報が盗まれた、とコピーされないことを保証するために、非対称暗号化メカニズムを使用しています。

暗号化

ここで少し説明非対称秘密は、私たちは、暗号化について話しましょう。

情報暗号化された需要が、実際に古代の×××は、重要な情報を暗号化するために様々な技術を使用し始めて、そこにあったが、暗号化セキュリティ暗号化のレベルは、古代の方法に基づいています。

誰かが暗号化の方法を知っている言い換えれば、それは暗号文の情報を復号化することができます。

現代の暗号化セキュリティは、暗号化(アルゴリズム)がある限り、キーが盗まれていないか、または漏洩した情報が安全であるとして、オープンであることを意味し、セキュリティキー、です。

が暗号化アルゴリズムの種々存在するが、大まかに二つのカテゴリーに分けることができる:対称暗号化と非対称暗号化。

暗号化と復号化の両方で対称暗号化通信は、同じキーが、非対称暗号は、暗号化と復号化に異なる鍵を使用する必要があります。

そして、証明書発行プロセスに戻り、多くのベンダーがクラウドサービス機能要求にデジタル証明書を提供し、それは次のことを行う、アプリケーションの受領後CA、CAなどのアプリケーションを起動します。

  1. 公開鍵と秘密鍵のペアを生成するための暗号化アルゴリズムを使用します。一般的には、秘密鍵に基づいて.keyファイルの拡張子のため、中に格納される公開鍵.csrで終わるファイル。
  2. .csr有効期限など、ファイル内の発行者をいくつかの情報を追加し、証明書に署名するための秘密鍵を持ちます。これは、証明書のX.509準拠のフォーマットを生成します。
  3. ユーザーは、Webサーバ(負荷分散やその他の機器または)上で証明書の展開を受信した後。

SSL証明書

ここでのSSL証明書の例のための様々なフォーマットに沿って、X.509証明書、。

一般的なシナリオでは、次のようになります:

  1. ブラウザなどのクライアントが、自分の身元を証明するために、サーバ、サーバに要求を送信し、証明書を相手方に送信されます。
  2. ブラウザは、独自のルート証明書の公開鍵証明書のリストがそれを解読するのに対応して、デジタル署名の証明書のセクションを読み込みます。復号化が成功し、署名内の証明書のハッシュ値とハッシュ値が一致した場合、一貫した、実績のあるサイトは、証明書が実際にするか、リスクの警告を与える発行したルートCA証明書で提供されます。
  3. サーバに送信された証明書の公開鍵と乱数の暗号化対称暗号化アルゴリズムを使用することにより検証した後、サーバーは、キーと暗号化アルゴリズムを取得する秘密鍵で復号化されます。
  4. ブラウザとのその後の通信のサーバーは、新しい暗号化アルゴリズムと対称ランダム暗号鍵情報を使用します。

プロセス全体での証明書が重要な役割を果たし、それが盗難や通信内容を取得するための偽造方法によってできないのですか?

  • 盗難。まず、当然のことながら、それが開示されているように証明書は、盗まれたことができますが、唯一の取得証明書とサーバーが通信、その他の情報を盗むために使用することはできません、サーバ証明書の秘密鍵が格納されているように、任意にもっとすることはできませんこれは、盗まれました。
  • 偽造。誰かがサイト証明書を偽造した場合、ブラウザは、それが失敗した情報を確認するために、CA証明書を照会します。

だから、絶対に安全ですか?確かに〜

DNSハイジャックの場合、まだ解決策ではありません。例えば、ブラウザが偽の証明書にサイトにアクセスした後、彼らは偽のウェブサイトを訪問するとき、証明書によって検証することが可能であるCA証明書かどうかを確認します。***このように両者の間の仲介者としてデータを取得して転送することができます。

概要

SSL証明書は、世代に関係し、3回の暗号化と復号化のプロセスを使用します。

  1. 復号化するための公開鍵を使用した場合、証明書が生成された秘密鍵署名検証証明書。
  2. 証明書を解読するために、サーバの秘密鍵を使って暗号化された公開鍵証明書を使用して、有効であることを確認した後。
  3. 双方は、データの暗号化および復号化のため、新たに生成されたランダムキーを使用します。

それは構造とHTTPSとX.509との関係を示しています。

    HTTPS
  /       \
HTTP    TLS/SSL
        /      \
   通信内容    确认身份
   对称加密    SSL证书 —— X.509 格式,非对称加密