module OpenSSL::SSL

要約

目次

定数

定数

OP_ALL -> Integer[permalink][rdoc]

SSL 通信で各種のバグ回避コードをすべて有効にするフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_CIPHER_SERVER_PREFERENCE -> Integer[permalink][rdoc]

暗号スイートの選択においてサーバ側の優先順位を優先するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

このフラグを立てていない場合はクライアント側の優先順位を優先します。

OP_MICROSOFT_SESS_ID_BUG -> Integer[permalink][rdoc]
OP_NETSCAPE_CHALLENGE_BUG -> Integer
OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG -> Integer
OP_SSLREF2_REUSE_CERT_TYPE_BUG -> Integer
OP_MICROSOFT_BIG_SSLV3_BUFFER -> Integer
OP_MSIE_SSLV2_RSA_PADDING -> Integer
OP_SSLEAY_080_CLIENT_DH_BUG -> Integer
OP_TLS_D5_BUG -> Integer
OP_TLS_BLOCK_PADDING_BUG -> Integer
OP_DONT_INSERT_EMPTY_FRAGMENTS -> Integer

SSL 通信での各種バグ回避コードを有効にするフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

通常は OpenSSL::SSL::OP_ALL でこれらすべてを有効にします。特定のフラグのみ無効にしたい場合は例えば

ctx.options = OP_ALL & ~OP_DONT_INSERT_EMPTY_FRAGMENTS

などとします。

OP_EPHEMERAL_RSA -> Integer[permalink][rdoc]

RSA を使う場合に常に一時的 RSA 鍵を使うことを意味するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NETSCAPE_CA_DN_BUG -> Integer[permalink][rdoc]

Netscape の CA の DN のエンコーディングバグを回避するコードを有効にします。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG -> Integer[permalink][rdoc]

[TODO]

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_COMPRESSION[permalink][rdoc]

OpenSSL による通信の圧縮を禁止します。

OpenSSL::SSL::SSLContext#options= で利用します。

[SEE_ALSO] https://bugs.ruby-lang.org/issues/5183

OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION -> Integer[permalink][rdoc]

セッション再ネゴシエーションをした場合にサーバ側で常に新しいセッションを生成するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_SSLv2 -> Integer[permalink][rdoc]

SSL v2 の使用を禁止するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_SSLv3 -> Integer[permalink][rdoc]

SSL v3 の使用を禁止するフラグです。 OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_TICKET -> Integer[permalink][rdoc]

RFC4507bis チケットによる stateless session resumption を無効化します。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_TLSv1 -> Integer[permalink][rdoc]

TLS v1 の使用を禁止するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_TLSv1_1 -> Integer[permalink][rdoc]

TLS v1.1 の使用を禁止するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_NO_TLSv1_2 -> Integer[permalink][rdoc]

TLS v1.2 の使用を禁止するフラグです。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_PKCS1_CHECK_1 -> Integer[permalink][rdoc]

[TODO]

OpenSSL::SSL::SSLContext#options= で利用します。

OP_PKCS1_CHECK_2 -> Integer[permalink][rdoc]

[TODO]

OpenSSL::SSL::SSLContext#options= で利用します。

OP_SINGLE_DH_USE -> Integer[permalink][rdoc]

一時的 DH 鍵を使うとき毎回鍵を生成するフラグです。

このオプションは「安全でない」素数を使って DH パラメータを生成したときに「small subgroup attack」を防ぐために必要です。「安全な」素数を使った場合は必ずしも必要なオプションではありませんが、このオプションを使うことは推奨されています。

OpenSSL::SSL::SSLContext#options= で利用します。

OP_SINGLE_ECDH_USE -> Integer[permalink][rdoc]

[TODO]

OpenSSL::SSL::SSLContext#options= で利用します。

OP_TLS_ROLLBACK_BUG -> Integer[permalink][rdoc]

バージョンロールバック攻撃の検出を無効にします。

OpenSSL::SSL::SSLContext#options= で利用します。

通常は使わないでください。

鍵交換時に、クライアントとサーバで利用可能なプロトコルのバージョンをやりとりします。クライアントによってはサーバが送ったバージョンを無視します。そのようなクライアントと通信する必要がある場合このオプションを有効にします。

VERIFY_CLIENT_ONCE -> Integer[permalink][rdoc]

OpenSSL::SSL::SSLContext#verify_mode= で指定できるフラグです。

サーバーモードであるかクライアントモードであるかによって意味がことなります。

サーバーモード: 最初の TLS/SSL ハンドシェイクの時だけクライアントに証明書を要求します。このフラグは VERIFY_PEER フラグとともに使われなければなりません。

クライアントモード: 無視されます。

VERIFY_FAIL_IF_NO_PEER_CERT -> Integer[permalink][rdoc]

OpenSSL::SSL::SSLContext#verify_mode= で指定できるフラグです。

サーバーモードであるかクライアントモードであるかによって意味がことなります。

サーバーモード: クライアントが証明書を返さない場合に TLS/SSL ハンドシェイクを即座に終了させます。このフラグは VERIFY_PEER フラグとともに使われなければなりません。

クライアントモード: 無視されます。

VERIFY_NONE -> Integer[permalink][rdoc]

OpenSSL::SSL::SSLContext#verify_mode= で指定できるフラグです。

サーバーモードであるかクライアントモードであるかによって意味がことなります。

サーバーモード: クライアントに証明書を要求せず、クライアントは証明書を送り返しません。

クライアントモード: サーバから受け取った証明書は検証されますが、失敗してもハンドシェイクは継続します。ハンドシェイクの結果は OpenSSL::SSL::SSLSocket#verify_result で取得できます。

このフラグは単独で用いられるべきです。

VERIFY_PEER -> Integer[permalink][rdoc]

OpenSSL::SSL::SSLContext#verify_mode= で指定できるフラグです。

サーバーモードであるかクライアントモードであるかによって意味がことなります。

サーバーモード: サーバーはクライアントに証明書を要求します。送られてきた証明書は検証されます。検証が失敗した場合、 TLS/SSL ハンドシェイクを即座に終了させます。クライアントは要求を無視することも可能です。 OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT と同時に指定した場合はクライアントが要求を無視した場合にはハンドシェイクを即座に停止します。

クライアントモード: サーバーの証明書を検証します。検証が失敗した場合、TLS/SSL ハンドシェイクを即座に終了させます。サーバーが証明書を返さずに、anonymous cipher を用いる場合、 VERIFY_PEER は無視されます。ただし、anonymous cipher はデフォルトでは無効になっています。

anonymous cipher が有効であるかどうかは OpenSSL::SSLContext#cipher= で設定できます。