3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WebセキュリティAdvent Calendar 2018

Day 12

SSLでできること、できないこと

Last updated at Posted at 2018-12-11

Webシステムで「セキュリティ」といってまず最初に名前が上がるのがSSLかと思いますが、SSLはどういう攻撃を防げて、どのような攻撃には耐えられないのでしょうか。

SSL/TLSの概要

SSL/TLSの通信を確立する際には、以下のような処理が行われます(参考)。

  • 証明書の提示、相手の認証1
  • 暗号鍵の交換

暗号接続が失敗すれば、(きちんと設定して2)接続自体が成立しないということになります。逆に接続が成立すれば、あとの通信は暗号化した通信路上で行なわれます。

防げる攻撃

これで防げる攻撃としては、「相手の認証」によるものと「暗号化・認証符号」によるものに分けられます。

  • 相手先を認証することによるもの→なりすましや中間者攻撃によって、一時的に接続を奪った第三者が本来のサイトになりすますのを防ぐ、EV SSLとして団体名を表示するなど
  • 暗号化・認証符号によるもの…第三者の盗聴・改ざんに対する対策となる

防げない攻撃

ほぼすべてのセキュリティ対策3は、ある特定の攻撃に対しての対策でしかありません。SSLのプロトコルやその実装に脆弱性が出ることもありますし、そうでなくても以下のような攻撃は成立します。

  • SSLのかかっていない、サーバそのもの、あるいはブラウザ~ユーザーに対する攻撃(サーバへの不正侵入、Man in the Browser、ソーシャルエンジニアリングなど)
  • SSLに載せたリクエスト上から行える攻撃(SQLインジェクション、XSS、CSRFなど)
  • ルート証明書の不正追加(Superfishなど、実際に問題となりました)
  • 中間者による通信の切断
  • 攻撃者自身が自分のサイトでSSLを適用する、という手段もあります(間違ったドメインで来た人を相手に攻撃を仕掛ける)
  • 証明書発行時にDNS偽装を行うことで、不適切なSSL証明書を発行させる
  1. もちろんクライアント証明書もSSLで使うことは可能ですが、不特定多数のユーザーがアクセスするWebサイトで使えるものではないので、以下では省略します。

  2. 規格上は暗号化なしや認証なしなども存在はしますが、現実問題としてはライブラリレベルで実装していない、あるいは設定で除外しているなどで、実用されることは通常ありません。

  3. 「サービスの提供そのものを取りやめる」という、完璧にリスク回避が可能な手段もありますが、もちろん「サービスを提供する」ことが前提であればこの手は使えません。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?