メインコンテンツまでスキップ

署名検証の内部動作

Verify API は、以下の手順で署名検証を行います。 ステップの途中で検証に失敗した場合、そこで検証を打ち切り、エラーもしくは検証結果を返します。

  • 証明書チェーンの確認
    • 対象の証明書が、公的個人認証サービス(JPKI)認証局によって発行された証明書であることを確認します。
    • 証明書チェーンの確認に失敗した場合は API がエラー扱いとなります。エラーコードERROR_REASON_UNSUPPORTED_CERTIFICATE となります。
      • Verify API が対応しない証明書を検証しようとした場合にもこのエラーになります。詳しくは対応する証明書をご参照ください。
  • 有効期限の確認
    • 対象の証明書が有効期限内であることを確認します。
    • 有効期限の検証に失敗した場合、検証結果コード RESULT_CERTIFICATE_EXPIRED が返されます。
  • 署名値の確認
    • 署名値が、証明書に記載された公開鍵に対応する秘密鍵によって作成されたものであることを確認します。
    • 署名値の確認に失敗した場合、検証結果コード RESULT_SIGNATURE_MISMATCH が返されます。
  • 失効確認
    • 証明書の失効確認を行います。
    • 失効確認に失敗した場合、検証結果コード RESULT_CERTIFICATE_REVOKED が返されます。

上記のステップを全て通過した場合、検証結果コード RESULT_OK が返されます。

対応するハッシュ関数

ダイジェストの作成に利用できるハッシュ関数は、CRYPTREC 暗号リスト(電子政府推奨暗号リスト)で推奨されるハッシュ関数のみです。 PocketSign Verify API では、CRYPTREC LS-0001-2022を参照しており、このうち以下のハッシュ関数のみに対応しています。

  • SHA-256
  • SHA-384
  • SHA-512