セキュアにユーザ行動情報を取得するための取り組み #yjdsnight

33
桑山 智耶 セキュアにユーザ行動情報 を取得するための取り組み 2016年12月5日

Upload: yahoo

Post on 09-Jan-2017

276 views

Category:

Technology


0 download

TRANSCRIPT

桑山 智耶

セキュアにユーザ行動情報

を取得するための取り組み

2016年12月5日

自己紹介

2

氏名

桑山 智耶

最近のヒット

PSVR(サマーレッスン)

業務

ビーコン・リダイレクトサーバの運用

プロダクトの目的

3

データ取得

サービス向上 ユーザを知る

プロダクトの目的

4

データ取得

サービス向上 ユーザを知る

プロダクトの目的

5

データ取得

サービス向上 ユーザを知る

プロダクトの目的

6

データ取得

サービス向上 ユーザを知る

プロダクトの目的

7

データ取得

サービス向上 ユーザを知る

プロダクトの目的

8

データ取得

サービス向上 ユーザを知る

データとサイエンスの力でより良いサービスを!

プロダクトの目的

9

データ取得

サービス向上 ユーザを知る

ココの話

10

主要なプロダクト

webビーコンサーバ• ユーザの行動情報取得

リダイレクトサーバ• ユーザアクションの取得

各サービスのWebサーバ

Webログ

① httpリクエスト

② レスポンス

③ ページの表示開始

④ ビーコンの発動

ビーコンサーバ

Beaconログ

⑤ httpリクエスト

(⑥ レスポンス)

<img> or js

ページ X ページ Y

B

リダイレクトサーバ

Webサーバ 他のWebサーバ

ログ X ログ Y

ログ Z

A

アジェンダ

11

1. セキュアにユーザ行動情報取得

2. ATS対応のための負荷検証

アジェンダ

12

1. セキュアにユーザ行動情報取得

2. ATS対応のための負荷検証

プロダクトの目的

13

データ取得

サービス向上 ユーザを知る

AOSSL

14

常時SSL(Always On SSL)• 全サービスがHTTPS

• http://docs.yahoo.co.jp/info/aossl/

AOSSL

15

常時SSL(Always On SSL)• 全サービスがHTTPS

• http://docs.yahoo.co.jp/info/aossl/• Webビーコンサーバ• リダイレクトサーバ

ATS

16

ATS(App Transport Security)• 2016年末よりiOS9, iOS10.11から導入

• App Storeで公開される全アプリが対象

• HTTPS && PFSな暗号スイート

https://developer.apple.com/videos/play/wwdc2016/705/

ATS

17

• PFS(Perfect Forward Secrecy)• 前方秘匿性• 将来、秘密鍵が漏洩したり解読されたりしても全ての通信を解読させない

これからは

セキュアな通信へ

19

ATSAOSSL

セキュアな通信へ

20

ATSAOSSL

当たり前バッチ来い!

ところで…

22

(10億 req/day)x

(AOSSL)x

(ATS)

リダイレクタでは

セキュアな通信へ

23

ATSAOSSL• サーバ負荷が重くなる• レイテンシが大きくなる

24

(10億 req/day)x

(AOSSL)x

(ATS)=

(ヤバ目???)

リダイレクタでは

そうだっ、

負荷検証しよう!

アジェンダ

26

1. セキュアにユーザ行動情報取得

2. ATS対応のための負荷検証

検証の目的

27

• 全リクエストがHTTPS化したときの負荷は?

• PFSの暗号スイートのリクエストの負荷は?

• レイテンシはどの程度になるのか?

選択したツール

28

vegeta• HTTPの負荷検証ツール• Go言語実装のオープンソース• ライブラリから呼んでシナリオも書ける

https://github.com/tsenart/vegeta#usage-library

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

まとめ

• AOSSL化・ATS対応したリクエストを受けた場合、サーバ負荷とレイテンシは増加する

• 自分たちの要件に沿って負荷検証ツールを選択しないといけない

33

m(_ _)m

ヤフーは安全な通信のためにAOSSLの準備を着々と進めています。

34