Japan

関連リンク

関連リンク

関連リンク

関連リンク

サイト内の現在位置

暗号鍵管理のガイドラインNIST SP800-57 part1のご紹介

NECセキュリティブログ

2021年8月13日

こんにちは。NEC サイバーセキュリティ戦略本部のU松(ハンドルネーム)です。今回は暗号鍵管理に関するガイドラインであるNIST SP800-57 part1 (rev5)のご紹介です。暗号技術は通信内容の秘匿、なりすまし・改ざん対策など幅広く利用され、我々がインターネットを安全に利用する上で欠かせない技術です。その暗号技術を使用して重要なデータを確実に保護するためには強力な暗号アルゴリズムの使用や適切な実装のほかに適切な暗号鍵管理も欠かせません。暗号鍵の適切な管理は基本的なセキュリティ対策ですが、これがおろそかになっていると如何に強力な暗号を使用していたとしてもその安全性は損なわれてしまいます(玄関にどれだけ頑丈な鍵(錠)を設置していてもそれを開ける鍵を植木鉢の下に隠しておいては意味がないのと同じです)。
NIST SP800-57はpart1~3の3部構成となっています。part1では暗号鍵管理の基本的なガイダンス、part2では組織内で暗号鍵管理を確立するためのフレームワークやセキュリティ計画の要求事項に関するガイダンス、part3では現在利用可能な暗号メカニズムを使用する際のガイダンスがそれぞれ記載されています。今回はpart1のご紹介になります。part1は暗号鍵の生成から破棄までのライフサイクル全体を通じた暗号鍵管理のガイダンスが記されており、暗号鍵管理システムを構築する際の参考になります。本記事ではその主要なポイントをご紹介します。NIST SP800-57 part1 rev5は2020年にrev4を改訂する形で発行され、暗号鍵管理システムを設計・運用する際の考慮事項に関する記述や用語の定義などが改訂されています。
以下、登場する単語はIPA提供のNIST SP800-57 part1の翻訳に準じています(例:非対称鍵暗号(公開鍵暗号)の秘密鍵をプライベート鍵と呼称)。

暗号鍵の用途の限定と暗号利用期間の設定

NIST SP800-57では暗号鍵の用途を限定し、用途ごとの鍵に暗号利用期間(後述)を設定すべきだとしています。はじめに用途の限定についてですが、一つの暗号鍵は基本的に一つの用途にのみ使用すべきです。つまり一つの鍵で暗号化も署名も行うような運用はすべきではないということです。用途を一つに限定すればその鍵が危殆化した場合の影響範囲を抑えることができ、また片方の用途では危殆化防止の観点から破棄すべき鍵も別の用途ではまだ必要であるため破棄できないといった問題を回避できます。
次に暗号利用期間についてですが、暗号利用期間は特定の暗号鍵を正規の利用者(ここでは人、組織、デバイス、プロセスなど)が利用することを認可されている期間、または特定のシステムの鍵が有効である期間と定義されています。NIST SP800-57では鍵ごとにこの期間を設定し、その期間内で利用すべきとしています。一つの暗号鍵を長く使い続ければその分暗号鍵が解読されるリスクも高まります。そのため、こうしたリスクを抑えるために暗号鍵を利用する期間は制限する必要があります(他にも一つの鍵が漏えいした場合の暴露量を抑えるためなどの理由があります)。基本的に暗号利用期間は短いほど安全ですが、頻繁に鍵生成が発生する分のコストを考える必要があります。暗号利用期間は暗号鍵を取り巻く様々な要素を総合して決定する必要があります。例えば、暗号メカニズムの強度、実装形態、データのセキュリティ寿命(データの機密性、完全性、可用性などを保護する必要がある期間)、暗号によって保護されるデータの機微性などです。
NIST SP800-57では暗号鍵を目的ごとに19のタイプに分類しており、それぞれについて推奨する暗号利用期間を理由とともに記載しています。以下は19のタイプごとの推奨期間の表です。

鍵タイプ 暗号利用期間
作成者使用期間 受領者使用期間
署名プライベート鍵 1~3年 -
署名検証公開鍵 数年(鍵長に依存)
認証対称鍵 2年以下 作成者使用期間+3年以下
認証プライベート鍵 1~2年
認証公開鍵 1~2年
データ暗号化対称鍵 2年以下 作成者使用期間+3年以下
鍵ラッピング対称鍵 2年以下 作成者使用期間+3年以下
RBG対称鍵 SP 800-90を参照 -
マスター対称鍵/鍵導出対称鍵 約1年 -
鍵配送プライベート鍵 2年以下
鍵配送公開鍵 1~2年
鍵合意対称鍵 1~2年
静的鍵合意プライベート鍵 1~2年
静的鍵合意公開鍵 1~2年
一時的鍵合意プライベート鍵 1回の鍵合意トランザクション
一時的鍵合意公開鍵 1回の鍵合意トランザクション
認可対称鍵 2年以下
認可プライベート鍵 2年以下
認可公開鍵 2年以下

非対称鍵暗号の鍵ペアの場合、それぞれが暗号利用期間を持ちます。暗号保護の適用(例:暗号化、署名生成)に使用される鍵の暗号利用期間は作成者使用期間、保護された情報への処理(例:復号、署名の検証)に使用される鍵の暗号利用期間は受領者使用期間と呼ばれます。基本的に両者は同時に始まりますが、受領者使用期間は作成者使用期間を超える場合があります(作成者使用期間内に作成された署名を検証する必要があるなど)。また対称鍵暗号(共通鍵暗号)の場合も同様の期間を一つの鍵に定義できます。
上記はあくまで推奨値ですが、暗号利用期間を決定する上で参考になる情報です。
暗号鍵を管理する際は、用途を一つに限定し、適切な暗号利用期間を設定するようにしましょう。

鍵に必要な保護および保証

NIST SP800-57では、セキュリティサービス(暗号化や署名といったサービス)を成り立たせるために必要な暗号鍵(や鍵に関連する情報)の保護について説明し、それらの保護が適切に提供されるべきとしています。例えば、プライベート鍵が漏えいすればその鍵で処理を行ったすべての情報が危険にさらされるので、プライベート鍵には機密性(適切な権限を持った者だけが情報にアクセスできること)保護が必要といった具合に鍵にはその鍵が提供するサービスを成り立たせるために必要な保護があります。保護は次のように分類されています。

  • 機密性保護(適切な権限を持った者だけが情報にアクセスできる)
  • 完全性保護(認可されていない方法でデータが変更されていないことを示す)
  • 可用性保護(認可された者がデータを利用したい時にそのデータへの信頼できるアクセスを確保)
  • 関連性保護(正規の鍵やその他のパラメータが正規のアプリケーションまたは装置で正規のデータを保護する目的で使用されることを保証)
  • ドメインパラメータ及び公開鍵の有効性の保証(パラメータや鍵が算術的に正しいことを保証)
  • プライベート鍵保有の保証(公開鍵に対応するプライベート鍵を所有していることを保証)
  • 鍵情報の保護期間(鍵の機密性、完全性を維持する必要がある期間。暗号利用期間も含まれる。)

当然、鍵タイプによって必要な保護は変わります(例えば非対称鍵暗号のプライベート鍵には機密性保護が必要ですが公開鍵には必要ありません)。NIST SP800-57では鍵タイプごとに(配布および保管中に)必要な保護を記載しています。すべてをご紹介するほど紙面の余裕がないので一部をご紹介すると、例えばソース認証(作成者認証)、完全性認証、否認防止機能の提供のために使用される署名プライベート鍵の場合、必要な保護は機密性保護、完全性保護、関連性保護(当該鍵に対して保護すべき関連性を指し、この例の場合使用方法またはアプリケーション、ドメインパラメータ、署名検証公開鍵との関連性)、プライベート鍵保有の保証で、鍵情報の保護期間は生成から暗号利用期間終了までとなっています。NIST SP800-57ではこれらの保護を提供する方法についても解説しています。
鍵管理を行う際は鍵ごとに必要な保護を特定し、確実に提供できるようにしましょう。

暗号鍵管理のライフサイクルと各フェーズで必要な機能

NIST SP800-57では暗号鍵管理のライフサイクルを運用前フェーズ、運用フェーズ、運用後フェーズ、破棄フェーズの4つに分けています。

  • 運用前フェーズ:暗号鍵(や関連するパラメータ)が通常の暗号処理にはまだ利用できない(生成されていないこともある)フェーズ
  • 運用フェーズ:暗号鍵(や関連するパラメータ)が利用可能なフェーズ
  • 運用後フェーズ:暗号鍵(や関連するパラメータ)が通常利用はされないがアクセスは可能(復号など保護された情報を処理する目的で使用可能)なフェーズ
  • 破棄フェーズ:暗号鍵が利用できないフェーズ

暗号鍵管理のライフサイクルでは、運用前フェーズから始まり破棄フェーズまで遷移していきますが、遷移前のフェーズに戻ってはいけません。各フェーズにおいて暗号鍵は次のいずれかの状態をとります。

  • 活性化前状態:鍵が作成されたが使用が許可されていない状態
  • 活性化状態:鍵を用いて、情報の暗号化、復号、署名、検証等の処理を行う状態
  • 非活性化状態:暗号化や署名など暗号保護を行うために鍵を使用してはならないが復号や検証など暗号保護された情報を処理するために当該鍵を使用する可能性がある状態
  • 一時停止状態:危殆化の可能性や鍵を所有する人が休暇中などの理由で当該鍵を使った暗号保護処理等が停止される状態
  • 危殆化状態:鍵が漏えいするなどして危殆化した状態
  • 破棄状態:鍵が破棄され存在しない状態。ただし、監査のため鍵の状態遷移記録や鍵名といったデータが保持される場合もある。

各フェーズと各鍵状態の組み合わせ、遷移に関しては次の図の通りです(NIST SP800-57 part1 rev5 p.91 Figure 5を参考に作成)。

下記は図の各遷移の簡単な説明になります(鍵タイプごとに遷移の様子は異なりますので詳細はNIST SP800-57 part1を参照してください)。

  • ①:
    暗号鍵は生成されると直ちに活性化前状態へ遷移する
  • ②:
    将来的に当該鍵が必要ないとされた場合、破棄状態へ遷移しなければならない
  • ③:
    当該鍵の機密性や完全性に疑念が生じた場合、危殆化状態へ遷移しなければならない
  • ④:
    当該鍵が使用可能となった場合、活性化状態へ遷移しなければならない
  • ⑤:
    (鍵タイプによっては)当該鍵が危殆化することなく暗号利用期間を満了するか鍵が交換された場合、破棄状態へ遷移しなければならない
  • ⑥:
    当該鍵の機密性や完全性に疑念が生じた場合、危殆化状態へ遷移しなければならない
  • ⑦:
    何らかの理由により当該鍵が一定期間使用されない場合、一時停止状態へ遷移しなければならない
  • ⑧:
    暗号利用期間の満了や鍵の交換などの理由により当該鍵を暗号保護用途に使用しなくなった場合、非活性化状態へ遷移しなければならない(ただし危殆化を除く)
  • ⑨:
    (鍵タイプによっては)一時停止状態にある当該鍵が暗号利用期間(作成者使用期間)を満了した場合、破棄状態へ遷移しなければならない(ただし危殆化を除く)
  • ⑩:
    一時停止の理由がなくなり、かつ暗号利用期間(作成者使用期間)を満了していない場合、活性化状態へ遷移しなければならない
  • ⑪:
    当該鍵の機密性や完全性に疑念が生じた場合、危殆化状態へ遷移しなければならない
  • ⑫:
    (鍵タイプによっては)危殆化しておらず、かつ一時停止の理由がなくなった場合、非活性化状態へ遷移する(例えば、作成者使用期間には達したが、受領者使用期間には達していない場合)
  • ⑬:
    当該鍵の機密性や完全性に疑念が生じた場合、危殆化状態へ遷移しなければならない
  • ⑭:
    当該鍵が不要(例えば、復号用途)になった場合、破棄状態へ遷移しなければならない
  • ⑮:
    危殆化した当該鍵は破棄状態へ遷移しなければならない(公開鍵の場合は、当該鍵の使用が許可されなくなった時点、あるいは必要とされなくなった時点で破棄状態に遷移するべき)

NIST SP800-57では上記のように暗号鍵管理のライフサイクルを定義した上で、フェーズごとに暗号鍵(と関連する情報)の管理に必要な機能について説明しています。こちらも紙面の関係上すべてをご紹介することはできませんが、例えば運用前フェーズでは初期化に関する機能、鍵確立機能、(PKI認証局などへの)鍵登録機能など、運用フェーズでは(暗号鍵等が何らかの理由で失われた場合であっても運用継続性を維持するための)バックアップストレージや鍵復元機能など、運用後フェーズでは鍵登録解除機能、鍵破棄機能などです。ただし運用方法によっては必要のない機能もあります。実際の運用方法を考慮し、それぞれのフェーズで必要な機能を適切に実装することが重要です。

暗号鍵管理システムを設計・運用する際の考慮事項

暗号鍵管理システムを設計・運用する際は、上記の暗号鍵への保護や各フェーズでの機能以外に追加で考慮すべき事項が5つあります。

  • 1.
    アクセス制御
    認可された利用者のみが暗号鍵管理機能を利用できるようにし、それ以外の者は利用できないようにするためです。
  • 2.
    棚卸リスト管理
    ここでの棚卸リストとは、使用する暗号鍵やその証明書(公開鍵の場合)について記載されたリストのことです。各鍵や証明書の有効期間の管理や危殆化のチェックなどに役立ちます。
  • 3.
    説明責任
    これは暗号鍵管理に関わる者の責任を明確化することと、鍵管理に関する操作の記録、監査を指します。これにより不正の抑止が可能となり、また不正が発生した場合は日時や関与した者の特定が容易になります。
  • 4.
    監査
    これは暗号鍵管理システムがポリシーや手順通りに運用されているか、保護メカニズムが期待するセキュリティレベルを満たしているかといった監査を指します。3の説明責任の記録の監査も含みます。暗号鍵管理システムに限らず、こうした監査を実施することはセキュリティ上重要です。
  • 5.
    鍵管理システムの生存可能性
    これは緊急時に可用性を維持するための対策を指します。暗号化は機密性を提供する一方で、何らかの理由(例えば自然災害)により暗号鍵や鍵管理システムにアクセスできない場合、暗号化により保護された情報の可用性を低下(あるいは全く使えない状態に)させてしまいます。このような事態を回避するために復号に必要な鍵のバックアップや緊急時対応計画の立案などが必要です。

暗号鍵管理システムを構築する際は、上記を考慮した適切な対策を実行する必要があります。

まとめ

今回はNIST SP800-57 part1についてご紹介しました。内容はいずれも抽象的ですが、暗号鍵管理システムを構築する際の良いガイドラインになります。本記事ではその主要なポイントをご紹介しました。詳細はNIST SP800-57 part1をお読みいただければと思いますが、本記事がその理解の一助となれば幸いです。

参考情報

執筆者プロフィール

U松(ユーマツ)※ハンドルネーム
セキュリティ技術センター セキュリティ実装技術チーム

NECグループのセキュア開発・運用を推進。主にOS・ミドルウェアの要塞化ツールの開発、セキュリティ関連ドキュメントの作成を担当。
情報処理安全確保支援士(RISS) 保持。

執筆者の他の記事を読む

Escキーで閉じる 閉じる