Tor์˜ ๊ณต์‹ Rust ๊ตฌํ˜„์ธ Arti 1.1 ์ถœ์‹œ

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

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

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

๋ฒ„์ „ 1.1์—๋Š” ์ฐจ๋‹จ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ „์†ก์„ ์šฐํšŒํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์ง€์›์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์„ ์ˆจ๊ธฐ๊ณ  ์ฐจ๋‹จ์— ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด Arti๋กœ ํ…Œ์ŠคํŠธํ•œ ์ „์†ก ์ค‘์—์„œ obfs4proxy ๋ฐ Snowflake๊ฐ€ ์ฃผ๋ชฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Arti๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ Rust 1.60 ๋ถ„๊ธฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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