理系学生日記

おまえはいつまで学生気分なのか

鍵の種類

業界に関する暗号化についてもろもろやっているんですが、この界隈、なかなか今まで知らなかった概念がでてきて混乱しがちなので、整理した。

まず前提として、暗号化には鍵が必要で、その鍵の管理にはメチャクソ高いセキュリティが求められるとかで HSM (Hardware Security Module) を使うことになってる。 HSM っていうのはその名前のとおり、一般にはハードウェアとして用意される鍵管理専用のアプライアンスなんだけど、内部で暗号化に使う鍵を保持してくれる。悪いヤツに筐体ごと盗まれてメモリを読み込まれても鍵の内容が分からないように対策されていたりもするし、鍵を保持するだけでなくて、その鍵を使った暗号化/復号化機能を提供したりする。 だけど、その HSM はベンダ毎に存在していて、これといった標準仕様もないみたい。それでいて、それぞれの HSM で使ってる鍵の呼び名が違うので、ちゃんと把握しないと「あれ、このベンダの HSM の鍵とこのベンダの鍵の仕組みって同じじゃね?」ってことに気付けない。

** MFK Master File Key。 HSM 上で保持されるすべての鍵を守るための鍵のこと。LMK (Local Master Key) や、KSK (Key Storage Key) と同義。 HSM 外では使用されてはならない、というか、HSM より外にそもそも出してはいけない。HSM 上で管理される鍵はすべて、この MFK を使って暗号化される。

** ZCMK Zone Control Master Key。 決済トランザクションに関わる、アクワイアラやイシュア等で共有されることを前提とした鍵。この鍵は「暗号化に使われる鍵」を暗号化するという役割を果たすので、KEK (Key Encrypting Key) とも呼ばれる。この鍵も HSM 上で管理される以上、MFK で暗号化される。

** CEK Contents Encryption Key。 実際にメッセージを暗号化させるための鍵。ZCMK で暗号化される。

** 参考 - PIN Transaction Keys Explained by Greg Stone - wikipedia:hardware security module - PCI Compliance: The Definitive Guide - Abhay Bhargav - Google ブックス - HSM超入門講座 「HSMとは?」 -- Sarion Systems Research