情報処理安全確保支援士試験 平成29年度 秋期 午後2 問2 設問3
問2 データ暗号化の設計に関する次の記述を読んで、設問1〜4に答えよ。
(略)
〔暗号方式の検討〕
(略)
(略)
(2)Hサーバに対する負荷分散
Hクライアントは、、複数のHサーバにAPI-Xの実行要求を振り分ける負荷分散機能をもっている。負荷分散機能の概要は次のとおりである。
・Hクライアントに、複数のHサーバのIPアドレス又はホスト名を登録する。
・Hクライアントは、登録されたHサーバのうち稼働しているHサーバに、ラウンドロビン方式でAPI-Xの実行要求を送信する。
(略)
(略)
〔DBサーバ及びHSMサーバの構成設計〕
X社は、K2システムのサーバ構成について、Y社に次の要件で設計を依頼した。
・DBサーバをアクティブ・スタンバイの2台構成にする。
・災害対策として、製品DのDBレプリケーション機能を用いて、X社データセンタのDBからバックアップセンタのDBに、定期的にデータをコピーする。
・HSMサーバは、K2システム以外のシステムのDBサーバを含めた全DBサーバからも共有できるようにする。
Y社が設計したK2システムのサーバ構成を図4に示す。
Y社は、K2システムにおけるDB及び表領域の作成手順を次のように設計した。
(ⅰ)HSMサーバ1だけを稼働させ、他のHSMサーバは停止させておく。
(ⅱ)DBサーバ1だけを稼働させ、他のDBサーバは停止させておく。
(ⅲ)製品D-1上で、DBαを作成する。
(ⅸ)製品D-1上で、DBβを作成する。
(ⅴ)製品D-1上で、DBαに対応する表領域1を作成する。
(ⅵ)製品D-1上で、DBβに対応する表領域2を作成する。
(ⅶ)全てのHSMサーバ及び全てのDBサーバを停止させる。
(ⅷ)鍵ストアファイル1を、鍵ストアファイル2及び鍵ストアファイル3にコピーする。
(以下、省略)
DB及び表領域の作成手順中、(ⅰ)の代わりにHSMサーバ1とHSMサーバ2の両方を稼働させておいた場合、(ⅱ)から(ⅷ)までのどの手順がエラーとなるか。一つ選び、記号で答えよ。また、エラーが発生するAPI-Xのコマンド及びAPI-Xのエラーの原因を、それぞれ35字以内で述べよ。なお、コマンドについては図3の形式、図3中の用語、及び図4中の用語を用い、鍵はどのDBのものかも記述すること。ここで、最初のAPI-Xの実行要求は、Hサーバ1に送信される。:(ⅴ)/暗号化(DBαのDBデータ鍵、DBαのDBマスタ鍵ID)/DBαのDBマスタ鍵が鍵ストアファイル2に存在しないこと
(ⅰ)〜(ⅷ)の手順を図3「K2システムのDB暗号方式におけるDBの初期化処理の概要」に沿ってトレースしてみましょう。
(ⅰ)HSMサーバ1だけを稼働させ、他のHSMサーバは停止させておく。
HSMサーバ1とHSMサーバ2の両方を稼働させます。
(ⅱ)DBサーバ1だけを稼働させ、他のDBサーバは停止させておく。
特に問題なさそうです。
(ⅲ)製品D-1上で、DBαを作成する。
- 業務アプリケーション管理者から製品D-1にDB作成コマンドを送信する。
- 製品D-1からHクライアント1に鍵生成コマンドを送信する。
- Hクライアント1からラウンドロビンで選ばれたHサーバ1に、鍵生成(データ鍵ID)コマンドを送信する。
- Hサーバ1は製品H-1に鍵生成(データ鍵ID)コマンドを送信する。
- 製品H-1はDBαのデータ鍵を生成し、マスタ鍵によるデータ鍵の暗号化を行い、データ鍵IDとともに鍵ストアファイル1に保存する。
- 製品H-1からHサーバ1、Hクライアント1を介して製品D-1にデータ鍵IDを送信する。
- 製品D-1はデータ鍵IDをマスタ鍵IDとして保存する。
ここも特に問題なさそうです。DBαのデータ鍵は、製品H-1の鍵ストアファイル1に保存されました。
(ⅸ)製品D-1上で、DBβを作成する。
- 業務アプリケーション管理者から製品D-1にDB作成コマンドを送信する。
- 製品D-1からHクライアント1に鍵生成コマンドを送信する。
- Hクライアント1からラウンドロビンで選ばれたHサーバ2に、鍵生成(データ鍵ID)コマンドを送信する。
- Hサーバ2は製品H-2に鍵生成(データ鍵ID)コマンドを送信する。
- 製品H-2はDBβのデータ鍵を生成し、マスタ鍵によるデータ鍵の暗号化を行い、データ鍵IDとともに鍵ストアファイル2に保存する。
- 製品H-2からHサーバ2、Hクライアント1を介して製品D-1にデータ鍵IDを送信する。
- 製品D-1はデータ鍵IDをマスタ鍵IDとして保存する。
ここも特に問題なさそうです。DBβのデータ鍵は、製品H-2の鍵ストアファイル2に保存されました。
(ⅴ)製品D-1上で、DBαに対応する表領域1を作成する。
- 業務アプリケーション管理者から製品D-1に表領域作成コマンドを送信する。
- 製品D-1からHクライアント1に乱数生成コマンドを送信する。
- Hクライアント1からラウンドロビンで選ばれたHサーバ1に、乱数生成コマンドを送信する。
- Hサーバ1は製品H-1に乱数生成コマンドを送信する。
- 製品H-1は乱数を生成し、Hサーバ1、Hクライアント1を介して製品D-1に乱数を送信する。
- 製品D-1は乱数をDBデータ鍵として保持する。
- 製品D-1はHクライアント1に暗号化(DBデータ鍵、DBマスタ鍵ID)コマンドを送信する。
- Hクライアント1からラウンドロビンで選ばれたHサーバ2に、暗号化(DBデータ鍵、DBマスタ鍵ID)コマンドを送信する。
- Hサーバ2は製品H-2に暗号化(DBデータ鍵、DBマスタ鍵ID)コマンドを送信する。
ここは問題になりそうです。
この処理はDBαに関する処理ですが、製品H-2の鍵ストアファイル2にはDBαのDBデータ鍵は保存されていません。DBαのDBデータ鍵は製品H-1の鍵ストアファイル1に保存されています。
したがって、ここでエラーが発生します。
回答は、DBデータ鍵とするかDBマスタ鍵とするか、又はそれぞれ鍵IDとするか悩みどころです。ただ重要なのはDBαとDBβの処理が、ラウンドロビンによりHサーバが振り分けられていることですので、そこがポイントとして記載されていればOKかと思われます。
Y社は、DB暗号方式において、Hクライアント及びHサーバの仕様では複数システムのDBサーバから1台のHSMサーバを共有することはできないとX社に伝えた。そこで、X社が開発元のQ社に問い合わせたところ、Q社からは、来月リリースされる新しいバージョンのHクライアント及びHサーバに次の機能を追加するという回答を得た。
・Hクライアントを一意に識別する識別子(以下、HクライアントIDという)を設定し、Hサーバに鍵生成を要求する際に従来のデータ鍵IDにHクライアントIDを付け加えて送信する。
・Hサーバは、Hクライアントから送信された鍵生成要求を処理する際、HクライアントIDと従来のデータ鍵IDを結合した、新たなデータ鍵IDをパラメタとして、鍵生成のAPI-Xを呼び出す。Hクライアントは、新たなデータ鍵IDをDBマスタ鍵として製品Dに返す。
複数の業務システムのDBサーバが1台のHSMサーバを共有する場合の構成を、図5に示す。
【出典:情報処理安全確保支援士試験 平成29年度 秋期 午後2問2(一部、加工あり)】
Hクライアントにおいて、HクライアントIDをデータ鍵IDに付け加える機能がなかった場合、特定の条件においてDB作成がエラーになる。その条件を40字以内で述べよ。:複数のHクライアントが送信したデータ鍵IDが重複した場合
あるパラメータ(ここではデータ鍵ID)に、別のパラメータ(ここではHクライアントID)を追加するということは、元のパラメータだけでは一意(ユニーク)にすることができずに、パラメータを追加した組み合わせでユニークになるということです。
したがって、データ鍵IDが重複する場合にDB作成がエラーとなるということを回答すればいいでしょう。
図3で、データ鍵IDを生成するのはHクライアントであり、Hクライアントが複数存在する場合、データ鍵IDが重複することは考えられます。重複したデータ鍵IDにより、製品HにおいてDB作成エラーとなると想定できますが、それをHクライアントに通知し、データ鍵IDの再生成を行う処理でも対応可能なのかなと思ってしまいます。