Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
shigeki_ohtsu
PDF, PPTX
25,451 views
Node-v0.12のTLSを256倍使いこなす方法
new TLS feature in Node-v0.12
Technology
◦
Related topics:
Node.js Development
•
Read more
22
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
Recommended
PDF
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
PPTX
最新Webプロトコル傾向と対策
by
Kensaku Komatsu
PDF
いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)
by
Kenji Urushima
PDF
プロフェッショナルSSL/TLS 1.2章
by
MITSUNARI Shigeo
PPTX
SSL入門
by
Takeru Ujinawa
PDF
IETF93 Prague報告Web関連+QUIC
by
Kaoru Maeda
PDF
Node最新トピックス
by
shigeki_ohtsu
PDF
東京Node学園 今できる通信高速化にトライしてみた
by
Yoshiki Shibukawa
PDF
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
PDF
WebRTCとPeer.jsを使った実装
by
Yuta Suzuki
PDF
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
by
You_Kinjoh
PDF
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
by
Developers Summit
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
HTTP 2.0のヘッダ圧縮(HPACK)
by
Jun Fujisawa
PDF
ブラウザで動く準同型暗号
by
MITSUNARI Shigeo
PPTX
ConfD で Linux にNetconfを喋らせてみた
by
Akira Iwamoto
PPTX
Dockerと外部ルータを連携させる仕組みを作ってみた
by
npsg
PDF
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
by
Kenji Urushima
PDF
暗号技術入門
by
MITSUNARI Shigeo
PDF
Amazon CloudFront TLS/SSL Seminar 20160804
by
Hayato Kiriyama
ODP
Openflow超解釈
by
Hiroaki Kawai
PDF
IETF96 Update oauth tokbind
by
Kaoru Maeda
PDF
Ietf95 http2
by
Kaoru Maeda
PDF
自動でできるかな?
by
_norin_
PDF
http2study 20160423 IETF95 Report
by
Kaoru Maeda
PDF
第43回HTML5とか勉強会 SPDY/QUICデモ
by
shigeki_ohtsu
PDF
HTTP/2: ぼくたちのWebはどう変わるのか
by
Kaoru Maeda
PDF
HTTP2入門
by
Sota Sugiura
PDF
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
by
shigeki_ohtsu
PDF
Technical Overview of QUIC
by
shigeki_ohtsu
More Related Content
PDF
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
PPTX
最新Webプロトコル傾向と対策
by
Kensaku Komatsu
PDF
いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)
by
Kenji Urushima
PDF
プロフェッショナルSSL/TLS 1.2章
by
MITSUNARI Shigeo
PPTX
SSL入門
by
Takeru Ujinawa
PDF
IETF93 Prague報告Web関連+QUIC
by
Kaoru Maeda
PDF
Node最新トピックス
by
shigeki_ohtsu
PDF
東京Node学園 今できる通信高速化にトライしてみた
by
Yoshiki Shibukawa
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
最新Webプロトコル傾向と対策
by
Kensaku Komatsu
いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)
by
Kenji Urushima
プロフェッショナルSSL/TLS 1.2章
by
MITSUNARI Shigeo
SSL入門
by
Takeru Ujinawa
IETF93 Prague報告Web関連+QUIC
by
Kaoru Maeda
Node最新トピックス
by
shigeki_ohtsu
東京Node学園 今できる通信高速化にトライしてみた
by
Yoshiki Shibukawa
What's hot
PDF
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
PDF
WebRTCとPeer.jsを使った実装
by
Yuta Suzuki
PDF
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
by
You_Kinjoh
PDF
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
by
Developers Summit
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
HTTP 2.0のヘッダ圧縮(HPACK)
by
Jun Fujisawa
PDF
ブラウザで動く準同型暗号
by
MITSUNARI Shigeo
PPTX
ConfD で Linux にNetconfを喋らせてみた
by
Akira Iwamoto
PPTX
Dockerと外部ルータを連携させる仕組みを作ってみた
by
npsg
PDF
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
by
Kenji Urushima
PDF
暗号技術入門
by
MITSUNARI Shigeo
PDF
Amazon CloudFront TLS/SSL Seminar 20160804
by
Hayato Kiriyama
ODP
Openflow超解釈
by
Hiroaki Kawai
PDF
IETF96 Update oauth tokbind
by
Kaoru Maeda
PDF
Ietf95 http2
by
Kaoru Maeda
PDF
自動でできるかな?
by
_norin_
PDF
http2study 20160423 IETF95 Report
by
Kaoru Maeda
PDF
第43回HTML5とか勉強会 SPDY/QUICデモ
by
shigeki_ohtsu
PDF
HTTP/2: ぼくたちのWebはどう変わるのか
by
Kaoru Maeda
PDF
HTTP2入門
by
Sota Sugiura
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
WebRTCとPeer.jsを使った実装
by
Yuta Suzuki
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
by
You_Kinjoh
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
by
Developers Summit
TLS, HTTP/2演習
by
shigeki_ohtsu
HTTP 2.0のヘッダ圧縮(HPACK)
by
Jun Fujisawa
ブラウザで動く準同型暗号
by
MITSUNARI Shigeo
ConfD で Linux にNetconfを喋らせてみた
by
Akira Iwamoto
Dockerと外部ルータを連携させる仕組みを作ってみた
by
npsg
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
by
Kenji Urushima
暗号技術入門
by
MITSUNARI Shigeo
Amazon CloudFront TLS/SSL Seminar 20160804
by
Hayato Kiriyama
Openflow超解釈
by
Hiroaki Kawai
IETF96 Update oauth tokbind
by
Kaoru Maeda
Ietf95 http2
by
Kaoru Maeda
自動でできるかな?
by
_norin_
http2study 20160423 IETF95 Report
by
Kaoru Maeda
第43回HTML5とか勉強会 SPDY/QUICデモ
by
shigeki_ohtsu
HTTP/2: ぼくたちのWebはどう変わるのか
by
Kaoru Maeda
HTTP2入門
by
Sota Sugiura
More from shigeki_ohtsu
PDF
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
by
shigeki_ohtsu
PDF
Technical Overview of QUIC
by
shigeki_ohtsu
PDF
HTTP/2, QUIC入門
by
shigeki_ohtsu
PPTX
SPDYの話
by
shigeki_ohtsu
PDF
HTTP/2.0がもたらすWebサービスの進化(後半)
by
shigeki_ohtsu
PDF
HTTP/2の現状とこれから
by
shigeki_ohtsu
PPTX
node-gypを使ったネイティブモジュールの作成
by
shigeki_ohtsu
PPTX
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
by
shigeki_ohtsu
PPTX
SPDYの中身を見てみよう
by
shigeki_ohtsu
PPTX
Stream2の基本
by
shigeki_ohtsu
PDF
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
by
shigeki_ohtsu
PPTX
httpbis interim とhttp2.0相互接続試験の話
by
shigeki_ohtsu
PDF
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
by
shigeki_ohtsu
PDF
Node.js で SPDYのベンチマーク体験サイトを作りました
by
shigeki_ohtsu
PDF
Node-v0.12の新機能について
by
shigeki_ohtsu
PDF
httpbis interim@チューリッヒ レポート
by
shigeki_ohtsu
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
by
shigeki_ohtsu
Technical Overview of QUIC
by
shigeki_ohtsu
HTTP/2, QUIC入門
by
shigeki_ohtsu
SPDYの話
by
shigeki_ohtsu
HTTP/2.0がもたらすWebサービスの進化(後半)
by
shigeki_ohtsu
HTTP/2の現状とこれから
by
shigeki_ohtsu
node-gypを使ったネイティブモジュールの作成
by
shigeki_ohtsu
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
by
shigeki_ohtsu
SPDYの中身を見てみよう
by
shigeki_ohtsu
Stream2の基本
by
shigeki_ohtsu
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
by
shigeki_ohtsu
httpbis interim とhttp2.0相互接続試験の話
by
shigeki_ohtsu
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
by
shigeki_ohtsu
Node.js で SPDYのベンチマーク体験サイトを作りました
by
shigeki_ohtsu
Node-v0.12の新機能について
by
shigeki_ohtsu
httpbis interim@チューリッヒ レポート
by
shigeki_ohtsu
Node-v0.12のTLSを256倍使いこなす方法
1.
Node-v0.12のTLSを256倍使いこなす方法大津 繁樹 (@jovi0608)株式会社インターネットイニシアティブ(IIJ)東京Node学園祭20142014年11月15日
2.
自己紹介• 名前: 大津
繁樹• 所属: 株式会社インターネットイニシアティブ(IIJ) アプリケーション開発部• Twitter: @jovi0608• ブログ: ぼちぼち日記 http://d.hatena.ne.jp/jovi0608/• GitHub: https://github.com/shigeki/• 新技術の検証・評価を行ってます。 (Node.js, SPDY, HTTP/2,HTML5)• iij-http2の開発を通じてIETFのHTTP/2標準化作業に参画中• Node-v0.11.x へのパッチ提出はわずか。でもほとんどTLS関連です。
3.
TLS (Transport Layer
Security)の利用状況TLS通信認証、暗号化、改ざん防止図参照 https://plus.google.com/+IlyaGrigorik/posts/7VSuQ66qA3CGoogleによるChromeの統計調査から、ここ2年間でhttpsサイトへのナビゲーションは28%から58%に増加
4.
IAB(Internet Architecture Board)からインターネットの信頼性に関する声明https://www.iab.org/2014/11/14/iab-statement-on-internet-confidentiality/IABは、現在プロトコル設計者・開発者・運用者がインターネットトラフィックの標準として暗号化を行うことが重要であると信じている。できる限り認証と共に暗号を使うべきだが、認証なしの機密性を持つプロトコルでもRFC7258で記載された「広範囲な盗聴行為」に対して有用となりえる。
5.
発表内容• NodeのTLSモジュール大改造• TLSSocket•
AES-NI• PFS (Perfect Forward Secrecy)• TLS False Start• TLS Ticket• OCSP Stapling• TLS Dynamic Record• SPDY, HTTP/2• SPDYのメリットが一番よくわかるデモNode-v0.12でTLSを使うために有用な情報をお伝えします。(でも256個もないです)(注1: Node-v0.12はまだ未リリースですが、2014/11/10時点のv0.12ブランチHEADを対象としています。)(注2: Node-v0.11.xはまだPOODLE対策がされていません。SSLv3を無効化するために、secureOptions: require(‘constants’).SSL_OP_NO_SSLv3) をサーバオプションに追加しましょう。)
6.
目指せ A+ のTLSサーバソースはこちらhttps://gist.github.com/shigeki/986c53242f5bd3d78609https://www.ssllabs.com/ssltest/index.html
7.
Node TLSモジュールの大改造Node-v0.10の問題:パフォーマンスが悪い、APIが扱いづらい• 受信した暗号文をnetモジュールで受けてからSecurePair
オブジェクトで復号化• 送信する平文もSecurePairオブジェクトで暗号化してからnetモジュールで送信• C++ → JS → C++ → JS のオーバヘッドが大きい• 平文のCleartextStreamはnet.Socketと似て非なるもの。Node-v0.10のTLS処理概要C++JSC++JSSecurePairopenssl暗号文平文 平文暗号文暗号文net modulelibuvCleartextStreamCryptoStream
8.
Node TLSモジュールの大改造C++C++JStls_wraplibuv opensslNode_BIOTLSSocket平文
平文暗号文Node-v0.12のTLS処理概要Node-v0.12でパフォーマンスを改善、APIを統一• opensslとlibuvでデータと共有する Node_BIOを作成 → 両者の処理を一体化• netモジュールのハンドルをtls_wrapが横取り →C++の処理だけで平文データを生成• net.Socketを継承するTLSSocketを新設 → インターフェイスを統一 C++
9.
TLSSocket• Node-v0.10までの CleartextStream
の替わり• CleartextStreamのAPIの互換保持• ちゃんと net.Socketを継承し、APIを完備• TLS周りの通信に関する新規機能のAPIを追加より直観的でわかり易くなった。EventEmitterStreamReadable WritableDuplexSocketTLSSocket
10.
AES-NI (Advanced Encryption
Standard New Instructions)• Intel, AMDのCPUに搭載されているAES暗号の処理機能• 最近のモデルには多く搭載されている。/proc/cpuinfo で確認• openssl-1.0系に実装済。Node-v0.10.x, v0.11.xでも使える• 環境変数でAES-NIの有効・無効化してNodeのcryptoのベンチ比較AES-NI有効時 AES-NI無効時22.8469Gbit/sec9.51245Gbit/secAES-NI付きCPUのサーバを選んで使いましょうAES-NIで2.4倍に性能向上!
11.
PFS(Perfect Forward Secrecy)•
セッション毎に一時的に有効な公開鍵を交換して暗号鍵を共有する方式• 証明書の秘密鍵が危殆化しても過去の通信データを復号化できない。今後主流となる鍵交換方式。• Node-v0.12から ECDHE, DHE の2種類が利用可能• ECDHEの方が性能が良いのでそっちを優先指定(デフォルト)• ECDHEはデフォルトで何もせず利用できる。(prime256v1)• DHEの利用dhparamファイルを生成と指定が必要。現状十分な強度を持つには2048bit長以上で生成すること。
12.
TLS False StartClientHelloServerHelloCertificateServerHelloDoneServerKeyExchangeChangeCipherSpecFinishedハンドシェイク完了前に暗号化したアプリデータをフライングで送信application
dataClientKeyExchangeChangeCipherSpecFinished• TLS接続を高速化する技術 (2RTT→1RTT)• TLSハンドシェイク完了直前に暗号化したアプリケーションデータをフライングで送信• Chromeで2010年より先行実装、でも想定外の挙動のため問題頻発。• TLSハンドシェイク完了前なのでダウングレード攻撃のリスクもあり一旦中止。• NPNでプロトコル指定、PFS利用で利用可能に。• IEやSafariなどは別の条件。
13.
NodeでTLS False Startを使うにはNodeはデフォルトでNPN拡張を付与するのでPFSを利用すればクライアントはTLS
False Startになる(*)PFS利用していない時(AES128-GCM-SHA256)PFS利用している時(ECDHE-RSA-AES128-SHA256)TLS False Start によるTLSハンドシェイクの高速化1RTT分(*) IE, Safariは条件が違います
14.
TLS Ticket• サーバからクライアントにTLS再接続時に利用するCipherSuite/MasterSecretが含まれた設定データ(チケット)を暗号化して渡す。•
渡したチケット情報はサーバ側では保持しない。• クライアントは再接続時にチケットをサーバに送信。サーバはチケットデータを復号化し、中のTLS設定情報を利用して通信を再開する。• チケット鍵が複数のサーバ間で共有できていれば別サーバに行っても大丈夫。(ただし鍵管理が大変)ClientHelloSesstion Ticket ExtServerHelloSessionTicket ExtCertificateServerHelloDoneServerKeyExchangeNewSessionTicketChangeCipherSpecFinishedClientKeyExchangeChangeCipherSpecFinished
15.
NodeでTLS Ticketを使う• Node-v0.10で既に使えるが、単一プロセスのみ。•
Node-v0.12ではクラスタの複数プロセス間でチケット鍵が共有可• Cluster でTLSを使っている方は、今すぐNode-v0.12へNode-v0.10.33 のTLSクラスターNode-v0.12-pre のTLSクラスター
16.
OCSP Stapling• OCSP
(Online Certificate Status Protocol):• 証明書が失効していないか確認するプロトコル• TLS初期接続時にクライアントが認証局サーバに確認。オーバヘッド• OCSP Stapling:• TLSサーバがOCSPレスポンスを証明書とともにクライアントに送信• クライアントが認証局に確認する必要がない。Web表示の高速化OCSPResponse証明書+OCSPResponseClientHello +status_request_v2 ext.
17.
NodeでOCSP Staplingを使う• Node-v0.12では
OCSPRequest イベントを新設• コールバックの引数にOCSPレスポンスデータを渡し、クライアントに送信• 認証局のOCSPサーバにリクエストするのは結構面倒なので、opensslで事前にリクエストデータを作成すると良い• OSCPレスポンスデータのキャッシュ管理も必要。更新日時を取得するasn.1パーサも必要。エラー時の処理判断も大切。• 別途cronでOCSPレスポンスデータを管理する手もあるserver.on('OCSPRequest', function(cert, issuer, cb) {var now = Date.now();if (now > cache.nextUpdate && !cache.lock) {cache.lock = true;cache.der = null;HandleOCSPrequest(cb);} else {var msg = cache.der ? 'cache hit!': 'terminated';console.log( 'OCSP Response:', msg);cb(null, cache.der);}});ソースは、https://gist.github.com/shigeki/de5748cc0deb980bcb35結果は openssl s_client –status –connect site:443 で確認
18.
Dynamic TLS record
(setMaxSendFragment)• GoogleのIlya Grigorik氏が推奨しているTLSパラメータのチューニング手法• 通常TLSに書き込まれるデータ長は、レコードサイズ最大の16Kであることが多い。• 最初のレスポンスデータの取得は、16Kバイトを受信してからになる。• 最初のデータを復号化するには10個のTCPパケット(1.5K)を受信が必要。• TLSのレコードサイズをTCPの1セグメントのサイズに収まるように小さくすれば受信した1個目からデータの復号化が可能になる。• よって受信したデータの1バイト目が表示される時間の短縮が図られる。1.5K 1.5K16Kこれ一つで復号可能よ16K全部受信しないと復号できない
19.
NodeでTLS Dynamic Recordをやるには•
Googleサーバでのチューニング方法(ATSで採用済)• 最初は 1.3Kのレコードサイズ (1500 - 40 (IP) - 20 (TCP) - 40 (TCP options) - TLS overhead (60-100))• 1Mバイト送信したらデフォルトの16Kに変更。• 書き込みのアイドルが1秒以上になったら1.3Kに戻す。• Nodeでは自動的にレコードサイズをチューニングする方法は不採用に• 替わりに固定的に変更するAPI(setMaxSendFragment)を新設• 1.3Kで固定すると大きいデータで分割オーバヘッドが高くなる可能性も。server.on('secureConnection', function(tlsSocket) {tlsSocket.setMaxSendFragment(1300);});
20.
小さいTLS Record Sizeの効果(rtt=1000msec時)MaxSendFragment
16KdefaultMaxSendFragment 1.3KTime To First Byteの高速化requestStart responseStartresponseStartrequestStart
21.
SPDY, HTTP/2• SPDY•
Googleが開発したWebの表示を高速化するプロトコル(TLSのみ)• Google/Twitter/Facebook/Yahoo.comで使用中• Chrome/Firefox/IE10/Safari 多数のブラウザでサポート中• Nodeで使うなら node-spdy を使いましょう• HTTP/2• SPDYをベースとした次期HTTP仕様(TLS利用が中心)• HTTP/1.1のセマンティクスを互換保持• 現在仕様化作業の大詰め。来年前半には完了予定• 現在Firefoxとのテストで利用中のnode-http2が使える• 注意事項:• node-v0.10で利用するとTLS要求仕様(AEAD+PFS)が合わず接続できない場合があります。node-v0.12を使いましょう。• ただ開発は0.10系でやっているので未サポート• ALPNはまだopensslのベータなためnodeでは使えません。• 使う場合には私のfork版があります。 https://github.com/shigeki/node/tree/alpn_supportEthernetIP(v4/v6)TCPTLSHTTP/2 Frame LayerHTTP/1.1 Semantics
22.
クライアント サーバ1つのTCP接続ストリーム(id:1)フレームフレームストリーム(id:3)フレームフレームストリーム(id:5)フレームフレームHTTPリクエストレスポンスHTTPリクエストレスポンスHTTPリクエストレスポンスSPDY, HTTP/2の全二重多重化通信仮想的なストリームチャンネルを生成して多重化を実現
23.
HTTP Head of
Line Blockingを回避HTTP/2クライアント画像サーバA画像サーバBReverseProxyHTTP/2多重化通信レスポンスが速いレスポンスが遅いHTTP/1.1クライアントTCPを6本張れるけど、1本中に同時1リクエストの制限1本のTCP
24.
SPDYのメリットが一番よくわかるデモ多数の画像を表示して見え方に違いがあるのか? (SPDY vs
HTTP/1.1)1. 少数画像 vs 多数画像。2. 3枚目の画像毎に3秒のレスポンス遅延を入れる。
25.
まとめNode-v0.12でTLS通信を最適化する方法はいろいろあります。用法用量を守って正しくお使いください。(special thanks to
http://www.irasutoya.com/)
Download
[8]
ページ先頭
©2009-2025
Movatter.jp