Slide 1

Slide 1 text

JWT 完全に理解しよう ~公開鍵編~ @dach

Slide 2

Slide 2 text

Why speak Today?

Slide 3

Slide 3 text

Playback last Challenge corner JWT
 ● 何ができるか:トークンを使ったセキュリティーの実現、自己完結型・安全 
 ● 何故必要か:JSONを構造化できる、シンプルかつわかりやすくするため 
 ● どのような時につかうか:ユーザー認証、改竄の有無を確認するため、 
 ● 初登場:
 ● 開発者:
 ● 特徴:
 ○ 
 ○ 
 
 出典:公式サイト


Slide 4

Slide 4 text

どげんかせんといかん Thinking

Slide 5

Slide 5 text

Today’s goal JWTを完全に理解する「為の技術を理解する」

Slide 6

Slide 6 text

Who is me? EasyEasy icon チキン南蛮 VRM ID: @dach JOB: Eng (PM / カイゼン屋) Twitter: i-dach qiita: i-dach

Slide 7

Slide 7 text

Learn JWT

Slide 8

Slide 8 text

At First

Slide 9

Slide 9 text

コンパクトな形式のJSONWeb Tokenは、ドット(.)で区切られた3つの部分で構成されています。 ● ヘッダ ● ペイロード ● 署名 したがって、JWTは通常次のようになります。 xxxxx.yyyyy.zzzzz (公式サイトより) What's JWT structuer

Slide 10

Slide 10 text

JSON Web Token(JWT)はオープンスタンダード(RFC 7519)であり、当事者間で情報をJSONオブジェクトとして安全に送信する ためのコンパクトで自己完結型の方法を定義しています。この情報はデジタル署名されているため、検証および信頼できます。JWT は、シークレット(HMACアルゴリズムを使用)またはRSAまたはECDSAを使用した公開鍵と秘密鍵のペアを使用して署名できま す。 (公式サイトより) What's JWT デジタル署名 Keywords シークレット RSA 公開鍵 / 秘密鍵

Slide 11

Slide 11 text

How to use 承認: これは、JWTを使用するための最も一般的なシナリオです。ユーザーがログインすると、後続の各リクエストにはJWTが含まれ、 ユーザーはそのトークンで許可されているルート、サービス、およびリソースにアクセスできるようになります。シングルサインオン は、オーバーヘッドが小さく、さまざまなドメイン間で簡単に使用できるため、現在JWTを広く使用している機能です 情報交換: JSON Web Tokenは、当事者間で情報を安全に送信するための優れた方法です。JWTは、たとえば公開鍵と秘密鍵のペアを使用 して署名できるため、送信者が本人であると確信できます。さらに、署名はヘッダーとペイロードを使用して計算されるため、コンテン ツが改ざんされていないことを確認することもできます。 (公式サイトより) 承認 Keywords シングルサインオン

Slide 12

Slide 12 text

デジタル署名 Keywords シークレット RSA 公開鍵 / 秘密鍵 承認 シングル サインオン

Slide 13

Slide 13 text

デジタル署名 Keywords シークレット RSA 公開鍵 / 秘密鍵 承認 シングル サインオン this

Slide 14

Slide 14 text

Next: Cryptography

Slide 15

Slide 15 text

Do you understand "Cryptography"? 秘伝のタレを 継承をしたい...

Slide 16

Slide 16 text

Do you understand "Cryptography"? 口頭 秘伝のタレは 「りんご」を入れる んや ええこと 聞いたわ!

Slide 17

Slide 17 text

Do you understand "Cryptography"? 口頭 秘伝のタレは 「りんご」を入れる んや ええこと 聞いたわ!

Slide 18

Slide 18 text

Do you understand "Cryptography"? 口頭 秘伝のタレは XXを入れるんや XXってなんやね ん!

Slide 19

Slide 19 text

Other threats 盗聴 改ざん なりすまし 否認

Slide 20

Slide 20 text

Once upon a time... 出典: wikipedia(スタキュレー暗号)

Slide 21

Slide 21 text

Once upon a time... 出典: wikipedia(スキュタレー暗号) 棒 (鍵) 巻いた状態 (平文) 巻く前 (暗号文)

Slide 22

Slide 22 text

Symmetric cryptograpy

Slide 23

Slide 23 text

Symmetric Cryptography 平文 暗号文 鍵 暗号アルゴリズム 鍵 暗号アルゴリズム 暗号文 平文

Slide 24

Slide 24 text

What’s problem of Symmetric Cryptography ? 伝送 秘タ「ご 入ん 伝レり」 れや のはん をる 鍵 これで完璧や 盗られても 問題ないで

Slide 25

Slide 25 text

What’s problem of Symmetric Cryptography ? 伝送 秘タ「ご 入ん 伝レり」 れや のはん をる この店長は スキュタレー暗号を使っ てるな 鍵 これだったらブルート フォースアタックで 楽勝や

Slide 26

Slide 26 text

What’s problem of Symmetric Cryptography ? 伝送 秘タ「ご 入ん 伝レり」 れや のはん をる この経路で鍵さえ盗 れば私の勝ち! 鍵

Slide 27

Slide 27 text

Thinking 片方だけ渡せば ええんちゃう?

Slide 28

Slide 28 text

What’s problem of Symmetric Cryptography ? 伝送 なんやこれ、怖っ 鍵 秘タ「ご 入ん 伝レり」 れや のはん をる

Slide 29

Slide 29 text

What’s problem of Symmetric Cryptography ? 伝送 鍵 秘タ「ご 入ん 伝レり」 れや のはん をる 鍵もろたでーw

Slide 30

Slide 30 text

Thinking どうすれば安全に鍵を 渡せるだろうか...

Slide 31

Slide 31 text

Public-key cryptograpy

Slide 32

Slide 32 text

Public-key Cryptography 平文 暗号文 公開鍵 暗号アルゴリズム 秘密鍵 暗号アルゴリズム 暗号文 平文 鍵は2つとも 私が作ります 公開鍵

Slide 33

Slide 33 text

How will it get better? 伝送② 秘タ「ご入ん 伝レり」れや のはんをる 公 開 鍵 伝送① 秘 密 鍵 公 開 鍵 秘伝のタレは 「りんご」を入 れるんや 秘タ「ご入ん 伝レり」れや のはんをる

Slide 34

Slide 34 text

How will it get better? 伝送② 秘タ「ご入ん 伝レり」れや のはんをる 公 開 鍵 伝送① 秘 密 鍵 公 開 鍵 秘伝のタレは 「りんご」を入 れるんや 秘タ「ご入ん 伝レり」れや のはんをる 2つ盗れても ようわからんぞ

Slide 35

Slide 35 text

RSA 平文 暗号文 公開鍵 E, N 平文 mod N 秘密鍵 D, N 暗号文 mod N 暗号文 平文 E D 大きな素因数分解と等価

Slide 36

Slide 36 text

Thinking 分析するのはしんど い... どうすればレシピがわ かる?

Slide 37

Slide 37 text

man-in-the-middle attack 伝送② 秘タ「ご入ん 伝レり」れや のはんをる 公 開 鍵 伝送① 秘 密 鍵 公 開 鍵 秘伝のタレは 「りんご」を入 れるんや 秘タ「ご入ん 伝レり」れや のはんをる 公開鍵GET! ぼくの 公開鍵

Slide 38

Slide 38 text

man-in-the-middle attack 伝送② 秘タ「ご入ん 伝レり」れや のはんをる 公 開 鍵 伝送① 秘 密 鍵 公 開 鍵 秘伝のタレは 「りんご」を入 れるんや 秘タ「ご入ん 伝レり」れや のはんをる これで自分の秘 密鍵で復号でき る!!

Slide 39

Slide 39 text

man-in-the-middle attack 伝送② 秘タ「ご入ん 伝レり」れや のはんをる 公 開 鍵 伝送① 秘 密 鍵 公 開 鍵 お前はクビだ お 前 は ク ビ だ ついでに嘘の情 報送ってやろw お 前 は ク ビ だ なんでや!!

Slide 40

Slide 40 text

Thinking どうすれば盗られても 問題ない状態にできる のか...

Slide 41

Slide 41 text

Authentication Next time

Slide 42

Slide 42 text

Conclusion

Slide 43

Slide 43 text

Conclusion ● JWTを理解するには前提知識を理解しておく必要があるよ ● 対称暗号は強固だけど鍵配送に問題があるよ ● 公開鍵暗号だけだとman in the middleされたらバレちゃうよ

Slide 44

Slide 44 text

Thanks