FacebookがTLS 1.3のC++14実装「Fizz」を公開

 米Facebookは8月6日、Transport Layer Security(TLS)1.3を実装したライブラリ「Fizz」をオープンソースで公開したと発表した。

 FizzはC++ 14で書かれたTLSライブラリで、TLS 1.3のドラフト28、26、23をサポートする。TLS 1.3で行われるプロトコルの強化に加え、非同期I/0をデフォルトでサポートするなどの強化が加わっている。

 FacebookはTLS標準化を行うInternet Engineering Task Force(TETF)と協業している。開発チームによると、1日に10億人以上がFacebookにアクセスしており、TLS 1.3実装により安全なアクセスを実現できるとしている。すでにモバイルアプリ、C++ HTTPライブラリを集めたProxygen、ロードバランサー、内部サービスなどでFizzとTLS 1.3をグローバルで利用しており、トラフィックの50%以上がTLS 1.3とFizzを実装しているという。今回Fizzをオープンソースにすることで、TLS 1.3の実装を加速したいと理由を説明している。

 性能では、Facebookがこれまで採用していた「Zero」プロトコルと同等の信頼性と性能を実現するという。Facebookではそれまで、安全性を強化するためにカスタムに実装したZeroプロトコルを利用してきたが、これをFizzに置き換えた。このほか、複製なしの暗号化と復号、インフラとの統合や最適化を加えた結果、ロードバランス合成ベンチマークではスループットが10倍改善したという。メモリとCPUの使用も削減するとしている。

 このほか、TLS 1.3のハンドシェイクの最初の部分をTLS 1.2でのセッション再開に似たものにするアプローチなどにより、ネットワークセキュリティアプライアンスにおけるTLS 1.3実装の信頼性が高くなるという。

Fizz
https://github.com/facebookincubator/fizz