Fantastic, I'm currently at a p2p hackathon in Berlin, but I'll give it a try with my 4 Guruplugs when I get home..<br><br>Markus<br>-- <br>Project Danube: <a href="http://projectdanube.org/" target="_blank">http://projectdanube.org</a><br>
Personal Data Ecosystem Consortium: <a href="http://personaldataecosystem.org/" target="_blank">http://personaldataecosystem.org/</a><br><br><div class="gmail_quote">On Tue, May 15, 2012 at 4:35 PM, Nick M. Daly <span dir="ltr"><<a href="mailto:nick.m.daly@gmail.com" target="_blank">nick.m.daly@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi folks, I'm proud to announce the first release candidate (developer<br>
preview) of the Santiago service. Santiago is designed to let users<br>
negotiate services without third party interference. By sending OpenPGP<br>
signed and encrypted messages over HTTPS (or other protocols) between<br>
parties, I hope to reduce or even prevent MITM attacks. Santiago can<br>
also use the Tor network as a proxy (with Python 2.7 or later), allowing<br>
this negotiation to happen very quietly.<br>
<br>
Santiago currently lives at:<br>
<br>
<a href="https://github.com/nickdaly/plinth/tree/santiago" target="_blank">https://github.com/nickdaly/plinth/tree/santiago</a><br>
<br>
Currently, it needs a *lot* of polish, but there's enough for a<br>
technical demonstration and basic use. Try combining it with .onion<br>
addresses.<br>
<br>
Testing it out it takes a bit of setup:<br>
<br>
- This was all tested on Debian Stable, so I know it works on Python<br>
2.6. Other versions may work differently.<br>
<br>
- You need a PGP key. You probably want to make a new password-less key<br>
specifically for Santiago.<br>
<br>
Santiago's running as a service, and you won't always be there to<br>
enter the password when the gnupg-agent times out and locks the<br>
keyring again. At that point, Santiago will block while waiting for<br>
(or fail without) the password.<br>
<br>
- You need [python-gnupg](<a href="http://code.google.com/p/python-gnupg" target="_blank">http://code.google.com/p/python-gnupg</a>). Make<br>
sure it's either in your PYTHONPATH, or edit the start.sh and test.sh<br>
files so that it can be found.<br>
<br>
- You need a ``production.cfg`` or ``test.cfg`` file with contents like<br>
the following:<br>
<br>
[pgpprocessor]<br>
keyid = (your 40-character key identifier)<br>
<br>
- You need an SSL certificate (the ``ssl-cert`` package is required).<br>
Run the following as root, changing the group as necessary:<br>
<br>
# make-ssl-cert generate-default-snakeoil<br>
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf santiago.crt<br>
# chgrp 1000 santiago.crt<br>
# chmod g+r santiago.crt<br>
<br>
See ``/usr/share/doc/apache2.2-common/README.Debian.gz`` for more<br>
details.<br>
<br>
- Either set up a Tor listener on port 8118, or set the proxy port to<br>
"None" or 80, if you're running Python 2.7 or later.<br>
<br>
- Run ``make`` once in the Plinth root directory to create the config<br>
files you need.<br>
<br>
- Running ``bash start.sh`` in a console will set up a Santiago service<br>
that communicates with itself. You can see the Santiago service learn<br>
about the "<a href="https://somestuff" target="_blank">https://somestuff</a>" location (it'll appear in the<br>
"consuming" dictionary) if you navigate to:<br>
<br>
<a href="https://localhost:8080/query?service=santiago&host=%28your" target="_blank">https://localhost:8080/query?service=santiago&host=(your</a> key ID)<br>
<br>
It'll give you a warning about an untrusted certificate, but since<br>
you just made that certificate, ignore the warning.<br>
<br>
After you load the page, you won't see anything. That's by design.<br>
You'll need to watch the debug messages (look for one reading<br>
"Success!") or Ctrl+C out of the server to drop into PDB where you can<br>
examine the santiago.consuming dictionary.<br>
<br>
Technically, it works, but with a fair number of caveats:<br>
<br>
- Python doesn't currently verify the HTTPS certificates used. We still<br>
use the OpenPGP key for verification, but it'd be helpful.<br>
<br>
- It'd also be nice to munge the PGP key into the HTTPS certificate,<br>
requiring only a single identity document to secure all the<br>
communications.<br>
<br>
- It doesn't yet play well with others (you can't read the hosting and<br>
consuming dictionaries from other processes very well). Please let me<br>
know your ideas for fixing this.<br>
<br>
- It needs better state storage and recovery. Doing this well is my<br>
highest priority right now (the blocker for the 0.2 release).<br>
<br>
- The current start methods appear to block, so new protocols might not<br>
load when you expect them to.<br>
<br>
- It needs more tests, there are still a good number of behaviors that<br>
work but aren't verified.<br>
<br>
- As you can see above, setup isn't easy.<br>
<br>
Future directions:<br>
<br>
- Request proxying: If Alice can't reach Bob, but they both can reach<br>
Carl, Carl can pass the messages for them.<br>
<br>
- Not-braindead state storage and restoration.<br>
<br>
Please test it out and let me know your thoughts. I'll make it easier<br>
to handle and use over the coming days and weeks, but I just wanted to<br>
get it out the door now that it has successfully integrated PGP. If you<br>
have any changes you'd like to see, at all, please send me a patch or<br>
fork the repository.<br>
<br>
James, you can pull it now. :)<br>
<span class="HOEnZb"><font color="#888888"><br>
Nick<br>
</font></span><br>_______________________________________________<br>
Freedombox-discuss mailing list<br>
<a href="mailto:Freedombox-discuss@lists.alioth.debian.org">Freedombox-discuss@lists.alioth.debian.org</a><br>
<a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss" target="_blank">http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss</a><br></blockquote></div><br><br clear="all">
<br><br>