ECDHE-PSK-CHACHA20-POLY1305 DHE-PSK-CHACHA20-POLY1305
4.11 切り詰めた( Truncated ) HMAC
現在定義されている TLS 暗号スイーツはレコード層通信の認証に HMAC を使 用しています。 TLS では、ハッシュ関数の全体出力に対して MAC タグとして 使用されています。しかし、制限された環境では、MAC タグを形成する時ハ ッシュ関数の出力を 80 ビットに切り詰める事によってバンド幅を節約したく なる場合があります。切り詰めた( Truncated ) HMAC を使用可能にするた
めには wolfSSL ではビルド時に単に次のように指定します:
./configure --enable-truncatedhmac
切り詰めた( Truncated ) HMAC をクライアント側で使用するには、次の二 つのいずれかの関数を呼び出す必要があります。
wolfSSL_CTX_UseTruncatedHMAC();
wolfSSL_UseTruncatedHMAC();
クライアント側でSNIを利用する場合、追加で以下のうちどちらかもう一つの関数呼び出 しが必要です。
wolfSSL_CTX_UseTruncatedHMAC ()はクライアントが同じサーバに複数回コンタクトする
場合に推奨されます。Truncated HMAC拡張をコンテクストレベルで設定することで、そ の呼び出しがされたて以降、同じコンテクストから生成される全てのオブジェクトにおい てTruncated HMACの使用を可能にします。
wolfSSL_UseTruncatedHMAC ()は一つのSSLオブジェクトのみにTruncated HMACを有効 化するので、TruncatedHMACが必要かどうかがセッション間で変わるような場合に推奨 されます。
© 2004 – 2016 wolfSSL, Inc.
80
サーバ側では関数呼び出しは不要です。サーバは自動的にクライアントのTruncated HMACの要求に対応します。
なお、すべてのTLS拡張は下記でも有効化されます:
./configure --enable-tlsx
4.12 ユーザ定義暗号モジュール
ユーザ定義暗号モジュールによって、ユーザはサポートされている処理の間に使用したい カスタム暗号をプラグインすることができます(現在の所、RSA処理がサポートされてい ます)。IPPを使ったモジュールの例はroot_wolfssl/wolfcrypt/user-crypto/ ディレクトリにあ ります。ユーザ定義暗号モジュールを使用するwolfSSLのビルドの場合のconfigureに対す るオプションの例は次の通りです:
./configure --with-user-crypto または
./configure --with-user-crypto=/dir/to
RSA処理を実行するユーザ暗号モジュールを生成する時には、user_rsa.hという名前の RSAのためのヘッダーファイルがあることが必須です。すべてのユーザ暗号処理のため
に、libusercryptという名前のユーザライブラリが必須です。これらは、ユーザ暗号モジ
ュールをリンクする際にwolfSSLのautoconfツールが探しに行く名前です。wolfSSLで 提供されるサンプルでは、user_rsa.hはwolfcrypt/user-crypto/include/ディレクトリにあり ます。また、一旦生成されたライブラリはwolfcrypt/user-crypto/lib/に置かれます。必要な APIのリストについては、提供されたヘッダーファイルを参照してください。
サンプルをビルドする伊波、IPPライブラリーをインストールした後、次のコマンドを
wolfSSLのルートディレクトリで実行させます。
cd wolfcrypt/user-crypto/
./autogen.sh
© 2004 – 2016 wolfSSL, Inc.
81
./configuremake
sudo make install
wolfSSLに含まれているサンプルはIPPを使用する必要があります。これはプロジェクト
がビルドされる前にインストールされている必要があります。サンプルをビルドするため にIPPライブラリーが無い場合でも、ユーザにファイル名の選択とAPIインターフェー スの例を提供するためです。一旦、libusercryptoとヘッダーファイルの両方がmakeさ れ、インストールされると、暗号モジュールを使ったwolfSSLのmakeに追加ステップは 必要なくなります。単に、
-with-user-crypto フラグを configure に使用するだけで、
通常の wolfSSL 暗号からユーザ暗号モジュールにすべての関数呼び出しがマッ
プされます。
もしwolfSSLのXMALLOCを使用している場合、メモリーアロケーションは
DYNAMIC_TYPE_USER_CRYPTOとタグ付けしなければなりません。モジュールで使わ
れたすべてのメモリーアロケーションの分析を可能にします。
ユーザ暗号モジュールはwolfSSL のconfigureオプションfast-rsaと/または fipsオプシ ョンと組み合わせ使用することはできません。FIPSは、特定の認証されたコードが使用 されることを要求します。fast-rsaはRSA処理の実行にサンプル・ユーザ暗号モジュール を使用させます。
© 2004 – 2016 wolfSSL, Inc.