仕組み
pverify は GPKI(政府認証基盤)向けの電子署名検証エンジンを pure Rust で
実装し、WebAssembly にコンパイルしたものです。PDF(PAdES)および
CMS(CAdES)の電子署名について、署名・コンテンツ照合・信頼パス(証明書
チェーン)・有効期間・失効状態を検証し、ETSI の判定区分
(TOTAL_PASSED / TOTAL_FAILED /
INDETERMINATE)と事実列挙型のレポートを返します。
プライバシー
暗号検証はすべてお使いのブラウザ内(WebAssembly)で完結し、 署名・証明書・文書ファイルがサーバへ送信されることはありません。
例外は失効確認のための CRL 取得です。「CRL をオンライン取得して失効確認する」
を有効にしたときのみ、CRL 配布点の URL が当サイトの中継
(プロキシ)を経由します。これは配布点の多くが http:// 配信かつ
CORS 未許可で、ブラウザから直接取得できないためです。中継を経由するのは
失効情報を取得する URL だけで、署名や文書そのものは送信されません。
失効確認(CRL / OCSP)
証明書が失効していないかは、まず CRL(証明書失効リスト)で確認します。CRL で 確認できない場合は OCSP も試みます。中継が取得するのは、当ツールが同梱する ルート証明書に対応する許可済みの配布元のみです(許可リスト方式)。
許可リスト外、配布元の停止、過去時刻の指定などで失効情報を取得できなかった
範囲は IndeterminateNoCrl 等になります。これは「情報を取得できなかった」
という事実の報告であり、エラーや失効を意味しません。なお、自己署名のルート
証明書(信頼の起点)は失効確認の対象外です。
オプション
- 同梱ルート証明書を併用する:信頼アンカを自分で用意しなくても 検証できます。自分で用意したアンカだけで検証したい場合は OFF にします。
- CRL をオンライン取得して失効確認する:上記の中継経由で CRL を 取得します。OFF の場合、失効確認は同梱・添付済みの情報の範囲で行います。
- 検証時刻:既定は現在時刻です。過去の時点での有効性を確認したい 場合に変更してください。
ソースコード・ライセンス
オープンソース(Apache-2.0 OR MIT)。 digital-go-jp/pverify — v0.7.0。