-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

For this first status update on my SoP project (the Onion Name System), I'd 
like to give a quick run-down of where the project currently is. I would 
consider OnioNS ahead of schedule as I made significant progress on it for the 
paper before the SoP program officially began. The following features are in 
place:

*Client-side:*
* A reliable Stem script that intercepts a .tor domain and sends it to the 
OnioNS client. It sets Tor to leave streams unattached, then auto-attaches non 
.tor streams, and rewrites .tor to .onion before attaching. Thank you arma!
* Reliable IPC communication over a localhost TCP socket between the Stem 
script and the OnioNS client. The IPC syntax is simple enough to support telnet 
or other tools.
* Ability to specify the IP of a name server (essentially a Mirror, but the 
name server isn't mirroring anything since the Synchronization protocol isn't 
there yet).
* JSON communication over a Tor circuit (SOCKS username "OnioNS") to a name 
server.
* The ability to verify the signature and proof-of-work of a Record.

*HS-side:*
* The capability to create and validate (through scrypt proof-of-work) a Record.
* Prompts to allow a user to specify the domain name and subdomain-destinations 
that they want for their hidden service.
* The printout in JSON of a Record, which one can copy and send over email or 
IRC until I get the upload protocols in place.

*Server-side:*
* JSON communication to make life easy.
* TCP server for receiving a .tor domain and returning a Record.
* Support for multiple Records.
* The ability to accept and cache a new Record.
* Construction of a Merkle tree and RSA-signing of the root.
* Ability to find a Record in the Merkle tree, or to find a subtree that proves 
a domain's non-existence.

*General:*
* A hidden service for this project.
* Reliance on Botan rather than OpenSSL. The difference is night and day. Thank 
you Yawning!
* A Record for example.tor and several others for testing and illustrative 
purposes.
* Clean and organized code. The style is similar to Chromium with the exception 
that I put three spaces between each method. I enforce the style with 
clang-format.
* A basic but functional manpage.
* Support for Clang and GCC, with Clang being the preferred compiler for 
development and GCC is used when packaging.
* Packaging into a PPA on Launchpad for Ubuntu 14.04 and beyond, so 
"tor-onions" can be installed and updated through apt-get. I also support 
Debian 8+ but do not currently package for it.
* Packaging for x86, amd64, and armhf, so I'm supporting Pis/BBB/Odroid as well.
* Many labeled tickets on Github to improve workflow.
* Signed git tagging.

As you can imagine, this constitutes the bulk of the essential functionality. 
The remainder is primarily networking and server-side protocols, such as the 
Quorum, the Synchronization and Broadcast (upload) protocols, various 
algorithms, and so on. Those are next. I'm temporarily in a remote location and 
the Internet here is slow and quite spotty, so the project's hidden service is 
down and I haven't tested the latest commits over the network. However, once I 
have the Internet figured out I'll post a prototype here that everyone can test 
if they like. It's a centralized DNS at the moment, so spreading it out is next 
on the list.

- - Jesse V.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCAAGBQJVcJMiAAoJEK2XNk/CC+yAPAAH/3uFvSXRwpq8QfE7o///Cc5a
5w3NwTP06pp1+AQ8RNUhmt17z3eHYOJJpP6zP4uwEzwAnNbUAs/8GiGdDOUj5Se3
kCUPh8/0s+yHWb02ctVhOYE32CouUVQHnswtuDRjz9KPO9Z3yG2d16TUINOurfKf
tigUlgrRaW5pOIm0CQ2z4epi7FFKwdPjdTpsdbZURZTwybCiS4vgfN08iaIRZ/3M
9tz1tfQZH303yTQwubdYf9l99XJlxBtFBFjJlJzCze7iOEVD+j0fHRKk6OM/wouD
kjKrarEQQACQhUzNssAr2/Yv/odYvshJYSLe/7/eoGH7zkKof0rbcBQPyLUpZoU=
=B+Hz
-----END PGP SIGNATURE-----


_______________________________________________
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

Reply via email to