νΌλλ‘ λμκ°κΈ°
Dev.toSecurity
μλ¬Έ μ½κΈ°
C κΈ°λ° Tor λ°λͺ¬μ Rust μ¬μμ±μ ν΅ν λ©λͺ¨λ¦¬ μμ μ± λ° λͺ¨λν ν보
π Reviewing 'Building a Safer Onion' β A Rustacean's Take on the Tor Rewrite
AI μμ½
Context
20λ μ΄μ μ μ§λ C κΈ°λ° Tor λ°λͺ¬μ Monolithic μν€ν μ²λ‘ μΈν μ μ§λ³΄μ νκ³ μ§λ©΄. Memory Safety λ²κ·Έμ λμμ± μ μ΄μ 볡μ‘μ±μΌλ‘ μΈν΄ μμ€ν μμ μ± λ° κ°λ° μμ°μ± μ ν λ°μ.
Technical Solution
- Ownership λ° Borrow Checker λμ μ ν΅ν λ©λͺ¨λ¦¬ μμ μ± ν보 λ° λ°νμ μλ¬ λ°©μ§
- async/await κΈ°λ°μ First-class Concurrency ꡬ쑰 μ€κ³λ‘ κΈ°μ‘΄ C μν λ¨Έμ μ 볡μ‘λ ν΄κ²°
- tor-proto, tor-netdir, tor-circmgr λ± λλ©μΈλ³ Crate λΆλ¦¬λ₯Ό ν΅ν Modular Architecture ꡬν
- arti-client λΌμ΄λΈλ¬λ¦¬νλ₯Ό ν΅ν μΈλΆ μ ν리μΌμ΄μ μλ² λ© κ°λ₯ ꡬ쑰 μ€κ³
- x25519-dalek λ± κ²μ¦λ Crypto Crate νμ© λ° μ΅μνμ Unsafe λΈλ‘ μ¬μ©μΌλ‘ 보μμ± κ°ν
μ€μ² ν¬μΈνΈ
1. λ κ±°μ C/C++ μμ€ν μ ν μ λλ©μΈλ³ Crate λΆλ¦¬λ₯Ό ν΅ν λͺ¨λν μ λ΅ κ²ν
2. Async Runtime μ ν μ νκ² νκ²½(Embedded vs Server)μ λ°λ₯Έ μ±λ₯ μν₯λ λΆμ
3. Rust λμ μ Unsafe μ½λ μμμ λν λͺ νν κ°μ¬(Audit) μ μ± μ립
4. μ κ· μΈμ΄ μ ν κ³Όμ μμ κΈ°μ‘΄ Clientμμ μνΈ μ΄μ©μ± λ° λ°°ν¬ μ λ΅ μ립