俺、サービス売って家買うんだ

Swift, Kotlin, Vue.js, 統計, GCP / このペースで作ってればいつか2-3億で売れるのがポっと出来るんじゃなかろうか

TLS/SSL - 認証編

f:id:ie-kau:20160930014025p:plain


前回の記事(TLS/SSL - 暗号化編 - 俺、サービス売って家買うんだ)の認証編です。

TLS/SSLにおける認証とは?

開いているウェブサイトが本当にサーバーの持ち主のものか第三者に認証してもらう仕組み。

サーバー証明書

  • サーバーの正当性を保証するため認証局に依頼して発行してもらう証明書

用語に分解して少し詳しく見ていく。

認証局

  • CA = Certificate authority
  • 暗号通信などで必要なデジタル署名を発行する機関
    • TLS/SSLの話で言うとサーバー証明書の発行
  • 認証局にはルート認証局(root CA)と中間認証局(intermediate CA)がある
    • ルート認証局は上位の認証局による認証を受けず、自分の正当性を自ら証明する

世界のマーケットシェアはこんなもの。

f:id:ie-kau:20160930013240p:plain
※出典(Certificate authority - Wikipedia)

※余談
2016年の4月にthe Electronic Frontier Foundation, Mozilla, Cisco, AkamaiによるLet's EncryptというTLS用の証明書を無料で発行するCAが立ち上がったのは記憶に新しい。

letsencrypt.org

サーバー証明書に記載されているもの

  • サーバー証明書
  • サーバー運営者の組織名
  • 認証局の組織名
  • 証明書の有効期限
  • サーバーの公開鍵
  • etc

Chromeで開いたGoogleサーバー証明書

f:id:ie-kau:20160930013430p:plain

GeoTrust Global CAのルート証明書

f:id:ie-kau:20160930013509p:plain

署名

  • 証明書の内容をハッシュ化して認証局の秘密鍵で暗号化したもの

中間証明書(Intermediate Certificate)

  • サーバー認証は3階層か4階層になっている
  • 上位の認証局から認証を受けることにって自らの正当性を認証する認証局
    • サーバー証明書を認証する認証局を認証するルート認証局

※参考

正当性の証明

  1. ブラウザにサーバー証明書と中間証明書が送られてくる
  2. 中間証明書とPCにインストールされているルート証明書を比較し一致するものを探す
  3. 一致すれば中間証明書は信頼できると判断
  4. ルート証明書に含まれるルート認証局の公開鍵でサーバー証明書の署名を復号
  5. サーバー証明書の内容をハッシュ化
  6. 4で複合されて得られたハッシュ値と5で得られたハッシュ値を比較し一致すれば正当性の証明完了

※参考

メモ

この内容と直接関係ないが、同じ認証でもCertificationとAuthenticationは異なる

  • Authentication = 二者間認証
    • ログインとか
  • Certification = 三者間認証
    • クレジットカードとか、TLS/SSLとか

※参考

まとめ

ようやく詳しくわかってきた。(๑•̀ㅂ•́)و✧オラッオラッ

参考書籍

暗号技術入門 第3版 秘密の国のアリス

暗号技術入門 第3版 秘密の国のアリス

関連記事

www.ie-kau.net