[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-talk] Programming language for anonymity network
- To: tor-talk@xxxxxxxxxxxxxxxxxxxx, p2p-hackers@xxxxxxxxxxxxxxx, liberationtech@xxxxxxxxxxxxxxxxxx, cpunks <cypherpunks@xxxxxxxxxx>
- Subject: Re: [tor-talk] Programming language for anonymity network
- From: Aymeric Vitte <vitteaymeric@xxxxxxxxx>
- Date: Fri, 18 Apr 2014 11:30:27 +0200
- Cc: wonko@xxxxxxxxxxx, Peter Druschel <druschel@xxxxxxxxxxx>, Dave Choffnes <choffnes@xxxxxxxxxxx>, Nicholas Merritt <nmerritt@xxxxxxxxxxx>
- Delivered-to: archiver@xxxxxxxx
- Delivery-date: Fri, 18 Apr 2014 05:41:55 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; bh=pT6/39qLAzjJ6AE2svn4NpfQ/nhPQBeVzlDpw1Lf0nU=; b=yC9kVJcU1/w+W+FVCBl/h+E1K0Ys9OxCeqjj/+fxKLdBZfOg+01SA67CyllLcgs+dT VDxo/efFED6ZAsQrZ1fAowHTWlk6PZn4jVblajuG5u81BVolDQrZ+aK3a7GT0IkfaqNW 8VG3vH5H64QsX3mlGB3Pnr1QCjprtnUiES6F8b06syVUxQRihZPhGf/KfeQZSesSZ3eX +Zj4TJHFlMQPR2uoJvBnOAEnlszIidVjs7oRyBpHtczBBkyQV0UlIttbdFOBh58Jyv3A 6gvrzX8NGr9Q7hlgNieVgxGUvrXwrXdNYccmUUmtCEGwQtEIDWcg8AbO9WP4Ty5wi+ys Z/fA==
- In-reply-to: <5350E1BD.5010304@xxxxxxxxxxx>
- List-archive: <http://lists.torproject.org/pipermail/tor-talk/>
- List-help: <mailto:tor-talk-request@lists.torproject.org?subject=help>
- List-id: "all discussion about theory, design, and development of Onion Routing" <tor-talk.lists.torproject.org>
- List-post: <mailto:tor-talk@lists.torproject.org>
- List-subscribe: <https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk>, <mailto:tor-talk-request@lists.torproject.org?subject=subscribe>
- List-unsubscribe: <https://lists.torproject.org/cgi-bin/mailman/options/tor-talk>, <mailto:tor-talk-request@lists.torproject.org?subject=unsubscribe>
- References: <5350E1BD.5010304@xxxxxxxxxxx>
- Reply-to: tor-talk@xxxxxxxxxxxxxxxxxxxx
- Sender: "tor-talk" <tor-talk-bounces@xxxxxxxxxxxxxxxxxxxx>
- User-agent: Mozilla/5.0 (Windows NT 6.0; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
Without any hesitation: js + nodejs (note: I am not part of the node's team)
- the code is very reduced and transparent, difficult to backdoor
including nodejs itself
- js is familiar but not trivial as many people think
- works on any platform, can even be browserified (see links below) -->
note: that's not part of your criteria
- libraries are huge and great
- performances are great, especially with streams2 --> note: that's not
part of your criteria
- security is ok, it can be affected by outside modules (like openssl),
maybe the buffer model (which is not allocating memory upon creation for
performances reasons) can be problematic but you can override native objects
- nodejs is easy to audit (assuming that modules like V8 can be
audited), you can override node's functions/objects if you like
- your app is easy to audit, no compilation steps
- very easy to install, for contributions and use
- community is huge, nodejs is stable enough for production, the only
small defect from my standpoint is that the upgrade process is sometimes
not totally square for now.
Do you have links to your project?
Regards
Aymeric
--
Peersm : http://www.peersm.com
node-Tor : https://www.github.com/Ayms/node-Tor
GitHub : https://www.github.com/Ayms
Le 18/04/2014 10:26, Stevens Le Blond a écrit :
Hello,
We are a team of researchers working on the design and implementation of
a traffic-analysis resistant anonymity network and we would like to
request your opinion regarding the choice of a programming language /
environment. Here are the criteria:
1) Familiarity: The language should be familiar or easy to learn for
most potential contributors, as we hope to build a diverse community
that builds on and contributes to the code.
2) Maturity: The language implementation, tool chain and libraries
should be mature enough to support a production system.
3) Language security: The language should minimize the risk of security
relevant bugs like buffer overflows.
4) Security of runtime / tool chain: It should be hard to
inconspicuously backdoor the tool chain and, if applicable, runtime
environments.
To give two concrete examples:
Using the C language + deterministic builds is an attractive option with
respect to 1), 2) and 4), but doesn't provide much regarding 3).
Java does better with respect to 3), however, it trades some of 3) and
4) as compared to C. Specifically, we are concerned that large runtimes
may be difficult to audit. A similar argument may apply to other
interpreted languages.
Given these criteria, what language would you choose and for what
reasons? We would also appreciate feedback regarding our criteria.
All the best,
David, Nick, Peter, Stevens, and William
--
tor-talk mailing list - tor-talk@xxxxxxxxxxxxxxxxxxxx
To unsubscribe or change other settings go to
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk