Skip to content
Latchkey

対称暗号化とは?1 つの共有鍵

対称暗号化は、暗号化と復号の両方に単一の共有鍵を使用するため高速であり、大量のデータの保護に適しています。

対称暗号化は、暗号技術のより古く、より高速な分野です。1 つの鍵がデータをロックもアンロックもするため、ディスク、ファイル、保管されたシークレットの暗号化のような大量暗号化に効率的です。その課題は配布です。両者が盗聴者に鍵を取られることなく、その鍵を共有しなければなりません。

仕組み

単一の秘密鍵が AES のようなアルゴリズムに投入されて平文を暗号文に変え、同じ鍵がそれを元に戻します。1 つの鍵が両方の仕事をこなすため、この操作は高速かつ低コストで、大量のデータに理想的です。

一般的なアルゴリズム

  • AES: 対称暗号化の現代的な標準。
  • ChaCha20: モバイルで広く使われている高速なストリーム暗号。
  • どちらも信頼され、公開されており、徹底的に分析されている。

鍵配布の問題

対称暗号化は高速ですが、両者が同じ鍵を持つ必要があります。その鍵を安全に共有することが難しい部分です。実際には、非対称暗号化が対称鍵を安全に交換するために使われ、その後、対称暗号化が大量のトラフィックを処理します。

CI/CD における対称暗号化

CI プラットフォームがシークレットを保管時に暗号化して保存するとき、その暗号化の大部分は対称であり、データ鍵自体は鍵管理サービスによって保護されます。暗号化された artifact や cache も、同じ速度上の理由から通常は対称暗号化を使用します。

なぜ非対称と組み合わせるのか

パイプライントラフィックを保護する TLS は、非対称暗号技術を使って対称セッション鍵に合意し、その後、実際のデータには対称暗号化に切り替えます。非対称の安全な鍵交換と、対称の速度の両方が得られます。

鍵と runner

シークレットを復号するために使われる対称鍵は、job の間、runner のメモリ上に現れます。ephemeral で隔離された runner(Latchkey の managed runner など)は、そのメモリを環境とともに解体するため、鍵は残りません。

重要なポイント

  • 対称暗号化は、暗号化と復号の両方に 1 つの共有鍵を使用します。
  • 高速で(AES、ChaCha20)、シークレットや artifact のような大量データに理想的です。
  • その鍵配布問題は、非対称暗号化と組み合わせることで解決されます。

関連ガイド