SlideShare a Scribd company logo
Node-v0.12のTLSを
256倍使いこなす方法
大津 繁樹 (@jovi0608)
株式会社インターネットイニシアティブ(IIJ)
東京Node学園祭2014
2014年11月15日
自己紹介
• 名前: 大津 繁樹
• 所属: 株式会社インターネットイニシアティブ(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関連です。
TLS (Transport Layer Security)の利用状況
TLS通信
認証、暗号化、
改ざん防止
図参照 https://plus.google.com/+IlyaGrigorik/posts/7VSuQ66qA3C
GoogleによるChromeの統計調査
から、ここ2年間でhttpsサイトへ
のナビゲーションは28%から58%
に増加
IAB(Internet Architecture Board)からインターネッ
トの信頼性に関する声明
https://www.iab.org/2014/11/14/iab-statement-on-internet-confidentiality/
IABは、現在プロトコル設計者・開発者・運用者がインターネットトラフィックの
標準として暗号化を行うことが重要であると信じている。できる限り認証と共に暗
号を使うべきだが、認証なしの機密性を持つプロトコルでもRFC7258で記載された
「広範囲な盗聴行為」に対して有用となりえる。
発表内容
• 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) をサーバオプションに追加しましょう。)
目指せ A+ のTLSサーバ
ソースはこちら
https://gist.github.com/shigeki/986c53242f5bd3d78609
https://www.ssllabs.com/ssltest/index.html
Node TLSモジュールの大改造
Node-v0.10の問題:パフォーマンスが悪い、API
が扱いづらい
• 受信した暗号文をnetモジュールで受けてから
SecurePair オブジェクトで復号化
• 送信する平文もSecurePairオブジェクトで暗号
化してからnetモジュールで送信
• C++ → JS → C++ → JS のオーバヘッドが大きい
• 平文のCleartextStreamはnet.Socketと似て非な
るもの。
Node-v0.10のTLS処理概要
C++
JS
C++
JS
SecurePair
openssl
暗号文
平文 平文
暗号文
暗号文
net module
libuv
CleartextStream
CryptoStream
Node TLSモジュールの大改造
C++C++
JS
tls_wrap
libuv openssl
Node_BIO
TLSSocket
平文 平文
暗号文
Node-v0.12のTLS処理概要
Node-v0.12でパフォーマンスを改善、APIを統一
• opensslとlibuvでデータと共有する Node_BIO
を作成 → 両者の処理を一体化
• netモジュールのハンドルをtls_wrapが横取り →
C++の処理だけで平文データを生成
• net.Socketを継承するTLSSocketを新設 → イン
ターフェイスを統一 C++
TLSSocket
• Node-v0.10までの CleartextStream の替わり
• CleartextStreamのAPIの互換保持
• ちゃんと net.Socketを継承し、APIを完備
• TLS周りの通信に関する新規機能のAPIを追加
より直観的でわかり易くなった。
EventEmitter
Stream
Readable Writable
Duplex
Socket
TLSSocket
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.8469
Gbit/sec
9.51245
Gbit/sec
AES-NI付きCPUのサーバを選んで使いましょう
AES-NIで2.4倍に性能向上!
PFS(Perfect Forward Secrecy)
• セッション毎に一時的に有効な公開鍵を交換して暗号鍵を共有す
る方式
• 証明書の秘密鍵が危殆化しても過去の通信データを復号化できな
い。今後主流となる鍵交換方式。
• Node-v0.12から ECDHE, DHE の2種類が利用可能
• ECDHEの方が性能が良いのでそっちを優先指定(デフォルト)
• ECDHEはデフォルトで何もせず利用できる。(prime256v1)
• DHEの利用dhparamファイルを生成と指定が必要。現状十分な強
度を持つには2048bit長以上で生成すること。
TLS False Start
ClientHello
ServerHello
Certificate
ServerHelloDone
ServerKeyExchange
ChangeCipherSpec
Finished
ハンドシェイク完了前に
暗号化したアプリデータ
をフライングで送信
application data
ClientKeyExchange
ChangeCipherSpec
Finished
• TLS接続を高速化する技術 (2RTT→1RTT)
• TLSハンドシェイク完了直前に暗号化したアプリケー
ションデータをフライングで送信
• Chromeで2010年より先行実装、でも想定外の挙動の
ため問題頻発。
• TLSハンドシェイク完了前なのでダウングレード攻撃の
リスクもあり一旦中止。
• NPNでプロトコル指定、PFS利用で利用可能に。
• IEやSafariなどは別の条件。
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は条件が違います
TLS Ticket
• サーバからクライアントにTLS再接続時に利用する
CipherSuite/MasterSecretが含まれた設定データ(チ
ケット)を暗号化して渡す。
• 渡したチケット情報はサーバ側では保持しない。
• クライアントは再接続時にチケットをサーバに送信。
サーバはチケットデータを復号化し、中のTLS設定
情報を利用して通信を再開する。
• チケット鍵が複数のサーバ間で共有できていれば別
サーバに行っても大丈夫。(ただし鍵管理が大変)
ClientHello
Sesstion Ticket Ext
ServerHello
SessionTicket Ext
Certificate
ServerHelloDone
ServerKeyExchange
NewSessionTicket
ChangeCipherSpec
Finished
ClientKeyExchange
ChangeCipherSpec
Finished
NodeでTLS Ticketを使う
• Node-v0.10で既に使えるが、単一プロセスのみ。
• Node-v0.12ではクラスタの複数プロセス間でチケット鍵が共有可
• Cluster でTLSを使っている方は、今すぐNode-v0.12へ
Node-v0.10.33 のTLSクラスター
Node-v0.12-pre のTLSクラスター
OCSP Stapling
• OCSP (Online Certificate Status Protocol):
• 証明書が失効していないか確認するプロトコル
• TLS初期接続時にクライアントが認証局サーバに確認。オーバヘッド
• OCSP Stapling:
• TLSサーバがOCSPレスポンスを証明書とともにクライアントに送信
• クライアントが認証局に確認する必要がない。Web表示の高速化
OCSP
Response
証明書+OCSP
Response
ClientHello +
status_request_v2 ext.
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 で確認
Dynamic TLS record (setMaxSendFragment)
• GoogleのIlya Grigorik氏が推奨しているTLSパラメータのチューニング手法
• 通常TLSに書き込まれるデータ長は、レコードサイズ最大の16Kであることが多い。
• 最初のレスポンスデータの取得は、16Kバイトを受信してからになる。
• 最初のデータを復号化するには10個のTCPパケット(1.5K)を受信が必要。
• TLSのレコードサイズをTCPの1セグメントのサイズに収まるように小さくすれば受信した1個目か
らデータの復号化が可能になる。
• よって受信したデータの1バイト目が表示される時間の短縮が図られる。
1.5K 1.5K
16K
これ一つで
復号可能よ
16K全部受信しな
いと復号できない
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);
});
小さいTLS Record Sizeの効果(rtt=1000msec時)
MaxSendFragment 16K
default
MaxSendFragment 1.3K
Time To First Byte
の高速化
requestStart responseStart
responseStartrequestStart
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_support
Ethernet
IP(v4/v6)
TCP
TLS
HTTP/2 Frame Layer
HTTP/1.1 Semantics
クライアント サーバ
1つの
TCP接続
ストリーム(id:1)
フレーム
フレーム
ストリーム(id:3)
フレーム
フレーム
ストリーム(id:5)
フレーム
フレーム
HTTP
リクエスト
レスポンス
HTTP
リクエスト
レスポンス
HTTP
リクエスト
レスポンス
SPDY, HTTP/2の全二重多重化通信
仮想的なストリームチャンネルを生成して多重化を実現
HTTP Head of Line Blockingを回避
HTTP/2クライアント
画像サーバA
画像サーバB
Reverse
Proxy
HTTP/2
多重化通信
レスポンス
が速い
レスポンスが
遅い
HTTP/1.1クライアント
TCPを6本張れるけど、1本中
に同時1リクエストの制限
1本のTCP
SPDYのメリットが一番よくわかるデモ
多数の画像を表示して見え方に違いがあるのか? (SPDY vs HTTP/1.1)
1. 少数画像 vs 多数画像。
2. 3枚目の画像毎に3秒のレスポンス遅延を入れる。
まとめ
Node-v0.12でTLS通信を最適化する方法はいろいろあります。
用法用量を守って正しくお使いください。
(special thanks to http://www.irasutoya.com/)

More Related Content

What's hot

【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
Developers Summit
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?_norin_
 
Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
Kaoru Maeda
 
Openflow超解釈
Openflow超解釈Openflow超解釈
Openflow超解釈
Hiroaki Kawai
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
http2study 20160423 IETF95 Report
http2study 20160423 IETF95 Reporthttp2study 20160423 IETF95 Report
http2study 20160423 IETF95 Report
Kaoru Maeda
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
Takashi Takizawa
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbind
Kaoru Maeda
 
HTTP2入門
HTTP2入門HTTP2入門
HTTP2入門
Sota Sugiura
 
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
 
暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
MITSUNARI Shigeo
 
第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモshigeki_ohtsu
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみた
Akira Iwamoto
 
HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)Jun Fujisawa
 
ブラウザで動く準同型暗号
ブラウザで動く準同型暗号ブラウザで動く準同型暗号
ブラウザで動く準同型暗号
MITSUNARI Shigeo
 
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについてJNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
Kenji Urushima
 
HTTP/2: ぼくたちのWebはどう変わるのか
HTTP/2: ぼくたちのWebはどう変わるのかHTTP/2: ぼくたちのWebはどう変わるのか
HTTP/2: ぼくたちのWebはどう変わるのか
Kaoru Maeda
 
WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装
Yuta Suzuki
 
Amazon CloudFront TLS/SSL Seminar 20160804
Amazon CloudFront TLS/SSL Seminar 20160804Amazon CloudFront TLS/SSL Seminar 20160804
Amazon CloudFront TLS/SSL Seminar 20160804
Hayato Kiriyama
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
 

What's hot (20)

【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?
 
Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
 
Openflow超解釈
Openflow超解釈Openflow超解釈
Openflow超解釈
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
http2study 20160423 IETF95 Report
http2study 20160423 IETF95 Reporthttp2study 20160423 IETF95 Report
http2study 20160423 IETF95 Report
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbind
 
HTTP2入門
HTTP2入門HTTP2入門
HTTP2入門
 
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
 
暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
 
第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみた
 
HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)
 
ブラウザで動く準同型暗号
ブラウザで動く準同型暗号ブラウザで動く準同型暗号
ブラウザで動く準同型暗号
 
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについてJNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
JNSA電子署名WG勉強会 2013.09.30 jsrsasignとjsjwsについて
 
HTTP/2: ぼくたちのWebはどう変わるのか
HTTP/2: ぼくたちのWebはどう変わるのかHTTP/2: ぼくたちのWebはどう変わるのか
HTTP/2: ぼくたちのWebはどう変わるのか
 
WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装
 
Amazon CloudFront TLS/SSL Seminar 20160804
Amazon CloudFront TLS/SSL Seminar 20160804Amazon CloudFront TLS/SSL Seminar 20160804
Amazon CloudFront TLS/SSL Seminar 20160804
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 

Similar to Node-v0.12のTLSを256倍使いこなす方法

IETF102 Report Authorization
IETF102 Report AuthorizationIETF102 Report Authorization
IETF102 Report Authorization
Kaoru Maeda
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
Taiki
 
Draft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and MicroservicesDraft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and Microservices
Taiki
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
Masahiro Kiura
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
Akira Yoshiyama
 
Kubernetesと閉域網
Kubernetesと閉域網Kubernetesと閉域網
Kubernetesと閉域網
Han Li
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
 
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
Shuichi Yukimoto
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
 
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Japan
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9Ryo Ito
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
Yoshifumi Kawai
 
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話shigeki_ohtsu
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
Takayoshi Tanaka
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key Token
Yuichi Nakamura
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
 

Similar to Node-v0.12のTLSを256倍使いこなす方法 (20)

IETF102 Report Authorization
IETF102 Report AuthorizationIETF102 Report Authorization
IETF102 Report Authorization
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
Draft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and MicroservicesDraft: Observability, Service Mesh and Microservices
Draft: Observability, Service Mesh and Microservices
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
 
Kubernetesと閉域網
Kubernetesと閉域網Kubernetesと閉域網
Kubernetesと閉域網
 
2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語2016 February - WebRTC Conference Japan - 日本語
2016 February - WebRTC Conference Japan - 日本語
 
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
2015-ShowNetステージ-SDN/NFV
2015-ShowNetステージ-SDN/NFV2015-ShowNetステージ-SDN/NFV
2015-ShowNetステージ-SDN/NFV
 
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key Token
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
 

More from shigeki_ohtsu

HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
shigeki_ohtsu
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
shigeki_ohtsu
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUIC
shigeki_ohtsu
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
httpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートhttpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートshigeki_ohtsu
 
HTTP/2.0がもたらす Webサービスの進化(後半)
HTTP/2.0がもたらすWebサービスの進化(後半)HTTP/2.0がもたらすWebサービスの進化(後半)
HTTP/2.0がもたらす Webサービスの進化(後半)shigeki_ohtsu
 
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_tHTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_tshigeki_ohtsu
 
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)shigeki_ohtsu
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話shigeki_ohtsu
 
Node.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたNode.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたshigeki_ohtsu
 
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するそうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するshigeki_ohtsu
 
SPDYの中身を見てみよう
SPDYの中身を見てみようSPDYの中身を見てみよう
SPDYの中身を見てみようshigeki_ohtsu
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
 

More from shigeki_ohtsu (15)

HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUIC
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
httpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートhttpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポート
 
HTTP/2.0がもたらす Webサービスの進化(後半)
HTTP/2.0がもたらすWebサービスの進化(後半)HTTP/2.0がもたらすWebサービスの進化(後半)
HTTP/2.0がもたらす Webサービスの進化(後半)
 
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_tHTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
 
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話
 
Stream2の基本
Stream2の基本Stream2の基本
Stream2の基本
 
Node.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りましたNode.js で SPDYのベンチマーク体験サイトを作りました
Node.js で SPDYのベンチマーク体験サイトを作りました
 
SPDYの話
SPDYの話SPDYの話
SPDYの話
 
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するそうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
 
SPDYの中身を見てみよう
SPDYの中身を見てみようSPDYの中身を見てみよう
SPDYの中身を見てみよう
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 

Recently uploaded

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (10)

キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

Node-v0.12のTLSを256倍使いこなす方法