web-dev-qa-db-ja.com

REST APIの場合、HTTPSに追加の暗号化が必要ですか?

質問に来る前に、環境をセットアップしましょう。

  • ブラウザ/クライアントからHTTPS経由でアクセスできるWebアプリケーションがあります。
  • 毎月、イントラネットでのみアクセス可能(まれにインターネット経由)
  • Angularを使用したフロントエンド
  • Java-EEを使用したバックエンド

今、私は私の懸念について私の同僚と議論になりました。

フロントエンドとバックエンド間の通信は完全に暗号化されていないため、ログインしているユーザーの資格情報はイントラネット/インターネット経由で完全にクリアなテキストで送信されます。また、会社の秘密である機密データ(成分、比率など)を入力します。

アプリケーションにLDAPログインの可能性を統合したという事実を追加すると、この事実は私にとって非常に危険であるように見え、イントラネットからより多くの情報を取得するためのエントリポイントになる可能性があります(LDAP資格情報を取得し、より多くのサービスやマシンにアクセスします)。

クライアントとサーバー間の通信はHTTPS経由で確立されるので、私の同僚は心配する必要はないと言っています。

ただし、特にSSLストリッピング、MITM、またはトラフィック分析などの既知の問題があるため、1つの引数を提供するだけでは納得できませんでした。 私はすべてを正しく構成しない場合にのみそれらについて心配する必要があることを知っていますが、それも私の懸念事項です

私は、クライアントとサーバー間の通信をさらに Jose4J のようなもので暗号化する必要があると考えています。これにより、イントラネット違反やHTTPS問題でも、機密データが機密情報であることが保証されます。また、トラフィックを分析することはより困難になります。

「私はhttpsを使用している」だけではなく、より多くの事実とより良い結論を提供する答えを求めていました。

機密データを扱うWebアプリケーションにHTTPSを使用するだけで十分「安全」ですか?

4
Nico

フロントエンドとバックエンド間の通信は完全に暗号化されていないため、ログインしているユーザーの資格情報はイントラネット/インターネット経由で完全にクリアテキストで送信されます。

...クライアントとサーバー間の通信はHTTPSを介して確立されます。

あなたは自分自身を屈服させています。 HTTPSを使用している場合、データは暗号化されていません。

...特にSSLストリッピング、MITM、さらにはトラフィック分析などの既知の問題があるためです。

SSLストリッピングはHSTSによって解決されます。これを使って。 MITMはTLSが保護するものであるため、それが「既知の問題」であるかどうかはわかりません。 「トラフィック分析」の意味がわからないが、独自のアプリケーションレベルの暗号を実装しても解決できない。

私はあなたがHTTPSがあなたに与えるものを過小評価していると思います。

機密データを扱うWebアプリケーションにHTTPSを使用するだけで十分「安全」ですか?

基本的にあなたの質問は次のとおりです:transportレイヤー暗号化で十分ですか、それともapplicationレイヤー暗号化も必要ですか?

ブラウザーで実行するように設計されたWebアプリの場合、アプリケーションレイヤー暗号化のセキュリティ値は基本的にゼロです。どうして?なぜなら、アプリケーション層の暗号化を行うまさにそのコードは、最初にクライアントに転送されなければならないからです。トランスポート層の暗号が壊れている場合、そのコードは改ざんされて攻撃者の利益になる可能性があります。

とにかく:自分のTLSを構成することを信頼していません。安全なアプリケーション層の暗号を設定するというはるかに複雑なタスクを信頼すべきなのはなぜですか?私は約束します、それは単にTLSを読んでそれを正しく行う方がはるかに簡単になるでしょう。

あなたの同僚はそれが正しい議論であるので、あなたにただ一つの議論を与えました。 HTTPSを使用します。

11
Anders