0Pricing
Cryptology Academy · レッスン

鍵のライフサイクル:生成、保存、ローテーション、破棄

暗号鍵のライフサイクルにおける各段階と、それぞれのリスクを定義します。

「鍵のライフサイクル:生成、保存、ローテーション、破棄」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

暗号鍵のライフサイクル

すべての鍵は、生成 → 保管 → 配布 → 使用 → ローテーション → アーカイブ → 破棄という段階を経ます。いずれかの段階で問題が起きると、その鍵で保護されているすべてのデータが危険にさらされる可能性があります。

フェーズ1:鍵の生成

鍵は、暗号学的に安全な乱数源(CSPRNG)から生成する必要があります。鍵の長さはアルゴリズムの要件に合わせます(AES-256、RSA-4096、ECDSA P-256など)。エントロピーの低い情報から鍵を導出してはいけません。

フェーズ2:安全な保管

保存中の鍵は、鍵暗号化キー(KEK)で暗号化する必要があります。選択肢には、HSM、OSのキーチェーン(macOS Keychain、Windows DPAPI)、クラウドKMS、強力なパスフレーズで暗号化したファイルがあります。平文の鍵をコードやデータベースに保存してはいけません。

フェーズ3:鍵の配布

鍵はTLS経由で転送します。可能な場合は、鍵転送ではなく鍵共有(ECDH)を使用します。鍵の受信者を認証してください。誤った相手に鍵を渡すと、完全な侵害につながります。

フェーズ4:鍵の使用

鍵の用途を限定します。暗号化用、署名用、MAC用に、それぞれ別の鍵を使用してください(encryption ≠ signing ≠ MAC)。鍵の使用回数を記録します。多くの標準(X9.42など)では、鍵を使用できる最長期間である暗号期間(cryptoperiod)が定義されています。

フェーズ5:鍵のローテーション

暗号期間が終了する前、侵害が疑われる場合、または人員変更後に鍵をローテーションします。新しい鍵でデータを再暗号化するか、エンベロープ暗号化を使用してKEKだけをローテーションします。

エンベロープ暗号化のパターン

ランダムなデータ暗号化キー(DEK)でデータを暗号化します。DEKは、KMSに保管された鍵暗号化キー(KEK)で暗号化します。ローテーション時には、すべてのデータではなくDEKだけを再暗号化します。

import os
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

# Generate a fresh DEK for each data blob
dek = os.urandom(32)
aesgcm = AESGCM(dek)
nonce = os.urandom(12)
ciphertext = aesgcm.encrypt(nonce, b"sensitive data", None)
# DEK is then encrypted by KEK (stored in KMS) before persistence

フェーズ6:アーカイブ

古いデータを復号するために、一部の鍵をアーカイブする必要があります(長期バックアップ用の鍵など)。アーカイブした鍵はオフラインで保管し、通常はm-of-nの管理者アクセスが必要なハードウェアトークンなどに保存します。

フェーズ7:破棄

鍵の破棄は暗号学的に安全な方法で行う必要があります。メモリを上書きし、HSMの鍵スロットを破壊し、物理メディアを裁断します。証明書の失効は、公開鍵における鍵の破棄に相当するPKIの仕組みです。

鍵の侵害への対応

鍵の侵害が疑われる場合は、直ちに失効させてCRLを公開し、新しい鍵へローテーションし、影響を受けるすべてのデータを再暗号化し、不正利用がないかログを監査し、侵害に関する規制に従って影響を受ける当事者に通知します。

理解度チェック

鍵のローテーションにおけるエンベロープ暗号化の主な利点は何ですか。

レッスンのまとめ

鍵のライフサイクルは、生成から破棄までの7つの段階にわたります。エンベロープ暗号化は、DEK(データの暗号化)とKEK(鍵の管理)を分離し、効率的なローテーションを可能にします。破棄は暗号学的に安全な方法で行う必要があります。侵害への対応は迅速に行い、監査する必要があります。

よくある質問

「鍵のライフサイクル:生成、保存、ローテーション、破棄」レッスンは無料ですか?

はい。「鍵のライフサイクル:生成、保存、ローテーション、破棄」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「鍵のライフサイクル:生成、保存、ローテーション、破棄」で何を学びますか?

暗号鍵のライフサイクルにおける各段階と、それぞれのリスクを定義します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「鍵のライフサイクル:生成、保存、ローテーション、破棄」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 鍵のライフサイクル:生成、保存、ローテーション、破棄
  2. HSMのアーキテクチャとPKCS#11インターフェース
  3. AWS KMS、GCP Cloud KMS、Azure Key Vault
  4. 鍵の預託、バックアップ、復旧手順
← Cryptology Academyに戻る