web-dev-qa-db-ja.com

暗号化キーのローテーション-それはどのように機能しますか?

暗号鍵をローテーションするプロセスが単純な素人の言葉でどのように機能するかを十分に明確に説明する重複を見つけられませんでした。

私は秘密/公開キー暗号化がどのように機能するかを知っています。対称暗号化がどのように機能するかは知っていますが、秘密キーの回転がどのように機能するか理解できません。

暗号化されたコンテンツをすべて復号化し、新しい秘密鍵を生成してから、すべてを再暗号化しますか?または、新しい秘密鍵を生成し、データの一部のみを新しい鍵で復号化して暗号化するので、全体を復号化するには2つの鍵(新旧)が必要ですか?

4
user3834459

簡単に言えば、暗号化キーのローテーションは以下を意味します。

  1. 新しいキーを生成
  2. 新しいキーを使用して、古いキーを使用して暗号化されたすべてのデータを再暗号化します
  3. 古い暗号化データと古い暗号化キーを削除する

鍵のローテーションは、TLSなどではなく、保存時に暗号化されるデータに一般的に適用されます。これは、古い鍵で暗号化されている古いものすべてに対処する必要があるためです。

6
gowenfawr

ローテーションの意味は、データ所有者のセキュリティポリシーによって異なります。

キーライフサイクルステートチャートを使用して、キー管理システムでキーが頻繁に管理される方法を理解するのに役立ちます。典型的なキーライフサイクルは次のようになります。

  1. 生成済み(新規、まだ使用されていません)
  2. アクティブ(暗号化/復号化)
  3. 非アクティブ(復号化のみ)
  4. 引退(鍵は完全に破棄されます)

この例によれば、すべての新しいキーの開始状態は生成されます。使用する準備が整ったら(おそらく、他のシステムを使用するように構成した後)、アクティブ化の状態変更を実行して、アクティブにプロモートします。キーは暗号化と復号化に使用できます。

たとえば、データ所有者が毎年キーをローテーションすることを望んでいるとします。キーがアクティブ化されてから1年間、非アクティブ化イベントをスケジュールします。時間になると、イベントが発生し、キーが非アクティブ状態に移行します。システムもおそらく同時に新しいキーを生成し、それをアクティブにします。それが重要なローテーションです。キーが非アクティブでも、システムは古いデータを復号化するために引き続きそれを使用できますが、それ以上の暗号化には使用できません。そのために使用できるのは新しいキーだけです。

最後に、データを破棄したい場合は、Retirementイベントがあり、キーがRetired状態に移行し、ビットが消去されます。バックアップからキーを復元する能力などに完全に依存しているため、データの復元は非常に困難になります。キーマネージャーが内部のキー暗号化キーのローテーションを実行すると、すべてが終わります。古いキーがなくなり、古いバックアップは役に立たなくなります。 。

もちろん、これが唯一の方法ではありません。 「疑わしい」、「失われた」、「侵害された」、またはその両方のキーに対して追加の状態を定義できます。状態遷移に関するあらゆる種類のルールを作成できます。

ルールは、キーがある状態から別の状態にいつどのように遷移するか、どの遷移が合法的で、いつ遷移するかについて定義されています。また、キーが危険にさらされた場合、他の多くの障害復旧タスクの中で、すべてのデータを新しいキーで再暗号化する必要があるというルールも表示されます。

一部の組織では、キーローテーションによって、ローテーションされたキーを非アクティブ状態に変更する必要があり、新しいデータを暗号化するために新しいバージョンのキーを生成する必要があります。新しいキーがアクティブになると、古いキーは非アクティブになります。古いデータは、キーが廃棄されるまで同じ古いキーで暗号化されたままになり、その後古いキーは破棄されます。この方法では、古いデータを復号化してから新しいキーで再暗号化する必要はありません。データを使用するアプリケーションは、データが暗号化されたときに使用されたものと同じバージョンのキーを使用する必要があります。

他の組織では非アクティブな状態がない場合があり、キーローテーションでは古いキーを廃止し、以前に暗号化されたすべてのデータを再暗号化する必要があります。

5
John Deters