๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
D.evelop/Web

์ธ์ฆAuthentication/์ธ๊ฐ€Authorization

by Danne 2021. 12. 20.

๐Ÿ“ ์ธ์ฆAuthentication : ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€!

๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ

  1. DB์— ์ €์žฅ ์‹œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ํ•ด์‹ฑ(์•”ํ˜ธํ™”)ํ•˜์—ฌ ๋ณต์›ํ•  ์ˆ˜ ์—†๋„๋ก ํ•จ. ์˜ˆ:๋‚œ๋…ํ™”
  2. ํ†ต์‹  ์‹œ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ SSL์„ ์ ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”(HTTPS ์ฃผ์†Œ์ฐฝ ์•ž์— ์ž๋ฌผ์‡ )

์•”ํ˜ธํ™”๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜?

๋‹จ๋ฐฉํ–ฅ ํ•ด์‰ฌ

  • hashํ•จ์ˆ˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋น ๋ฅธ ์ž๋ฃŒ์˜ ๊ฒ€์ƒ‰, ๋ฐ์ดํ„ฐ ์œ„๋ณ€์กฐ ์ฒดํฌ๋ฅผ ์œ„ํ•ด ์“ฐ์ž„
  • ๋ณต์› ๋ถˆ๊ฐ€๋Šฅ
  • ๋‹จ๋ฐฉํ–ฅ ํ•ด์‰ฌํ•จ์ˆ˜๋Š” ์•”ํ˜ธํ•™์  ์šฉ๋„๋กœ ์‚ฌ์šฉ
  • MD5, SHA-1 : ๋ณด์•ˆ ์ทจ์•ฝ, SHA-256๋“ฑ์ด ์žˆ์Œ
  • ๊ฒฐ๊ณผ๋งŒ ๋ณด๋ฉด ๋‹น์žฅ ์‹๋ณ„์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’๊ฐ™์•„ ๋ณด์ด์ง€๋งŒ
  • ํ•˜์ง€๋งŒ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ '1234'๋ฅผ ํ•ด์‹ฑํ•˜๋ฉด ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜ด
  • ๋‹จ์ 
    • input์ด ๋˜‘๊ฐ™์„ ๋•Œ, output๋„ ๋˜‘๊ฐ™์Œ > ๋ณด์•ˆ ์ทจ์•ฝ
  • SALTIING & Keystretching

 

  • Salting : ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธํ™” ์ž„์œผ๋กœ ์ƒ์„ฑํ•œ ๋ฌธ์ž์—ด(Random Salt)๊ฐ’์„ ํ•ฉ์ณ์„œ ํ•ด์‹ฑ > ์ด ํ•ด์‹œ ๊ฐ’์„ ์ €์žฅ
    • ๋น„๊ต๋ฅผ ์œ„ํ•ด ํ•ด์‹œ๊ฐ’๊ณผ ์†Œ๊ธˆ(Salt)๊ฐ’์„ ๊ฐ™์ด ์ €์žฅ

Keystretching : Salting ๋ฐ ํ•ด์‹ฑ์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ˜๋ณต > ์›๋ณธ ๊ฐ’์„ ์œ ์ถ”ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ

  • ํ•ด์ปค๊ฐ€ ํŒจ์Šค์›Œ๋“œ ๋ฌด์ž‘์œ„ ๋Œ€์ž…์„ ํ†ตํ•ด ํ•ด์‹œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ๋Œ€ํญ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด

 

bcrypt

Salting & key Stretching ๋Œ€ํ‘œ์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์•ž์˜ ๊ฐœ๋…๋“ค์„ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋Œ€ํ‘œ์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋‹ค์–‘ํ•œ ์–ธ์–ด ์ง€์›, ์‚ฌ์šฉ ๊ฐ„ํŽธ. ์‰ฝ๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ.

 

 

 

๐Ÿ“ ์ธ๊ฐ€ (Authorization)

์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ํ•˜๋ฉด ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •

Http์˜ ํŠน์ง•

  • request/response
  • stateless

token

  • ๋ฐœ๊ธ‰ : ๋ฐฑ์—”๋“œ
  • ๋“ค๊ณ ๋‹ค๋‹ˆ๋ฉด์„œ ๊ด€๋ฆฌ :ํ”„๋ก ํŠธ
  • ํ† ํฐ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋“ค์–ด๊ฐ€ ์žˆ์Œ

ํด๋ž˜์ž„ 

{key, value}

์‹œ๊ทธ๋‹ˆ์ฒ˜๋ถ€๋ถ„์€ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ ์•”ํ˜ธํ™”!

 

http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€