s2n: 新しいオープンソースTLS実装のご紹介
Amazon Web Servicesでは強力な暗号化は標準機能の一つであり、(以前はSSLとよばれた)TLSという暗号化プロトコルが必要不可欠です。
TLSは全てのAWS APIで用いられており、Elastic Load Balancing (ELB), AWS Elastic Beanstalk, Amazon CloudFront, Amazon S3, Amazon RDS, Amazon SESなどのお客様が直接使うサービスでも使われています。
過去18ヶ月程の間は、TLSプロトコルの波乱に満ちた期間でした。優れた暗号解析技術はこれまで考えられていたよりも深刻であるいくつかのTLSアルゴリズムの欠陥をハイライトし、セキュリティ研究はTLSのいくつかのソフトウェア実装に問題を明らかにしました。総体としてはこれらの開発は正しくセキュリティを向上させるものでしたが、ソフトウェアアップグレードおよび証明書のローテーション等の手間と時間のかかるイベントを巻き起こしました。
TLSプロトコルは、オプションの拡張機能により、非常に複雑になってきていることが課題となっています。事実上のリファレンス実装であるOpenSSLは、50万行以上からなり、TLSの処理に関与するものが少なくとも7万行が含まれています。当然、コードの各行はエラーのリスクがありますが、サイズが増えるほど、コード監査、セキュリティレビュー、性能、および効率等の点で課題が生まれます。
TLSの実装のシンプル化と strong encryption for everyoneへのサポートの一部として、私達は、新しいオープンソースのTLS実装をs2nという名前で発表します。
s2nはシンプルかつ、高速で、小さくなるように設計されているライブラリです。s2nはほとんど使用されないオプションと拡張機能を実装することを回避し、今日のコードはたったの6,000行あまりです。その結果、s2nのレビューは容易であることがわかりました。 我々はすでに、s2nに3つの外部のセキュリティ評価とペネトレーションテストを完了し、それを続けています。
今後数ヶ月にわたって、我々はいくつかのAWSサービスにs2nを統合開始します。TLSは標準化されたプロトコルであり、s2nはすでに我々が使用する機能を実装しているため、独自のアプリケーションの変更を必要とせず、すべてが相互運用可能なままになります。
s2nの利用や貢献に興味があれば、ドキュメントやソースコード、コミットおよび拡張機能は、Apacheソフトウェアライセンス2.0の条件の下でs2n GitHubのリポジトリで公開しています。
s2nはOpenSSLを置き換えることを目的としていません。私達は、Linux FoundationのCore Infrastructure Initiativeを通じてOpenSSLの向上にコミットしつづけます。OpenSSLは2つの主なライブラリとして"libssl"というTLSを実装した部分と、"libcrypto"という汎用暗号ライブラリを提供しています。s2nは、"libcrypto"ではなく"libssl"に例えて考えることができます。
最後に名前について。s2nは"signal to noise (信号対雑音)"の略語で、重要なデータを一見ランダムノイズのように装わせるという、暗号の魔法のような行為を示しています。
- スティーブン・シュミット
本記事は、AWS Security Blog http://blogs.aws.amazon.com/security/post/TxCKZM94ST1S6Y/Introducing-s2n-a-New-Open-Source-TLS-Implementation の翻訳記事です。日本語訳は荒木が担当しました。
コメント