- 著者
-
松本 亮介
三宅 悠介
力武 健次
栗林 健太郎
- 雑誌
- 研究報告インターネットと運用技術(IOT) (ISSN:21888787)
- 巻号頁・発行日
- vol.2017-IOT-37, no.1, pp.1-8, 2017-05-18
インターネットの利用に際して,ユーザーや企業においてセキュリティ意識が高まっている.また,HTTP のパフォーマンス上の問題を解消するために,HTTP/2 が RFC として採択された.それらを背景に,常時 HTTPS 化が進む中で,高集積マルチテナント方式の Web サーバで管理している大量のホストも HTTPS 化を進めていく必要がある.同方式は単一のサーバプロセスで複数のホストを管理する必要があるが,Web サーバの標準的な設定を用いて事前にホスト数に依存した数の証明書を読み込んでおく方法では,必要なメモリ使用量が増大することで,サーバプロセスの起動時や,CGI のようなプロセスの複製時に OS のページテーブルのエントリ数に依存するシステムコールの性能が著しく低下する.そこで,Server Name Indication (SNI) を利用可能である条件下において,事前にサーバプロセスに証明書を読み込んでおくことなく,SSL / TLS ハンドシェイク時にホスト名から動的にホストに紐づく証明書を読み込み,メモリ使用量を低減させる手法を提案する.実装には,我々が開発した,mruby を用いて高速かつ少ないメモリ使用量で Web サーバの機能を拡張するモジュール ngx mruby を採用して,動的にサーバ証明書を選択する機能を実装した.また,サーバ証明書データは,Redis によるキャッシュサーバによって管理し,本手法の有効性を評価した.