web-dev-qa-db-ja.com

すべてのサーバーでHTTPSプロトコルを使用する必要がありますか、それとも公開サーバーのみを使用する必要がありますか?

HTTPSを介して実行しているフロントエンドWebサーバーがあります-これは公開されているため、ポートが開いています。

私のウェブサーバーがAPIリクエストを行うバックエンドAPIサーバーも持っています-これは公開されており、認証が必要です-ポートが開いています.

これら2つのサーバーはHTTPSで実行されます。

APIサーバーの背後には、他にも多数のサーバーがあります。 APIサーバーはこれらのサーバーへのプロキシを逆にします。これらの他のサーバーのポートは、着信トラフィックに対して開いていません。 APIサーバー経由でのみ通信できます。

私の質問...「他の多くのサーバー」はHTTPSで実行する必要がありますか、または外部からアクセスできない場合、代わりにHTTPで安全に実行できますか?

これはよくある質問だと思いましたが、答えが見つかりませんでした。ありがとう。これがだまされている場合は、正しい答えを教えてください。

38
danday74

これは意見の問題であり、規制上の問題(何か問題が発生した場合)にも関係しています。

現在は必要ではありませんが、アプリケーションレベルのファイアウォール/ロードバランサー/フロントエンドサーバーとバックエンドサーバーの間でHTTPSを有効にしておくことを強く支持しています。攻撃面が1つ少なくなります。私は、より機密性の高い情報が渡され始めたときに変換する必要のある場所と契約しました-そこから始めるのが良いです。

私が一般的に提案するのは、内部CA(利用可能な場合)または自己署名(内部CAがない場合)のバックエンドサーバーを使用することです。不要な変更を回避するために、有効期限をニースに設定します。

50
Tim Brigham

TL; DR同じホスト上にない限り、トラフィックを暗号化する必要があります。

あなたのネットワークを信頼することはできません。独自のネットワーク内のマルウェアは、httpリクエストを傍受/変更する可能性があります。

これは理論的な攻撃ではなく、実際の例です。

19
Tom

「他の多くのサーバー」はHTTPSで実行する必要がありますか、または外部からアクセスできない場合、代わりにHTTPで安全に実行できますか?

これは、実際に達成しようとしていることに依存します。 HTTPSを使用する目的を理解することは、2つのポイント間で転送されるデータを保護することです。ネットワーク内部でデータが盗聴されるのではないかと心配している場合は、まずそれを処理する必要があります。ネットワーク内の転送中のデータを保護する必要がある場合、ネットワーク内のシステムを通過するデータのセキュリティに懸念があるか、転送中のデータを暗号化する必要があるというコンプライアンス関連の理由があります。

これは本当に意見の質問ですが、答えは状況次第です。あなたは何をしようとしているのですか?どんな種類のデータを暗号化していますか?どのような脅威から防御しようとしていますか?転送中のデータを暗号化する必要があるという法的要件(PCI-DSS、HIPAAなど)がありますか?データが機密であり、ネットワーク内で送信されるときに悪用される可能性があると懸念される場合は、問題を解決するために管理者と協力することをお勧めします。結局、何を保護しようとしているのか、なぜそれを保護しようとしているのですか?

16
user5870571

当時、人々は、内部ネットワークは住宅として安全であると考えていました。私はかつて、自分の内部向けサーバーが組み込みのファイアウォールを実行していることに驚いた監督者との論争に巻き込まれました。 「内部ネットワークを信頼できない場合、誰を信頼できますか?」私は内部ネットワークに学生のラップトップがあり、学生のラップトップと私のサーバーの間にファイアウォールがないことを指摘しました。彼は学界に新しいので、この情報で彼の宇宙はボロボロになっているように見えました。

ネットワーク上に学生のラップトップがなくても、内部ネットワークは安全とは見なされなくなりました。いくつかの例については、トムの回答を参照してください。

そうは言っても、はい、それはどの情報が送信されているか、法令遵守の問題などに依存します。誰かが気象データを盗聴したとしても気にしないと決めるかもしれません。とはいえ、送信されたデータが機密ではない場合でもだれかが後でアプリケーションに機能を追加する可能性がありますある機密なので、パラノイア(HTTPSを含む)。

13

今日、暗号化を高速化するための特殊なCPU命令、およびまったく動作しないか、暗号化されていないリンク(HTTP/2、gRPCなど)でパフォーマンスが低下して動作する新しいトランスポートプロトコルがあるため、おそらくより良い質問があります。ネットワークリンクをHTTPにダウングレードする必要がある理由特定の理由がない場合、答えはHTTPSのままです。

8
Aaron

暗号化を無効にできる唯一の理由は、パフォーマンスです。ただし、あなたの場合、内部サーバーはHTTPを介してインターフェースされます。つまり、内部サーバーは、Webサーバーの実行、HTTPプロトコルのサポート、およびHTTP/JSON /でのデータのエンコードのパフォーマンスコストをすでに負担しています。暗号化を無効にすると、おそらく100KBのRAMが解放され、送信データのKBあたり数マイクロ秒が得られます。これは、全体的なパフォーマンスに目に見える影響を与えることはありません。一方、支払う必要があります現在イントラネットでHTTPを実行しているため、セキュリティへの関心が大幅に高まっています。実際、ファイアウォールの構成をより厳密にすると、暗号化を無効にするよりも速度が遅くなり、エンドユーザーが感じるパフォーマンスが低下する可能性があります。

これは、トラクターにスポイラーを置くようなものです。理論的にはほとんど何も得られず、実際には多くの不便があります。

5