Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PKCS7_NOVERIFY定数の使い方

PKCS7_NOVERIFY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

PKCS7_NOVERIFY定数は、PHPのOpenSSL拡張機能において、PKCS #7形式のデータ処理時にデジタル署名の検証を行わないことを表す定数です。PKCS #7は、デジタル署名や暗号化されたメッセージのやり取りに使われる、セキュリティに関連する国際標準フォーマットの一つです。

この定数は、主にopenssl_pkcs7_verify()関数やopenssl_pkcs7_decrypt()関数などのオプション引数として利用されます。通常、PKCS #7形式のデータを受け取った際には、そのデータが改ざんされていないか、または信頼できる送信元からのものであるかを確認するために、含まれるデジタル署名の検証が行われます。

しかし、PKCS7_NOVERIFY定数を指定することで、これらの関数が署名検証のプロセスをスキップし、検証を行わずにPKCS #7データを処理するようになります。これは、例えば、署名自体の信頼性を確認する必要がなく、単にPKCS #7の構造から内部のコンテンツを取り出したい場合など、特定の限定的な状況で利用されることがあります。

この定数を使用すると、本来行われるべきセキュリティチェックの一部が省略されるため、意図しない脆弱性を生み出さないよう、その利用目的とリスクを十分に理解した上で慎重に適用する必要があります。特に、データの信頼性や整合性が非常に重要な場面では、安易な使用は避けるべきです。PKCS7_NOVERIFY定数は、特定の条件下で処理の柔軟性を提供するためのものですが、使用には細心の注意が求められます。

構文(syntax)

1<?php
2
3// PKCS7 署名の検証を行わないことを示す定数を関数に渡す例
4$result = openssl_pkcs7_verify('signature.p7s', PKCS7_NOVERIFY, 'certificate.pem', [], 'output.txt');
5
6?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

PKCS7_NOVERIFY は、PKCS#7 署名の検証を行わないことを示す整数定数です。この定数は、通常、OpenSSL 拡張の関数で、署名の検証プロセスをスキップしたい場合に利用されます。

関連コンテンツ