LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

データ暗号化は機密情報保護の最後の砦"Encryption as a Service"としてのVaultの使い方

さらに詳しく知るにはこちら

HashiCorp Vault

ラックが扱っているHashiCorp社の「Vaultヴォルト」は、マルチクラウド環境におけるシークレット管理製品としてすでに多くの企業で採用されています。その優れた機能についてはLAC WATCHの記事、Policy as Codeを実現するVaultの「Sentinel Integration」とはでもお伝えしてきました。

さらに詳しく知るにはこちら

HashiCorp Vault

今回は、Vaultの暗号化機能を活用し企業の重要データを暗号化する方法、"Encryption as a Service"(EaaS:暗号化ソリューション)としての使い方を紹介します。

データ暗号化は「最後の砦」

携帯端末の普及に伴って、金融や医療、行政などのセンシティブな個人情報を扱う分野でも、ネットを介したデータのやり取りが増加してきました。便利になるその反面、個人情報などの機密データのやり取りの増加に伴う情報漏えい事故も多発しています。原因は外部からの攻撃、内部関係者による情報抜き取りやハードディスクの持ち出しなどさまざまです。

これらの脅威に対して多くの企業は、「外部からの不正な侵入を防ぐ」、「機密情報の不正な持ち出しを監視する」といった対策を導入しています。しかし、セキュリティ対策に絶対はありません。例えばFirewallの未知の脆弱性を悪用したサイバー攻撃などの想定していなかった事態が起きると、容易に情報漏えい事故へとつながってしまいます。

そこで、万一重要な機密データが盗まれた場合に備えて、中身が読めない状態に暗号化しておき、実害が出ないように対策を講じる企業が増加しています。暗号化しておけば先に挙げた内部関係者による不正な持ち出しがあっても実害が出ません。データ暗号化はいわば情報漏えいに対する「最後の砦」と言えます。

暗号化キーを守る!重要なのは管理の仕組み

データの暗号化に際して重要なのが「暗号化キー」の管理です。暗号化キーが第三者の手に渡ってしまえばデータは漏えいの危険にさらされることになるため、「どこに保管するか」「ローテーションをどうするか」などを十分に検討する必要があります。

例えば、暗号化したデータと暗号化キーを同じ場所で保管していると、外部から攻撃を受けてデータと暗号化キーを一緒に盗まれた場合に簡単に解読されてしまう恐れがあります。
また、暗号化キーが攻撃者によって盗まれたことに気づかないと、気づいた時には情報漏えいの範囲が広範囲に及び、深刻な被害につながることにもなりかねません。

こうした事態を避けるため、暗号化キーには強固なアクセス制限を行い、特定の管理者以外はアクセスできない仕組みを作ることが大変重要です。

VaultのTransit Secret Engineを使ってデータ暗号化する

Vaultは「Key/Valueのような静的シークレットを安全に保管する」「シークレットに有効期限(TTL)を設定する」「必要な処理が終わったら直ちにシークレットを無効化(Revoke)する」といった管理、運用を行います。これらを司っているのがSecret Engineです。

このSecret Engineの中にTransit Secret Engineという機能があります。これはVaultがデータを暗号化・復号するメカニズムをAPIとして提供しているものです。

情報漏えい対策にはデータの暗号化が有効ですが、暗号化機能導入のために開発者は適切なデータ暗号化をどのように行うべきかを検討する必要があります。しかし、暗号化機能の導入には高度な技術が必要で、誰にでもできるわけではありません。

そんなときに便利なのがVaultのTransit Secret Engineです。

暗号化するデータをアプリケーションからVaultにHTTPSで送信するとVaultが暗号化し、そのデータをアプリケーションが保存する仕組みで、復号も同様の手順で行います。つまり、暗号化のプロセスはVaultが受け持ち、アプリケーションからはVaultにアクセスしてデータの暗号化・復号を行うだけです。結果として開発者の作業工数が削減できるだけでなく、暗号化ロジックを実装する必要がないため不具合や脆弱性が減少して品質の向上も期待できます。
このようにVaultのAPIを利用して暗号化の仕組みを導入すれば、EaaSとしての利用が可能になるわけです。

データ暗号化の流れ。暗号化データをアプリケーションからHTTPSでVaultに送信。Vaultが暗号化したデータをアプリケーションが保存する。
データ暗号化の流れ
データ復号の流れ。データベースから暗号化済データを取り出してアプリケーションがVaultに依頼。Vaultで復号化し、そのデータをアプリケーションへ渡す。
データ復号の流れ

Vaultの堅牢な暗号化キー管理の仕組みとは?

暗号化と復号をVaultに任せることで暗号化キーの管理もVaultに一元化されますので、アプリケーション自身が暗号化キーを持つことはありません。情報漏えいはVaultから暗号化キーが漏れさえしなければ発生しません。重要なのはVault上での暗号化キーの管理手法となります。

暗号化キーのローテーションについては、VaultではAPIをcronやCIパイプラインに組み込むことで自動化が可能です。全てをVaultに任せることによって開発や運用者の負荷が軽減され、ローテーションを行わずに長期間放置することによる情報漏えいリスクを低減することができます。

また、Vaultの暗号化キーはVault上に保管されていますが、この暗号化キーはマスターキーによってさらに暗号化されています。このマスターキーはVault上に保管されず複数に分割されるか、HSM(Hardware Security Module)に保管されます。万が一Vaultが攻撃されて暗号化キーを盗まれても、その暗号化キー自体がさらに暗号化されており、この暗号を解くためのマスターキーはVault上に存在しないため、非常に堅牢な仕組みになっています。

マスターキーで暗号化キーをさらに暗号化

「マスターキー」は以下2通りの方法で管理

  • シャミアの秘密鍵分散
    「マスターキー」が暗号化され5つのキーに分割される(5人のセキュリティ管理者が覚えておく)。
    そのうち3つがそろえば「マスターキー」が復号される。さらに「マスターキー」を使い「暗号化キー」が復号されVaultへアクセス可能となる。
    ※上記はデフォルト値であり、マスターキーの分割数、復号するために必要な数は設定変更可能
  • HSM上で保管
    「マスターキー」を堅牢な外部サーバーであるHSM上に保管する。

HSMにマスターキーを保管する仕組みを使用することにより、Vaultは米政府機関が利用するハードウェア及びソフトウェアの暗号モジュール要件に関する規定、FIPS140-2(2001年5月発行)の要件を満たすことができます。

なお、このHSMへマスターキーを保管する機能は商用版のVault(Vault Enterprise)のみで使用可能です。

最後に

さらに詳しく知るにはこちら

HashiCorp Vault

ここまで、EaaSとしてVaultの利用方法について紹介してきました。VaultはAPIで暗号復号に関する必要な機能を利用できるため、アプリケーション開発者にとって非常に利便性に優れています。むしろ暗号化の目的のためだけにVaultを導入されているお客様もいらっしゃいます。

さらに詳しく知るにはこちら

HashiCorp Vault

ますます複雑化する情報漏えいリスクへ対処するため、企業のデータ保護対策コストは膨らむばかりです。このような問題に対しても、VaultのEaaSとしての利用は適切なソリューションに成りえると考えます。データ暗号化や管理手法についてお悩みの方がいらっしゃいましたら、Vaultの暗号化機能の利用を検討してみるのも良いでしょう。

お問合せ

HashiCorp Vaultに関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ