# [Security] ์ฟ ํ‚ค vs ์„ธ์…˜ vs ํ† ํฐ
Study Repository

[Security] ์ฟ ํ‚ค vs ์„ธ์…˜ vs ํ† ํฐ

by rlaehddnd0422

JWT ์ธ์ฆ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ์— ์•ž์„œ, ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„๊ฐ„์˜ ํ†ต์‹ ์—์„œ ์ธ์ฆ์˜ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฟ ํ‚ค, ์„ธ์…˜, ํ† ํฐ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ  ์•Œ์•„๋ด…์‹œ๋‹ค.


โ—๏ธ์ฟ ํ‚ค, ์„ธ์…˜, ํ† ํฐ์€ ์™œ ์‚ฌ์šฉ๋ ๊นŒ?

์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ทธ๋ฆฌ๊ณ  ํ† ํฐ์€ ์–ด๋””์—, ์™œ ์‚ฌ์šฉ๋ ๊นŒ์š”?

 

์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ณดํ†ต ์›น ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋Š” HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์„ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•

1. ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless) : ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„๊ฐ„ TCP ์—ฐ๊ฒฐ์„ ๋งบ์€ ์ดํ›„ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ณด๋‚ด๊ณ  ๋‚œ ํ›„, ๊ทธ ์ฆ‰์‹œ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง‘๋‹ˆ๋‹ค.

 

2. ๋ฌด๊ฒฐ์„ฑ(Stateless) : ๋น„์—ฐ๊ฒฐ์„ฑ์— ์˜ํ•ด ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋Š” ์ˆœ๊ฐ„ ๋ชจ๋“  ์ƒํƒœ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ํ†ต์‹  ๋•Œ ๋ณด๋‚ธ ์ •๋ณด๋ฅผ ๋‘ ๋ฒˆ์งธ ํ†ต์‹  ๋•Œ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ HTTP์˜ ํŠน์„ฑ ๋•Œ๋ฌธ์—, ์ฟ ํ‚ค๋‚˜ ์„ธ์…˜, ํ† ํฐ ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


โ—๏ธCookie ์ธ์ฆ ๋ฐฉ์‹

Cookie๋Š” Key-Value์Œ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

๋™์ž‘๋ฐฉ์‹

์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ID์™€ PW๋ฅผ ํ™•์ธํ•˜๊ณ , Response Header์— set-cookie: user=chrisjune์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ดํ›„ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ „๋‹ฌ๋ฐ›์€ cookie: user=chrisjune ์ฟ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ์š”์ฒญํ—ค๋”์— ์ถ”๊ฐ€ํ•˜์—ฌ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

 

์ฟ ํ‚ค ํŠน์ง•

  • ๊ธฐํ•œ์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•„ ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜์˜๊ตฌ์ ์œผ๋กœ ๋‚จ์•„์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž„์˜๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์ƒ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋ฏ€๋กœ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ—๏ธSession ์ธ์ฆ ๋ฐฉ์‹

์„ธ์…˜์€ ์ผ์ • ๊ธฐ๊ฐ„๋™์•ˆ ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ์ƒํƒœ๋กœ ๋ณด๊ณ  ๊ทธ ์ƒํƒœ๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์ค‘์š”ํ•œ ์ •๋ณด๋Š” ๋ชจ๋‘ ์„œ๋ฒ„์— ์ €์žฅํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์˜ ์ตœ์ดˆ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ์ฟ ํ‚ค๋กœ ์ž„์˜์˜ ์‹๋ณ„์ž๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

๋™์ž‘ ๋ฐฉ์‹

์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ID์™€ PW๋ฅผ ํ™•์ธํ•˜๊ณ , Response Header์— set-cookie: a1x2fjz์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์˜ ์ค‘์š”ํ•œ ์ •๋ณด์ธ user๋Š” ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ํ›„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ž„์˜์˜ ์‹๋ณ„์ž ์ฟ ํ‚ค๋ฅผ Request Header์— ๋‹ด์•„ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๋Š” Request Header์˜ ์ž„์˜์˜ ์‹๋ณ„์ž ์ฟ ํ‚ค ๊ฐ’์„ ์„œ๋ฒ„์— ์ €์žฅ๋œ ์„ธ์…˜ ์ €์žฅ์†Œ์—์„œ ์ฐพ์•„๋ณด๊ณ  ์œ ํšจํ•œ์ง€ ํ™•์ธ ํ›„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

์„ธ์…˜ ํŠน์ง•

  • ์„ธ์…˜์€ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋งŒ ์ €์žฅํ•˜๊ณ , ์„œ๋ฒ„์—์„œ ์„ธ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€์ ์œผ๋กœ ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ๋น„๊ต์  ๋ณด์•ˆ์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ ํ•ด์ปค๊ฐ€ ์„ธ์…˜ ID ์ž์ฒด๋ฅผ ํƒˆ์ทจํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์ธ์ฒ™ ์œ„์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. (์ด๋Š” ์„œ๋ฒ„์—์„œ IP ํŠน์ •์„ ํ†ตํ•ด ํ•ด๊ฒฐ ๊ฐ€๋Šฅ)
  • ์„ธ์…˜์˜ ๋‚ด์šฉ์€ ์„œ๋ฒ„์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Š˜์–ด๋‚  ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋งŒ๋ฃŒ์‹œ๊ฐ„์— ์ƒ๊ด€์—†์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ํŒŒ์ผ์—์„œ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅด๊ณ , ์„ธ์…˜์€ ์š”์ฒญ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ๋Š๋ฆฝ๋‹ˆ๋‹ค.

โ—๏ธToken ์ธ์ฆ ๋ฐฉ์‹

ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ตœ์ดˆ ์š”์ฒญ์‹œ ์ž„์˜์˜ 'ํ† ํฐ'์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

๋™์ž‘ ๋ฐฉ์‹

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ID์™€ PW๋ฅผ ํ™•์ธํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์ผํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ดํ›„ ์„œ๋ฒ„์— ์š”์ฒญ์‹œ ํ† ํฐ ์ •๋ณด์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ํ•˜๊ณ  ์„œ๋ฒ„๋Š” ํ† ํฐ์„ ์œ ํšจํ•œ์ง€ ๊ฒ€์ฆ ํ›„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 

Token ํŠน์ง•

 

์žฅ์ 

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

๋‹จ์ 

  • ์ฟ ํ‚ค/์„ธ์…˜๊ณผ ๋‹ค๋ฅด๊ฒŒ ํ† ํฐ ์ž์ฒด์˜ ๋ฐ์ดํ„ฐ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด, ์ธ์ฆ ์š”์ฒญ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์งˆ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ† ํฐ์„ ํƒˆ์ทจ ๋‹นํ•˜๋ฉด ์„œ๋ฒ„ ์ž…์žฅ์—์„œ ๋Œ€์ฒ˜ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. (ํด๋ผ์ด์–ธํŠธ ์ž˜๋ชป์ด๊ธด ํ•˜์ง€๋งŒ ์„œ๋ฒ„์—์„œ๋Š” ์‚ฌ์šฉ ๊ธฐ๊ฐ„์„ ์ œํ•œํ•˜๊ฑฐ๋‚˜, ํ† ํฐ์„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

 

<์ฐธ๊ณ ์ž๋ฃŒ>

 

 

๐ŸŒ JWT ํ† ํฐ ์ธ์ฆ ์ด๋ž€? (์ฟ ํ‚ค vs ์„ธ์…˜ vs ํ† ํฐ)

Cookie / Session / Token ์ธ์ฆ ๋ฐฉ์‹ ์ข…๋ฅ˜ ๋ณดํ†ต ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์ฟ ํ‚ค, ์„ธ์…˜, ํ† ํฐ 3๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. JWT๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์•ž์„œ ์šฐ์„  ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ํ†ต์‹  ๋ฐฉ์‹์„ ๋ณต์Šตํ•ด

inpa.tistory.com

 

 

์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹ vs ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹

์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹ vs ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹

velog.io

 

 

 

[WEB] ์ฟ ํ‚ค, ์„ธ์…˜์ด๋ž€?

์›น์˜ ๊ธฐ์ดˆ์ค‘ ํ•˜๋‚˜์ธ ์ฟ ํ‚ค์™€ ์„ธ์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

chrisjune-13837.medium.com

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Study Repository

rlaehddnd0422

ํ™œ๋™ํ•˜๊ธฐ