【PHP8.x】openssl_spki_verify関数の使い方

作成日: 更新日:

openssl_spki_verify関数は、指定されたSPKI (Subject Public Key Info) のデジタル署名を検証する関数です。SPKIとは、公開鍵とそれに付随する情報(例えば、公開鍵の所有者を示すデータやオプションのチャレンジ文字列など)をひとまとめにした構造で、一般的にはBase64形式でエンコードされて扱われます。

この関数は、入力として与えられたSPKI文字列に含まれるデジタル署名が、そのSPKI内に含まれる公開鍵を使用して正しく生成されたものであるかを検査します。これにより、SPKIの内容が第三者によって途中で改ざんされていないことや、その公開鍵が正規のものであることの信頼性を確認することが可能になります。特に、Webアプリケーションにおいてクライアントから送られてくる公開鍵情報(例えば、WebAuthn認証で使用されるクレデンシャル)の正当性をサーバー側で確認する際に重要な役割を果たします。

また、SPKIに埋め込まれる可能性のある「チャレンジ文字列」を指定することで、特定の要求に対する応答としてSPKIが生成されたかを検証することもできます。検証に成功した場合はtrueを、失敗した場合はfalseを返します。この関数を利用することで、公開鍵を用いた認証や通信のセキュリティを強化し、不正な情報によるリスクを低減できます。

基本的な使い方

構文(syntax)

<?php
function openssl_spki_verify(string $spki, string $publicKey): bool
{}
?>

引数(parameters)

string $spki, string $publicKey

  • string $spki: 検証するSPKI(Subject Public Key Info)データ
  • string $publicKey: SPKIを検証するための公開鍵

戻り値(return)

bool

openssl_spki_verify 関数は、SPKI (Subject Public Key Info) の署名を検証します。検証が成功した場合は true を返し、失敗した場合は false を返します。

【PHP8.x】openssl_spki_verify関数の使い方 | いっしー@Webエンジニア