Rust์—์„œ Tor์˜ ๊ณต์‹ ๊ตฌํ˜„์ธ Arti์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฆด๋ฆฌ์Šค

์ต๋ช…์˜ Tor ๋„คํŠธ์›Œํฌ ๊ฐœ๋ฐœ์ž๋Š” Rust๋กœ ์ž‘์„ฑ๋œ Tor ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” Arti ํ”„๋กœ์ ํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฆด๋ฆฌ์Šค(1.0.0)๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 1.0 ๋ฆด๋ฆฌ์Šค๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์œผ๋ฉฐ ๊ธฐ๋ณธ C ๊ตฌํ˜„๊ณผ ๋™์ผํ•œ ์ˆ˜์ค€์˜ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ, ์œ ์šฉ์„ฑ ๋ฐ ์•ˆ์ •์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Arti ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” API๋„ ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” Apache 2.0 ๋ฐ MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” SOCKS ํ”„๋ก์‹œ๋กœ ์„ค๊ณ„ํ•œ ํ›„ ๋‹ค๋ฅธ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์กฐ์ •ํ•œ C ๊ตฌํ˜„๊ณผ ๋‹ฌ๋ฆฌ Arti๋Š” ์ฒ˜์Œ์—๋Š” ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์‹ ๋‚ด์žฅํ˜• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ๊ณผ๊ฑฐ์˜ ๋ชจ๋“  Tor ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ๊ณ ๋ ค๋˜๋ฏ€๋กœ ์•Œ๋ ค์ง„ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋”์šฑ ๋ชจ๋“ˆํ™”๋˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Tor๋ฅผ Rust๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•œ ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์•ˆ์ „ํ•œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ฝ”๋“œ ๋ณด์•ˆ์„ ๋‹ฌ์„ฑํ•˜๋ ค๋Š” ์š•๊ตฌ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. Tor ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด ์ฝ”๋“œ๊ฐ€ "์•ˆ์ „ํ•˜์ง€ ์•Š์€" ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ชจ๋“  ์ทจ์•ฝ์  ์ค‘ ์ตœ์†Œ ์ ˆ๋ฐ˜์ด Rust ๊ตฌํ˜„์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. Rust๋Š” ๋˜ํ•œ ์–ธ์–ด์˜ ํ‘œํ˜„๋ ฅ๊ณผ ์ด์ค‘ ํ™•์ธ ๋ฐ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์— ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์—„๊ฒฉํ•œ ๋ณด์žฅ์œผ๋กœ ์ธํ•ด C๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋น ๋ฅธ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์˜ ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Rust ์–ธ์–ด์˜ ์‚ฌ์šฉ์ด ์ •๋‹นํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ๋‹จ๊ณ„์—์„œ C์˜ ์œ ์‚ฌํ•œ ๊ฐœ๋ฐœ๋ณด๋‹ค Rust ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋” ์ ๋‹ค๋Š” ์‚ฌ์‹ค์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘์— ํ‘œ๋ฉดํ™”๋œ ์˜ค๋ฅ˜๋Š” ์ฃผ๋กœ ๋…ผ๋ฆฌ ๋ฐ ์˜๋ฏธ๋ก ๊ณผ ๊ด€๋ จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ๋‹จ์ ์œผ๋กœ ์ง€์ ํ•œ ๊ณผ๋„ํ•˜๊ฒŒ ์š”๊ตฌ๋˜๋Š” Rustc ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹ค์ œ๋กœ ์ถ•๋ณต์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ์ •ํ™•์„ฑ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๊ฒŒ ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ณ€์ข…์— ๋Œ€ํ•œ ์ž‘์—…์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ์†๋„์˜ ์ฆ๊ฐ€๋„ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์กด ํ…œํ”Œ๋ฆฟ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋Šฅ์ด ์žฌํ˜„๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Rust์˜ ๋” ํ‘œํ˜„์ ์ธ ์˜๋ฏธ ์ฒด๊ณ„, ํŽธ๋ฆฌํ•œ ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ Rust์˜ ์ฝ”๋“œ ๋ณด์•ˆ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋Šฅ๋ ฅ. ๋‹จ์  ์ค‘ ํ•˜๋‚˜๋Š” ๊ฒฐ๊ณผ ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ์Šคํ…œ์— ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค์šด๋กœ๋“œ์šฉ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1.0 ๋ฆด๋ฆฌ์Šค๋Š” ์ฃผ๋กœ ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์˜ ๊ธฐ๋ณธ ์ž‘์—…์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.1์—์„œ๋Š” ์ฐจ๋‹จ์„ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ „์†ก ๋ฐ ๋ธŒ๋ฆฌ์ง€ ์ง€์›์„ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.2๋Š” ํ˜ผ์žก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(RTT Congestion Control) ๋ฐ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€์™€ ๊ฐ™์€ ์–ด๋‹ˆ์–ธ ์„œ๋น„์Šค ๋ฐ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. C ํด๋ผ์ด์–ธํŠธ์™€์˜ ํŒจ๋ฆฌํ‹ฐ ๋‹ฌ์„ฑ์€ 2.0 ๋ธŒ๋žœ์น˜์—์„œ ๊ณ„ํš๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ฝ”๋“œ์—์„œ Arti๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ”์ธ๋”ฉ๋„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๋ช‡ ๋…„ ๋™์•ˆ ์ž‘์—…์€ ๋ฆด๋ ˆ์ด ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Rust ์ฝ”๋“œ๊ฐ€ C ๋ฒ„์ „์„ ์™„์ „ํžˆ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์— ๋„๋‹ฌํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” Arti์—๊ฒŒ Tor์˜ ์ฃผ์š” ๊ตฌํ˜„ ์ƒํƒœ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  C ๊ตฌํ˜„ ์œ ์ง€๋ฅผ ์ค‘๋‹จํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. C ๋ฒ„์ „์€ ์›ํ™œํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•ด ๋‹จ๊ณ„์ ์œผ๋กœ ํ์ง€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€