OpenSSL SSL/TLS 暗号 認証

【SSL/TLS】サーバ認証の仕組み

2018年8月30日


暗号化について触れながら、サーバ認証の流れを解説します。

SSL/TLS暗号化通信の種類

暗号化通信の種類は3種類存在します。それぞれについて通信の流れを記載します。

Ⅰ.共通鍵暗号方式(主な暗号スイート:RC4、DES、3DES、AES)

❶クライアントは、共通鍵を作成する
❷クライアントは、共通鍵をサーバへ送信する
❸サーバは、その共通鍵でデータを暗号化して、クライアントへ送信する
❹クライアントは、共通鍵でデータを復号して、データを取得する

欠点:共通鍵交換時に、第3者に通信傍受される危険性あり

Ⅱ.公開鍵暗号方式(主な暗号スイート:RSA、ECC)

❶サーバは、公開鍵と秘密鍵を作成し、公開鍵を公開する
❷クライアントは、サーバの公開鍵でデータを暗号化して、サーバへデータを送信する
❸サーバは、サーバの秘密鍵でデータを復号して、データを取得する

欠点:鍵のビット長、平文が長いから、暗号、復号に時間がかかる

Ⅲ.共通鍵と公開鍵のハイブリット方式

現在主流であり、初回の共通鍵交換を安全に行うのが目的となります。

❶サーバは、公開鍵と秘密鍵を作成し、公開鍵を公開する
❷クライアントは、共通鍵を作成する
❸クライアントは、サーバの公開鍵で共通鍵を暗号化する
❹クライアントは、暗号化した共通鍵をサーバに送信する
❺サーバは、サーバの秘密鍵で共通鍵を復号して、共通鍵を取得する
❻サーバは、共通鍵でデータを暗号化して、クライアントに送信する
❼クライアントは、共通鍵でデータを復号して、データを取得する

サーバ認証の流れ

クライアントからサーバへのSSL/TLS暗号化通信において、上記の「Ⅲ.共通鍵と公開鍵のハイブリット方式」を使用した通信の流れを記載します。

Ⅰ.サーバ証明書の作成

❶サーバは、秘密鍵と公開鍵を作成する
❷サーバは、サーバ情報と秘密鍵を元にCSRを作成して、認証局(CA)へ申請する
❸CAは、CAの秘密鍵でCSRを暗号化(デジタル署名)して、サーバ証明書を作成する。それをサーバに送信する
❹サーバは、サーバ証明書をローカルに配置する

Ⅱ.サーバ証明書の真正性(改ざんの有無)チェック

❶クライアントからサーバに接続要求
❷サーバは、サーバ証明書をクライアントに送信する
❸クライアントは、証明書上の認証局に問い合わせる
❹CAは、クライアントにCAの公開鍵を送信する
❺クライアントは、CAの公開鍵でデジタル署名を復号する⇨復号できれば証明書の真正性が担保される

Ⅲ.共通鍵交換

❶クライアントは共通鍵を作成する
❷クライアントは、サーバの公開鍵で自分の共通鍵を暗号化する
❸クライアントは、暗号化した共通鍵をサーバに送信する
❹サーバは、サーバの秘密鍵で復号して、共通鍵を取得する

Ⅳ.共通鍵暗号によるデータのやり取り

❶クライアントは、データを共通鍵で暗号化する
❷クライアントは、暗号化したデータをサーバに送信する
❸サーバは、共通鍵でデータを復号して、データを取得する

CATEGORIES & TAGS

OpenSSL, SSL/TLS, 暗号, 認証,

Author:


  1. […] 参考:【SSL/TLS】サーバ認証の仕組み […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

むるし

インフラ系エンジニア。備忘録で色々書いていきます。
現在テックキャンプでフルコミット中。

年収訴求

CodeCamp

縛りなしWiFi

%d人のブロガーが「いいね」をつけました。