{"id":224,"date":"2015-12-16T03:15:27","date_gmt":"2015-12-16T03:15:27","guid":{"rendered":"http:\/\/blogs.gentoo.org\/blueness\/?p=224"},"modified":"2016-03-31T00:39:35","modified_gmt":"2016-03-31T00:39:35","slug":"tor-ramdisk-20151215-released-libressl-to-the-rescue","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/blueness\/2015\/12\/16\/tor-ramdisk-20151215-released-libressl-to-the-rescue\/","title":{"rendered":"Tor-ramdisk 20151215 released: libressl to the rescue!"},"content":{"rendered":"<p>If you&#8217;ve read some of my previous posts, you know that I&#8217;ve been maintaining this hardened-Gentoo derived, uClibc-based, micro Linux distribution called &#8220;tor-ramdisk&#8221;.\u00a0\u00a0 Its a small image, less than 7 MB in size, whose only purpose is to host a <a href=\"https:\/\/www.eff.org\/torchallenge\/what-is-tor.html\" target=\"_blank\">Tor relay or exit node<\/a> in a ramdisk environment which vanishes when the system is shut down, leaving no traces behind.\u00a0 My student Melissa Carlson and I started the project in 2008 and I&#8217;ve been pushing out an update with every major release of <a href=\"https:\/\/www.torproject.org\" target=\"_blank\">Tor<\/a>.\u00a0 Over the years, I automated the build system and put the scripts on a git repository at <a href=\"https:\/\/gitweb.torproject.org\/tor-ramdisk.git\/\" target=\"_blank\">gitweb.torproject.org<\/a> that <a href=\"http:\/\/www.freehaven.net\/~arma\/cv.html\" target=\"_blank\">Roger Dingledine<\/a> gave me.\u00a0 If you want to build your own image, all you need do is run the scripts in the chroot of a hardened <a href=\"https:\/\/www.gentoo.org\/downloads\/#amd64-advanced\" target=\"_blank\">amd64<\/a> or <a href=\"https:\/\/www.gentoo.org\/downloads\/#x86-advanced\" target=\"_blank\">i686<\/a> uClibc stage3 image which you can get off the mirrors.<\/p>\n<p>Recently, upstream switched <a href=\"https:\/\/bugs.gentoo.org\/show_bug.cgi?id=556210\" target=\"_blank\">the tor-0.2.7.x branch to depend on openssl&#8217;s elliptic curves code.<\/a>\u00a0 Unfortunately, this code is <a href=\"http:\/\/patented elliptic curve code\" target=\"_blank\">patented<\/a> and can&#8217;t be distribute in tor-ramdisk.\u00a0 If you read the <a href=\"https:\/\/gitweb.gentoo.org\/repo\/gentoo.git\/tree\/net-misc\/tor\/\" target=\"_blank\">tor ebuilds<\/a>, you&#8217;ll see that the 0.2.7.x version has to DEPEND on dev-libs\/openssl[-bindist] while the 0.2.6 only depends on dev-libs\/openssl.\u00a0 Luckily, there&#8217;s <a href=\"http:\/\/www.libressl.org\/\" target=\"_blank\">libressl<\/a> which aims to be a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Free_and_open_source_software\" target=\"_blank\">free<\/a> drop in replacement for openssl.\u00a0 Its in the tree now and almost ready to go &#8212; I say almost because we&#8217;re still in the t<a href=\"https:\/\/github.com\/gentoo\/libressl\/wiki\/Transition-plan\" target=\"_blank\">ransition phase<\/a>.\u00a0 Libressl in Gentoo has been primarily <a href=\"https:\/\/wiki.gentoo.org\/wiki\/User:Hasufell\" target=\"_blank\">hasufel<\/a>&#8216;s project, but I&#8217;ve been helping out here and there.\u00a0 I got a few upstream commits to make sure it works in both uClibc and musl as well as with our hardened compiler.<\/p>\n<p>So, this is the first tor-ramdisk release with libressl.\u00a0 Of course I tested both the amd64 and i686 images and they work as expected, but libressl is new-ish so I&#8217;m still not sure what to expect.\u00a0 Hopefully we&#8217;ll get better security than we did from openssl, but I&#8217;ve got my eyes out for any CVE&#8217;s.\u00a0 At least we&#8217;re getting patent free code.<\/p>\n<p>Tor-ramdisk has been one of those mature projects where all I have to do is tweak a few version numbers in the scripts, press go, and out pops a new image.\u00a0 But I do have some plans for improvements: 1) I need to clean up the text user interface a bit.\u00a0 Its menu driven and I need to consolidate some of the menu items, like the &#8216;resource&#8217; menu and the &#8216;entropy&#8217; menus.\u00a0 2) I want to enable IPv6 support.\u00a0 For the longest time Tor was IPv4 only but for a couple of years now, it has supported IPv6.\u00a0 3) Tor can run in one of several modes.\u00a0 Its ideal as a relay or exit node, but can be configured as client or hidden service for processes running on a different box.\u00a0 However, tor-ramdisk can&#8217;t be used as a bridge.\u00a0 I want to see if I can add bridge support.\u00a0 4) Finally, I&#8217;m thinking of switching from uClibc to musl and building <a href=\"http:\/\/sourceware.org\/ml\/binutils\/2015-06\/msg00027.html\" target=\"_blank\">static PIE executables<\/a>.\u00a0 This would make a tighter image than the current one.<\/p>\n<p>If you&#8217;re interested in running tor-ramdisk, here are some links:<\/p>\n<p>i686:<br \/>\nHomepage: <a href=\"http:\/\/opensource.dyc.edu\/tor-ramdisk\" target=\"_blank\">http:\/\/opensource.dyc.edu\/tor-ramdisk<\/a><br \/>\nDownload: <a href=\"http:\/\/opensource.dyc.edu\/tor-ramdisk-downloads\" target=\"_blank\">http:\/\/opensource.dyc.edu\/tor-ramdisk-downloads<\/a><br \/>\nChangeLog: <a href=\"http:\/\/opensource.dyc.edu\/tor-ramdisk-changelog\" target=\"_blank\">http:\/\/opensource.dyc.edu\/tor-ramdisk-changelog<\/a><\/p>\n<p>x86_64:<br \/>\nHomepage: <a href=\"http:\/\/opensource.dyc.edu\/tor-x86_64-ramdisk\" target=\"_blank\">http:\/\/opensource.dyc.edu\/tor-x86_64-ramdisk<\/a><br \/>\nDownload: <a href=\"http:\/\/opensource.dyc.edu\/tor-x86_64-ramdisk-downloads\" target=\"_blank\">http:\/\/opensource.dyc.edu\/tor-x86_64-ramdisk-downloads<\/a><br \/>\nChangeLog: same as i686.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve read some of my previous posts, you know that I&#8217;ve been maintaining this hardened-Gentoo derived, uClibc-based, micro Linux distribution called &#8220;tor-ramdisk&#8221;.\u00a0\u00a0 Its a small image, less than 7 MB in size, whose only purpose is to host a Tor relay or exit node in a ramdisk environment which vanishes when the system is &hellip; <a href=\"https:\/\/blogs.gentoo.org\/blueness\/2015\/12\/16\/tor-ramdisk-20151215-released-libressl-to-the-rescue\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Tor-ramdisk 20151215 released: libressl to the rescue!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":141,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[1,3],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/posts\/224"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":5,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/posts\/224\/revisions\/305"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/categories?post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/blueness\/wp-json\/wp\/v2\/tags?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}