PHP 5.6.x における OpenSSL 関連の変更ストリームラッパーが、SSL/TLS を使っている場合のピア証明書とホスト名の検証にデフォルトで対応暗号化されたすべてのクライアントストリームで、ピア検証がデフォルトで有効になりました。 デフォルトでは、OpenSSL のデフォルト CA バンドルを使ってピア証明書を検証します。 たいていの場合は、正しい SSL 証明書を持つサーバーと通信するならこれを変更する必要はありません。 OpenSSL が、よく知られた CA バンドルを使うように設定されているからです。
デフォルトの CA バンドルを上書きすることもできます。
openssl.cafile あるいは openssl.capath を設定すればグローバルに変更でき、コンテキストオプション
一般的にはおすすめできませんが、
コンテキストオプション
証明書のフィンガープリント
証明書のフィンガープリントの抽出と、その検証に対応しました。
新たに追加された openssl_x509_fingerprint 関数が、
X.509 証明書からフィンガープリントを抽出します。また、
SSL ストリームコンテキスト
に二つのオプションが追加されました。
デフォルトの暗号の更新PHP がデフォルトで使う暗号が更新され、 » Mozilla cipher recommendations に基づいた、よりセキュアなリストになりました。 リストにない例外は、anonymous Diffie-Hellman ciphers と RC4 です。
新しい定数
デフォルトでの圧縮の無効化
SSL/TLS の圧縮が、デフォルトで無効になりました。これは、CRIME 攻撃への対応です。
PHP 5.4.13 で新たにコンテキストオプション
サーバーの暗号の優先が可能に
SSL コンテキストオプション ネゴシエート済みのプロトコルと暗号へのアクセス
暗号化ストリームでネゴシエート済みのプロトコルと暗号へのアクセスが、
stream_get_meta_data あるいは
stream_context_get_options でできるようになりました。
これは、SSL コンテキストオプション
上の例の出力は以下となります。 array(4) { ["protocol"]=> string(5) "TLSv1" ["cipher_name"]=> string(20) "ECDHE-RSA-AES128-SHA" ["cipher_bits"]=> int(128) ["cipher_version"]=> string(11) "TLSv1/SSLv3" } 暗号化ストリームサーバーでの前方秘匿性に関する新たなオプション暗号化クライアントストリームはすでに前方秘匿性に対応しています。 というのも、一般に前方秘匿性は、サーバーが制御するものだからです。 PHP の暗号化サーバーストリームが使っている証明書は前方秘匿性に対応しており、 何もしなくても有効になっています。 しかし、前方秘匿性に関してより決め細やかな制御をしたり、 互換性に関する問題に対応したりするために、 新たな SSL コンテキストオプションがいくつか追加されました。
SSL/TLS のバージョンの選択
SSL や TLS の、特定のバージョンを指定できるようになりました。SSL コンテキストオプション
SSL コンテキストオプション
openssl_get_cert_locations の追加openssl_get_cert_locations 関数が追加されました。 この関数は、PHP が CA バンドルを探す際のデフォルトの場所を返します。
上の例の出力は以下となります。 array(8) { ["default_cert_file"]=> string(21) "/etc/pki/tls/cert.pem" ["default_cert_file_env"]=> string(13) "SSL_CERT_FILE" ["default_cert_dir"]=> string(18) "/etc/pki/tls/certs" ["default_cert_dir_env"]=> string(12) "SSL_CERT_DIR" ["default_private_dir"]=> string(20) "/etc/pki/tls/private" ["default_default_cert_area"]=> string(12) "/etc/pki/tls" ["ini_cafile"]=> string(0) "" ["ini_capath"]=> string(0) "" } SPKI のサポート
署名された公開鍵およびチャレンジ (SPKAC) の生成や抽出、そして検証のサポートが追加されました。
新たに追加された関数 openssl_spki_new、
openssl_spki_verify、
openssl_spki_export_challenge そして
openssl_spki_export で、
SPKAC が HTML5 の
|