SCVP【Server-Based Certificate Validation Protocol】
概要

クライアントが証明書を自力で検証する場合、発行元の認証局(CA:Certificate Authority)の署名を検証し、その認証局に証明書を発行した上位認証局の署名を検証する作業を、信頼できるルート認証局(ルートCA)に到達するまで繰り返す必要がある。さらに証明書の有効期限や失効状態も個別に確認しなければならない。
SCVPでは、クライアントがあらかじめ信頼できるSCVPサーバを登録しておき、こうした検証作業をまとめて依頼することができる。サーバは証明書連鎖(証明書パス)をたどりながら検証を実施し、その結果をクライアントへ返送する仕組みである。検証に必要な情報として、「証明書失効リスト」(CRL:Certificate Revocation List)や「OCSP」(Online Certificate Status Protocol)による失効確認の結果なども、SCVPサーバ側で参照される。
クライアント側にはSCVPサーバへ検証を依頼し、応答を受け取る機能があればよく、証明書連鎖の探索や失効確認といった複雑な処理を自前で実装する必要がなくなる。証明書検証の機能は複雑になりやすく、実装に欠陥があれば攻撃者に悪用される危険もあるため、この処理を専門のサーバに委ねることで、クライアント側の実装を簡素化し、安全性を高めることができる。
SCVPサーバは証明書を発行する認証局自身が運用する場合のほか、検証機能に特化した「検証局」(VA:Validation Authority)によって運用される場合も想定される。証明書の発行業務と検証業務を別の事業者が担うことで、検証処理を専門の事業者にまとめて任せる運用形態も可能になる。クライアントとSCVPサーバの間の通信は、暗号化や署名によって保護され、検証結果が改竄されていないことが確認される。
計算能力や記憶容量に制約のあるモバイル端末やIoT機器などでは、証明書連鎖の探索や大量の認証局情報の保持が難しい場合がある。SCVPを利用すれば、こうした環境でも検証処理をサーバに委ねることで、公開鍵基盤(PKI)に基づくWeb通信のSSL/TLS暗号化などを利用しやすくなる。