Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

公開鍵基盤(PKI)の仕組みと証明書の役割について

投稿日:2023年5月6日 更新日:

 

<目次>

(1) 公開鍵基盤(PKI)の仕組みと証明書の役割について
 記事の「目的」と「前提」
 (1-0) STEP0:全体像
 (1-1) STEP1:証明書の正当性チェック
 (1-2) STEP2:鍵交換

(1) 公開鍵基盤(PKI)の仕組みと証明書の役割について

記事の「目的」と「前提」

(目的)
・公開鍵基盤(Public Key Infrastructure)を用いた「クライアント」と「サーバー」間の通信の流れを理解する
・その流れの中で「証明書」が果たす役割を理解する
 
(前提)
・サーバー側で「証明書」の発行と公開準備が完了しており、クライアントからのアクセスを受け付けられる状態であること

(1-0) STEP0:全体像

「クライアント」と「サーバー」が暗号化通信を始めるためには、ざっくり以下の流れの処理があります。
 
・STEP1:証明書の正当性チェック
→信頼できる相手かどうか?を最初にチェックします
 
・STEP2:鍵交換
→チェックがOKなら、実際にデータのやり取りを行うための「データ鍵」の交換を行います
 
(図111)
以降はSTEP1とSTEP2について、それぞれもう少し掘り下げてみます。
 

(1-1) STEP1:証明書の正当性チェック

●①「クライアント」→「サーバー」にブラウザ経由でリクエストを送る
・「https://xxx.com」宛てにHTTPSリクエストを送ります。
・http[s]で送る事により、暗号化通信を形成する事を要求します
●②「サーバー」→「クライアント(ブラウザ)に「サーバー証明書」を送る
・証明書はアドレスの正当性を証明する
●③「クライアント」→「CA局」→・・・→「ルートCA局」と信頼性・有効性の確認を行う
・証明書自体の信用を担保する上位のCA局を辿っていく。
・辿った結果「サーバー証明書」に事前に組み込まれた「ルートCA」局にたどり着いたら、検証OKと判断
●④「クライアント」→「CA局」にCRLチェック(失効リストチェック)を行う
・OCSPプロトコル(Online Certificate Status Protocol)を使用
●⑤チェック完了したら、暗号化チャネルを形成が可能になる
 
(図121)

(例)
・アクセスしようとするサイトの証明書
→3段階になっています。
(図122)
・ご自身のPythonに下記のようなファイルがあると思います(Windowsの例)
C:\Users\[ユーザー名]\AppData\Roaming\Python\Python310\site-packages\certifi\ cacert.pem
 
(図123)
 
これがご自身の端末として信頼済みの証明書群であり、各CAの証明書がずらー-っと連結されています。
 

(1-2) STEP2:鍵交換

●①「クライアント」側で「データ鍵」を生成
・「データ鍵」はセッションの間中だけ、データを暗号化/複合化するのに使う
・「公開鍵」と「秘密鍵」の処理は一定の処理負荷(CPU)が掛かる
・よって、セッションの間は「データ鍵」を使用し、「データ鍵自体の暗号化」に公開鍵と秘密鍵を使う
●②「クライアント」→「サーバー」に「データ鍵」を暗号化して送信する
・暗号化は「サーバー証明書」の「公開鍵」を使って行う
●③「サーバー」側で「復号」を行う
・復号は「サーバー証明書」の「秘密鍵」を使って行う
・復号によって「データ鍵」を取り出せる
●④以降の通信は「データ鍵」を使って行う
 
(図131)
 

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)
-

執筆者:


comment

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

関連記事

Celonisの研修の概要・受講方法・学習支援コンテンツについて

  <目次> (1) Celonisの研修の概要・受講方法・学習支援コンテンツについて  (1-1) Celonisの研修概要  (1-2) Celonisの研修の分類について  (1-3) …

Windows10でWi-Fiが表示されない時の対処方法

  <目次> (1) Windows10でWi-Fiが表示されない時の対処方法  (1-1) 問題の整理  (1-2) 対策①:Wi-Fiサービスを有効化する  (1-3) 対策②:WLAN …

ユーザーストーリーマッピングとは?

  <目次> (1) ユーザーストーリーマッピングとは?  (1-1) 「ユーザーストーリーマッピング」の概要  (1-2) 「ユーザーストーリーマッピング」の利点  (1-3) 「ユーザー …

ワークフローを簡単に作成できるツールとその手順をご紹介(Zapier導入)

  <目次> (1) ワークフローを簡単に作成できるツールとその手順をご紹介(Zapier導入)  (1-1) STEP1:Zapierのアカウント作成  (1-2) STEP2:Zapie …

USBブートのやり方(Windows 10)と起動しない時の確認項目について

  <目次> (1) USBブートのやり方(Windows 10)と起動しない時の確認項目について  (1-1) USBブートとは?  (1-2) USBブートのやり方(手順)  (1-3) …

  • English (United States)
  • 日本語
Top