Return to Video

Incorporating Hmac - CS253 Unit 4 - Udacity

  • 0:00 - 0:03
    古いコードの脆弱性をご覧いただいてから
  • 0:03 - 0:05
    修正していきます
  • 0:05 - 0:07
    古いコードが実行されています
  • 0:07 - 0:10
    これを見てCookieを修正していきます
  • 0:10 - 0:14
    document.cookieと打つと値が表示されます
  • 0:14 - 0:19
    visitsを10001に設定したいので
    まず10001のハッシュを見つけます
  • 0:19 - 0:24
    Pythonを使ってやってみましょう
    hashlibをインポートし
  • 0:24 - 0:31
    hashlib.md5("10001").hexdigestと記述すると
  • 0:31 - 0:33
    ここに値が表示されました
  • 0:33 - 0:35
    ブラウザで見てみましょう
  • 0:35 - 0:41
    Cookieを偽造しているところです
    documents.cookieのあとに
  • 0:41 - 0:45
    =visits=10001|と打つと
    新しいハッシュ値が表示されます
  • 0:45 - 0:52
    ページを更新すると
    You are the best ever!と表示されます
  • 0:52 - 0:54
    でもこれはインチキです
  • 0:54 - 0:56
    新しい関数を組み込みましょう
  • 0:56 - 0:58
    コードに記述したばかりです
  • 0:58 - 1:03
    エディタで新しい関数の箇所に来ました
  • 1:03 - 1:05
    SECRETを移動させます
  • 1:05 - 1:09
    共有しない他のモジュールにいるフリをします
  • 1:09 - 1:14
    既存の関数も新しい関数と同じくらい
    よくしなければなりません
  • 1:14 - 1:17
    これをブラウザで試してみましょう
  • 1:17 - 1:18
    ブラウザが表示されました
  • 1:18 - 1:22
    新しいハッシュ関数を組み込んだので
  • 1:22 - 1:24
    古いCookieは無効になります
  • 1:24 - 1:27
    更新すると訪問回数が1回になります
  • 1:28 - 1:32
    Cookieを検査する場合はdocument.cookieと記述します
  • 1:32 - 1:35
    フォーマットは前のCookieと同じですが
  • 1:35 - 1:37
    このCookieは偽造しにくくなっています
  • 1:37 - 1:40
    secretを知らないと推測しかできません
  • 1:40 - 1:44
    ハッシュ化アルゴリズムの性質は
  • 1:44 - 1:47
    正しい取得が基本的にできないということです
  • 1:47 - 1:51
    このCookieを修正する場合は
  • 1:51 - 1:56
    document.cookie=visits=10001と記述します
    どんな値でも
  • 1:56 - 1:58
    入れることができ反復処理できます
  • 1:58 - 2:01
    ハッシュの推測が当たる可能性もありますが
  • 2:01 - 2:03
    確率はものすごく低いでしょう
  • 2:03 - 2:06
    更新すると1にリセットされます
  • 2:06 - 2:09
    どれくらい低い確率かというと
  • 2:09 - 2:12
    時間をかけて宇宙にある原子を
  • 2:12 - 2:15
    見つけるようなものです
  • 2:15 - 2:17
    都合よく見つかることはないでしょう
  • 2:17 - 2:19
    アルゴリズムを要約して今までの内容を
  • 2:19 - 2:22
    まとめます Cookieを設定する代わりに
  • 2:22 - 2:26
    visits=1を設定しましたが
    これは偽造されやすいものでした
  • 2:26 - 2:32
    visits=1とmd5(1)も
  • 2:32 - 2:37
    MD5の使用が知られてしまうと
    簡単に偽造されてしまいます
  • 2:37 - 2:42
    visits=1|HMAC(Secret, 1)は
  • 2:42 - 2:45
    secretがバレない限り
  • 2:45 - 2:47
    アルゴリズムやコードを知られても
  • 2:47 - 2:51
    Cookieが偽造されることはありません
  • 2:51 - 2:54
    優れた性質なのでよく使っています
  • 2:54 - 2:55
    visitsではなく
  • 2:55 - 2:57
    ユーザIDをカウントしたら
  • 2:57 - 3:00
    きっと大問題になるでしょう
  • 3:00 - 3:03
    例えばGmailにログインしていて
  • 3:03 - 3:06
    個人を特定するCookieを取得したとします
  • 3:06 - 3:11
    もし誰かが私のIDを自分のIDだと言って
  • 3:11 - 3:13
    私のメールにアクセスしたら大変です
  • 3:13 - 3:17
    だからこのようなことをしてCookieの偽造を防ぎます
  • 3:17 - 3:20
    またサーバ側での検証の手間も省けます
  • 3:20 - 3:23
    ここで検証されなければ文字列がすべて数字かを
  • 3:23 - 3:26
    チェックする必要はありません
  • 3:26 - 3:28
    ユーザが設定したものだからです
  • 3:28 - 3:31
    これで人生が少しシンプルになります
  • 3:31 - 3:35
    この講義ではあらゆることにこの戦略を使っていきます
Cím:
Incorporating Hmac - CS253 Unit 4 - Udacity
Leírás:

more » « less
Video Language:
English
Team:
Udacity
Projekt:
CS253 - Web Development
Duration:
03:36

Japanese subtitles

Felülvizsgálatok