Total Pageviews

Sunday, 14 January 2018

iCepa-Docs

Documentation for iOS Tor VPN implementation. Below are the different components that we'll probably need.

Style Guide

  • Check out CONTRIBUTING.md
  • Signing git commits
  • Pull request code review process
  • Test coverage
  • LICENSE (permissive / same as Tor)
  • Writing memory-safe code

Tor.framework

TorPacketTunnelProvider

  • Separate repo
  • Integrates Tor.framework
  • NEPacketTunnelProvider
  • Integrates tun2socks
  • Prevent information leaks via domain/IP whitelist

tun2socks

tun2socks-rust

  • Rewrite this as resuable Rust crate for memory safety and portability?
  • Write Obj-C or Swift wrapper for exported Rust C API

Tor for iOS App UI

  • Get designer(s)
  • Keep It Simple
  • Prevent users from accidentally leaking information
  • Get feedback from designers on how to implement on-demand whitelist
  • Sketch out some storyboards (use iOS Storyboards?)
  • OS X support (???)

Helpful Links

NETunnelProviderManager

Secure Coding

Tor

Rust

Learning Rust

Rust IDE

from https://github.com/iCepa/iCepa-Docs
---------

tun2tor

A rust library to provide a virtual utun interface to Tor.

tun2tor is a Rust library that creates a utun (userspace tunnel) interface, and connects it to to a stream-based proxy like tor. It is primarily intended to be embedded in the iCepa project, but it can also be used as a standalone utility.
Currently, only macOS and iOS are supported, although Linux support is almost there.
tun2tor uses tokio for async IO and LwIP for its TCP implementation (for now).
API Documentation

Running

Running tun2tor as a standalone utility is primarily useful for debugging at the moment. Here is how to get it running:
$ git clone --recursive https://github.com/iCepa/tun2tor.git
$ cd tun2tor
$ cargo build
$ sudo target/debug/tun2tor
$ tor --DnsPort 12345
Running it requires root privileges in order to create a utun interface. tun2tor is currently hardcoded in main.rs to create an interface with an IP address of 172.30.20.1, look for a SOCKS proxy at 127.0.0.1:9050, and look for a DNS server at 127.0.0.1:12345.
In order to route traffic through the interface, you need to modify the route table:
$ sudo route add 8.8.8.8 172.30.20.1
$ dig @8.8.8.8 facebookcorewwwi.onion
 
from https://github.com/iCepa/tun2tor 

No comments:

Post a Comment