Slide 1

Slide 1 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. 二要素認証を
 組み込もう
 Twilio Japan合同会社
 池原大然 (@Neri78)


Slide 2

Slide 2 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 自己紹介
 池原 大然
 Developer Evangelist @ Twilio Email: [email protected] Twitter/Twitch/GitHub: “Neri78” 
 Twitch Twitter GitHub

Slide 3

Slide 3 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. RUNTIME Functions Assets CLI Debugger SDKs Phone Numbers Short Codes IoT SIM SIP Interconnect SUPER NETWORK Twilio Flex Marketing Campaigns ソリューション チャネル API SMS Voice Chat Email WhatsApp Video Facebook Autopilot インテリジェンス Verify Lookup Authy アイデンティティ TaskRouter オーケストレーション Studio Conversations

Slide 4

Slide 4 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. Twilio = 様々なコミュニケーションチャネルをクラウドを介し、
 プログラム可能な状態で利用できるサービス


Slide 5

Slide 5 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. アカウントの
 セキュリティを
 高めるためには?


Slide 6

Slide 6 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. 多要素認証とは?
 wikipediaより:
 出典: https://ja.wikipedia.org/wiki/%E5%A4%9A%E8%A6%81%E7%B4%A0%E8%AA%8D%E8%A8%BC

Slide 7

Slide 7 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Email 電話番号
 いろいろなソースから 
 利用できる
 電話番号の偽装は(現在)難しい 


Slide 8

Slide 8 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 電話番号をIDに利用
 多くのサービスで利用されている 


Slide 9

Slide 9 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED.

Slide 10

Slide 10 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Twilio アカウントセキュリティプロ ダクト


Slide 11

Slide 11 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 3つのシナリオ
 登録
 認証
 回復


Slide 12

Slide 12 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. それぞれの課題
 登録
 認証
 回復
 ユーザー偽装
 乗っ取り
 サポートコスト


Slide 13

Slide 13 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Twilio APIを利用し解決
 課題
 Twilio API
 
 Verify 偽装
 乗っ取り
 サポート
 コスト


Slide 14

Slide 14 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 二要素認証をアプリに組み込み 
 Verify

Slide 15

Slide 15 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 本人(かもしれない)確認
 電話番号などを用いた認証で不正な新規アカウント作成を防止
 Verify User Verified 確認コードを SMS、電話、 Emailで送信
 コードを入力


Slide 16

Slide 16 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. 世界対応の
 認証
 
 200以上の国や地域に 対応し、ロケールに
 よる認証メッセージの ローカライズ
 確認コード送信用の 電話番号管理が不要
 
 Twilio側で確認コードの
 送信を管理、運用
 電話番号の取得は不要
 豊富なチャネル
 
 
 SMS、電話、Emailで確 認コードの
 送信が可能
 主な機能
 1 2 3

Slide 17

Slide 17 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Verify demo

Slide 18

Slide 18 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 確認コードの送信先(電話番号、 Emailアドレス)、
 送信方法(SMS、電話、Email)を設定
 コードの送信 // AccountSidとAuthTokenでクライアントを初期化 const client = require('twilio')( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN); let verify_service_sid = 'VAxxxxxxxxxxxxxxxxx'; let verify_to = '+8190xxxxxxxx'; // 事前にID/PWなどの認証を行う // コードを送信 client.verify.services(verify_service_sid) .verifications .create({ to: verify_to, channel: 'sms'}) //sms, call, email .then(verification => console.log(verification)); { sid: 'VExxxxxxxxxxxxxxx', serviceSid: 'VAxxxxxxxxxxxxxxx', accountSid: 'ACxxxxxxxxxxxx', to: '+8190xxxxxxxx', channel: 'sms', status: 'pending', valid: false, lookup: { carrier: { mobile_country_code: '440', type: 'mobile', error_code: null, mobile_network_code: '50', name: 'KDDI' } }, amount: null, payee: null, sendCodeAttempts: [ { channel: 'sms', time: '2020-04-20T22:03:09.112Z' } ], dateCreated: 2020-04-20T22:03:09.000Z, dateUpdated: 2020-04-20T22:03:09.000Z, url: … }

Slide 19

Slide 19 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. コードを送信先(電話番号、 Emailアドレス)、
 またはVerificationSidをもとに検証
 検証のステータスを(検証中/失敗、許可、拒否)で取得 
 コードの検証
 // AccountSidとAuthTokenでクライアントを初期化 const client = require('twilio')( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN); let verify_service_sid = 'VAxxxxxxxxxxxxxxxxx'; let verify_to = '+8190xxxxxxxx'; // コードを送信先(to)で確認 client.verify.services(verify_service_sid) .verificationChecks .create({ to: verify_to, code: '081170'}) .then (verification_check => console.log(verification_check)); { sid: 'VExxxxxxxxx', serviceSid: 'VAxxxxxxxx', accountSid: 'ACxxxxx', to: '+8190xxxxxxxx', channel: 'sms', status: 'approved', valid: true, amount: null, payee: null, dateCreated: 2020-04-20T22:29:20.000Z, dateUpdated: 2020-04-20T22:30:00.000Z }

Slide 20

Slide 20 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Emailで検証コードを送信する場合は、あらかじめ 
 SendGridと統合したサービスを作成しておく 
 https://www.twilio.com/docs/verify/email SendGridと連携


Slide 21

Slide 21 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Verify demo

Slide 22

Slide 22 text

© 2020 TWILIO, INC. ALL RIGHTS RESERVED. まとめ 
 ➢ 多要素認証を手軽にアプリに追加
 ○ SMS
 ○ Voice
 ○ Email
 ○ Push
 
 
 リソース:
 Verify https://jp.twilio.com/docs/verify/api 


Slide 23

Slide 23 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. ハンズオンのすすめかた


Slide 24

Slide 24 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. 本日のハンズオンについて
 ● ハンズオンコンテンツ
 https://neri78.github.io/Twilio-HandsOn-AccSec-JP/ ● 不明点についてはそれぞれのプラットフォームで提供されている
 チャットでご質問ください
 
 ● 適宜休憩をおとりください
 


Slide 25

Slide 25 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. まとめ


Slide 26

Slide 26 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. リソース
 ● リソース
 ○ ドキュメント
 https://jp.twilio.com/docs/verify/api ○ ハンズオンコンテンツ https://neri78.github.io/Twilio-HandsOn-AccSec-JP/

Slide 27

Slide 27 text

© 2020 TWILIO INC. ALL RIGHTS RESERVED. © 2020 TWILIO INC. ALL RIGHTS RESERVED. Lookup Verify Authy おつかれさまでした!