Damian Johnson commited on 2012-03-05 17:06:24
Zeige 1 geänderte Dateien mit 134 Einfügungen und 8 Löschungen.
Couple projects sent by intrigeri...
* Petname system for Tor hidden services (ague)
* Tails server: Self-hosted services behind Tails-powered Tor hidden services
(intrigeri, anonym)
| ... | ... |
@@ -347,17 +347,13 @@ meetings around the world.</li> |
| 347 | 347 |
and still under very active development. |
| 348 | 348 |
</p> |
| 349 | 349 |
|
| 350 |
- <!-- |
|
| 351 | 350 |
<p> |
| 352 | 351 |
<b>Project Ideas:</b><br /> |
| 353 |
- <i><a href="#tailsStartMenu">Custom GDM3 startup menu, aka. |
|
| 354 |
- tails-greeter</a></i><br /> |
|
| 355 |
- <i><a href="#tailsMetadataAnonymizing">Meta-data anonymizing toolkit for |
|
| 356 |
- file publication</a></i><br /> |
|
| 357 |
- <i><a href="#tailsDebianLive">Improve Debian Live support for |
|
| 358 |
- persistence</a></i> |
|
| 352 |
+ <i><a href="#tailsHiddenServicePetnames">Petname system for Tor hidden |
|
| 353 |
+ services</a></i><br /> |
|
| 354 |
+ <i><a href="#tailsServer">Tails server: Self-hosted services behind |
|
| 355 |
+ Tails-powered Tor hidden services</a></i> |
|
| 359 | 356 |
</p> |
| 360 |
- --> |
|
| 361 | 357 |
|
| 362 | 358 |
<a id="project-torsocks"></a> |
| 363 | 359 |
<h3><a href="http://code.google.com/p/torsocks/">Torsocks</a> (<a |
| ... | ... |
@@ -862,6 +858,49 @@ meetings around the world.</li> |
| 862 | 858 |
robustness.</p> |
| 863 | 859 |
</li> |
| 864 | 860 |
|
| 861 |
+ <a id="tailsHiddenServicePetnames"></a> |
|
| 862 |
+ <li> |
|
| 863 |
+ <b>Petname system for Tor hidden services</b> |
|
| 864 |
+ <br> |
|
| 865 |
+ Priority: <i>Medium</i> |
|
| 866 |
+ <br> |
|
| 867 |
+ Effort Level: <i>High</i> |
|
| 868 |
+ <br> |
|
| 869 |
+ Skill Level: <i>High</i> |
|
| 870 |
+ <br> |
|
| 871 |
+ Likely Mentors: <i>ague</i> |
|
| 872 |
+ <p>Tor provides hidden services. These services are only reachable through |
|
| 873 |
+ Tor itself, and provide greater anonymity both for the providers of the |
|
| 874 |
+ service and for its users.</p> |
|
| 875 |
+ <p>One current downside of Tor hidden services is that they are addressed |
|
| 876 |
+ using 80-bit base32-encoded addresses such as "v2cbb2l4lsnpio4q.onion". |
|
| 877 |
+ These addresses are hard to remember; this makes them hard to use |
|
| 878 |
+ within amnesic environment like Tails.</p> |
|
| 879 |
+ <p>The project is to implement a petname system for Tor hidden services: |
|
| 880 |
+ a way for users or providers of Tor hidden services to add a simple |
|
| 881 |
+ 'nickname' to a central database. Users could then query this central |
|
| 882 |
+ database to retrieve a full hidden service address by giving |
|
| 883 |
+ a nickname.</p> |
|
| 884 |
+ <p>Adding petnames to the database could be done using a web interface or |
|
| 885 |
+ automated fetch like those described in the <a |
|
| 886 |
+ href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/ideas/xxx-onion-nyms.txt">".onion |
|
| 887 |
+ nym system" proposal</a>.</p> |
|
| 888 |
+ <p>Querying the database could be done using a web interface, a REST API and |
|
| 889 |
+ a DNS interface.</p> |
|
| 890 |
+ <p>In order not to grow indefinitely, the software should make regular tests to |
|
| 891 |
+ see if hidden services are still reachable and, depending on the last time |
|
| 892 |
+ a nickname was accessed, cleanup the database as necessary.</p> |
|
| 893 |
+ <p>The software should allow a distributed, fault-tolerant setup. |
|
| 894 |
+ All nodes should have a synchronized copy of the database, should be |
|
| 895 |
+ ready to answer queries and should coordinate the tests for hidden |
|
| 896 |
+ service availability.</p> |
|
| 897 |
+ <p>The resulting codebase must be easy to deploy: it should not be hard to |
|
| 898 |
+ setup new databases.</p> |
|
| 899 |
+ <p>It is expected that the volunteer will be using Behaviour Driven |
|
| 900 |
+ Development methods. Either in Ruby using Cucumber and RSpec, or in |
|
| 901 |
+ Python using similar tools.</p> |
|
| 902 |
+ </li> |
|
| 903 |
+ |
|
| 865 | 904 |
<a id="stemPathsupport"></a> |
| 866 | 905 |
<li> |
| 867 | 906 |
<b>Stem PathSupport Capabilities</b> |
| ... | ... |
@@ -919,6 +958,93 @@ meetings around the world.</li> |
| 919 | 958 |
be TorBEL.</p></li> |
| 920 | 959 |
</ol> |
| 921 | 960 |
|
| 961 |
+ <a id="tailsServer"></a> |
|
| 962 |
+ <li> |
|
| 963 |
+ <b>Tails server: Self-hosted services behind Tails-powered Tor hidden services</b> |
|
| 964 |
+ <br> |
|
| 965 |
+ Priority: <i>Medium</i> |
|
| 966 |
+ <br> |
|
| 967 |
+ Effort Level: <i>High</i> |
|
| 968 |
+ <br> |
|
| 969 |
+ Skill Level: <i>Medium, but wide-scoped</i> |
|
| 970 |
+ <br> |
|
| 971 |
+ Likely Mentors: <i>intrigeri, anonym</i> |
|
| 972 |
+ <p>Let's talk about group collaboration, communication and data sharing |
|
| 973 |
+ infrastructure, such as chat servers, wikis, or file repositories.</p> |
|
| 974 |
+ <p>Hosting such data and infrastructure <b>in the cloud</b> generally |
|
| 975 |
+ implies to trust the service providers not to disclose content, usage or |
|
| 976 |
+ users location information to third-parties. Hence, there are many threat |
|
| 977 |
+ models in which cloud hosting is not suitable.</p> |
|
| 978 |
+ <p>Tor partly answers the <b>users location</b> part; this is great, but |
|
| 979 |
+ <b>content</b> is left unprotected.</p> |
|
| 980 |
+ <p>There are two main ways to protect such content: either to encrypt it |
|
| 981 |
+ client-side (<b>security by design</b>), or to avoid putting it into |
|
| 982 |
+ untrusted hands in the first place.</p> |
|
| 983 |
+ <p>Cloud solutions that offer security by design are rare and generally |
|
| 984 |
+ not mature yet. The <b>Tails server</b> project is about exploring the |
|
| 985 |
+ other side of the alternative: avoiding to put private data into |
|
| 986 |
+ untrusted hands in the first place.</p> |
|
| 987 |
+ <p>This is made possible thanks to Tor hidden services, that allow users |
|
| 988 |
+ to offer location-hidden services, and make self-hosting possible in |
|
| 989 |
+ many threat models. Self-hosting has its own lot of problems, however, |
|
| 990 |
+ particularly in contexts where the physical security of the hosting |
|
| 991 |
+ place is not assured. Combining Tor hidden services with Tails' |
|
| 992 |
+ amnesia property and limited support for persistent encrypted data |
|
| 993 |
+ allows to protect content, to a great degree, even in such contexts.</p> |
|
| 994 |
+ <p>In short, setting up a new Tails server would be done by:</p> |
|
| 995 |
+ |
|
| 996 |
+ <ol style="list-style-type: decimal"> |
|
| 997 |
+ <li>Alice plugs a USB stick into a running desktop Tails system.</li> |
|
| 998 |
+ <li>Alice uses a GUI to easily configure the needed services.</li> |
|
| 999 |
+ <li>Alice unplugs the USB stick, that now contains encrypted services |
|
| 1000 |
+ configuration and data storage space.</li> |
|
| 1001 |
+ <li>Alice plugs that USB stick (and possibly a Tails Live CD) into the |
|
| 1002 |
+ old laptop that was dedicated to run Tails server.</li> |
|
| 1003 |
+ <li>Once booted, Alice enters the encryption passphrase either |
|
| 1004 |
+ directly using the keyboard or through a web interface listening on the |
|
| 1005 |
+ local network.</li> |
|
| 1006 |
+ <li>Then, Bob can use the configured services once he gets a hold on |
|
| 1007 |
+ the hidden service address. (The <b>petname system for Tor hidden |
|
| 1008 |
+ services</b> project would be very complementary to this one, by the |
|
| 1009 |
+ way.)</li> |
|
| 1010 |
+ </ol> |
|
| 1011 |
+ |
|
| 1012 |
+ <p>Tails server should content itself with hardware that is a bit old |
|
| 1013 |
+ (such as a PIII-450 laptop with 256MB of RAM) and/or half broken (e.g. |
|
| 1014 |
+ non-functional hard-disk, screen or keyboard).</p> |
|
| 1015 |
+ <p>The challenges behind this project are:</p> |
|
| 1016 |
+ |
|
| 1017 |
+ <ul> |
|
| 1018 |
+ <li>Design and write the services configuration GUI [keywords: edit |
|
| 1019 |
+ configuration files, upgrade between major Debian versions, |
|
| 1020 |
+ debconf].</li> |
|
| 1021 |
+ <li>How to create the hidden service key? [keywords: Vidalia, control |
|
| 1022 |
+ protocol].</li> |
|
| 1023 |
+ <li>Adapt the Tails boot process to allow switching to "server |
|
| 1024 |
+ mode" when appropriate.</li> |
|
| 1025 |
+ <li>Add support, to the Tails persistence setup process, for asking an |
|
| 1026 |
+ encryption passphrase without X, and possibly with a broken keyboard |
|
| 1027 |
+ and/or screen [keywords: local network, SSL/TLS?, certificate?].</li> |
|
| 1028 |
+ </ul> |
|
| 1029 |
+ |
|
| 1030 |
+ <p>This project can easily grow quite large, so the first task would |
|
| 1031 |
+ probably be to clarify what it would need to get an initial (minimal |
|
| 1032 |
+ but working) implementation ready to be shipped to users.</p> |
|
| 1033 |
+ <p>This project does not require to be an expert in one specific field, |
|
| 1034 |
+ but it requires to be experienced and at ease with a large scope of |
|
| 1035 |
+ software development tools, processes, and operating system knowledge.</p> |
|
| 1036 |
+ <p>Undertaking this project requires in-depth knowledge of Debian-like |
|
| 1037 |
+ systems (self-test: do the "dpkg conffile" and "debconf preseeding" |
|
| 1038 |
+ words sound new to your ear?); the Debian Live persistence system |
|
| 1039 |
+ being written in shell, being at ease with robust shell scripting is |
|
| 1040 |
+ a must; to end with, at least two pieces of software need to be |
|
| 1041 |
+ written from scratch (a GUI and a webapp): the preferred languages for |
|
| 1042 |
+ these tasks would be Python and Perl. Using Behaviour Driven |
|
| 1043 |
+ Development methods to convey expectations and acceptance criteria |
|
| 1044 |
+ would be most welcome.</p> |
|
| 1045 |
+ <p>For more information see https://tails.boum.org/todo/server_edition/</p> |
|
| 1046 |
+ </li> |
|
| 1047 |
+ |
|
| 922 | 1048 |
<a id="geoIPUpgrade"></a> |
| 923 | 1049 |
<li> |
| 924 | 1050 |
<b>Improve our GeoIP file format</b> |
| 925 | 1051 |