情報セキュリティマネジメント 2018年 秋期 午前(科目A) 問39
問題文
システム監査において、電子文書の真正性の検証に電子証明書が利用できる公開鍵証明書取得日、電子署名生成日及び検証日の組合せはどれか。
なお、公開鍵証明書の有効期間は4年間とし、当該期間中の公開鍵証明書の更新や失効は考慮しない前提とする。

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
公開鍵証明書の有効期間【情報セキュリティマネジメント解説】
正解の理由
電子署名の真正性を公開鍵証明書(公開鍵と持ち主を結びつける電子的な証明書)で検証するには、当該証明書が「署名を作成した時点」と「検証を行う時点」のいずれにも有効である必要があります。本問では公開鍵証明書の有効期間は取得日から4年間で、更新や失効は考えないと明示されています。選択肢ウは、取得日が2015年4月1日で有効期間が2019年4月1日(+4年)ころまで続き、電子署名生成日2015年5月1日と検証日2018年12月1日の両方がその期間内に収まるため、証明書を使って真正性を確認できます。
(他の選択肢は、署名時より前の取得日や、検証時に既に有効期限切れであるなどの理由で使えません。)
(他の選択肢は、署名時より前の取得日や、検証時に既に有効期限切れであるなどの理由で使えません。)
※用語補足:電子署名(electronic signature:署名者の秘密鍵で作るデータ)/公開鍵証明書(public key certificate:公開鍵と所有者情報を結びつける証明)
解法ステップ
- 各行の「公開鍵証明書取得日」に4年を足して、有効期間の終了年月日を求める。
(簡単に言うと「取得日 ≤ 日付(署名/検証) ≤ 取得日+4年」の関係を満たすか確認) - 電子署名生成日が有効期間内かを確認する(署名作成時に証明書が既に発行されていること)。
- 検証日が有効期間内かを確認する(提示された条件では失効や更新を無視するため、検証時点でも有効であることが必要)。
- 以上を満たす組合せが正解。
実際の計算(ウの例):
- 取得日 2015-04-01 → 有効期間は概ね 2015-04-01 から 2019-04-01(+4年)
- 署名 2015-05-01 は有効期間内
- 検証 2018-12-01 も有効期間内 → 両方満たすので可
選択肢別の誤答解説
- ア:取得日 2012-03-01(有効は〜2016年3月頃)
電子署名生成日 2014-08-01 は有効内だが、検証日 2018-12-01 は有効期限を過ぎているため不可。 - イ:取得日 2014-01-01(有効は〜2018年1月頃)
署名 2016-12-01 は有効内だが、検証日 2018-02-01 は期限を過ぎているため不可。 - ウ:取得日 2015-04-01(有効は〜2019年4月頃)
署名 2015-05-01、検証 2018-12-01 ともに有効期間内であるため可。 - エ:取得日 2016-08-01(有効は〜2020年8月頃)
署名生成日が 2014-07-01 と、証明書取得より前になっている。取得前にその証明書で生成された署名は、その証明書で検証できないため不可。
よくある誤解
- 「署名時に有効だったら検証時は関係ない」
→ 正式な検証では、検証時にも有効であるか、あるいは署名時点を示す信頼できるタイムスタンプがあるかが重要です。本問ではタイムスタンプ等の補助がない前提なので、検証時の有効性も必要です。 - 「有効期限は年だけ見れば良い」
→ 年だけでなく月日単位で確認します。発行日からちょうど4年をどう解釈するか(開始日を含むか等)に注意が必要ですが、本問のような設問では「取得日+4年」の範囲内か否かで判断します。 - 「証明書は更新されているはず」との思い込み
→ 問題文で「更新や失効は考慮しない」とある場合は、与えられた取得日だけで判断します。実務では更新や失効の記録も確認します。
補足コラム
- タイムスタンプ(timestamp):署名の作成日時を第三者が証明する仕組みです。信頼できるタイムスタンプがあれば、証明書が署名時に有効であったことを後で示せるため、検証時に証明書が期限切れでも真正性を確認できる場合があります。
- 失効確認方法:CRL(Certificate Revocation List:失効証明書リスト)、OCSP(Online Certificate Status Protocol:オンラインで失効状況を照会する仕組み)などで、検証時に失効していないかも確認します。
- 職場での運用イメージ:署名を受け取ったら「(1)署名時刻の記録があるか、(2)当該証明書の取得日と有効期限、(3)失効状況(CRL/OCSP)といった情報を合わせて確認する」という流れで運用すると実務での誤りを減らせます。
簡単な日付計算の例(参考。Python例):
from datetime import datetime, timedelta
issue = datetime(2015,4,1)
expiry = datetime(issue.year+4, issue.month, issue.day)
print(expiry) # 2019-04-01
FAQ
Q. 証明書が検証時に期限切れでも署名の真正性を保証できますか?
A. 信頼できるタイムスタンプがあり、署名時に証明書が有効だったことが証明できれば可能です。タイムスタンプがない場合は検証時の有効性が必要です。
A. 信頼できるタイムスタンプがあり、署名時に証明書が有効だったことが証明できれば可能です。タイムスタンプがない場合は検証時の有効性が必要です。
Q. 失効(撤回)されていたらどうなる?
A. 証明書が失効している場合、検証は原則失敗します。失効確認はCRLやOCSPで行います。
A. 証明書が失効している場合、検証は原則失敗します。失効確認はCRLやOCSPで行います。
Q. 「取得日」と「有効開始日」は同じですか?
A. 多くの場合は同じですが、仕様によっては有効開始日(notBefore)と取得日が異なることもあります。設問では「取得日」=有効開始日として扱います。
A. 多くの場合は同じですが、仕様によっては有効開始日(notBefore)と取得日が異なることもあります。設問では「取得日」=有効開始日として扱います。
関連キーワード: 公開鍵証明書、有効期間、電子署名、タイムスタンプ、失効確認(CRL/OCSP)

\ せっかくなら /
情報セキュリティマネジメントを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

