「GnuTLS 3.6」がリリース

 SSL/TLSとDTLSプロトコルのフリー実装であるGnuTLS Transport Layer Security Library開発チームは8月21日、「GnuTLS 3.6」をリリースした。ロックフリーの乱数生成器導入などの新機能が加わっている。

 GnuTLSはSSL/TLSおよびDTLSプロトコルを実装したネットワーク通信ライブラリ。C言語向けのAPIを提供し、これを利用してプロトコルにアクセスできる。TLS 1.0/1.1/1.2、SSL 3.0、STLS 1.0/1.2をサポート、Online Certificate Status Protocol、証明書パス検証、RSAや楕円曲線といった公開鍵アルゴリズムにも対応する。主要なUNIX/LinuxのほかWindowsでも動作する。

 GnuTLS 3.6は2016年5月に公開された3.5系に続く最新のブランチ。安定版と同じ品質レベルだが安定版の3.5系を置き換えるものではない「stable-next」と位置付けられている。次期TLS 1.3のサポートは3.5系ではなく3.6系で行われるという。

 乱数生成器では、ロックフリーの乱数生成器を導入した。バージョン3.3系よりSalsa20/12とYarrow/AESを組み合わせたデフォルトのランダム生成器とAESベースのAES-CTR-DRBGの2種類の乱数生成器が利用できるようになっているが、これらはグローバルにロックを行うためマルチスレッド環境で性能に影響を与えていた。新しい乱数生成器はスレッド単位でのロックであるため、ボトルネック問題を解消できるとしている。なお、Salsa20乱数生成器についてもCHACHAベースのものに置き換えられ、キャッシュのコードを削減できるとしている。

 テストとファジングも強化し、共通のファジング土台を導入してOSS-Fuzzの下で自動で動くファジングテストスイートを利用できるようになった。TLSサーバー実装のTLS fuzzerを導入、TLSテストとファジングのツールキットとして利用し、コーナーテストができるという。

 TLSでは、TLS 1.3サポートに向けてTLS 1.2/1.3で共有できるTLS拡張を導入、RSA-PSSの鍵タイプ、デジタル署名などをサポートした他、Ed25519、ディフィー・ヘルマン鍵交換のグループネゴシエーションなどのサポートが加わった。

 このほか、古い機能の削除も進められている。3DESがデフォルトで無効化され、証明書でのSHA1利用ができなくなった。OpenPGPの機能、DEFLATEをはじめとしたTLS圧縮も削除された。IETFのIDNA2008移行に伴い、IDNA2003のサポートも終了となっている。

 GnuTLS 3.6はプロジェクトのWebサイトより入手できる。ライセンスはLGPL 2.1。

 なお、開発チームは同日、バグを修正したstableブランチのGnuTLS 3.5.15も公開している。

GnuTLS
http://www.gnutls.org/