Thursday, July 23, 2015

前方秘匿性 (forward secrecy) をもつウェブサイトの正しい設定方法

前方秘匿性(forward secrecy)とは、以下のような性質を指します。

公開鍵暗号の秘密鍵のように、比較的長期に渡って使われる鍵が漏えいしたときでも、それまで通信していた暗号文が解読されないという性質
鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 - @IT

鍵が攻撃者や諜報機関など第三者の知るところとなった場合でも、それまで通信していた暗号文が解読されないようにしないといけない、という考え方とともに、最近 HTTPS を利用するウェブサイトにおいても導入が求められるようになってきた概念です。

前方秘匿性を満たすウェブサイトの設定方法については、TLSの暗号化方式をECDH_RSAあるいはECDHE_RSAに設定すれば良い、と述べている文献が多いです。

ですが、ほとんどのウェブサーバにおいて、それは誤りです。

なぜか。

通信を暗号化する鍵(セッション鍵)の確立にDHEあるいはECDHEを用いれば前方秘匿性が確保されるというのは、鍵交換に議論を限ってしまえば正しいです。

しかし、TLSプロトコルには、鍵交換以外にセッション鍵を保存し、再利用する仕組みが存在します。Session ResumptionとSession Ticketの2つがそれに該当します。

このうち、OpenSSLが標準でサポートし、ウェブブラウザが対応している場合(IE9以前とMobile Safari以外の全ての主要ウェブブラウザが該当します)にSession Resumptionより優先して利用されるSession Ticketは、セッション鍵をサーバのみが知るマスターキーで暗号化して、クライアントに送信します。

セッション鍵をマスターキーで暗号化…いやな響きがしませんか?

そうです。このSession Ticketの暗号化に使われるマスターキーを定期的に更新しない限り、マスターキーが流出してしまった場合、過去の通信内容がすべて解読されてしまうことになるのです。

しかし残念なことに、ほとんどのウェブサーバは、マスターキーを自動的に更新する仕組みをそなえていません

では、どのようにサーバを設定すればいいでしょうか。

解決策1. Session Ticket機能を無効化する

第一の解決策はウェブサーバの設定でSession Ticket機能を無効化することです。Apache の場合は SSLSessionTickets、nginx の場合は ssl_session_tickets という設定コマンドを使うことで、無効化することができます。

しかし、nginx (とevent mpmを使用するApache)は、複数サーバにまたがる session resumption 機能を実装していません。そのため、ロードバランサの背後に複数のHTTPSサーバを立てている場合は、session ticket をオフにすると、新規接続確立のたびにTLSハンドシェイクが発生し、ユーザの体感速度の低下やサーバの負荷増大につながってしまいます。

解決策2. サーバを定期的に再起動する

ApacheやNginxは、サーバを起動するタイミングで Session Ticket のマスターキーを再生成します。なので、たとえば1時間に1回サーバを再起動すれば、前方秘匿性を確保しつつ Session Ticket を使うことができます。簡単ですね!!!

なお、ロードバランサの背後に複数のHTTPSサーバを立てている場合は、それらのサーバを再起動する度に、新しいマスターキーが記述された設定ファイルを再配布する必要があります。このへんは Twitter さんの涙ぐましい努力の話があるので、それを参考にがんばりましょう。

解決策3. H2O を使う

これまで述べてきたように、これまでのウェブサーバの前方秘匿性のサポートはお粗末と言わざるをえません(他にも、マスターキーの強度が強力なセッションキーよりも弱いといった問題も存在します)。

そこで H2O ですよ!!!!

私たちが開発しているH2Oの最新バージョンは、これらの問題を全て解決しています。

具体的に言うと、

・Session Ticket のマスターキーは、他のサーバのように AES-128 ではなく AES-256 です
・Session Ticket は自動的に更新されます(デフォルト15分間隔)
・ロードバランサの背後に複数台のH2Oを設置する場合、Session Ticketをmemcachedで共有するように設定することが可能です
・ついでに、Memcached を用いた複数サーバにまたがるSession Resumptionにも対応しているので、Mobile Safari でのHTTPSアクセスも高速に処理することができます

というわけで、安全なウェブサイトを構築したい人は H2O 使えばいいんじゃないでしょうか。ちなみに、H2O 使うとユーザの体感速度も速くなるのでいいことづくめかと思います。

以上、ウェブサーバの設定に関する注意喚起、兼、H2Oの宣伝でした。

18 comments:

  1. Grammy 2017 will be at 5:00 PM - 8:30 PM on Sunday, February 12, 2017 in Los Angeles at the Staples Center. Read more:



    Grammys

    Grammy 2017

    Grammys 2017

    2017 Grammys

    Watch Grammy 2017

    Grammy Awards

    Grammy Awards 2017

    ReplyDelete
  2. The share your really gives us excitement. Thanks for your sharing. If you feel tired at work or study try to participate in our games to bring the most exciting feeling. Thank you!
    hotmail sign in | red ball game

    ReplyDelete
  3. Its my great pleasure to visit your blog and to enjoy your great posts here. I like it a lot. I can feel that you paid much attention for those articles, as all of them make sense and are very useful
    شركة مكافحة الحشرات بالقطيف
    شركة مكافحة النمل الابيض بالقطيف
    شركة مكافحة الحشرات بالدمام
    شركة مكافحة الحشرات بالخبر
    شركة مكافحة البق بالقطيف
    شركة مكافحة البق بالدمام
    شركة مكافحة النمل الابيض بالدمام
    شركة مكافحة النمل الابيض بالخبر
    شركة الوطنية بأمكانها تقديم خدمات المكافحة لحشرة النمل الابيض و التخلص منها في اسرع وقت وبنسبة 100% في جميع ارجاء المنزل
    هتم شركة مكافحة الحشرات بالدمام باعمال المكافحة للصراصير بالدمام فالصراصير من اكثر انواع الحشرات التى تسبب الضيق والالم وتسبب الشعور بالاشمئزاز والقرف فى المكان فاذا كنت تعانى من وجود الصراصير وتعانى من وجودها وانتشارها فى اى مكان فى منزلك وبالاخص فى المطابخ والصراصير الصغيره المتواجدة فى المكان

    ReplyDelete
  4. I really enjoyed reading this post, big fan. Keep up the good work andplease tell me when can you publish more articles or where can I read more on the subject?
    شركة تنظيف بالجبيل
    شركة تنظيف بالدمام
    شركة تنظيف بالخبر
    شركة تنظيف بالقطيف
    شركة تنظيف بالخبر لتقديم المستوي الراقي جدا فاننا نقوم بخدمات التنظيف الداخلي والخارجي باي منزل فداخليا نهتم بتنظيف الأبواب بكل ما يتعلق بها من أتربه وملوثات واتساخات ونزيل كل هذا علي الفور  ونقوم أيضا بأعمال تنظيف الشبابيك وما يتعلق بها من أتربه ونقوم أيضا بأعمال تنظيف شامله للأرضيات والسيراميك والرخام والبلاط ونقدم دائما الخدمة بأسلوب راقي اما خارجيا نقوم بأعمال تنظيف المسابح وتنقيه المياه بداخلها ونقوم أيضا بتنظيف الخزانات بما يضمن لك الراحة وعدم التفكير فى الاستعانه بشركات النظافة بالخبر والدمام
    شركة الوطنية شركة تنظيف منازل بالدمام  توفر عليكى الوقت والمجهود حيث تقوم شركة تنظيف منازل بالدمام ولاخبر والقطيف بتقديم الخدمه بجوده ودقه عاليه تعيد منزلك الى جماله مهما كان حجمه أو شكله . الشركة تقدم العديد والعديد من خدمات التنظيف للاماكن السكانيه ويشمل تنظيف البيوت – تنظيف الشقق – تنظيف الفلل وذلك لأن اعمال التشطيبات تترك الكثير من الرواسب وبقايا الدهانات وهو ما يصعب علي العملاء القيام باعمال تنظيف المنازل لديهم والتي تحتاج الى طلب شركة الوطنية  احد افضل شركة تنظيف المنازل بالدمام والخبر للتخلص من كل هذة الاشياء واعادة المنزل كالجديد تمام

    ReplyDelete
  5. After exploring a handful of the blog articles on your web site, I really like your technique of blogging. I added it to my bookmark webpage list and will be checking back in the near future
    شركة تنظيف بالخبر
    شركة تنظيف بالجبيل
    شركة تنظيف بالدمام
    شركة تنظيف بالقطيف
    نفخر بخدمتكم في المنطقة الشرقية بالكامل الدمام والخبر والجبيل والاحساء باستخدام افضل وامهر فنيين التنظيف الداخلي للمنازل و البيوت وكذلك نقدم خدمات افضل شركة تنظيف بالدمام وتشمل التنظيف الخارجي ويشمل ذلك تنظيف واجهات الزجاج – تنظيف واجهات حجر وذلك عن طريق خدمات تنظيف الواجهات الحجر باستخدام ( ضرب الرمل – مسدس المياه ) من افضل شركة تنظيف بالدمام

    ReplyDelete
  6. I have read a few of the articles on your website now, and I really like your style of blogging. I added it to my favorites blog site list and will be checking back soon. Please check out my site as well and let me know what you think
    شركة نقل اثاث بالقطيف
    نقل اثاث بالدمام رخيص
    Hey – great blog, just looking around some blogs, seems a really nice platform you are using. I’m currently using WordPress for a few of my blogs but looking to change one of them over to a platform similar to yours as a trial run. Anything in particular you would recommend about it?
    ارخص شركة نقل اثاث بالدمام
    شركة نقل عفش بالدمام
    شركة نقل اثاث بالخبر
    شركة نقل اثاث بالدمام
    وفر شركة شامكو –0593757728 – ارخص شركة نقل اثاث بالجبيل وكذلك نقل عفش بالخبر ونقل اثاث بالدمام والقطيف العمالة المدربة على فك وتركيب العفش والاثاث بكل احترافية دون أي اخطاء لضمان عدم اتلاف أي قطعة اثاث او الحاق الضرر بها, بالإضافة الى توفير العمالة الخاصة بعملية نقل العفش والاثاث
    ارخص شركة نقل اثاث بالدمام 0593757728 |شركة شاكمو لنقل العفش والاثاث بالدمام والخبر والجبيل والقطيف ومن افضل ش

    ReplyDelete
  7. This is really the sort of data I have been attempting to discover. Much obliged to you for composing this data.
    شركة نقل اثاث بالقطيف
    شركة نقل اثاث بالدمام
    شركة نقل اثاث بالدمام
    شركة نقل عفش بالدمام
    شركة نقل اثاث بالجبيل
    شركة نقل العفش بالخبر
    Thanks for this great post, i find it very interesting and very well thought out and put together. I look forward to reading your work in the future
    شركة نقل اثاث بالخبر
    ارخص شركة نقل اثاث بالدمام
    شركة نقل الاثاث بالدمام
    شركة نقل عفش بالدمام
    شركات نقل العفش والاثاث بالدمام والخبر على وجه الخصوص تعددت كثيرا ولكن القليل من شركات نقل الاثاث داخل الدمام والخبر ما زال يقدم الخدمة المنوط بها للعميل فنحن فى شركة نقل اثاث بالدمام وبالخبر افضل شركات نقل اثاث بالدمام والخبر والقطيف والجبيل على مستوي المملكه العربية السعودية وخاصة منها المنطقة الشرقية ونحن ارخص شركة نقل اثاث بالدمام وبالخبر

    ReplyDelete