非対称暗号化とは?公開鍵と秘密鍵のペア
非対称暗号化は、数学的に結び付いた鍵ペアを使用します。誰もが暗号化に使える公開鍵と、所有者だけが復号に使う秘密鍵です。
公開鍵暗号とも呼ばれる非対称暗号化は、対称暗号化には解決できない問題、すなわち見知らぬ相手同士で鍵を安全に交換するという問題を解決します。各当事者は共有するための公開鍵と、秘密に保つための秘密鍵を持ちます。それは HTTPS、コード署名、そしてパイプラインの artifact が改ざんされていないことを検証するデジタル署名を支えています。
鍵ペアの仕組み
公開鍵で暗号化されたデータは、対応する秘密鍵でのみ復号でき、その逆もまた然りです。公開鍵は自由に公開できます。秘密鍵が秘密に保たれている限り、システムは成立します。この非対称性こそがすべての鍵となる仕組みです。
2 つの主な用途
- 機密性: 公開鍵に対して暗号化し、秘密鍵の保持者だけが読めるようにする。
- 真正性: 秘密鍵で署名し、誰もが公開鍵で検証できるようにする。
- 鍵交換: 平文で送信することなく対称鍵に合意する。
遅いが強力
非対称の操作は対称のものよりはるかに遅いため、対称セッション鍵の交換やデータの署名など、控えめに使われます。いったんセッション鍵が合意されると、高速な対称暗号化が大量のトラフィックを引き継ぎます。
CI/CD における非対称暗号化
パイプライントラフィックを保護する TLS は、信頼を確立するために非対称暗号技術に依存します。artifact、コンテナイメージ、commit に署名する署名鍵は非対称です。秘密鍵が署名し、誰もが公開鍵で検証でき、来歴を証明します。
秘密鍵を保護する
秘密鍵は最も貴重な宝です。もし漏洩すれば、攻撃者はあなたになりすましたり、署名を偽造したりできます。秘密の署名鍵は、しばしばハードウェアセキュリティモジュールや管理された鍵サービスに保持され、スケジュールに従ってローテーションされます。
署名と ephemeral な runner
パイプラインが artifact に署名するとき、署名操作は runner 上で行われます。秘密鍵を管理されたサービスに保持し、隔離された ephemeral な runner(Latchkey の managed runner など)を使用することで、署名材料の露出を制限します。
重要なポイント
- 非対称暗号化は、暗号化と署名のために公開鍵/秘密鍵のペアを使用します。
- デジタル署名を通じて、安全な鍵交換と来歴を可能にします。
- 秘密鍵が重要なシークレットであり、しばしばハードウェアで守られます。