>100 Views
December 05, 16
スライド概要
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
セキュアにユーザ行動情報 を取得するための取り組み 2016年12月5日 桑山 智耶
自己紹介 氏名 桑山 智耶 最近のヒット PSVR(サマーレッスン) 業務 ビーコン・リダイレクトサーバの運用 2
プロダクトの目的 データ取得 サービス向上 3 ユーザを知る
プロダクトの目的 データ取得 サービス向上 4 ユーザを知る
プロダクトの目的 データ取得 サービス向上 5 ユーザを知る
プロダクトの目的 データ取得 サービス向上 6 ユーザを知る
プロダクトの目的 データ取得 サービス向上 7 ユーザを知る
プロダクトの目的 データ取得 データとサイエンスの力で より良いサービスを! サービス向上 8 ユーザを知る
プロダクトの目的 ココの話 データ取得 サービス向上 9 ユーザを知る
主要なプロダクト webビーコンサーバ リダイレクトサーバ • • ユーザの行動情報取得 ① httpリクエスト ユーザアクションの取得 A ページ X ページ Y ③ ページの表示開始 ② レスポンス Webログ 各サービスのWebサーバ B ④ ビーコンの発動 <img> or js Beaconログ ビーコンサーバ ログ Z リダイレクトサーバ 10 他のWebサーバ Webサーバ ⑤ httpリクエスト (⑥ レスポンス) ログ Y ログ X
アジェンダ 1. セキュアにユーザ行動情報取得 2. ATS対応のための負荷検証 11
アジェンダ 1. セキュアにユーザ行動情報取得 2. ATS対応のための負荷検証 12
プロダクトの目的 データ取得 サービス向上 13 ユーザを知る
AOSSL 常時SSL(Always On SSL) • 全サービスがHTTPS • 14 http://docs.yahoo.co.jp/info/aossl/
AOSSL 常時SSL(Always On SSL) • 全サービスがHTTPS • 15 http://docs.yahoo.co.jp/info/aossl/ • Webビーコンサーバ • リダイレクトサーバ
ATS ATS(App Transport Security) • • • 2016年末よりiOS9, iOS10.11から導入 App Storeで公開される全アプリが対象 HTTPS && PFSな暗号スイート https://developer.apple.com/videos/play/wwdc2016/705/ 16
ATS • PFS(Perfect Forward Secrecy) • 前方秘匿性 • 将来、秘密鍵が漏洩したり解読されたりしても全ての 通信を解読させない 17
これからは
セキュアな通信へ AOSSL 19 ATS
セキュアな通信へ 当たり前 AOSSL 20 バッチ 来い! ATS
ところで…
リダイレクタでは (10億 req/day) x (AOSSL) x (ATS) 22
セキュアな通信へ • サーバ負荷が重くなる AOSSL • レイテンシが大きくなる 23 ATS
リダイレクタでは (10億 req/day) x (AOSSL) x (ATS) = (ヤバ目???) 24
そうだっ、 負荷検証しよう!
アジェンダ 1. セキュアにユーザ行動情報取得 2. ATS対応のための負荷検証 26
検証の目的 • • • 27 全リクエストがHTTPS化したときの負荷は? PFSの暗号スイートのリクエストの負荷は? レイテンシはどの程度になるのか?
選択したツール vegeta • • • HTTPの負荷検証ツール Go言語実装のオープンソース ライブラリから呼んでシナリオも書ける https://github.com/tsenart/vegeta#usage-library 28
選択したツール vegeta • • • HTTPの負荷検証ツール Go言語実装のオープンソース ライブラリから呼んでシナリオも書ける 暗号スイート指定したシナリオを実装 https://github.com/tsenart/vegeta#usage-library 29
例 cipherSuites := []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, } 30
例 atsTestConfig := &tls.Config{ PreferServerCipherSuites: true, SessionTicketsDisabled: true, CipherSuites: cipherSuites, } // 暗号スイートを指定, KeepAliveを無効に attacker := vegeta.NewAttacker(vegeta.TLSConfig(atsTestConfig), vegeta.KeepAlive(false)) 31
まとめ • • 33 AOSSL化・ATS対応したリクエストを受けた場合、サーバ 負荷とレイテンシは増加する 自分たちの要件に沿って負荷検証ツールを選択しないと いけない
m(_ _)m ヤフーは安全な通信のためにAOSSLの準備 を着々と進めています。 34