Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PKIの説明など
Search
Takahiro Hirata
August 27, 2021
Programming
0
33
PKIの説明など
公開鍵基盤(PKI)やそれにまつわるタームについての説明
Takahiro Hirata
August 27, 2021
Tweet
Share
More Decks by Takahiro Hirata
See All by Takahiro Hirata
GPT-4oをAzureで試してみた!
checche
0
230
Azure Machine Learning 使ってみた
checche
0
15
LiveCoding入門
checche
0
250
よさそう! AWS CDK
checche
0
75
Other Decks in Programming
See All in Programming
Kubernetes for Data Engineers: Building Scalable, Reliable Data Pipelines
sucitw
1
180
今日で分かる!カスタムコップの作り方
krpk1900
2
360
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
110
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
10
2.2k
Synchronizationを支える技術
s_shimotori
1
140
2万ページのSSG運用における工夫と注意点 / Vue Fes Japan 2024
chinen
3
1.3k
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
370
Honoの来た道とこれから
yusukebe
19
3k
gopls を改造したら開発生産性が高まった
satorunooshie
8
230
カラム追加で増えるActiveRecordのメモリサイズ イメージできますか?
asayamakk
3
1.1k
Piniaの現状と今後
waka292
5
1.4k
Vue.js学習の振り返り
hiro_xre
2
130
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Done Done
chrislema
181
16k
Making Projects Easy
brettharned
115
5.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Testing 201, or: Great Expectations
jmmastey
38
7k
Teambox: Starting and Learning
jrom
132
8.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
GraphQLの誤解/rethinking-graphql
sonatard
66
9.9k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.8k
Side Projects
sachag
452
42k
Transcript
PKIの説明など 平田 恭嘉
自己紹介 名前: 平田 恭嘉 (ヒラタ タカヒロ) HN: たーくん/checche/ちぇちぇ
所属: 株式会社オプト AIソリューション開発部 20新卒 最近の仕事: ディスプレイ広告の効果予測(深層学習など) 領域準MVPを頂きました 最近の技術スタック: Data science: PyTorch, 機械学習>ベイズ, 画像系 Backend: Django, FastAPI, apollo-server(GraphQL) Frontend: Vue.js Infra: AWSいろいろ Times: #times_checche Like: 音楽(鑑賞/演奏), 服, ビール, 漫画 株式会社Digeon: 製品開発(AI/Web), 受託, 教育事業など 副業メンバー超募集中 (Python,Go,Vue,ML,DS,etc)
情報セキュリティの概要 ♯ 情報セキュリティとは 情報セキュリティは、情報セキュリティマネジメントシステム(ISMS)に関する国際規格ISO/IEC 27000と、その国内規格 化であるJIS Q 27000で次のように定義されている。 「情報の機密性、完全性及び可用性を維持すること。注記
さらに、真正性、責任追跡性、否認防止、信頼性などの特 性を維持することを含めることもある。」 ♯ 物理的セキュリティと論理的セキュリティ ﹣ 物理的セキュリティ 物理的セキュリティとは建物や設備などを対象とした物理的なセキュリティのこと。 例: 耐震設備、電源設備、入退室管理設備、ケーブル類の物理的保護 ﹣ 論理的セキュリティ 論理的セキュリティとは物理的セキュリティ以外のすべてのセキュリティ対策のことです。さらに3つに分類する ことができる。 https://www.kikakurui.com/q/Q27000-2019-01.html
論理的セキュリティ ♯ 論理的セキュリティとは物理的セキュリティ以外のすべてのセキュリティ対策のことである。さらに3つに分類することが できる。 ♯ システム的セキュリティ 情報システムやネットワークにおける技術的なセキュリティ対策 ♯ 管理的セキュリティ
組織や情報システムの運用管理面におけるセキュリティ対策 ♯ 人的セキュリティ 雇用契約におけるセキュリティ対策、教育、懲戒手続など
情報セキュリティの3つの特性 注) エンティティとは、物質的な実体に限らず実存する概念という意味である。 情報セキュリティの文脈においては、情報を使用する組織及び人、情報を扱う設備、ソフトウェア及び物理的媒体などを意味します。 ♯ 機密性 (Confidentiality)
「認可されていない個人,エンティティ又はプロセスに対して,情報を使用させず,また,開示しない特性。」 つまり、権限をもったものだけが許可された範囲内で活動できるようにする特性です。 確保方法: アクセス制御、認証、暗号化 ♯ 完全性 (Integrity) 「正確さ及び完全さの特性。」 つまり、処理結果に欠落や改ざんなどが発生しないようにする特性です。 確保方法: ハッシュ関数やディジタル署名 ♯ 可用性 (Availability) 「認可されたエンティティが要求したときに,アクセス及び使用が可能である特性。」 つまり、必要なときに正常なサービスを提供できる状態を維持する特性です。 確保方法: 冗長化、十分なリソースの確保、バックアップ
付加的な4つの特性 ♯ 真正性 (Authenticity) 「エンティティは,それが主張するとおりのものであるという特性。」 確保方法: 本人であることを識別/認証する。 ♯ 責任追跡性
(Accountability) 動作内容を一意に追跡できることを確実にする特性です。 確保方法: エンティティを一意に識別できるように、IDなどを設けて、そしてログを取る。 ♯ 否認防止 (Non-Repudiation) 「主張された事象又は処置の発生,及びそれらを引き起こしたエンティティを証明する能力。」 つまり、事象を否定されないように証明できることです。 確保方法: ディジタル署名、タイムスタンプ ♯ 信頼性 (Reliability) 「意図する行動と結果とが一貫しているという特性。」 つまり、処理結果に期待された効果との整合が取れていることを確実にする特性です。 確保方法: 保守点検、バグや脆弱性への対処
共通鍵暗号 ♯ 概要 共通鍵暗号(common key cryptosystem) 対称鍵暗号(symmetric key encryption) などの呼び方がある。
暗号化(Encryption)と復号化(Decryption)に同じ鍵(共通鍵)を 使用する。 暗号化/復号化を同じエンティティが行う場合などに使う。 ♯ デメリット 中間者攻撃(man-in-the-middle attack)を受けやすい (鍵配送問題) あるコンテンツを10人に送りたいとき10人分の共通鍵を用意 し、10人分の暗号化が必要 10人が相互に通信する場合45個用意する。 https://www.anoopcnair.com/pki-basics-intune-pki-made-e asy-with-joy-1/
中間者攻撃 ♯ 中間者攻撃(man-in-the-middle attack; MITM) 通信途中に割り込み、通信内容の盗聴や改ざんを行う攻撃 対策するには、何らかの方法で公開鍵(共通鍵)の完全性を保証しなければならない。 Aさん Bさん
Cさん 暗号化して安全に通信しているつもり ③C-B共通鍵をおくる ①Cが妨害 ⑤C-B鍵で暗号化したデータ ④Cが妨害 ②A-B共通鍵をもらう ⑦A-B鍵で暗号化したデー タ ⑥復号化しデータの盗聴/改ざんを 行う
公開鍵暗号 ♯ 概要 公開鍵暗号(Public-key cryptography) 非対称鍵暗号(Asymmetric Key Encryption) などの呼び方がある。 エンティティごとにキーペアを作成し、公開鍵を暗号化、秘密
鍵を復号化に用いる。 まず、公開鍵は全エンティティ間で共有する。 送信するエンティティは、送信先のエンティティに対応した公 開鍵で暗号化し、受信したエンティティは自身の秘密鍵で復 号化する。 ♯ 秘密鍵は外部に公開しないため受信者以外が復 号化することは困難 https://www.anoopcnair.com/pki-basics-intune-pki-made-e asy-with-joy-1/
ディジタル署名 ♯ 概要 あるデータをハッシュ化し、秘密鍵で暗号化したもの。 送信側エンティティは自身の秘密鍵で署名する。 秘密鍵は送信者しか持っていないため、これで発信元の信頼性が証明 される。 ♯ 送信者 ﹣
1. データのハッシュ値を計算 ﹣ 2. ハッシュを秘密鍵で暗号化し、それを署名とする。 ﹣ 3. 署名とデータを送る ♯ 受信者 ﹣ 1. 送信者の公開鍵で署名を復号化し、ハッシュ値を取得 ﹣ 2. 受信データのハッシュ値を計算 ﹣ 3. 1と2が同じであれば真正性が証明される。 https://www.ipa.go.jp/security/pki/024.html
ディジタル署名と暗号化の組み合わせ ♯ データを受信者の公開鍵で暗号化したうえで、それに対しデジタル署名を行うという感じ。 ﹣ 1. データを送信先(受信者)の公開鍵で暗号化 (公開鍵暗号方式) ﹣ 2.
暗号化されたデータのハッシュ値の計算 (デジタル署名) ﹣ 3. 2を送信者の秘密鍵で暗号化し、それを署名とする。 (デジタル署名) ﹣ 4. 署名と1で暗号化されたデータを送る。 ﹣ 5. 送信者の公開鍵で署名を復号化し、ハッシュ値を取得 (デジタル署名) ﹣ 6. 暗号化されたデータのハッシュ値を計算 (デジタル署名) ﹣ 7. 5と6が同じであれば真正性が証明される。 (デジタル署名) ﹣ 8. データを秘密鍵で復号化し、データを得る。 (公開鍵暗号方式) 暗号化され たメッセージ 暗号化され たメッセージ 暗号化され たメッセージ 暗号化され たメッセージ メッセージ メッセージ
公開鍵基盤 ♯ 公開鍵基盤(Public Key Infrastructure; PKI) 公開鍵と秘密鍵は誰でも生成可能である。 したがって、公開鍵暗号技術による認証や署名において、鍵の正当性が保証されていることが重要。 鍵の正当性は心の所有者であることが適切に証明できている状況をいう。
これを実現するために、第三者(CA)が署名して発行するディジタル証明書が用いられている。 PKIはディジタル証明書と、それを発行/管理する機関であるCAによって築かれる相互認証の基盤である。
ディジタル証明書 ♯ 概要 個人や組織に関する電子式の身分証明書。 認証局(Certificate Authority; CA)と呼ばれる第三者機関によって発行される。 ディジタル証明書はX.509に定義されている。 公開鍵の正当性を証明する役割を持つことから、公開鍵証明書とも呼ばれる。 ♯
用途に応じていろいろ呼び方がある ﹣ クライアント証明書 ﹣ サーバ証明書 ﹣ SSL証明書 ﹣ S/MIME証明書
証明書を見てみましょう Macの場合 Keychain Access.app -> Certificates からいろいろ見られます。
証明書チェーン 大変わかりやすい資料 https://qiita.com/TakahikoKawasaki/items/4c35ac38c52978805c69 以下、大変わかりやすい資料から流用
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン もしかして、 無限に証明書が必要になる?
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
証明書チェーン
まとめ ♯ 情報セキュリティとは 「情報の機密性、完全性及び可用性を維持すること。注記 さらに、真正性、責任追跡性、否認防止、信頼性などの特 性を維持することを含めることもある。」 ♯ 公開鍵暗号 送信元が送信先エンティティの公開鍵で暗号化、受信した(送信された)エンティティの秘密鍵で復号化
♯ ディジタル署名 送信元エンティティが自身の秘密鍵で署名を作る。受信したエンティティは公開鍵で署名検証。 ♯ ディジタル証明書 公開鍵の正当性を証明をする。