[2025-09-07] Onions Got Puzzled

๐Ÿฆฅ ๋ณธ๋ฌธ

Tor network

์ •์˜ ๋ฐ ๊ฐœ๋…

์ต๋ช… ๋„คํŠธ์›Œํฌ. relay๋ผ๋Š” ์ผ๋ จ์˜ ์„œ๋ฒ„๋“ค์„ ํ†ตํ•ด ๋ผ์šฐํŒ….

Tor network์˜ onion system์€ .onion ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ต๋ช…์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  Tor network๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ.

image.png

๋™์ž‘ ํ๋ฆ„

  1. ์„œ๋น„์Šค Tor network์˜ ๋ฆด๋ ˆ์ด ์ค‘ ๋ช‡๋ช‡์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์ž์‹ ์ด ์ ‘์† ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ง€์ ์ธ IP๋ฅผ ์ƒ์„ฑ
  2. ์„œ๋น„์Šค ๋””์Šคํฌ๋ฆฝํ„ฐ์— IP์„ ํฌํ•จํ•˜์—ฌ ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ํฌํ•จ์‹œํ‚ค๊ณ  Tor network์˜ ๋””๋ ‰ํ† ๋ฆฌ ์„œ๋ฒ„์— ๊ฒŒ์‹œ
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ ‘์†ํ•˜๋ ค๋Š” ์„œ๋น„์Šค๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ ์„œ๋ฒ„์—์„œ ์กฐํšŒ
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋น„์Šค ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์„œ๋น„์Šค์˜ IP ๋ชฉ๋ก๊ณผ ์ •๋ณด๋“ค์„ ํš๋“
  5. ํด๋ผ์ด์–ธํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋น„์Šค๊ฐ€ ์ต๋ช…์œผ๋กœ ๋งŒ๋‚  RP ์„ ํƒํ•˜๊ณ  ์„œํ‚ท์„ ์„ค์ •
  6. ํด๋ผ์ด์–ธํŠธ๊ฐ€ IP๋ฅผ ํ†ตํ•ด ํ•ด๋‹น RP์˜ ์„œํ‚ท์„ ์„ค์ •ํ•˜์ž๋Š” intro-request๋ฅผ ๋ณด๋ƒ„
  7. intro-request๋ฅผ ๋ฐ›์€ ์„œ๋น„์Šค๋Š” RP๊นŒ์ง€ ์„œํ‚ท์„ ์„ค์ •ํ•˜๊ณ  ํ•ด๋‹น RP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์Œ

Intro-Flooding

์ •์˜ ๋ฐ ๊ฐœ๋…

  • ๋งŽ์€ Intro-request๋ฅผ ๋ณด๋‚ดa์„œ ๋งŽ์€ RP์— ๋งŽ์€ ์„œํ‚ท์„ ์„ค์ •ํ•˜๊ฒŒ ํ•˜๋Š” DoS ๊ณต๊ฒฉ ์ „๋žต.

    Dos : Denial of Service๋กœ ์ •์ƒ ์‚ฌ์šฉ์ž๋“ค์ด ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ.

๋Œ€์‘ ๋ฐฉ๋ฒ• ๋ฐ ํ•œ๊ณ„

  • Source-based filtering : ์˜์‹ฌ๋˜๋Š” source๋ฅผ ๋ฐดํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋Ÿฌ๋น™ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•œ ํŠธ๋ž˜ํ”ฝ ๋ฆฌ๋””๋ ‰์…˜

    ์Šคํฌ๋Ÿฌ๋น™ ์„œ๋น„์Šค : ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์„ํ•˜๊ณ  ์ •์ƒ์ ์ธ ์š”์ฒญ๊ณผ ๋น„์ •์ƒ์ ์ธ ์š”์ฒญ ๊ตฌ๋ถ„

    ํ•œ๊ณ„ : ์ต๋ช…์„ฑ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋‘ ์†Œ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์Œ

  • Replication-based ์™„ํ™” ์ •์ฑ… : ๋ณต์ œ๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๊ณผ์ž‰ ๊ณต๊ธ‰ ๋ฐฉ๋ฒ•

    ํ•œ๊ณ„ : onion ์„œ๋น„์Šค์˜ ์ต๋ช…์„ฑ๊ณผ ํƒˆ์ค‘์•™ํ™”์œผ๋กœ ์ธํ•ด ํž˜๋“ฆ. ์ˆ˜ํ‰์  ํ™•์žฅ ๋ฐฉ์‹ ์—ญ์‹œ DoS๋ฅผ ๊ณต๊ฒฉ์„ ๋ฐ›์œผ๋ฉด IP์— ์ ‘๊ทผํ•˜๋Š” ๊ฒŒ ๋ถˆ๊ฐ€ํ•˜๋‹ค๋Š” ์ ๊ณผ ๋ณต์ œ์˜ ์ตœ๋Œ€๋Ÿ‰์ด ์ œ์•ฝ๋œ๋‹ค๋Š” ์ ์—์„œ ํž˜๋“ฆ.

  • Source testing : CAPTCHA์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜์—ฌ ์‚ฌ๋žŒ๊ณผ ๋ด‡์„ ๊ตฌ๋ณ„

    ํ•œ๊ณ„ : RP ์„œํ‚ท์ด ์„ค๋ฆฝํ•œ ํ›„์— CAPTCHA๋ฅผ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— intro-flooding์„ ๋ง‰์ง€ ๋ชปํ•จ

โ†’ Tor network์˜ ์ต๋ช…์„ฑ์œผ๋กœ ์ธํ•ด ๋งŽ์€ ์ œ์•ฝ์ด ๋ฐœ์ƒํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ด๊ฑฐ๋‚˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹

Client-puzzle

์ •์˜ ๋ฐ ๊ฐœ๋…

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์•”ํ˜ธ ํผ์ฆ์„ ํ’€์–ด์•ผ ์„œ๋น„์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฒฉ์ž๋Š” ๊ณต๊ฒฉ์„ ๋ฐœ์ƒํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŽ์€ ์ž์›์„ ์จ์•ผ ํ•˜์ง€๋งŒ ๋ฐฉ์–ด์ž๋Š” ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ๋งŒ ํ•˜๋ฉด ๋˜๋Š” proof-of-work ์•„์ด๋””์–ด์—์„œ ๊ณ ์•ˆ.

ํŠน์ง•

๊ฐ ํผ์ฆ์€ ํŠน์ • ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์„ ํ–‰ ๊ณ„์‚ฐ ๊ณต๊ฒฉ์„ ๋ง‰๋Š” ์‹œ๋“œ๋ฅผ ํฌํ•จ. ์‹œ๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ด์ „์˜ ์œ ํšจํ•œ ์ •๋‹ต๋“ค์€ ๋ฌดํšจํ™”. ํผ์ฆ์„ ๋ฐ›์ž๋งˆ์ž ํด๋ผ์ด์–ธํŠธ๋Š” ์œ ํšจํ•œ ๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์•”ํ˜ธ ์ž‘์—…์„ ์ˆ˜ํ–‰, ๋ฐ˜๋ฉด์— ์„œ๋ฒ„๋Š” ์•„์ฃผ ํšจ์œจ์ ์œผ๋กœ, ์ ์€ ๋…ธ๋ ฅ์œผ๋กœ ์ œ์‹œ๋œ ํ•ด๋‹ต์„ ์ฆ๋ช….

์ •์ƒ ์‚ฌ์šฉ์ž์—๊ฒŒ ํƒ€๋‹นํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์†Œํ•˜์ง€ ์•Š์€ ๋ถ€๋‹ด์„ ์ค€๋‹ค๋Š” ๊ฒƒ ๋•Œ๋ฌธ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์ง€๋งŒ Tor network์—์„œ๋Š” ์—ฐ๊ฒฐ ์„ค๋ฆฝํ•˜๋Š” ๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์†Œํ•œ ๋ถ€๋‹ด.

์žฅ์ 

  1. ASIC ์ €ํ•ญ : Application-Specific Integrated circuits. ํผ์ฆ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋ฐ˜๋„์ฒด. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์™€๋Š” ๋ถˆ๊ณต์ •ํ•œ ์ด์ ์„ ๊ฐ–๊ณ  ์žˆ์Œ.

    ์ƒˆ๋กœ์šด ์‹œ๋“œ๋ฅผ ์œ„ํ•œ ๋‚ด๋ถ€ ๋กœ์ง์„ ๋žœ๋คํ™”ํ•˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Œ. ASIC๋Š” ํŠน์ • ์—ฐ์‚ฐ๋งŒ์„ ๋น ๋ฅด๊ฒŒ ์—ฐ์‚ฐํ•˜๋Š” ๊ณ ์ •๋œ ๋กœ์ง์„ ๊ฐ€์ง€๋Š” ๋ฐ, ๋‚ด๋ถ€ ๋กœ์ง์„ ๋ฐ”๊ฟ”์„œ ASIC๋ฅผ ์™„ํ™”ํ•จ.

  2. ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ

    ์ƒ๋‹นํ•œ RAM ์ž‘์—…์„ ์š”๊ตฌ. ํผ์ฆ์„ ๋ชฉ์ ์œผ๋กœํ•œ ํŠน์ˆ˜ ํ•˜๋“œ์›จ์–ด๋Š” RAM์ด ์ œํ•œ์ . ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์™€ ํŠน์ˆ˜ ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ์ž์™€์˜ ์„ฑ๋Šฅ ๊ฒฉ์ฐจ๋ฅผ ์ค„์ž„

  3. ์„ ํ˜•์  ๋‚œ์ด๋„ ์ฆ๊ฐ€

    ์ „ํ†ต์ ์ธ ๊ฒƒ์€ ์ง€์ˆ˜์  ์ฆ๊ฐ€. ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์—ฌ ๋‚œ์ด๋„๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ. ๋ถˆํ•„์š”ํ•œ ๋‚œ์ด๋„ ์ฆ๊ฐ€๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์˜ ๋ถˆํŽธ์„ ์ดˆ๋ž˜ํ•˜๋Š”๋ฐ, ์ ๋‹นํ•œ ๋‚œ์ด๋„ ์กฐ์ •์œผ๋กœ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๋†”๋‘๊ณ  ๊ณต๊ฒฉ์—๋Š” ๋Œ€์‘

๋™์ž‘ ํ๋ฆ„

image.png

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํผ์ฆ์˜ ๋‚œ์ด๋„๋ฅผ ์„ ํƒ. ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋น„์Šค์—์„œ ์ œ์•ˆ๋˜๋Š” ๋‚œ์ด๋„.
  2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํผ์ฆ์„ ํ’€๊ณ  intro-request๋ฅผ ๋ณด๋ƒ„.
  3. ์„œ๋น„์Šค๋Š” ๋‹ต์ด ๋งž๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  intro-request๋ฅผ ๋‚œ์ด๋„์— ๋”ฐ๋ฅธ ์šฐ์„  ์ˆœ์œ„ ํ์— ์ถ”๊ฐ€
  4. ์„œ๋น„์Šค๋Š” ์š”์ฒญ์„ ๊บผ๋‚ด์„œ RP์— ๋Œ€ํ•œ ์„œํ‚ท์„ ์„ค๋ฆฝ

DUA

์šฐ์„  ์ˆœ์œ„ ํ ์ƒํƒœ์— ๊ธฐ๋ฐ˜ํ•œ ๋‚œ์ด๋„ ์—…๋ฐ์ดํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ฆ‰, ํ˜ผ์žก ์ƒํƒœ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ๋‚œ์ด๋„ ์กฐ์ ˆ. ๋‚œ์ด๋„๋Š” ์—…๋ฐ์ดํŠธ ๋ผ์šด๋“œ๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ . AIMD ๋ฐฉ์‹.

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋‚œ์ด๋„ ์ฆ๊ฐ€ : ํ‰๊ท  ๋‚œ์ด๋„์™€ (๊ธฐ์กด ์ œ์•ˆ๋œ ๋‚œ์ด๋„ + 1) ์ค‘ ํฐ ๊ฐ’์œผ๋กœ ์„ ํƒ
      • ๋ฒ„๋ ค์ง„ ์š”์ฒญ์˜ ๋‚œ์ด๋„๊ฐ€ ํ˜„์žฌ ๋‚œ์ด๋„๊ฐ€ ํฐ ๊ฒฝ์šฐ
      • ํ˜ผ์žก ์ƒํƒœ์ด๊ณ  ํ์— ๋” ๋†’์€ ๋‚œ์ด๋„ ์š”์ฒญ์ด ๋‚จ์•„ ์žˆ๋Š” ๊ฒฝ์šฐ
    • ๋‚œ์ด๋„ ๊ฐ์†Œ : ๊ธฐ์กด ์ œ์•ˆ๋œ ๋‚œ์ด๋„ x 2/3
      • ์š”์ฒญ์˜ ์ˆ˜๊ฐ€ ํŠน์ • ๊ธฐ์ค€์น˜ (16 or 63)๋ณด๋‹ค ๋‚ฎ์•„์ง€๋Š” ๊ฒฝ์šฐ
    • ๋‚œ์ด๋„ ์œ ์ง€
      • ์œ„์˜ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹Œ ๋‚˜๋จธ์ง€์˜ ๊ฒฝ์šฐ
  • ์‹คํ—˜ ๋‚ด์šฉ : X์ถ•์€ ์‚ฌ์šฉ์ž ๋Œ€๊ธฐ ์‹œ๊ฐ„. Y์ถ•์€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ๋น„์œจ

    image.png

    ํผ์ฆ ์‹œ์Šคํ…œ์ด ๊ณต๊ฒฉ์œผ๋กœ ์ธํ•œ ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์ค„์—ฌ์ค€๋‹ค๋Š” ์ ์—์„œ intro-flooding ๊ณต๊ฒฉ์„ ์™„ํ™”์‹œํ‚ด์„ ๋ณด์ž„

ONIONFLATION

์ •์˜ ๋ฐ ๊ฐœ๋…

๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๋Š” ๊ณต๊ฒฉ. ๊ณต๊ฒฉ ํŠธ๋ž˜ํ”ฝ ๋ณผ๋ฅจ๊ณผ ํผ์ฆ์„ ํ’€ ๋•Œ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ตœ์†Œํ™”.

์ข…๋ฅ˜

  1. END-RUSH ATTACK : ์ œ์•ˆ๋œ ๋‚œ์ด๋„ ์ด์ƒ์˜ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์š”์ฒญ์„ ๋‚จ๊ฒจ ํผ์ฆ ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๋Š” ๊ณต๊ฒฉ(=small burst of intro-reqs)
    • ๋™์ž‘ ํ๋ฆ„
      1. ๋””๋ ‰ํ† ๋ฆฌ ์„œ๋ฒ„์—์„œ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๊ฐ€์ ธ์™€์„œ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ์˜ ํƒ€์ด๋ฐ ์ •๋ณด ํš๋“
      2. ๋†’์€ ๋‚œ์ด๋„์˜ ํผ์ฆ์„ ํ‘ผ ์š”์ฒญ์„ ์—…๋ฐ์ดํŠธ ์ฃผ๊ธฐ ๋ง‰๋ฐ”์ง€์— ๋ณด๋ƒ„
      3. ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋†’์€ ๋‚œ์ด๋„์˜ ํผ์ฆ์„ ํ‘ผ ์š”์ฒญ์ด ๋‚จ๊ฒŒ ๋˜์–ด ๋‚œ์ด๋„๊ฐ€ ๋ถ€ํ’€๋ ค์ง
  2. Temporary-turmoil : ํผ์ฆ์˜ ๋‚œ์ด๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•…์šฉํ•˜์—ฌ ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๋Š” ๊ณต๊ฒฉ (=short burst of intro-reqs)
    • ๋™์ž‘ ํ๋ฆ„
      1. ๋งŽ์€ ์‰ฌ์šด intro-reqs๋ฅผ ๋ณด๋ƒ„
      2. ์„œ๋น„์Šค๋Š” ํ˜ผ์žก ์ƒํƒœ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ๋‚œ์ด๋„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ ค๊ณ  ํ•จ
      3. ๋‚œ์ด๋„์˜ ํ‰๊ท ์€ ๋ชจ๋“  ์ถ”๊ฐ€๋œ ๋‚œ์ด๋„์˜ ํ•ฉ / ์ฒ˜๋ฆฌ๋œ ์š”์ฒญ์˜ ์ˆ˜๋กœ ์ฒ˜๋ฆฌ๋œ ์š”์ฒญ์— ๋น„ํ•ด ํฐ ์ถ”๊ฐ€๋œ ๋‚œ์ด๋„์˜ ํ•ฉ์ด ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆผ
  3. Choking : ์•ž์„  ์ „๋žต๋“ค์„ ํ†ตํ•ด ๊ณต๊ฒฉ ํ›„ ์ถ”๊ฐ€์ ์œผ๋กœ ์„œ๋น„์Šค์˜ ์šฉ๋Ÿ‰์„ ์ค„์ด๋Š” ๊ณต๊ฒฉ
    • ๋™์ž‘ ํ๋ฆ„
      1. END-RUSH ATTACK, Temporary-turmoil์„ ํ†ตํ•ด ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆผ
      2. ์ œ์•ˆ๋œ ๋‚œ์ด๋„๊ฐ€ Cli-side ์ตœ๋Œ€ ๋‚œ์ด๋„๋ฅผ ๋„˜์—ˆ์„ ๋•Œ RP๋ฅผ ์ œํ•œ
      3. ๊ณต๊ฒฉ์ž๊ฐ€ ๋” ๋†’์€ ๋‚œ์ด๋„์˜ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  RP๋ฅผ half open
        • half open : ํด๋ผ์ด์–ธํŠธ๊ฐ€ RP์—์„œ ์—ฐ๊ฒฐ์„ ๋๊นŒ์ง€ ์™„๋ฃŒํ•˜์ง€ ์•Š์Œ
      4. ์ œํ•œ๋œ RP์„ ๊ณต๊ฒฉ์ž๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ๋ถ™์žก๊ณ  ์žˆ์–ด์„œ ์ •์ƒ์ ์ธ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•จ
  4. Maintenance : ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๊ณ  ๋‚œ์ด๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ณต๊ฒฉ
    • ๋™์ž‘ ํ๋ฆ„
      1. END-RUSH ATTACK, Temporary-turmoil์„ ํ†ตํ•ด ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆผ
      2. 0-๋‚œ์ด๋„ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋ณด๋ƒ„
      3. ํ์— ๊ธฐ์ค€์น˜์˜ ์š”์ฒญ์„ ๋‚จ๊ฒจ ๋‚œ์ด๋„๋ฅผ ์œ ์ง€

โ†’ ๋ผ์ด๋ธŒ ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ๊ณต๊ฒฉ๋“ค ์‹คํ—˜ โ†’ ์—„์ฒญ๋‚œ ๋‚œ์ด๋„ ์ƒ์Šน๊ณผ ์š”์ฒญ ์ฒ˜๋ฆฌ ํ‰๊ท  ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•จ

๋Œ€์‘ ๋ฐฉ๋ฒ• ๋ฐ ํ•œ๊ณ„

  • DUA ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ •
    • ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ • ๋ฐฉ๋ฒ•
      1. ํŠธ๋ฆฌ๋ฐ๊ณผ ํ˜ผ์žก ํ”Œ๋ž˜๊ทธ์˜ ๊ทน๋‹จ์ ์ธ ์ž„๊ณ„๊ฐ’ ์„ค์ •์„ ํ†ตํ•ด ํŠธ๋ฆฌ๋ฐ ๋นˆ๋„๋ฅผ ๋‚ฎ์ถค.
      2. ์—…๋ฐ์ดํŠธ ๋ผ์šด๋“œ ์‹œ๊ฐ„์„ ๋žœ๋คํ™”
      3. ๋‚œ์ด๋„ ์กฐ์ • ๋นˆ๋„๋ฅผ ๋Š˜๋ฆผ
      4. ํผ์ฆ ๋‚œ์ด๋„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ์ƒˆ๋กœ์šด ๊ณต์‹ : ์ถ”๊ฐ€๋œ ๋‚œ์ด๋„์˜ ํ•ฉ/์ธํ๋œ ์š”์ฒญ์˜ ๊ฐฏ์ˆ˜
      5. ์ œ์•ˆ๋œ ๋‚œ์ด๋„ ์ƒ์Šน์„ ์ œํ•œ
    • ๋น„์šฉ (๊ณต๊ฒฉ์„ ์ €์ง€ํ• ๋งŒํผ ๋งŽ์ด ์˜ค๋ฅด์ง€๋Š” ์•Š์Œ)

      image.png

      (โ€ก)๋Š” ์œ ์ง€ ๋ณด์ˆ˜ ์ „๋žต์˜ ์‹œ๊ฐ„ ๋‹น ๋น„์šฉ, T2๋Š” ํšจ๊ณผ์ ์œผ๋กœ end-rush๋ฅผ ๋ง‰์•„์„œ ์ถ”์ • ๋น„์šฉ ์ƒ๋žต

      1๋ฒˆ์งธ ์ „๋žต์€ ๊ณต๊ฒฉ์„ ๋ง‰๋Š” ๋ฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Œ + ๊ณต๊ฒฉ์ž๊ฐ€ ๋‚œ์ด๋„ ์ƒ์Šน ์—†์ด ํฐ ์Šค์ผ€์ผ์˜ DoS ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•จ. โ†’ ๋‹ค๋ฅธ ์กฐ์ • ๋ฐฉ์•ˆ๊ณผ ๊ฒฐํ•ฉX. ๋…๋ฆฝ์ ์ธ ์กฐ์ • ๋ฐฉ์•ˆ์œผ๋กœ ์‚ฌ์šฉ

      2๋ฒˆ์งธ ์ „๋žต์€ end-rush๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ง‰์Œ. the temporary-turmoil์€ ๋‚จ์•„ ์žˆ์Œ

      3๋ฒˆ์งธ ์ „๋žต์€ ๋‚œ์ด๋„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋น„์šฉ์„ ์ถ”๊ฐ€ํ•˜์ง€๋งŒ ๋ถˆ์ถฉ๋ถ„

      4๋ฒˆ์งธ ์ „๋žต์€ the temporary-turmoil ๋น„์šฉ์„ ์ฆ๊ฐ€ ์‹œํ‚ค์ง€๋งŒ ๋ถˆ์ถฉ๋ถ„.

      5๋ฒˆ์งธ ์ „๋žต์€ ๋‚œ์ด๋„๋ฅผ ๊ทน๋‹จ์ ์œผ๋กœ ์˜ฌ๋ฆฌ๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฌ์ง€๋งŒ ๋ถˆ์ถฉ๋ถ„.

ํ•œ๊ณ„ : ๊ณต๊ฒฉ์ž์˜ ๋น„์šฉ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์Œ

  • puzzle-auction model : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ด์ „ ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฒ ์ด์Šค๋กœ ํผ์ฆ ๋‚œ์ด๋„ ์กฐ์ ˆ. ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํผ์ฆ ๋‚œ์ด๋„(bids)๋ฅผ ๋†’์ž„
  • challenge-response model : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๊ฐ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ง€์ •๋œ ๋‚œ์ด๋„์˜ ์ƒˆ๋กœ์šด ํผ์ฆ์„ ํ• ๋‹น. ์„œ๋ฒ„๊ฐ€ ์™„์ „ํžˆ ํ†ต์ œ ๊ฐ€๋Šฅ

ํ•œ๊ณ„ : Tor network๋Š” ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•จ. ์ต๋ช…์„ฑ ๋•Œ๋ฌธ์— ๊ฐœ๋ณ„ํ™”๋œ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธ€๋กœ๋ฒŒ ๊ณต์ง€๋ฅผ ํ•ด์•ผ ํ•˜์ง€๋งŒ real-time broadcast ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณตํ†ต๋œ ํผ์ฆ ๋‚œ์ด๋„๋ฅผ ๋А๋ฆฌ๊ณ  ๋“œ๋ฌผ๊ฒŒ ๊ณต์ง€

์ƒ์ถฉ ๊ด€๊ณ„

inflation๊ณผ congestion์˜ ์ƒ์ถฉ ๊ด€๊ณ„. inflation์— ์ €ํ•ญ์„ฑ์ด ์žˆ๋‹ค๋ฉด congestion์— ์ทจ์•ฝํ•˜๊ณ  congestion์— ์ €ํ•ญ์„ฑ์ด ์žˆ์œผ๋ฉด inflation์— ์ทจ์•ฝ

  • ๋ณด์•ˆ ๋ถ„์„ ๋ฐ ๊ณต์‹

    ๋ณด์•ˆ ๋ถ„์„

    low-level์„ ์ถ”์ƒํ™”ํ•œ high-level์— ์ดˆ์ ์„ ๋งž์ถ˜ ์ถ”์ƒ ๋ชจ๋ธ

    ์ •์˜ 1 : ๊ณต๊ฒฉ์ž A๋Š” ์ธํŠธ๋กœ ์š”์ฒญ burst๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ. ฮฑ๋Š” (๊ณต๊ฒฉ ๊ธฐ๊ฐ„/๋ผ์šด๋“œ ๊ธธ์ด)์˜ ๋น„์œจ. Datt[t]๋Š” A๊ฐ€ ๋ผ์šด๋“œ t์—์„œ ํ•ด๊ฒฐํ•˜๋Š” ํผ์ฆ์˜ ๋‚œ์ด๋„

    ์ •์˜ 2 : ์„œ๋น„์Šค S๋Š” ์šฐ์„  ์ˆœ์œ„ํ์—์„œ ๋””ํ ํ•˜์—ฌ ์ธํŠธ๋กœ ์š”์ฒญ ์ฒ˜๋ฆฌ. ์ตœ๋Œ€์†๋„๋Š” ์ดˆ๋‹น ยตmax. S๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ์ €๋ฒˆ ์—…๋ฐ์ดํŠธ ํ ์ƒํƒœ ๊ธฐ๋ฐ˜์œผ๋กœ Dsug๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ. Dsug[t]๋Š” ๋ผ์šด๋“œ t์˜ ์ œ์•ˆ ๋‚œ์ด๋„. ํ•จ์ˆ˜ ฮฒ(ฮฑ)๋Š” DUA ๋ชจ๋ธ

    \[0 โ‰ค ฮฒ(ฮฑ) = Dsug[t]/ Datt [t โˆ’1] โ‰ค ฮณ\]

    ์ •์˜ 3 : DUA์˜ ํ˜ผ์žก ์ €ํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜

    \[\int_{0}^{1} ฮฒ(ฮฑ)\, dฮฑ\]

    ์ด ๊ฐ’์ด ฮณ์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด DUA๋Š” ๋†’์€ ํ˜ผ์žก ์ €ํ•ญ์„ฑ์„ ๊ฐ€์ง. ฮฑ๊ฐ€ 0์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด S๋Š” ์ œ์•ˆ๋œ ๋‚œ์ด๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ.ใ…‹ใ„ด ฮฒrโˆ’c(ฮฑ)๋Š” ๊ฐ€์žฅ ํ˜ผ์žก ์ €ํ•ญ์ ์ธ DUA

    \[\beta_{r-c}(\alpha) = \begin{cases} 0 & (\alpha = 0) \\ \gamma & (\alpha > 0) \end{cases}\]

    ์ •์˜ 4 : DUA์˜ ์ธํ”Œ๋ ˆ์ด์…˜ ์ €ํ•ญ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ

    \[\int_{0}^{1} \left( \gamma - \beta(\alpha) \right) d\alpha\]

    ฮณ์— ๊ฐ€๊นŒ์ค˜์ง€๋ฉด DUA๋Š” ๋†’์€ ์ธํ”Œ๋ ˆ ์ €ํ•ญ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ. ์•„๋ž˜๊ฐ€ ๊ฐ€์žฅ ์ธํ”Œ๋ ˆ ์ €ํ•ญ์„ฑ์ด ์žˆ๋Š” DUA

    \[\beta_{r-i}(\alpha) =\begin{cases}0 & (\alpha < 1) \\\gamma & (\alpha = 1)\end{cases}\]

    ๊ฐ€์ • : ยตmax ์†๋„๋กœ ๊ณต๊ฒฉ์„ ๋ณด๋ƒ„. ฮฑ ์™€ Datt ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ ๊ฐ•๋„ ์กฐ์ •. ฮฒ(ฮฑ)๋Š” ๋‹จ์กฐ ์ฆ๊ฐ€ ฮฑ = 0์ผ ๋•Œ 0์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ฮฑ = 1 ์ผ ๋•Œ ฮณ์— ๋„๋‹ฌ

    ๋ณด์กฐ ์ •๋ฆฌ

    1. ๊ทผ๋ณธ์ ์ธ ์ƒ์ถฉ ๊ด€๊ณ„ : ์™„๋ฒฝํ•œ ๋ฐ˜๋น„๋ก€ ๊ด€๊ณ„
    2. ํ˜ผ์žก ์ €ํ•ญ DUA์˜ ์ทจ์•ฝ์  : ์ธํ”Œ๋ ˆ์ด์…˜ ๊ณต๊ฒฉ์— ์ทจ์•ฝ
    3. ์ธํ”Œ๋ ˆ์ด์…˜ ์ €ํ•ญ DUA์˜ ์ทจ์•ฝ์ 

    โ†’ ๊ฒฐ๊ตญ ํ˜ผ์žก ๊ณต๊ฒฉ๊ณผ ์ธํ”Œ๋ ˆ์ด์…˜ ๊ณต๊ฒฉ์— ๋™์‹œ์— ์ €ํ•ญ ๋ถˆ๊ฐ€

ํ•ด๊ฒฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์‹คํ—˜ ๊ฒฐ๊ณผ

ํ˜ผ์žก ์ง•ํ›„ ๋Œ€์‹  ์ „์ฒด์ ์ธ ์š”์ฒญ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์ง๊ด€์ ์ธ ๋‚œ์ด๋„ ์กฐ์ ˆ ๊ฐ€๋Šฅ. ๋ชฉํ‘œ ์š”์ฒญ ์ฒ˜๋ฆฌ์œจ๊ณผ ์‹ค์ œ ์š”์ฒญ ์ฒ˜๋ฆฌ์œจ ์‚ฌ์ด์˜ ๋ถˆ์ผ์น˜์— ์˜ํ•ด์„œ ๊ฒฐ์ •

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜

      Algorithm 2 New Difficulty Update Algorithm
       parameter:
       ยตtarget: The target dequeue rate that the service aims to maintain.
       ฮด: The adjusting parameter, with a default value of 1.
       Suggested puzzle difficulty
       state:
       Dsug[n]: The suggested puzzle difficulty at round n.
       โˆ‘Dhandled[n]: The sum of all puzzle difficulties of handled re
      quests during round n.
       rendhandled[n]: The number of handled requests during round n.
       update:
       at the end of each update round,
       1: ยตadjust[n] โ† rendhandled[n]/Troundร—ฮด where Tround is round duration
       2: Dhandled[n] โ† โˆ‘Dhandled[n]/rendhandled[n]
       3: if Dhandled[n] = 0 and ยตadjust[n] > ยตtarget then
       4: Dsug[n+1] โ†8
       5: else
       6: Dsug[n+1] โ† ยตadjust[n]
       7: end if
    

    1๋‹จ๊ณ„ : ฮผ_adjust[n] โ† rend_handled[n] / (T_round ร— ฮด)

    ์‹ค์ œ ์š”์ฒญ ์ฒ˜๋ฆฌ ์†๋„ / ๋ฏผ๊ฐ๋„ = ์กฐ์ •๋œ ์‹ค์ œ ์ฒ˜๋ฆฌ์œจ

    2๋‹จ๊ณ„ : D_handled[n] โ† โˆ‘D_handled[n] / rend_handled[n]

    ํ‰๊ท  ํผ์ฆ ๋‚œ์ด๋„

    3๋‹จ๊ณ„

    ํ‰๊ท  ํผ์ฆ ๋‚œ์ด๋„๊ฐ€ 0์ด๊ฑฐ๋‚˜ ์กฐ์ •๋œ ์‹ค์ œ ์ฒ˜๋ฆฌ์œจ์ด ๋ชฉํ‘œ ์ฒ˜๋ฆฌ์œจ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋‹ค์Œ ๋ผ์šด๋“œ์˜ ์ œ์•ˆ ๋‚œ์ด๋„๊ฐ€ 8

    4๋‹จ๊ณ„

    ์•„๋‹ˆ๋ฉด ๋‹ค์Œ ๋‚œ์ด๋„๋Š” = ํ‰๊ท  ๋‚œ์ด๋„ x ์กฐ์ •๋œ ์‹ค์ œ ์ฒ˜๋ฆฌ์œจ / ๋ชฉํ‘œ ์ฒ˜๋ฆฌ์œจ

  • ๊ฒฐ๊ณผ

    • ๋‚œ์ด๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๋Š”๋ฐ ๋น„์šฉ ์ƒ์Šน
    • ์งง์€ ํ˜ผ์žก ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋ฐฉ์–ด ๋Šฅ๋ ฅ ๊ฐ•ํ™”

      image.png

    • intro-flooding ๋ฐฉ์–ด

      image.png

    • ์‹คํ—˜ ๊ฒฐ๊ณผ

      END-RUSH ATTACK๊ณผ temporary-turmoil๋ฅผ ํ†ตํ•œ ๋‚œ์ด๋„ ๋ถ€ํ’€๋ฆฌ๊ธฐ ์‹คํŒจ

      ๊ทธ์— ๋”ฐ๋ฅธ choking๊ณผ Maintenance ์—ญ์‹œ ์‹คํŒจ

๊ฒฐ๋ก 

๊ธฐ์กด์˜ DUA์™€ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ inflation๊ณผ congestion์˜ ์ƒ์ถฉ ๊ด€๊ณ„์˜ ๊ท ํ˜•์ ์„ ์ฐพ์Œ.

๋‹ค๋ฅธ ์ต๋ช… ๋„คํŠธ์›Œํฌ์—์„œ์˜ DoS ๋ฐฉ์–ด์ฑ…์—๋„ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ ์—ฐ๊ตฌ.

Tor์—์„œ ๋‹ค๋ฅธ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•๊ณผ ํ•ด๊ฒฐ์ฑ…(ex. IP ์Šคํ‘ธํ•‘)๊ณผ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์—์„œ์˜ DoS/DDoS์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€

Categories:

Updated:

Leave a comment