SSL/TLSの基礎知識

前回の勉強内容

ponsuke-tarou.hatenablog.com

勉強のきっかけになった問題

SSL/TLSのダウングレード攻撃に該当するものはどれか。

  1. 暗号化通信中にクライアントPCからサーバに送信するデータを操作して,強制的にサーバのディジタル証明書を失効させる。
  2. 暗号化通信中にサーバからクライアントPCに送信するデータを操作して,クライアントPCのWebブラウザを古いバージョンのものにする。
  3. 暗号化通信を確立するとき,弱い暗号スイートの使用を強制することによって,解読しやすい暗号化通信を行わせる。
  4. 暗号化通信を盗聴する攻撃者が,暗号鍵候補を総当たりで試すことによって解読する。

情報セキュリティスペシャリスト平成29年春期 午前Ⅱ 問2

インターネット上でのデータの通信を暗号化したプロトコルSSLといいます。

  • 正式名称 : Secure(安全な) Sockets(受け口) Layer

通常インターネット上での通信は「http(HyperText Transfer Protocol)」で行われますが、送受信されるデータは暗号化することができず、盗聴や改ざんを防げません。
しかし、SSLプロトコルを使用することで通信データは暗号化され、第三者が盗み見しようとしても解読することができません。
SSLとは?httpsとは?簡単説明|GMOグローバルサイン【公式】

SSLで暗号化されたサイトのURLは「https」になります。

  • 正式名称 : HyperText Transfer Protocol Secure
  • 別名: HTTP over TLS

上記のサイトも暗号化されていてURLの先頭は「https」になります。
f:id:ponsuke_tarou:20180408225847p:plain

攻撃者が社内ネットワークに仕掛けたマルウェアによってHTTPSが使われると、通信内容がチェックできないので、秘密情報が社外に送信されてしまいます。

HTTPSではクライアント-サーバ間の通信が暗号化されます。このため、もし通信経路上にプロキシサーバ等が介在したとしても内容のチェックはできません。
応用情報技術者平成29年春期 午前問44

SSLを利用するWebサーバでは、そのFQDNをディジタル証明書に組み込みます。

ディジタル証明書のコモンネームにFQDNを設定します。
Google ChromeではFQDNのコモンネームへの設定は非推奨なのでSubject Alternative Nameに設定します。

SSL通信を行うとき、SSLサーバ証明書のコモンネームと、サーバに設定されているFQDNが一致しているか比較します。一致している場合に、SSL通信を開始することができます。
https://cspssl.jp/guide/img/certificate/image-cert2.png
コモンネームとは? | SSL入門ガイド

FQDNは、ホスト名やドメイン名を省略しないで記述した文字列です。
  • 正式名称 : Fully Qualified(限定された) Domain Name
  • 日本語 : 絶対ドメイン名、完全修飾ドメイン

https://itmanabi.com/wp-content/uploads/2018/12/url-relation.png
FQDN?URL?ドメイン名?違いは? | ITの学び

SSLは、インターネット上で仮想専用ネットワークを使用するVPNでも使用されます。

ponsuke-tarou.hatenablog.com

SSL/TLSを利用することによって、クライアントサーバ間の通信を暗号化できます。

https://www.infraexpert.com/studygif/security23.gif
https://www.infraexpert.com/studygif/security24.gif
https://www.infraexpert.com/studygif/security25.gif
SSL-VPNとは

暗号化にSSLを使用したSSL-VPNではサーバ認証のために、VPN装置にFQDN又はIPアドレスを含むディジタル証明書を組み込む必要があります。

SSL通信ではサーバ認証が必須になっているため、例え同一ドメイン内に設置する場合であっても、装置ごとに固有のディジタル証明書を組み込む必要があります。
情報セキュリティスペシャリスト平成23年秋期 午前Ⅱ 問4

SSLが進化してTLSができました。

  • 正式名称 : Transport Layer Security
  • 別名 : SSL/TLS
  • インターネットなどのTCP/IPネットワークでデータを暗号化して送受信するプロトコル(通信手順)の一つ。
  • データを送受信する一対の機器間で通信を暗号化し、中継装置などネットワーク上の他の機器による成りすましやデータの盗み見、改竄などを防ぐことができます。

https://zenlogic.jp/aossl/wp-content/uploads/ssl-tls-01.png
SSLとTLSとは?意外に知らないSSLとTLSの違い(簡単編) | 常時SSL Lab. by クラウド型レンタルサーバー「Zenlogic」

TSLの特徴

  1. TLSは公開鍵証明書による通信相手の認証(一般的にはサーバの認証)
  2. 共通鍵暗号(秘密鍵暗号)による通信の暗号化
  3. ハッシュ関数による改竄検知
TSLの生い立ち
  • 1990年代 : SSLNetscape Communications社が開発
  • 1999年
    • IETFTLSワーキンググループが SSL 3.0 を基に TLS 1.0 が標準化される(RFC2246)
    • SSLという名称が既に広く定着していたため、実際にはTLSを指していてもSSLと表記したり、「SSL/TLS」「TLS/SSL」などと両者を併記したりすることが多い。
  • 2006年 : TLS 1.0で発見された新たな攻撃手法への対処など改良を加えたバージョンとして、TLS 1.1がRFC 4346として公開される
  • 2008年 : より安全性の高いハッシュを利用できるようにするなど改良を加えたTLS 1.2がにRFC 5246として公開される
  • 2014年 : SSL 3.0に一定の条件の下で通信の一部が第三者に漏えいする可能性があるPOODLEが報告される
  • 2015年 : TLS 1.3が提案される
  • 通称名:POODLE(Padding Oracle On Downgraded Legacy Encryption)
  • 脆弱性内容:攻撃者は、SSL 3.0 を使う暗号化通信において、リクエスト送信を繰り返し試み、暗号化通信の一部を解読する恐れが発生。また攻撃者は、TLSSSL のバージョンをダウングレードさせる可能性がある。
  • 想定される被害:Webサイト利用時の認証情報(クッキー、トークンなど)を窃取される

SSL 3.0 の脆弱性「POODLE 」とは? | トレンドマイクロ セキュリティブログ

f:id:ponsuke_tarou:20190930231956j:plain
あの日

SSL/TLSでのクライアントとサーバでのやり取りではディジタル証明書が使われます。

  1. クライアントからのSSL/TLSによる接続要求に対し,Webサーバは証明書をクライアントに送付する。
  2. クライアントは,保持している認証局の公開鍵によってこのサーバ証明書の正当性を確認する。
  3. クライアントは,共通鍵生成用のデータを作成し,サーバ証明書に添付されたWebサーバの公開鍵によってこの共通鍵生成用データを暗号化し,Webサーバに送付する。
  4. 受け取ったWebサーバは,自らの秘密鍵によって暗号化された共通鍵生成用データを復号する。
  5. クライアントとWebサーバの両者は,同一の共通鍵生成用データによって共通鍵を作成し,これ以降の両者間の通信は,この共通鍵による暗号化通信を行う。

https://www.geotrust.co.jp/ssl_guideline/ssl_beginners/images/index-fig-08.jpg
SSL/TLSの解説と選び方まとめ|ジオトラスト

利用者個人のディジタル証明書を用いたTLS通信を行うことによって、PCとWebサーバ間の通信データを暗号化するとともに利用者を認証することができるようになります。

TLS通信では、必須のサーバ認証とは別にオプションでクライアント認証を行うこともできます。利用者PCと通信を行うWebサーバは、利用者個人のディジタル証明書に付された認証局の署名を検証することで、ディジタル証明書の正当性を確認します。ディジタル証明書が正当なものならば、利用者(クライアント)の真正性が証明されます。
平成30年秋期問40 TLS通信で期待できるセキュリティ効果|応用情報技術者試験.com

SSL/TLSで使用する個人認証用のディジタル証明書は、ICカードなどに格納できるので格納場所を特定のPCに限定する必要はありません。

個人認証用のディジタル証明書は電子証明書と呼ばれ、公的認証サービスなどを利用すると電子証明書が記録されたICカードの発行をうけることができます。
情報セキュリティスペシャリスト平成24年秋期 午前Ⅱ 問14

SSL/TLSは新しいバージョンを使用しないと攻撃を受ける可能性が高まります。

https://www.ipa.go.jp/files/000042251.png
更新:SSL 3.0 の脆弱性対策について(CVE-2014-3566):IPA 独立行政法人 情報処理推進機構

ダウングレード攻撃は、暗号化通信を確立するとき弱い暗号スイートの使用を強制することによって解読しやすい暗号化通信を行わせる攻撃です。

FREAKは、使用するRSA鍵を512ビット以下の輸出グレードに格下げさせます。

https://cdn-ak.f.st-hatena.com/images/fotolife/K/Kango/20150311/20150311085830.png
FREAK についてまとめてみた - piyolog

Logjamは、DH鍵交換で使用するアルゴリズムの強さを輸出グレードの暗号で使用する 512ビット以下に格下げします。

TLS プロトコルは、DHE_EXPORT 暗号スイートがサーバで有効になっており、クライアントではなっていない場合に、DHE_EXPORT が選択されたことをクライアントに適切に通知しないため、暗号アルゴリズムのダウングレード攻撃を実行される脆弱性が存在します。
脆弱性は、"Logjam" と呼ばれています。
JVNDB-2015-002764 - JVN iPedia - 脆弱性対策情報データベース

バージョンロールバック攻撃は、脆弱性のあるSSL3.0での通信を仕向けます。

https://jvndb.jvn.jp/ja/contents/2005/img/JVNDB-2005-000601.png
JVNDB-2005-000601 - JVN iPedia - 脆弱性対策情報データベース

f:id:ponsuke_tarou:20190930231918j:plain
秋の思い出

次回の勉強内容

ponsuke-tarou.hatenablog.com