Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web over HTTPS

Jxck
October 09, 2016

Web over HTTPS

Web over HTTPS
DevFest Tokyo 2016
#devfest16 2016/10/0

Jxck

October 09, 2016
Tweet

More Decks by Jxck

Other Decks in Programming

Transcript

  1. Web
    over
    HTTPS
    DevFest Tokyo 2016
    #devfest16 2016/10/09

    View full-size slide

  2. 4
    安全とは?
    全ての HTTP サイト
    は危険なの?

    View full-size slide

  3. 5
    何からどう安全か?
    ● 安全ってどういうこと?
    ● そもそも危険なの?
    ● 悪いのはだれなの?
    ● その手段が HTTPS でいいの?
    ● HTTPS にしないと悪者扱いなの?
    ● このサイト、パスワードもカードも使わないんだけど?
    ● なんで Google に Insecure とか言われないといけないの?
    ● え、検索ランク下がるの?
    ● なんで Service Worker 使えないの?
    ● 急に言われたって無理だよ。。

    View full-size slide

  4. 何が起こっているのか?
    6

    View full-size slide

  5. 8
    平文 HTTP パケット
    request response

    View full-size slide

  6. 最初の Web の役割
    9
    ● ドキュメント(論文)共有のプラットフォーム
    ● ごく限られたユーザ(研究者など)
    ● パケットが見えたところで
    ● 平文で問題なかった

    View full-size slide

  7. サイトからシステムへ
    10

    View full-size slide

  8. ID とセッション管理
    11

    View full-size slide

  9. 12
    req
    res
    password
    丸見え
    cookie
    丸見え
    平文だと

    View full-size slide

  10. 秘情報
    13
    ● パスワード
    ● cookie
    ● クレジットカード番号
    ● 住所、電話番号
    ● メールアドレス
    ● DM
    ● 個人的な写真
    漏れたら一大事

    View full-size slide

  11. 14
    MITM
    Client Server
    Middle
    Box

    View full-size slide

  12. 15
    MITM
    Client Server
    Middle
    Box
    中間にあるネットワーク
    機器なら簡単に覗ける
    (*犯罪です、だめ絶対 )
    見るだけじゃなく
    書き換えたり、なりすましたりも
    (MITM 前提の攻撃もよくある )

    View full-size slide

  13. 16
    TLS 暗号化
    (盗聴・改ざん・なりすまし防止)
    https - http over tls

    View full-size slide

  14. 17
    大事なところだけ HTTPS ?
    redirect
    login index list
    cart check
    redirect
    秘情報が無ければ
    平文でいい?

    View full-size slide

  15. http でもいい?
    ● ドキュメントとかはいいよね
    ● ニュースとかはいいよね
    ● 漫画だしいいよね
    ● 秘情報ないからいいよね
    ● 見られたとしても別にね
    ● メリットが無いしね
    ● めんどく(ry
    18
    何が知られたくない
    かなんて人によって
    違う

    View full-size slide

  16. もしも平文だったら
    ● 検索エンジン
    ● 書籍の検索
    ● 新聞やニュース系サイト
    ● 画像・動画サイト
    19
    つぶさに盗聴すると
    主義/思想、趣味/趣向なども
    浮かび上がるかも

    View full-size slide

  17. 技術的にはそうだけど
    そんなことやるやついないよね
    20

    View full-size slide

  18. 21
    Edward Joseph Snowden
    と、思うじゃ
    ん?

    View full-size slide

  19. PRISM 計画
    22
    ● 国民の通信バッチリ記録
    ● 企業と組んでバックドア
    ● それらを国防(テロ対策)の名の下正当化
    らりるれろ

    View full-size slide

  20. 23
    言論の自由!!

    View full-size slide

  21. じゃ、じゃあとりあえず
    HTTPS にすればいいよね。。
    24

    View full-size slide

  22. 25
    ロシア亡命中
    そんな
    HTTPS
    で大丈夫か?

    View full-size slide

  23. 国が本気出すとデキるらしいこと
    26
    ● HTTPS でもとにかく記録しておく
    ○ 法律で殴りまくって秘密鍵の提出要求
    ○ 物理で殴りまくって素因数分解
    スケールが違うの
    だよスケールが

    View full-size slide

  24. 牧歌的時代の終焉
    27

    View full-size slide

  25. 前提の変化
    28
    ● Web はもっと殺伐としていた
    ○ 通信は見られている
    ○ 秘情報かは関係無い
    ○ もう何も信じられない
    ● 暗号化という対抗手段
    ○ 秘情報を隠すため
    ○ 攻撃されてないため
    ○ 監視されてないため
    ○ 片手間な設定じゃだめ
    Web ユーザ
    の自由を守
    るため

    View full-size slide

  26. 29
    HTTPS にする理由
    ではなく
    HTTPS にしない理由
    の説明を求められる時代

    View full-size slide

  27. 適切な HTTPS
    設定できますか?
    31

    View full-size slide

  28. 正しく HTTPS
    ● TLS
    ○ RSA key size ?
    ○ Ciphersuites ?
    ○ TLS version ?
    ○ TLS curve ?
    ○ perfect foward security ?
    ○ session resumpsion ?
    ○ ocsp stapling ?
    ● https://wiki.mozilla.org/Security/Server_Side_TLS
    ● https://www.ssllabs.com/
    32
    正しい理解と
    適切な設定を
    わからなければ
    mozilla の推奨設定
    sslabs でチェック

    View full-size slide

  29. PFS
    ● Perfect Forward Secrecy
    ● TLS セッションごとに鍵を変える
    ● 秘密鍵が漏洩しても過去に遡って解読できない
    ● Ephemeral の付く鍵交換を利用 (ECDHE)
    33
    ごっそり記録されても
    秘密鍵を要求されても
    だいじょーぶ

    View full-size slide

  30. 本当に大変なのは
    設定じゃない
    34

    View full-size slide

  31. HTTPS 化を妨げる要因
    ● 証明書
    ● URL の変更
    ● Mixed Contents
    ● ビジネスメリット
    ● CPU リソース
    ● ガラケーの存在
    ● etc
    35

    View full-size slide

  32. HTTPS 化を妨げる要因
    ● 証明書
    ● URL の変更
    ● Mixed Contents
    ● ビジネスメリット
    ● CPU リソース
    ● ガラケーの存在
    ● etc
    36

    View full-size slide

  33. 証明書
    買え
    37

    View full-size slide

  34. EV 証明書
    ● EV 証明書
    ○ まともにビジネスをやるなら EV を買うべき
    ○ 一番簡単に見える、信頼できる組織の証
    ○ URL バーに堂々と組織名を
    38
    お金で買える信用ほど
    安いものはない

    View full-size slide

  35. Let’s Encrypt
    ● 無料の DV 証明書
    ○ 基本は非営利や個人サイト向け
    ○ EveryWhere のうちビジネス用途以外を担うイメージ
    ○ wildcard の無い EV の補完 (ex microservices)
    ● ACME プロトコル
    ○ 証明書管理自動化プロトコル
    ○ certbot (client) + boulder (server)
    ○ 自社 DC や開発用 CA としても応用可能
    ○ 他の CA サービスにも広まることを期待
    39

    View full-size slide

  36. HTTPS 化を妨げる要因
    ● 証明書
    ● URL の変更
    ● Mixed Contents
    ● ビジネスメリット
    ● CPU リソース
    ● ガラケーの存在
    ● etc
    40

    View full-size slide

  37. URL 変更
    ● http:// の URL が広まっている
    ○ http:// はすべて残したまま
    ○ http:// をすべて https:// にリダイレクト
    ● HSTS
    ○ 毎回リダイレクトだと遅い
    ○ 最初のリダイレクトでブラウザに覚えてもらう
    ○ http:// へのリクエストが https:// に読み替えられる
    ○ ブラウザに preload することで最初から HSTS に
    ○ Full HTTPS 化の 1 つの指標
    41

    View full-size slide

  38. HTTPS 化を妨げる要因
    ● 証明書
    ● URL の変更
    ● Mixed Contents
    ● ビジネスメリット
    ● CPU リソース
    ● ガラケーの存在
    ● etc
    42

    View full-size slide

  39. Mixed Contents
    ● HTTPS ページに HTTP のサブリソース
    ○ 警告になるものと読み込まれないものがある
    ○ 広告が表示されない問題
    ○ iframe 許す CGM での問題
    43
    https://labs.jxck.io/mixed/

    View full-size slide

  40. Mixed Contents 対策
    ● Upgrade Insecure Request
    ○ 埋め込まれた http:// のリクエストを https:// にする
    ○ 読み込む先が https 対応している必要
    ● CSP report
    ○ mixed contents の情報を集める
    ○ 地道に潰す
    ○ 可視化することで対応を加速
    ● HSTS Priming (draft)
    ○ mixed contents が HSTS だったら upgrade
    44

    View full-size slide

  41. HTTPS 化を妨げる要因
    ● 証明書
    ● URL の変更
    ● Mixed Contents
    ● ビジネスメリット
    ● CPU リソース
    ● ガラケーの存在
    ● etc
    45

    View full-size slide

  42. ビジネスメリット
    ● 「Web の自由のため」では金は出ない
    ● 啓蒙の限界
    ● 別の強制力も必要
    ● ブラウザやプラットフォーマの圧力
    46
    大人のやり方

    View full-size slide

  43. ● Google Search Rank
    ● URL Bar
    47

    View full-size slide

  44. ● Google Search Rank
    ● URL Bar
    48
    説明不要の絶大な効果
    最初の記事の話
    (そのうち insecure って表示するよ)

    View full-size slide

  45. HTTPS でしかできないこと
    ● HTTP2
    ● Service Worker
    ● WebRTC(gUM)
    ● Geolocation
    ● Add to Home Screen
    ● Credential Management
    ● etc
    49
    MITM 成立時の影響が大
    きいという理由も。
    逆に今後出る低レベル
    API もHTTPS前提となっ
    ていく。

    View full-size slide

  46. その他、よく聞く問題
    ● ノウハウがない。。
    ● 遅くなっちゃった。。
    ● CPU リソースが。。
    ● 古いガラケーが。。
    50

    View full-size slide

  47. その他、よく聞く問題
    ● ノウハウがない。。
    ● 遅くなっちゃった。。
    ● CPU リソースが。。
    ● 古いガラケーが。。
    51
    自分達でなんとかできる問題
    (問題ではなく課題)
    自分達でどうにもできない問題
    (買い替えを待つしか無い)

    View full-size slide

  48. 現状
    ● 牧歌的な時代は終わってしまった
    ● 議論はあるが HTTPS 化は避けられない
    ● する理由ではなく、しない理由を探すフェーズ
    ● そして、しない理由を潰していく
    ● 遅れるほど辛くなる
    52

    View full-size slide

  49. これからどうなっていくか
    53

    View full-size slide

  50. LTS 関連インシデント
    54

    View full-size slide

  51. HTTPS を狙う人々
    55
    ● HTTPS の重要性が高まった
    ● そこを狙うメリットも増えた
    ● 実際に関連インシデントが目立つようになった
    ● 今後はもっと増えるかも
    ● 標的
    ○ OpenSSL
    ○ CA
    ○ メジャーブラウザ
    ○ TLS プロトコルそのもの
    TLS + PKI に乗っかるからこそ、
    そこで起こる事件には注意と迅速
    な対応が必須

    View full-size slide

  52. プロトコルの改善
    56

    View full-size slide

  53. post quantum
    57
    ● 量子コンピュータが普及すると
    ○ 素因数分解の実行時間などに依存した暗号は
    ○ 一瞬で解けるかもしれない
    ○ 暗号になってない、ヤバイ
    ● 耐量子コンピュータ暗号方式
    ○ CECPQ1 が Chrome に実装され始める
    ○ Google Play Store などですでに使われている
    結城先生!次の改訂でぜひ!!

    View full-size slide

  54. 日和見暗号
    58
    ● Opportunistic Encryption
    ● TLS = 相手の保証 + 暗号化
    ● 暗号化だけなら証明書はいらない
    ● http:// だけど経路暗号化だけしよう
    ● Firefox が先行実装

    View full-size slide

  55. TLS1.3
    59
    ● TLS1.2 も色々限界(技術的負債)
    ● もっとセキュアに(危殆化暗号、平文通信削減)
    ● もっと速く(ハンドシェイクをできればなくす)
    ● もっと綺麗に(使われない機能、項目をなくす)
    ● その他色々
    ● RFC も近そう?

    View full-size slide

  56. それでも進みつつある HTTPS 化
    61
    ● それでもインターネット全体では進んでる
    ● (日本は少し遅れているというデータも)
    ● 新規開発で HTTPS にしていく
    ● 既存資産もなんとかしてく
    ● 徐々に進みそう

    View full-size slide

  57. 足りてないもの
    62
    ● 大規模な移行事例の共有がもう少し欲しい
    ○ 表に出にくい?
    ○ 内部の都合が占める部分がでかい?
    ● HTTPS 前提の開発がまだ確立してない
    ○ HTTPS を前提とするノウハウ
    ○ HTTPS を前提とする開発環境
    ○ HTTPS を前提としたフレームワーク
    ○ HTTPS を前提としたアプリ設計
    ○ HTTPS を前提としたインフラ設計
    エコシステム
    の力が重要

    View full-size slide

  58. HTTPS 化する理由
    63

    View full-size slide

  59. 64
    ● Google が言ったから?
    ● SEO で勝ちたいから?
    ● Service Worker 使いたいから?
    ● やってないと恥ずかしいから?
    ● Web ユーザの自由を守るため?
    あなたはどれ?

    View full-size slide

  60. HTTPS 化に
    本当に必要なもの
    65

    View full-size slide

  61. 66
    本当に必要なもの
    ● それが必要だという意識
    ● それを行う正しい知識と技術
    ● そして少々のお金

    View full-size slide

  62. 67
    本当に必要なもの
    ● それが必要だという意識
    ● それを行う正しい知識と技術
    ● そして少々のお金
    それを広めるのがコミュニティの責務
    それを整備するのがエコシステムの責務
    それが揃ったときにすぐに動けるようにするの
    がエンジニアの責務

    View full-size slide

  63. May the
    Free & Safe
    be with Web
    68

    View full-size slide