๐ SMS OTP ๋จ์ฉ์ ์์ ์ ์ ์ฐจ๋จ: ์ ์คํธ๋ฆผ ๋ณด์ ์ ๊ทผ๋ฒ
Source: Dev.to
์์ ์ ๊ณต๋ ์์ค ๋งํฌ ์ธ์ ๋ฒ์ญํ ํ ์คํธ๊ฐ ํฌํจ๋์ด ์์ง ์์ต๋๋ค. ๋ฒ์ญ์ด ํ์ํ ์ ์ฒด ๋ด์ฉ์ ์ ๊ณตํด ์ฃผ์๋ฉด ํ๊ตญ์ด๋ก ๋ฒ์ญํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ SMSโbased OTP๋ ์ด๋์๋ ์กด์ฌํ๋ค
โ ๏ธ ์ด๋ ๋๊ท๋ชจ๋ก ๊ฐ์ฅ ๋ง์ด ์ ์ฉ๋๋ ์ธ์ฆ ๋ฉ์ปค๋์ฆ ์ค ํ๋์ ๋๋ค.
๋๋ถ๋ถ์ ํ์ OTP๋ฅผ ์ ๋ขฐ์ฑ ์๊ฒ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ์ง์คํฉ๋๋ค. OTP๋ฅผ ์ ์กํด์ผ ํ๋์ง ์์ฒด๋ฅผ ๋ฌป๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ OTP ์์ฒญ ์์ฒด๊ฐ ์ค์ ๊ณต๊ฒฉ ํ๋ฉด์ธ ์ด์ ์, ๊ฒฐ์ ์ ์๋ฅ๋ก ์ด๋์ํด์ผ๋ก์จ ๋ณด์๊ณผ ๋น์ฉ ๊ด๋ฆฌ ๋ชจ๋๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๐ฏ ์ค์ ๋ฌธ์ ๋ SMS๊ฐ ์๋๋ค
SMS ์ ๊ณต์ ์ฒด๋ ์ค๊ณ๋ ๋๋ก ์ ํํ ์ํํฉ๋๋ค:
- ๐ค ๋ฉ์์ง๋ฅผ ์์ ์ ์ผ๋ก ์ ๋ฌ
- โก ๋๋ ์ฒ๋ฆฌ๋์ ์ฒ๋ฆฌ
- ๐ ์ ์ธ๊ณ์ ์ผ๋ก ์ด์
ํ์ง๋ง ๊ทธ๋ค์ OTP ์์ฒญ์ด ์ ๋นํ์ง ์ฌ๋ถ๋ฅผ ํ๋จํ์ง ์์ต๋๋ค. SMS ์ ๊ณต์ ์ฒด๋ ์คํ๋ง ํ ๋ฟ, ํ๋จํ์ง ์์ต๋๋ค. SMS ๊ฒ์ดํธ์จ์ด์ ๋๋ฌํ๋ ๋ชจ๋ OTP ์์ฒญ์:
- ์ ๋ฃ ๋ฉ์์ง๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค
- ๋๊ฐ ์์ฒญํ๋์ง์ ๊ด๊ณ์์ด
- ์๋์ ๊ด๊ณ์์ด
๐ฃ SMS pumping: ๋น์ฉ ๊ธฐ๋ฐ ์๋น์ค ๊ฑฐ๋ถ
๊ณต๊ฒฉ์๋ ์์คํ ์ ํดํนํ ํ์๊ฐ ์์ต๋๋ค; ๋๊ท๋ชจ๋ก ์ ์คํ ์์ฒญํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ด์ ๋ค์์ ํ ์ ์์ต๋๋ค:
- ์์ฒ ๊ฐ์ OTP ์์ฒญ ์์ฑ
- ์ ํ๋ฒํธ์ IP ํ์
- ๊ณต๊ฐ ํ์๊ฐ์ ๋๋ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์๋ํฌ์ธํธ ์ ์ฉ
๊ฒฐ๊ณผ: ๋ฐ์ดํฐ ์ ์ถ๋, ๋ค์ดํ์๋ ์๊ณ , ํญ์ฆํ๋ SMS ์๊ธ๋ง ๋ฐ์ํฉ๋๋ค. ์ด๋ ๊ธฐ์ ์ DoS๊ฐ ์๋๋ผ ๊ฒฝ์ ์ ๊ณต๊ฒฉ์ ๋๋ค.
๐ฆ ์ ์๋ ์ ํ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์๊ฐ
์๋ ์ ํ์ ๋์์ด ๋์ง๋ง ์ถฉ๋ถํ์ง ์์ต๋๋ค.
- โ ์๋ฒ๋ ๋ณดํธํ์ง๋ง ์์ฐ์ ๋ณดํธํ์ง ๋ชปํฉ๋๋ค
- โ ๋ถ์ฐ ๋ด์ IP ์ ํ์ ์ฝ๊ฒ ์ฐํํฉ๋๋ค
- โ ์ ํ๋ฒํธ๋ ์ ๋ ดํ๊ณ ์ผํ์ฉ์ ๋๋ค
์๋ ์ ํ์ ์ ์ก ์๋๋ ์ ์ดํ์ง๋ง ์ ๋น์ฑ์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค. ๊ฒฐ๊ตญ ์ ์กํด์๋ ์ ๋๋ OTP๋ฅผ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
๐ง OTP ์์ฒญ์ ๊ณต๊ฒฉ ํ๋ฉด
์ทจ์ฝ์ ์ OTP ์ฝ๋๊ฐ ์๋๋ผ, ๊ทธ๊ฒ์ ์์ฒญํ ๊ถ๋ฆฌ์ ๋๋ค. ๋ชจ๋ OTP ์์ฒญ์ ๊ธฐ๋ณธ ๋์์ด ์๋๋ผ ํน๊ถ ์์ ์ผ๋ก ์ทจ๊ธ๋์ด์ผ ํฉ๋๋ค.
๐ ๊ฒฐ์ ์ ์๋ฅ๋ก ์ด๋ํ๊ธฐ (Zero Trust OTP)
๋ณด๋ค ํ๋ ฅ์ ์ธ ์ํคํ ์ฒ๋ SMS ์ ์ก ์ ์ ์ํ ๋ถ์์ ๋์ ํฉ๋๋ค.
์ ํต์ ์ธ ํ๋ฆ:
OTP request โ Send SMS โ Hope for the best
Zero Trust OTP ํ๋ฆ:
OTP request โ Risk analysis โ Decision โ Send SMS (or not)
๐ OTP๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ๋ฌด์์ ๋ถ์ํ ์ ์๋์?
๋จ์ผ SMS๋ฅผ ๋ณด๋ด๊ธฐ ์ ์๋ ๋ค์์ ํ๊ฐํ ์ ์์ต๋๋ค:
- ๐ฑ ์ ํ๋ฒํธ ์ ํ (๋ชจ๋ฐ์ผ vs. VOIP)
- ๐งพ ํํ ๋ฐ ๊ณผ๊ฑฐ ์ ์ฉ ์ ํธ
- ๐ ์ง๋ฆฌ์ ๋ฐ ์ฌ์ฉ ํจํด
- โฑ๏ธ ๋น๋ ๋ฐ ํ๋ ์ด์
์ด๋ฅผ ํตํด ๋ค์์ ํ ์ ์์ต๋๋ค:
- ๋ช ๋ฐฑํ ์ฌ๊ธฐ์ฑ ์์ฒญ ์ฐจ๋จ
- ์์ฌ์ค๋ฌ์ด ์์ฒญ์ ๋์ (๊ฒ์ฆ) ์ํ
- ์ ์ ์ฌ์ฉ์๋ฅผ ์ํํ๊ฒ ํ์ฉ
๐งฉ ์ค์ฉ์ ์ธ OTP ํ๋ฆ (๋จ์ํ)
- ์ฌ์ฉ์๊ฐ OTP๋ฅผ ์์ฒญํจ
- ์ ํ๋ฒํธ ์ํ์ ๋ถ์
- ์ํ์ด ๋ฎ์ผ๋ฉด โ SMS OTP ์ ์ก
- ์ํ์ด ๋์ผ๋ฉด โ ์ฐจ๋จํ๊ฑฐ๋ ์ฑ๋ฆฐ์ง(์บก์ฐจ, ์ด๋ฉ์ผ ๋์ฒด, ์ง์ฐ)
ํต์ฌ ์์ด๋์ด: SMS ์ ์ก์ด ์๋์ด ์๋๋ผ ์กฐ๊ฑด๋ถ๊ฐ ๋๋ค.
๐ก๏ธ OTPShield๊ฐ ์ด๋์ ๋ค์ด๊ฐ๋์ง
์ฐ๋ฆฌ๋ SMS ์ ๊ณต์๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ์ ํ๋ฒํธ ์ํ์ ํ๊ฐํ๋ API(OTPShield)๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์์ฌ๊ฒฐ์ ๋ ์ด์ด๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฐ๋ฆฌ๋:
- ๋๋ถ๋ถ์ ์ ์ฉ OTP ์์ฒญ์ ์กฐ๊ธฐ์ ์ฐจ๋จ
- ๋ถํ์ํ SMS ํธ๋ํฝ์ ํฌ๊ฒ ๊ฐ์
- ์ ๋นํ ์ฌ์ฉ์์๊ฒ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ทธ๋๋ก ์ ์ง
SMS ์ ๊ณต์๋ฅผ ๊ต์ฒดํ๊ฑฐ๋ ์ ๊ธ ํ์์ด ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ๋จ์ง ๋ ๋์ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๊ฒ ๋์์ต๋๋ค.
๐ What we learned
- ๐ OTP ๋ณด์์ ์ ๋ฌ์ด ์๋๋ผ ๊ฒฐ์ ์ ๊ดํ ๊ฒ์ด๋ค
- ๐ฐ ๋น์ฉ ํต์ ๋ ๋ณด์ ๊ธฐ๋ฅ์ด๋ค
- ๐ง ์ต๊ณ ์ OTP๋ ์ข ์ข ์ ์กํ์ง ์๋ ๊ฒ์ด๋ค
- ๐งฑ SMS ์ ๊ณต์ ์ฒด๋ ์ฌ๊ธฐ ๋ฐฉํ๋ฒฝ์ด ๋์ด์๋ ์ ๋๋ค
โ ์ด ์ ๊ทผ ๋ฐฉ์์ด ์๋ฏธ๊ฐ ์์ ๋
The architecture is especially relevant if you have:
- ๊ณต๊ฐ ํ์๊ฐ์ ๋๋ ๋ก๊ทธ์ธ ์๋ํฌ์ธํธ
- ๋์ OTP ๋ณผ๋ฅจ
- ๊ตญ์ ํธ๋ํฝ
- ์ฆ๊ฐํ๋ SMS ๋น์ฉ
- ์๋ํ๋ ์ ์ฉ์ ๋ ธ์ถ
๐งญ ์ต์ข ์๊ฐ
OTP ์์คํ ์ SMS๊ฐ ์ฝํด์ ์คํจํ๋ ๊ฒ์ด ์๋๋ผโ๋ชจ๋ ์์ฒญ์ ๋๊ฐ์ด ์ ๋ขฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ ์ด ์๋๋ผ ์ํ์ ๊ธฐ์ค์ผ๋ก OTP ํ๋ฆ์ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ณด์๊ณผ ๊ฒฝ์ ์ฑ์ ๋ชจ๋ ํฅ์์ํค๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.