JWT

JWT(Json Web Token) ์€ ํ†ต์‹  ์ •๋ณด๋ฅผ JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ. JWT ๋Š” ํ† ํฐ ์ž์ฒด์— ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํด๋ ˆ์ž„ ๊ธฐ๋ฐ˜ ํ† ํฐ์ž„. ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ JWT ๋Š” ์ฃผ๋กœ ์ธ์ฆ๊ณผ ์ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ. JWT ๋Š” ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, ์‹œ๊ทธ๋‹ˆ์ฒ˜๋กœ ๊ตฌ๋ถ„๋จ. ํ—ค๋”์—๋Š” ํ† ํฐ์˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ํƒ€์ž…์„ ๊ฐ€์ง€๋ฉฐ, ํŽ˜์ด๋กœ๋“œ์—๋Š” ๋ฐ์ดํ„ฐ(๋งŒ๋ฃŒ์ผ, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ) ์„ ๊ฐ€์ง. ์‹œ๊ทธ๋‹ˆ์ฒ˜๋Š” ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š”ใ„ท๋„ค, ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋”์— ๋ช…์‹œ๋œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง.

JWT ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ, ํด๋ ˆ์ž„ ๊ธฐ๋ฐ˜ ํ† ํฐ์˜ ํŠน์„ฑ ๋•๋ถ„์— ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ์— ๋น„ํ•ด์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ. ๋˜ํ•œ, ์„œ๋ฒ„๊ฐ€ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ด์ค‘ํ™”๋œ ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ. (์„ธ์…˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ)

ํ•˜์ง€๋งŒ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜ ์‚ฌํ•ญ์ด ์กด์žฌํ•จ.

  • JWT ๋Š” ๋””์ฝ”๋”ฉ์ด ์‰ฌ์›€. Base64 ๋กœ ๋””์ฝ”๋”ฉํ•˜๋ฉด ํŽ˜์ด๋กœ๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ. ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ฒƒ์— ์œ ์˜ํ•ด์•ผํ•จ.

  • ์‹œํฌ๋ฆฟ ํ‚ค์˜ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์€ ๊ฒฝ์šฐ, ๋ฌด์ž‘์œ„ ๋Œ€์ž… ๊ณต๊ฒฉ(Brute force Attack) ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Œ. ๋”ฐ๋ผ์„œ, ๊ฐ•๋ ฅํ•œ ์‹œํฌ๋ฆฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋จ.

  • ์‹œํฌ๋ฆฟ ํ‚ค๋Š” ์œ ์ถœ๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•œ ๊ณต๊ฐ„์—์„œ ๊ด€๋ฆฌํ•ด์•ผํ•จ.

  • JWT ํƒˆ์ทจ์— ์œ ์˜ํ•ด์•ผํ•จ. ์ด๋ฅผ ์œ„ํ•ด์„œ JWT ์ €์žฅ ๊ณต๊ฐ„, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋„์ž… ์—ฌ๋ถ€, Refresh Token Rotation, ํƒˆ์ทจ ๊ฐ์ง€ ๋ฐ ๋Œ€์‘์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•จ.

  • ํ† ํฐ์˜ ์žฆ์€ ๊ฐฑ์‹ ์ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ €ํ•ดํ•˜๋Š”์ง€ ๊ณ ๋ คํ•ด์•ผํ•จ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๊ธ€์„ 3์‹œ๊ฐ„ ๋™์•ˆ ์ž‘์„ฑํ•˜๊ณ  ์ œ์ถœํ–ˆ์ง€๋งŒ JWT ๊ฐ€ ๋งŒ๋ฃŒ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€์€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Šฌ๋ผ์ด๋”ฉ ์„ธ์…˜๊ณผ ๊ฐ™์€ ์ „๋žต์„ ๊ณ ๋ฏผํ•ด ๋ณผ ์ˆ˜ ์žˆ์Œ.

  • JWT none ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๊ฒฉ์„ ์œ ์˜ํ•ด์•ผํ•จ. ๊ณต๊ฒฉ์ž๊ฐ€ ํ† ํฐ์˜ ํ—ค๋”์— ๋ช…์‹œ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ none ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ, ํŽ˜์ด๋กœ๋“œ๊ฐ€ ๋ณ€์กฐ๋˜์–ด๋„ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ฒ€์ฆ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ none ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๊ฒฉ์„ ์˜ˆ๋ฐฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, none ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์ด ์•ฝํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ํ•„ํ„ฐ๋ง ํ•˜๋Š” ๋“ฑ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•จ.

Last updated

Was this helpful?