2009-05-13 29 views
48

Webブラウザで使用するhttpsプロトコルとSSL証明書の違いは何ですか?httpsプロトコルとSSL証明書の違い

これらは、クライアント(ブラウザ)とサーバー間の通信を暗号化するために使用されるものではありませんか。

+0

SSLポート(https)に既に実行されているWebアプリケーションがあるとします。なぜこのWebアプリケーションの証明書を取得したいのですか? – user32262

答えて

35

2液1液。

httpsは、クライアントとサーバーが安全な接続をどのようにネゴシエートするかを定義するプロトコルです。

SSL証明書は、サーバーの信頼性に同意するために使用する文書です。

45

HTTPSはHTTP(ハイパーテキスト転送プロトコル)+ SSL(Secure Socket Layer)です。 SSLを使用するプロトコルを使用するには、証明書が必要です。

SSLを使用すると、任意のプロトコルを安全に通信できます。クライアントは、(a)真ん中の人ではなく、期待しているサーバーと実際に通信していることを確認し、(b)ネットワークトラフィックを暗号化して、クライアントとサーバー以外のパーティーが通信を見ることができます。

SSL証明書には、公開鍵と証明書の発行者が含まれています。クライアントは証明書を使用してサーバーと通信できるだけでなく、証明書が公式認証局によって暗号署名されたことをクライアントが検証できます。たとえば、ブラウザがVeriSign Certificate Authorityを信頼し、VeriSignが自分のSSL証明書に署名すると、ブラウザは本質的に自分のSSL証明書を信頼します。

いくつかの良い読書がここにあります:http://en.wikipedia.org/wiki/Transport_Layer_Security

+3

"SSLを使用するプロトコルを使用するには証明書が必要です。" :いいえ! 下記のJon Weldonの非常に正確で知識豊かな答えをご覧ください。 –

+0

@ Jean-François、実際、John Weldonの答えは特に正確ではありません。まず厳密に言えば、SSL/TLS(PSK、Kerberos、さらには匿名暗号スイートを参照)を使用するための証明書は*必要ありません。第二に、厳密に言えば、「SSL証明書」のようなものはありません.SSL/TLSに使用される正しい属性/拡張子を持つX.509証明書のほとんどです。さらに、SSLの証明書はサーバーの認証に限定されず、クライアントの認証にも使用できます(この構成が使用されている場合)。 – Bruno

+0

上記のコメントをもう一度読んでください。私はいいえ、あなたは証明書を必要としないと言った! 私は彼らがX.509証明書であることに同意しますが、大多数がSSL証明書としてそれを参照するので、簡単にしてそれをそう呼んでください。一般的な答えについては、Jon Weldonのものはあなたのものほど学術的ではありませんでしたが、まだまだ良いものでした。 –

4

HTPSは新しいHTTPSです。 HTTPSはSSL Stripping/MITM(真ん中の人)に対して非常に脆弱です。

「HTTPSは、人々は、証明書のセキュリティとその周辺の生態系をあざける会談を与える原因となる傾向がある。」

問題がページを経由で配信されていないということです:アダムラングレーの(グーグル)のブログ帝国紫を引用する HTTPS。しかし、ユーザーがブラウザにホスト名を入力すると、デフォルトのスキームはHTTPになります。サーバーはユーザーをHTTPSにリダイレクトしようとするかもしれませんが、リダイレクトは安全ではありません。MITMの攻撃者はこれを書き換えてHTTP上に置いて、実際のサイトを偽装することができます。攻撃者はこの完全に設定され安全なWebサイトへのすべてのトラフィックを傍受することができます。

これはSSLストリッピングと呼ばれ、非常に単純で壊滅的に効果的です。企業のプロキシが必要とするものではないので、あまり頻繁に見ていないので、既製のデバイスではありません。しかし、その猶予期間は非常に長く続くとは思われません。すでに終わっているかもしれません。それが使用されているかどうかわかるでしょうか?

SSLストリッピングを停止するには、HTTPSを唯一のプロトコルにする必要があります。私たちはインターネット全体ではできませんが、HTTP Strict Transport Security(HSTS)を使用してサイトごとに行うことができます。

HSTSは、HTTPS経由で常にHSTSサイトに要求を行うようブラウザに指示します。サイトは、ブラウザに組み込まれるか、またはヘッダーを広告することによってHSTSになります。

Strict-Transport-Security:max-age = 8640000; includeSubDomains

ヘッダーは指定された秒数だけ有効で、すべてのサブドメインに適用される場合もあります。ヘッダーは、クリーンなHTTPS接続を介して受信する必要があります。

ブラウザがサイトがHTTPSのみであることがわかったら、mail.google.comと入力するユーザーは安全です。最初のリクエストはHTTPSを使用し、攻撃者が悪用する穴はありません。

(他の多くのサイトはすでにChromeにHSTSサイトとして組み込まれているため、実際にはHTTP経由でaccounts.google.comにアクセスすることはできません。私はその画像を医師に渡す必要があります。 Chromeの内蔵HSTSリストに含まれたい場合は、私にメールしてください)。

HSTSは、あなたのウェブマスターがあなたを愚かな間違えから守ることもできます。あなたの母親に、銀行のサイトに行く前に必ずhttps://をタイプするか、彼女のためにブックマークを設定すると言ったとしましょう。それは正直に私たちがユーザーに期待できる、あるいはそうすべきである以上のものです。しかし、私たちのsupererogatoryユーザー...]

私はあなたにアダムの答えの残りを与えることはできません、あなたはアダムlangleyのブログを自分自身で訪問する必要があります/ stackoverflow上の新しいユーザーのための非常にばかげたリンクルール https://www.imperialviolet.org/2012/07/19/hope9talk.html

"Adam Langleyは、GoogleのHTTPSサービスインフラストラクチャとGoogle Chromeのネットワークスタックの両方で動作します。

+1

"HTPS"、あなたは "HSTS"を意味しましたか?とにかく「* HTTPSはSSL Stripping/MITM(中央の人)に非常に脆弱です。*」は真実ではありません。 HSTSはシステム全体に歓迎されていますが、引き続きHTTPSを利用しています。 SSLストリッピングに対して脆弱なのはHTTPSではなく、人々がリンクを使用して問題の証明書をチェックする方法です。 – Bruno

+0

リンクありがとうございます!本当に良い読書でした。 – zafar142003

1

HTTPSはアプリケーションレイヤプロトコルです。デジタル署名を通じて個々の要求または応答の否認防止を提供することができます。

SSLは、より低いレベルのプロトコルであり、この機能を備えていません。 SSLはトランスポートレベルの暗号化です。

HTTPSはSSLよりも柔軟性があります。アプリケーションは必要なセキュリティレベルを設定できます。 SSLにはオプションが少なく、セットアップと管理が簡単です。

+1

否認防止とは、契約または通信の当事者が、文書上の署名の真正性またはそれらが発信したメッセージの送信を拒否できないことを保証する能力を指します。 –