๐Ÿ›‘ SMS OTP ๋‚จ์šฉ์„ ์‹œ์ž‘ ์ „์— ์ฐจ๋‹จ: ์—…์ŠคํŠธ๋ฆผ ๋ณด์•ˆ ์ ‘๊ทผ๋ฒ•

๋ฐœํ–‰: (2025๋…„ 12์›” 21์ผ ์˜ค์ „ 09:25 GMT+9)
7 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

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 ํ๋ฆ„ (๋‹จ์ˆœํ™”)

  1. ์‚ฌ์šฉ์ž๊ฐ€ OTP๋ฅผ ์š”์ฒญํ•จ
  2. ์ „ํ™”๋ฒˆํ˜ธ ์œ„ํ—˜์„ ๋ถ„์„
  3. ์œ„ํ—˜์ด ๋‚ฎ์œผ๋ฉด โ†’ SMS OTP ์ „์†ก
  4. ์œ„ํ—˜์ด ๋†’์œผ๋ฉด โ†’ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ์ฑŒ๋ฆฐ์ง€(์บก์ฐจ, ์ด๋ฉ”์ผ ๋Œ€์ฒด, ์ง€์—ฐ)

ํ•ต์‹ฌ ์•„์ด๋””์–ด: 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 ํ๋ฆ„์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ๊ณผ ๊ฒฝ์ œ์„ฑ์„ ๋ชจ๋‘ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

๐Ÿ”— ๋ฆฌ์†Œ์Šค

OTPShield RapidAPI์—์„œ

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

๋‹น์‹ ์˜ ESLint ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด 80%์˜ ์ทจ์•ฝ์ ์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์ฆ๊ฑฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค)

ESLint ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฒค์น˜๋งˆํ‚น ๋‚˜๋Š” ๋‘ ์ฃผ์š” ESLint ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋น„๊ตํ•˜๋Š” ์ฒ ์ €ํ•œ ๋ฒค์น˜๋งˆํฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์ „์ฒด ๋ฐฉ๋ฒ•๋ก ๊ณผ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

Android์˜ ๋ฏธ๋ž˜: 2026๋…„์— ๊ธฐ๋Œ€ํ•  ์ƒ์‚ฐ์„ฑ ๋ฐ ํ”„๋ผ์ด๋ฒ„์‹œ ํ–ฅ์ƒ

2026๋…„ ์•ˆ๋“œ๋กœ์ด๋“œ ์ƒํƒœ๊ณ„: ์ƒ์‚ฐ์„ฑ๊ณผ ํ”„๋ผ์ด๋ฒ„์‹œ์˜ ์ƒˆ๋กœ์šด ์‹œ๋Œ€ ์•ˆ๋“œ๋กœ์ด๋“œ ์ƒํƒœ๊ณ„๋Š” 2026๋…„์„ ์•ž๋‘๊ณ  ๊ธ‰์†ํžˆ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŠนํžˆ sig...

๐Ÿค– 2026๋…„์— ๊ผญ ์•Œ์•„์•ผ ํ•  .NET ๊ฐœ๋ฐœ ๋„๊ตฌ Top 10 ๐Ÿ’ก

์†Œ๊ฐœ: ์•„์ง๋„ ํž˜๋“ค๊ฒŒ ์ฝ”๋”ฉํ•˜๊ณ  ์žˆ๋‚˜์š”? .NET Core ๊ฐœ๋ฐœ์ด ํ˜„์žฌ ์›Œํฌํ”Œ๋กœ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋А๊ปด๋ณธ ์  ์žˆ๋‚˜์š”? ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ, clo...