[HTTP Network] JWT - JSON Web Token

2022. 1. 18. 15:55ใ†์ด๋ก  ์ •๋ฆฌ/์ •๋ณด๋ณด์•ˆ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ JWT๋Š” ์™œ ์‚ฌ์šฉ ํ•˜๋Š”๊ฐ€?

Session ๋ฐฉ์‹์˜ ๊ณ ์งˆ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

 

๐Ÿš€ JWT๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด OSI 7 Layer๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž!

 

OSI 7 Layer

 

๐Ÿš€ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

    ๐Ÿ”ฝ  ๋ณด์•ˆ ๋ฌธ์ œ

CIA (๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ) ์ธก๋ฉด์œผ๋กœ Data๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”ํ•˜๊ณ , ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—์š”.

1. ๋ณด์•ˆํ‚ค(๊ฐœ์ธํ‚ค) ์ „๋‹ฌ์˜ ๋ฌธ์ œ
2. Data๊ฐ€ ๋ˆ„๊ตฌ๋กœ๋ถ€ํ„ฐ ์™”๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ (์ธ์ฆ ๋ฌธ์ œ ๋Œ€์‘์ฑ…)

 

    ๐Ÿ”ฝ  ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

JWT์—์„œ๋Š” ์œ„์˜ ๋ฌธ์ œ๋ฅผ RSA ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ด์—์š”. RSA๋Š” DSS๋ผ๋Š” ์„œ๋ช… ์ „์šฉ ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ๊ฒƒ์ด์—์š”.

RSA๋Š” ๊ณต๊ฐœํ‚ค๋กœ Data๋ฅผ ์•”ํ˜ธํ™” ํ•œ ๋’ค ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ณด๋‚ผ ๋•Œ ์ƒ๋Œ€๋ฐฉ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด๋‚ด๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

๋Œ€์นญํ‚ค (์‹œ๋ฉ˜ํŠธ๋ฆญ ํ‚ค) ๋ฐฉ์‹ : ํ‚ค ํ•˜๋‚˜๋กœ ์•” / ๋ณตํ˜ธํ™” ํ•˜๋Š” ๋ฐฉ์‹

ํ•ด๋‹น ๊ณต๊ฐœํ‚ค๋Š” ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค ์ „๋‹ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

 ๐Ÿ’ก RSA์— ์กฐ๊ธˆ ๋” ์ž์„ธํ•œ ์ด์•ผ๊ธฐ

RSA๋Š” ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๊ณ , ์‚ฌ์‹ค ์ƒ ํ‘œ์ค€์ด๋‹ค.

SSL ํ”„๋กœํ† ์ฝœ์„ ๊ฐ€์ง„ ๋งŽ์€ ์›น ๋ธŒ๋ผ์šฐ์ €, PGP, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ถ€ ์‹œ์Šคํ…œ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

RSA๋Š” ๋‘ ๊ฐœ์˜ ์ง€์ˆ˜ e์™€ d๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ e๊ฐ€ ๊ณต๊ฐœํ•˜๋Š” ๊ฐ’(๊ณต๊ฐœํ‚ค)์ด๊ณ , d๋Š” ๋น„๋ฐ€๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฐ’(๋น„๋ฐ€ํ‚ค)์ด๋‹ค.

P๋Š” ํ‰๋ฌธ์ด๊ณ , C๋Š” ์•”ํ˜ธ๋ฌธ์ธ๋ฐ, ์ด ๋•Œ, ์ „๋‹ฌํ•˜๋Š” 'C = P์˜ C ์ œ๊ณฑ mod n'์„ ์ด์šฉํ•˜์—ฌ ํ‰๋ฌธ P์—์„œ ์•”ํ˜ธ๋ฌธ C๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๊ณ , ๋ฐ›๋Š” ์‚ฌ๋žŒ์€ ์•”ํ˜ธ๋ฌธ์—์„œ 'P = C์˜ d ์ œ๊ณฑ mod n'์„ ๊ตฌํ•˜์—ฌ ์ „๋‹ฌ์ž๊ฐ€ ๋ณด๋‚ธ ํ‰๋ฌธ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. mod(๋ชจ๋“ˆ๋Ÿฌ)๋Š” ๋งค์šฐ ํฐ ์ˆ˜์ด๋ฉฐ, ํ‚ค ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

Data๋ฅผ ์ „์†กํ•  ๋•Œ ๋ฐ›๋Š” ์‚ฌ๋žŒ์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”๋งŒ ํ•ด์„œ ๋ณด๋‚ด๋ฉด ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑ„์„œ ํ๊ธฐํ•˜๊ณ , ๋‹ค๋ฅธ Data๋ฅผ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ Data๋ฅผ ์ „๋‹ฌ์ž์˜ ๊ฐœ์ธํ‚ค๋กœ ํ•œ๋ฒˆ ๋” ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋ฉด ๋ฐ›๋Š” ์‚ฌ๋žŒ์€ ์ „๋‹ฌ์ž์˜ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”๋ฅผ ํ•ด์„œ ์—ด๋ฆฌ๋ฉด ์ธ์ฆ์ด ๋˜๋Š” ๊ฒƒ์ด๊ณ , ์ด Data๋ฅผ ๋‹ค์‹œ ๋ฐ›๋Š” ์‚ฌ๋žŒ์˜ ๊ฐœ์ธํ‚ค๋กœ ์—ด์–ด ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(man in the middle attack, MITM)์„ ๋Œ€๋น„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋‹จ, RSA๋ฅผ ๋šซ๊ธฐ ์œ„ํ•ด '์ˆ˜ํ•™์  ๊ณต๊ฒฉ(์†Œ์ธ์ˆ˜๋ถ„ํ•ด ๊ณต๊ฒฉ), ํƒ€์ด๋ฐ ๊ณต๊ฒฉ(์‹œ๊ฐ„ ๊ณต๊ฒฉ), ์„ ํƒ ์•”ํ˜ธ๋ฌธ ๊ณต๊ฒฉ(CCA, Chosen Ciphertext Attack)'์ด ์กด์žฌํ•œ๋‹ค.

๐Ÿš€ JWT ๊ตฌ์กฐ

 

๋ฐ˜์‘ํ˜•

 

๊ฒฐ๊ตญ JWT๋Š” ์–ด๋–ค Data๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ๊ธฐ๋ฐ€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ.
์ •์ƒ ์ด์šฉ์ž๊ฐ€ ๋งž๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ์„œ๋ช…์— ์ดˆ์ ์ด ๋งž์ถฐ์ง„ ๊ธฐ์ˆ ์ธ ๊ฒƒ์ด์—์š”.

728x90
๋ฐ˜์‘ํ˜•