すべてにHTTPSを使用しないのはなぜですか?


126

サーバーをセットアップしていて、SSL証明書がある場合、購入/ログインだけでなく、サイト全体にHTTPSを使用しないのはなぜですか?サイト全体を暗号化し、ユーザーを完全に保護するほうが理にかなっていると思います。これにより、すべてを保護するために何を保護する必要があるかを決定するなどの問題が回避され、ユーザーにとっては不便ではありません。

サイトの一部ですでにHTTPSを使用している場合、なぜそれをサイト全体で使用したくないのですか?

これは関連する質問です:httpsがログインにのみ使用されるのはなぜですか?、しかし答えは満足のいくものではありません。回答では、サイト全体にhttpsを適用できなかったと想定しています。


2
金融サービス会社がまだhttpを使用していることには驚きます。
トム・ホーティン-タックライン2010

15
@トムフィッシングメッセージを送信するサイトの一部が偽造サイトにhttpsを使用することを望んでいるので、自分のデータを適切なフィッシング詐欺師に提供していることを知っています。
WhirlWind 2010

この質問をしていただきありがとうございます。私はパフォーマンスだったと仮定した理由、それはHTTPよりもはるかに悪いだろう。答えを見ると、パフォーマンスはそれほど悪くないようで、不思議に思います。
sundar-モニカを

4
ページで最悪の答えを選んだと思います。現在は11票です。選択した答えは、セキュリティとベストプラクティスを完全に無視しています。
2015年

5
この質問は、教育を受けた現代的な答えに値するものです。
Old Badman Grey

回答:


17

いくつかの理由が考えられます。

  • 一部のブラウザはSSLをサポートしていない場合があります。
  • SSLを使用すると、パフォーマンスが多少低下する場合があります。ユーザーが大きな公開ファイルをダウンロードしている場合、毎回これらを暗号化するシステムの負荷がかかる可能性があります。

137
SSLをサポートしていないブラウザは何ですか?
Malfist 2010

6
lynxの一部のコンパイルはそれをサポートしません。新しいブラウザのみをサポートしている場合は、問題ありません。
WhirlWind 2010

5
私はこれを調べていました:iweb.tntech.edu/hexb/publications/https-STAR-03122003.pdf「サーバーが飽和すると、HTTPSのシステムパフォーマンスはスループットに関してHTTPの約67%を達成します。」
WhirlWind 2010

16
t buy this explanation. 1) Donは2013年にSSLをサポートしていないブラウザを使用しません。2)Googleが現在SSLを使用している3)適切に設定されていれば、httpトラフィックを正しいhttpsリンクにリダイレクトできます。
jfyelle

4
悪い答え、なぜそんなに賛成するのか?地球上のどのブラウザーがsslをサポートしておらず、ユーザーがhttpsと入力する必要がないか、リダイレクトで処理できる
Sanne

25

HTTPSを使用する場合、他の理由(特にパフォーマンス関連)に加えて、IPアドレス*ごとに1つのドメインのみをホストできます。

サーバー HTTPヘッダーはサーバーに応答するドメインを通知するため、単一のサーバーがHTTPで複数のドメインをサポートできます。

HTTPSを使用する場合、サーバーは最初のTLSハンドシェイク(HTTPが開始する前)中にクライアントに証明書を提供する必要があります。これは、サーバーヘッダーがまだ送信されていないため、サーバーが要求されているドメインと応答する証明書(www.foo.comまたはwww.bar.com)をサーバーが認識する方法がないことを意味します。


*脚注:技術的には、複数のドメインを異なるポートでホストしている場合は、それらをホストできますが、これは通常はオプションではありません。SSL証明書にワイルドカードが含まれている場合は、複数のドメインをホストすることもできます。たとえば、証明書* .example.comでfoo.example.comとbar.example.comの両方をホストできます。


5
ワイルドカードSSL証明書があれば、この問題は解決しませんか?
Rob

脚注は答えと矛盾します:/ワイルドカード証明書を使用して、任意のドメインをホストできます。en.wikipedia.org/wiki/Wildcard_certificate
lucascaro 2014

23
この問題は、サーバー名の表示によって長い間解決されており、現在、すべての主要なブラウザーでサポートされています。en.wikipedia.org/wiki/Server_Name_Indication
tia

@tia(すべてのWebサーバーがサポートしているわけではありません)
meffect

2
@meffect ...しかし、apache2、nginx、lighttpd、nodejsなど、たくさんあります。さらに、開発者はHTTPSトンネリングに使用するリバースプロキシを選択できます。「クライアントがそれをサポートしていない」と言うことは、それが開発者が制御できず、説明しなければならないものであるため、それが真実であれば有効なポイントです。ただし、「一部のサーバーはそれをサポートしていない」と言っても、それを説明する必要がないため、ほとんど無関係です。特に、すべての主流サーバー実際にサポートしている場合。
パルティアンショット

13

SSL / TLSはほとんど十分に使用されていません。HTTPSはセッション全体で使用する必要があります。いかなる場合も、セッションIDをHTTP経由で送信することはできません。ログインにhttpsのみを使用している場合は、2010年の「A3:壊れた認証とセッション管理」のOWASPトップ10に明らかに違反しています。


これは、仮定が広すぎる可能性があります。単一のhttpsログイン操作でhttpとhttpsを個別にセッション状態を管理できない理由はありません。それはその価値よりも多くの作業であり、セキュリティ関連のバグを招く可能性がありますが、自動的に明確な違反を構成するとは思われません。
アインシュタイン

@EinsteinはOWASP A3を読んでください。非常に明確に表現されています。認証されたセッションからのCookieを持っている場合、攻撃者はユーザー名/パスワードを必要としないことに注意してください。
2010

サイトはhttps / httpの混合を提供します。httpsログインは、個別の低セキュリティセッショントークンと高セキュリティセッショントークンを提供します。httpセッションにのみ割り当てられた低セキュリティトークンは、高セキュリティを必要とする操作には機能しません。私が読んだOWASP A3は、セキュリティの低いトランスポートを介したセキュリティの高いアクセスの可能性という基本的な問題をはっきりと示しています。
アインシュタイン

@Einsteinでは、Webブラウザの認証にセッションIDが使用されることに同意しませんか?この攻撃パターンを考慮してください。xss攻撃document.cookieでは、攻撃者がこれを使用して認証できるように、の値を取得しようとしています。この値は、httpsが停止するトラフィックをスニッフィングすることでも取得できます。あなたの言いたいことが正確にはわかりません。
2010

シナリオでは、システムが単一の認証アクションに対して2つの個別のセッションを作成して、HTTPセッションと、HTTPセッションCookieによって公開された関連リソースなしで両方のプロトコルを使用できるようにする場合、HTTP保護リソースに対してhttpのセッションIDは役に立ちません。たとえば、httpセッションは、レポート用のパブリックリソースへのアクセスまたはパブリックメッセージボードへのアクセスの識別に使用できますが、セキュリティで保護されたリソースには無効です。
アインシュタイン

12

カタツムリメールのすべての投稿を改ざん防止の不透明な封筒に登録済みメールで送信してみませんか?郵便局の誰かが常に個人的な監護権を持っているので、誰もあなたのメールを覗き見していないことをかなり確信で​​きます。明らかに、答えは、一部のメールは費用に見合うだけの価値がありますが、ほとんどのメールはそうではないということです。誰かが私の「刑務所から出られてよかった!」と読んでも構わない。アンクルジョーへのポストカード。

暗号化は無料ではありませんし、常に役立つとは限りません。

セッション(ショッピング、バンキングなど)がHTTPSを使用して終了する場合、セッション全体をできるだけ早くHTTPSにしないようにする理由はありません。

私の意見では、要求または応答は中間のスヌーピングから保護する必要があるため、不可避的に必要な場合にのみHTTPSを使用する必要があります。例として、Yahoo!ホームページ。ログインしていても、ほとんどのやり取りはHTTPを介して行われます。HTTPS経由で認証し、自分の身元を証明するCookieを取得するため、ニュース記事を読むためにHTTPSは必要ありません。


笑!!!すごい!私は彼のズボンを少しフリーク、完全に...それを再密封します「あなたは刑務所から出てうれしい」と封筒を開く不正の郵便配達人を賭ける
アンドレイRînea

19
書留郵便が300%ではなく1%高いなら、私それをすべてに使うでしょう
可溶性魚

3
You authenticate over HTTPS and get cookies that prove your identity, so you don't need HTTPS to read news stories.これは、セッション認証を処理する適切な方法ではありません。CookieにはSECUREフラグを設定する必要があります。しかし、その恐ろしいセキュリティアドバイスを少しの間無視してください...メールの例えは、いくつかの理由で実際には正確ではありません。1つは、通常はエクスプロイトを返信メールに挿入したり、誰かを無罪で他人に偽装したり、「Your Session Expired」メッセージを返信メールにポップして、両方のYahoo!に使用する資格情報を再入力したりできないことです。そして彼らの銀行。
パルティアンショット

とりわけ、パスワードの再利用やセッションの固定は、カタツムリメールでは問題になりません。
パルティアンショット

これらは良い点ですが、2016年の分析を2010
David M

12

システム負荷を超えた最大の理由は、名前ベースの仮想ホスティングが機能しなくなることです。SSLを使用すると、1つのサイト、つまり1つのIPアドレスになります。これはかなり高価で、管理も困難です。


+1そのGoogleのApp EngineはカスタムドメインでHTTPSをサポートしていない理由。TLS-SNIがより広くサポートされるのを待っています。
スリパティクリシュナン2010

1
これは、SSL終端ハードウェアを使用して戻すことができます。そして、システムの負荷が問題である場合(それは多くの人にとってです!)とにかく、ハードウェアSSLがとにかく進む方法かもしれません。
Jason、

ただし、同じ証明書に複数のドメインを含めることができます。
lucascaro 14

10
まったくそうではありません。(とにかくもう、とにかく。)
パルティアンショット

7
投稿の情報が古くなっているため、反対投票。現在、SNIはすべての主要なブラウザーでサポートされています。
MartinTörnwall、2016

5

高レイテンシリンクの場合、最初のTLSハンドシェイクでは、証明書チェーンの検証(中間証明書の送信を含む)、暗号スイートの合意、およびセッションの確立のために追加のラウンドトリップが必要です。セッションが確立されると、後続のリクエストはセッションキャッシングを利用してラウンドトリップの数を減らすことができますが、この最良の場合でも、通常のHTTP接続が必要とする以上のラウンドトリップがあります。暗号化操作が無料であったとしても、特にサイトがhttpパイプラインを利用していない場合は、低速のネットワークリンクでは無料で往復することはできません。ネットワークの適切に接続されたセグメント内のブロードバンドユーザーにとって、これは問題ではありません。国際的にビジネスを行っている場合、httpsを要求すると簡単に顕著な遅延が発生する可能性があります。

サーバーがセッション状態を保守するなど、さらに多くのメモリを必要とする可能性や、もちろんデータの暗号化操作など、追加の考慮事項があります。どんな小さなサイトでも、特定のサーバー機能と現在のハードウェアのコストのどちらも実際に心配する必要はありません。大規模なサイトであれば、同様の機能を提供するために、CPU / w AESオフロードまたはアドオンカードを簡単に購入できます。

これらすべての問題は、時間の経過とともにハードウェアとネットワークの機能が向上するにつれて、ますます問題にならないものになっています。ほとんどの場合、今日の具体的な違いはないと思います。

httpsトラフィックの管理上の制限(中間コンテンツフィルターなど)の運用上の考慮事項が存在する可能性があります。一部の企業環境では、情報漏えいを防ぐために境界でのデータ復号化が必要です...ホットスポットへの干渉、およびhttpsトランザクションにメッセージを挿入できないWebベースの類似のアクセスシステム。結局のところ、私の見解では、デフォルトでhttpsを使用しない理由はかなり小さいと思われます。


4

httpsは、通常のhttpよりもリソースを大量に消費します。

サーバーとクライアントの両方からより多くを要求します。


3

セッション全体が暗号化されている場合、ISPなどのプロキシレベルで画像やjsなどの静的リソースのキャッシュを使用することはできません。


そうですね、SSL終了プロキシーを除いて、またはHTTPS対応のCDNを使用している場合は例外です。
パルティアンショット

3

すべての場所でHTTPSを使用する必要がありますが、次のものは失われます。

  1. BREACHおよびCRIME攻撃のため、SSL圧縮またはSSLを介したHTTP圧縮を使用しないでください。したがって、応答にセッションまたはcsrf識別子が含まれている場合は圧縮されません。静的リソース(画像、js、css)をCookieのないドメインに置き、そこで圧縮を使用することで、これを軽減できます。HTMLの縮小も使用できます。

  2. 1つのSSL証明書、1つのIPアドレス。ただし、SNIを使用しない限り、すべてのブラウザー(古いAndroid、Blackberry 6など)では機能しません。

  3. SSLを経由しない外部コンテンツをページでホストしないでください。

  4. ブラウザーがHTTPページにアクセスすると、アウトバウンドHTTPリファラーヘッダーが失われます。これは、問題のある場合とない場合があります。


0

まあ、明らかな理由はパフォーマンスです。すべてのデータは送信前にサーバーによって暗号化され、受信時にクライアントによって復号化される必要があるため、機密データがない場合は時間の無駄になります。また、サイトのキャッシュ量にも影響する可能性があります。

また、すべてのアドレスhttps://が使い慣れたアドレスではなく使用している場合、エンドユーザーを混乱させる可能性がありますhttp://。また、この回答を参照してください:

jsファイルを含めるときに常にhttpsを使用しないのはなぜですか?


9
なぜユーザーを混乱させるのですか?実際に何人がURIのプロトコルを見ていますか?
Malfist 2010

10年後の今日、httpsがより一般的になり、httpは混乱を招くでしょう
madprops

0

httpsでは、サーバーがクライアントの要求と応答を暗号化および復号化する必要があります。サーバーが多数のクライアントにサービスを提供している場合、パフォーマンスへの影響が増大します。そのため、現在のほとんどのhttpsの実装は、パスワード認証のみに制限されています。しかし、すべてのGmailがサイト全体でSSLを使用しているため、コンピューティング能力が向上すると、これは変わる可能性があります。


0

WhirlWindの応答に加えて、SSL証明書のコストと適用性、アクセスの問題(クライアントがSSLポートを介して通信できない可能性は低いですが可能性があります)などを考慮する必要があります。

SSLの使用は、保証された包括的なセキュリティではありません。この種の保護は、魔法の弾丸に頼るのではなく、アプリケーションのアーキテクチャに組み込む必要があります。


2
ユーザーは既にサイトの一部を保護しているため、証明書のコストは多かれ少なかれ重要ではありません。
futureelite7 2010

2
@ futureelite7良い点ですが、おそらくこのトピックを将来研究する可能性のある他の人に関連しています。
3Dave 2010

特技はセキュリティの敵です。私自身のものの弱点の大部分は、私自身または前任者が製品計画に受け入れたいくつかの不適切にアドバイスされた機能にルーツがあります。セキュリティの脆弱性の原因となる機能がキックオフされても、そもそも機能を拒否するほど人気が​​高まることはありません。人気は重要ではありませんが、悲しいことにできます。安全ではないユーザーに本当にどの程度対応したいのか、または暗号化を使用できないユーザー(銀行、政治、行動主義など)にアプリが適しているかどうかを自問します。
Jason、

0

私たちの会社の1つのプロジェクトで、SSLメッセージが占有する帯域幅がプレーンメッセージよりも大幅に大きいことがわかったと言われました。誰かがそれを12倍もの驚異的な量のデータだと言ったと思います。私はこれを自分で確認していませんが、非常に高そうですが、各ページにヘッダーのようなものが追加されていて、ほとんどのページに少量のコンテンツがある場合、それほど遠くないかもしれません。

そうは言っても、httpとhttpsの間を行き来する手間と、どのページが何であるかを追跡する手間は、私にはあまりにも努力のように思えます。私は一度だけそれらを混合したサイトを構築しようとしましたが、Javascriptによって作成されたポップアップウィンドウのような複雑なものに接続されて、間違ったプロトコルが接続されているなどの複雑なことにつまずくと、計画を放棄してしまいました。最終的には、サイト全体をhttpsにするだけで問題が少なくなります。保護する必要のあるログイン画面と支払い画面があり、それらが単純なページである単純なケースでは、混合して一致させることは大した問題ではないでしょう。

クライアントが復号化する負担についてはあまり気にしません。通常、クライアントは、データを処理するために必要な時間よりも、データがネットワーク経由で送信されるのを待つために多くの時間を費やします。ユーザーが日常的にギガビット/秒のインターネット接続を確立するまでは、クライアントの処理能力はおそらくまったく無関係です。サーバーがページを暗号化するために必要とするCPUパワーは、別の問題です。数百または数千のユーザーに対応できないという問題があるかもしれません。


1
最悪の場合でも、追加の帯域幅は小さいです。
James K. Polk大統領、

0

もう1つの小さな点(たぶん誰かが確認できる)、ユーザーがテキストボックスなどのフォームアイテムにデータを入力し、何らかの理由でページを更新したり、サーバーが一瞬クラッシュしたりすると、ユーザーが入力したデータは失われますHTTPS。ただし、HTTPを使用して保持されます。

注:これがブラウザ固有のものかどうかはわかりませんが、Firefoxブラウザで発生します。


0

IIS 8.0を搭載したWindows Server 2012では、サーバー名の表示であるSNIが提供されるようになりました。これにより、IISの複数のSSL Webアプリケーションを1つのIPアドレスでホストできます。


1
それは質問とどう関係していますか?興味深い機能ですが、関連性はわかりません。
user1618143 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.