์ธ์ฆ : ์ฆ๋ช
ํ๋ ๊ฒ ! (ํ์๊ฐ์
&๋ก๊ทธ์ธ)
์ธ์ฆ์ ์ ํ ๊น???
* ์ถ์ ํ๊ธฐ ์ํด์!!
ex. ์ด ์ฌ๋์ด ๋์ ๋ด๊ณ ๋ทํ๋ฆญ์ค๋ฅผ ๋ณด๋ ๊ฑด์ง, ์ ๊ธฐ๊ตฌ๋
ํ๋ ์ฌ๋์ธ ๊ฑด์ง ๋ฑ
๋ฐฉํฅ์ด ํ์ชฝ์ผ๋ก๋ง ๋๋ ๊ฒ !
๋ณดํต ํด์ฌํจ์๋ ์๋ฃ๊ตฌ์กฐ์์ ๋น ๋ฅธ ์๋ฃ์ ๊ฒ์, ๋ฐ์ดํฐ์ ์๋ณ์กฐ ์ฒดํฌ๋ฅผ ์ํด์ ์ด๋ค.
Md5, sha-1
๋ ์ด๋ฏธ ๋งค์ปค๋์ฆ์ด ๋๋ฌ๋์ ๋ณด์ฝ์ ์ทจ์ฝํ๊ณ ,
์์ฆ์๋ sha-256
๋ฅผ ๋ง์ด ์ด๋ค.
โ๐ป ๊ทผ๋ฐ! ๊ฐ์ ๋ฒํธ๋ฉด ์ํธํ ๋ ๊ฒ๋ ๊ฐ์
์๋ฅผ ๋ค์ด ๋ด๊ฐ '1234'๋ฅผ ์
๋ ฅํ๋ฉด ์ํธํ ๋ ๊ฒ์ 'adfadfefawsef121212'๋ก ๊ฐ์ ํ์
๋ด ์์ฌ๋๋ '1234'๋ฅผ ์
๋ ฅํ๋ฉด ๋๊ฐ์ด 'adfadfefawsef121212'๋ก ์ํธํ ๋จ!
์ด๋ฐ ํ์ ์ ๋ณด์ํ๊ณ ์
salting & key stretching
์ ์ฌ์ฉํ๋ค.
key stretching(=ํค ์คํธ๋ซ์นญ) : ์ํ
์ ์ฌ๋ฌ๋ฒ ํ๋ ๊ฒ!
์ํ
์ ์ฌ๋ฌ๋ฒ ํ๋ฉด์ ๋๋๋๋ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ!
์์ ๋ ๊ฐ์ง๋
bcrypt
๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด์ ํ๋ค
์ํ ์ด๋ ํค์คํธ๋ซ์ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ ์ต์ (๋ช๋ฒ ๋๋ฆฐ๊ฑด์ง)
Salt (๋๋คํ ๊ฐ)
Hashed password :
๐ ๊ทธ๋ผ ์ค์ ์๋ฒ์์๋ ์ด๋ป๊ฒ ์ธ์ฆ์ ํ ๊น?
ํ์๊ฐ์
ํ๋ฉด์ ์
๋ ฅํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํ ํด๋๊ณ ,
๋ก๊ทธ์ธํ๋ฉด์ ์
๋ ฅํ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ์ํธํํด์ ์ํธํ ๋ ๋๊ฐ์ ๋ฌธ์๋ฅผ ๋น๊ต!
๐ ์๋?!
์ํธํ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ๋น๋ฐ๋ฒํธ๋ก ๋ฐ๊ฟ ์ ์๊ธฐ ๋๋ฌธ์!!!
http๋ statelessํ ์ฑ์ง์ด ์์ด์(Http ๋ธ๋ก๊ทธ์ ํด๋น ๋ด์ฉ ๊ธฐ์ฌ)
์น์ด ์ ์ ์๋๋ก ํฐ์ผ์ ์ค์ผํจ!
์ด ํฐ์ผ์ Json Web Token
์ด๋ผ๊ณ ๋ถ๋ฆ
ํ ํฐ์ ์ด๋์ ๋ณด๊ดํ ๊น ? >>>>>>> ์ฟ ํค๋ ์ธ์ ๋ฑ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๋ค. ์ฆ,๋ธ๋ผ์ฐ์ ์ ์ ์ฅ
๋ธ๋ผ์ฐ์ ์ ์๋ ์ด ํ ํฐ์ ๊บผ๋ด์ ํค๋์ ๋ด์ ์๋ฒ๋ก ๋ณด๋ธ๋ค.
ํ ํฐ์ ์์ ์ด๋ฏธ์ง์ฒ๋ผ ์ธ ๋ถ๋ถ์ผ๋ก ๋์ด ์๋ค(ํค๋, ๋ด์ฉ, ์๋ช
)
ํ ํฐ์ ํ์ ๊ณผ ํด์์๊ณ ๋ฆฌ์ฆ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ๋ค.
ํด๋์ ๋ด์ฉ์ base64 ๋ฐฉ์์ผ๋ก ์ธ์ฝ๋ฉํด์ JWT์ ๊ฐ์ฅ ์ฒซ๋ถ๋ถ์ ๊ธฐ๋ก
์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋์ด ์๋์ง ์๋ฒํํ ์๋ ค์ค๋ค.
exp์ ๊ฐ์ด ๋ง๋ฃ์๊ฐ์ ๋ํ๋ด๋ ๊ณต๊ฐ ํด๋ ์์ด๋ค
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํ์ํ์ ์ฌ์ฉํ๋ ๋น๊ณต๊ฐ ํด๋ ์์ด๋ค
๋๊ฐ์ง ์์๋ฅผ ์กฐํฉํ์ฌ ์์ฑํ ๋ค bse64์ธ์ฝ๋ฉํ์ฌ ๋๋ฒ์งธ ์์๋ก ์์นํ๋ค
โexpโ:1533234324 ์ ๊ฐ์ ์ ๋ณด๋ ์ด ๋จ์ ์๋ฏธ!
์ฌ์ฉ์๋ฅผ ์๋ณ ํ๋ ์ ๋ณด๋ ๋ค์ด๊ฐ๋ค.
๋ค๋ง, ๋ณด์์ ์ทจ์ฝํ๋ ์ด๋ฉ์ผ, ์ด๋ฆ ๋ฑ ์ฌ์ฉ์์ ์ง์ ์ ์ธ ์ ๋ณด๋ ๋ฃ์ง ๋ง๊ณ ,
id ๊ฐ(ํ ์ด๋ธ ์์ฑํ ๋ ์ ์ ์๊ฒ ๋ถ์ฌ๋๋ PK๊ฐ)์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค!
user_id = 1 << ์ด๋ฐ์์ผ๋ก
JWT๋ฅผ ๋๊ฐ ๋ฐํํ๋์ง ์ํฌ๋ฆฟ ํค๋ก ๋ด์์ค๋ค
ํ๋ก ํธ์๋๊ฐ JWT๋ฅผ ๋ฐฑ์๋ api๋ก ์ ์กํ๋ฉด JWT์ ์๋ช ๋ถ๋ถ์
๋ณตํธํํ์ฌ ์๋ฒ์์ ์์ฑํ JWT๊ฐ ๋ง๋์ง ํ์ธํ๋ค
๐คทโโ๏ธ ์๋ช ๋ถ๋ถ์ ์ ๋ณตํธํํ ๊น?
ํค๋๋ ๋ด์ฉ์ ๋ฐ์ดํฐ๊ฐ ๋๊ฐ์ด ์ ์ ์๋ ๋ฌธ์์ด๋ก ๋์ด ์์ผ๋
์ํธํ ๋ ๊ฑด ์๋๋ค. ๋จ์ํ ์ธ์ฝ๋ฉ ๋๊ฒ
์ ๋ฆฌ๋ฅผ ํด๋ณด๋ฉด, ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ ๋ณด์์ ์ํด ๋๋ถ๋ถ ๋จ๋ฐฉํฅ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๊ทธ๋ฌ๋, ์๋ฐฉํฅ์ธ ๊ฒฝ์ฐ๋ ์๋ค.
๐ฅ ์๋ฅผ ๋ค์ด,
๋ฐฐ์ก์ง์ ๋ณด, ์นด๋๋ฒํธ, ๋ณ์์์ ํ์๋ฒํธ(์ฃผ๋ฏผ๋ฒํธ) ๊ฐ์ ๊ฒ๋ค์ ์๋ฐฉํฅ์ด๋ค
๋ค์ ๊บผ๋ด์ ์จ์ผํ๋ ๊ฒ๋ค!
ex. ๋จ๋ฐฉํฅ์ด๋ผ๋ฉด ๋ด๊ฐ ์ฟ ํก์์ ์ฃผ๋ฌธํ๋๋ฐ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์์ง ์๊ณ , ์ฃผ๋ฌธ ํ ๋๋ง๋ค ์ฃผ์๋ฅผ ์
๋ ฅํด์ผํ๋ค.