LoginSignup
5
4

More than 5 years have passed since last update.

httpsのサーバー認証

Last updated at Posted at 2016-01-08

概要

curlでhttps通信したときに、そういえばhttps通信ってどういう仕組みだったっけー忘れたーと思ったのでいろいろ思い出してみたので簡単にめもめも。

登場人物

  • 認証局(CA)
  • サーバー
  • クライアント

いろいろ用語

  • SSL
    • 米ネットスケープ社が開発
  • TLS
    • SSLが普及しだした時にIETFがSSLを元にしてTLSとして標準仕様にする
    • SSLが先に普及したので、TLSのことをSSLと表記したりSSL/TLSと併記したりする
  • サーバー証明書
    • 証明書データをCAの秘密鍵でハッシュ化された署名が含まれている
    • サーバーの公開鍵が含まれている。
  • 認証局(CA)
    • 電子商取引事業者などに、暗号通信などで必要となるデジタル証明書を発行する機関
  • CA証明書
    • ブラウザには最初っから入っている。CAの公開鍵が含まれている
  • クライアント
    • 主にブラウザなど
    • ブラウザには主要な認証局の証明書(公開鍵)が登録されている。

通信の流れ

  • サーバー準備
    • サーバーはCAに申請してサーバーの公開鍵が含まれたサーバー証明書を作成してもらう。
  • サーバー認証
    • クライアントから通信くると上で作成したサーバー証明書をクライアントに送付
    • クライアントではサーバー証明書に含まれる署名からCA証明書の公開鍵でハッシュ値を抽出してサーバー証明書データのハッシュ値と比較する。値が同じであれば信頼のあるCAから生成されたサーバー証明書であり、そこで発行されたサーバー証明書は正当なものだと判断できサーバー証明書に含まれているサーバーの公開鍵の信頼性が担保される。
  • 通信内容の暗号化
    • 公開鍵と秘密鍵から生成したお互いしか知り得ない共通鍵で通信
  • 完全性の確認
    • 電子証明書のような仕組みで改ざんがないかチェックする

おわり

最初だけ公開鍵秘密鍵(公開鍵暗号)を使用して通信自体は共通鍵(共通鍵暗号)で行う。なぜかというと、公開鍵暗号のほうが負荷が大きいので。公開鍵暗号は認証などの場面でしか使用されない。

5
4
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
5
4