web-dev-qa-db-ja.com

httpsプロトコルとSSL証明書の違い

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

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

49
user32262

HTTPSは、HTTP(HyperText Transfer Protocol)とSSL(Secure Socket Layer)です。 SSLを使用するプロトコルを使用するには、証明書が必要です。

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

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

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

49
a paid nerd

1つのソリューションが2つ。

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

SSL証明書は、サーバーの信頼性に同意するために使用するドキュメントです。

35
John Weldon

HTPSは新しいHTTPSです。 HTTPSは、SSLストリッピング/ 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を使用し、攻撃者が悪用するための穴はありません。

(mail.google.comおよび他の多くのサイトは、ChromeにHSTSサイトとして既に組み込まれているため、Chrome-その画像を修正する必要がありました!Chromeの組み込みHSTSリストに含めたい場合は、私にメールしてください。)

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

stackoverflowの新しいユーザーの邪魔/非常に愚かなリンクルールのため、アダムの答えの残りの部分を提供することはできません https://www.imperialviolet.org/2012 /07/19/hope9talk.html

「アダムラングレーは、GoogleのHTTPSサービスインフラストラクチャとGoogle Chromeのネットワークスタックの両方で動作します。」

6
Pascal

HTTPSはアプリケーション層プロトコルです。デジタル署名により、個々の要求または応答の否認防止を提供できます。

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

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

1