๐Ÿ›ผ study/๐Ÿ“ฒ tech

[security] ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ(์ฟ ํ‚ค, ์„ธ์…˜)๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ(JWT, oauth2)

jcowwk 2024. 4. 18. 14:43

์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ(์ฟ ํ‚ค, ์„ธ์…˜)๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ(JWT, oauth2)


๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค !

์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :)

 

1. ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ, ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ

2. ์ฟ ํ‚ค

3. ์„ธ์…˜

4. JWT

5. oauth2


1. ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ, ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ

์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ, ์‚ฌ์šฉ์ž ์ธ์ฆ ํ™•์ธ ๋ฐฉ๋ฒ•์—๋Š” ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์ด ์žˆ๋‹ค.

์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ์—๋Š” ์ฟ ํ‚ค์™€ ์„ธ์…˜์ด ์žˆ๊ณ , ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์—๋Š” JWT์™€ oauth2๊ฐ€ ์žˆ๋‹ค.

 

- ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋™์ž‘ ๊ณผ์ •

ํ† ํฐ์€ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์œ ์ผํ•œ ๊ฐ’์ด๋‹ค.

ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ๋ฌด์ƒํƒœ์„ฑ, ํ™•์žฅ์„ฑ, ๋ฌด๊ฒฐ์„ฑ์˜ 3๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ๋‹ค.

 

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

2. ์„œ๋ฒ„๋Š” ํ† ํฐ ์ƒ์„ฑ ํ›„ ์‘๋‹ตํ•œ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ์— ํ† ํฐ์„ ์ €์žฅํ•œ๋‹ค.

4. ์ดํ›„ ํ† ํฐ ์ •๋ณด์™€ ํ•จ๊ป˜ ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค.

5. ์„œ๋ฒ„๋Š” ํ† ํฐ์ด ์œ ํšจํ•œ์ง€ ๊ฒ€์ฆํ•œ๋‹ค.

6. ํ† ํฐ์ด ์œ ํšจํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋‚ด์šฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

2. ์ฟ ํ‚ค

์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์‚ฌ์ดํŠธ์— ์ ‘์†ํ–ˆ์„ ๋•Œ, ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ €์žฅํ•˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ์ด๋‹ค.

ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ณ , ํด๋ผ์ด์–ธํŠธ์— ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ๋ฃŒ ๋‚ ์งœ/์‹œ๊ฐ„์„ ์ง€์ •ํ•˜์—ฌ ์ผ์‹œ์ ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์˜๊ตฌ์ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

 

3. ์„ธ์…˜

์„œ๋ฒ„์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์•„์›ƒํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ์…˜์€ ์ผ์‹œ์ ์ด๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์ด ์—†๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ ์‚ญ์ œ๋œ๋‹ค.

 

4. JWT

JWT๋Š” ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ† ํฐ์ด๋‹ค.

ํ—ค๋”.๋‚ด์šฉ.์„œ๋ช…์˜ ๊ตฌ์กฐ๋กœ ์กด์žฌํ•œ๋‹ค.

 

ํ—ค๋”์—๋Š” ํ† ํฐ์˜ ํƒ€์ž…๊ณผ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์ •ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค.

๋‚ด์šฉ์—๋Š” ํ† ํฐ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค.

์„œ๋ช…์€ ํ•ด๋‹น ํ† ํฐ์ด ์กฐ์ž‘, ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Œ์„ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

5. oauth2

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

๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ ์Šน์ธ ํƒ€์ž…, ์•”์‹œ์  ์Šน์ธ ํƒ€์ž…, ๋ฆฌ์†Œ์Šค ์†Œ์œ ์ž ์•”ํ˜ธ ์ž๊ฒฉ์ฆ๋ช… ์Šน์ธ ํƒ€์ž…, ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ์ฆ๋ช… ์Šน์ธ ํƒ€์ž… ๋“ฑ ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์˜ ์ •๋ณด๋ฅผ ์ทจ๋“ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

oauth2๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ ์Šน์ธ ํƒ€์ž…์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ ์Šน์ธ ๋™์ž‘ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

 

- ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ

์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ธ์ฆ ์„œ๋ฒ„์— ํ—ˆ๊ฐ€ํ•˜๋Š” ์ฃผ์ฒด์ด๊ณ , ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์ด๋‹ค.

 

- ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„

๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ํŽ˜์ด์Šค๋ถ์ด๋‚˜ ๊ตฌ๊ธ€ ์„œ๋ฒ„์ด๋‹ค.

 

- ์ธ์ฆ ์„œ๋ฒ„

ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค.

 

- ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์ฒด์ด๋‹ค.


- ๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ ์Šน์ธ ํƒ€์ž… ๋™์ž‘ ๊ณผ์ •

 

1. ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ํ•œ๋‹ค.
2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ธ์ฆ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ์ธ์ฆ์„ ์š”์ฒญํ•œ๋‹ค.
3. ์ธ์ฆ ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๊ฒŒ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ํ—ˆ์šฉํ•œ ํ›„, ๊ถŒํ•œ ๋ถ€์—ฌ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.
4. ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์„œ URL์— ํฌํ•จํ•˜์—ฌ redirectํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌ๋œ๋‹ค.
5. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ† ํฐ์„ ์š”์ฒญํ•œ๋‹ค.
6. ์ธ์ฆ ์„œ๋ฒ„๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๊ฒŒ ์š”์ฒญ๋œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

 

1. ๋งŒ์•ฝ ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์–ด๋– ํ•œ ์š”์ฒญํ•˜๋ฉด
2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•ก์„ธ์Šค ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
3. ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๋Š” ์ด ์•ก์„ธ์Šค ํ† ํฐ์„ ๊ฒ€์ฆํ•˜๊ณ , ์œ ํšจํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ํ™•์ธ ํ›„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์—๊ฒŒ ์‘๋‹ตํ•œ๋‹ค.


๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์š” !