<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tyler Oderkirk&#039;s Blog &#187; Security</title>
	<atom:link href="http://unsyncopated.com/blog/index.php/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://unsyncopated.com/blog</link>
	<description>&#34;No matter how cynical you get, it&#039;s impossible to keep up&#34; - Lily Tomlin</description>
	<lastBuildDate>Tue, 17 Aug 2010 14:23:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>libhasp: Repurposing a copy-protection dongle for general-purpose data storage</title>
		<link>http://unsyncopated.com/blog/index.php/2010/03/12/libhasp-repurposing-a-copy-protection-dongle-for-general-purpose-data-storage/</link>
		<comments>http://unsyncopated.com/blog/index.php/2010/03/12/libhasp-repurposing-a-copy-protection-dongle-for-general-purpose-data-storage/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 15:07:29 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Footnotes]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Table of Contents]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2010/03/12/libhasp-repurposing-a-copy-protection-dongle-for-general-purpose-data-storage/</guid>
		<description><![CDATA[Way back in 2004, I spied an offer in Circuit Cellar magazine for a free evaluation kit from Aladdin Knowledge Systems (AKS), manufacturer of copy protection tokens. These are the little gadgets that you often need to plug in to your computer to prove that you &#8221;really&#8221; own the particularly expensive application you&#8217;re trying to [...]]]></description>
			<content:encoded><![CDATA[						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/2420667301"><img class="flickr small" title="HASP HL Dongle" alt="HASP HL Dongle" src="http://farm3.static.flickr.com/2378/2420667301_d57374a9a8_m.jpg" /></a></div>
					Way back in 2004, I spied an offer in Circuit Cellar magazine for a free evaluation kit from Aladdin Knowledge Systems (AKS), manufacturer of copy protection tokens. These are the little gadgets that you often need to plug in to your computer to prove that you &#8221;really&#8221; own the <a href="http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&amp;id=13577897">particularly expensive application</a> you&#8217;re trying to run.</p>
<p><div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#The_goods">The goods</a>
	</li>
	<li>
		<a href="#The_hack">The hack</a>
	</li>
	<li>
		<a href="#The_blob">The blob</a>
	</li>
	<li>
		<a href="#What_Bob_and_I_learned">What Bob and I learned</a>
	</li>
	<li>
		<a href="#Further_reading">Further reading</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div>
<span id="The_goods"><h3>The goods</h3></span>
<p>Anyways, the offer boasted&#8230;</p>
<ul>
<li>A <a href="http://www.aladdin.com/hasp/protection-keys-benefits-models.aspx">HASP HL &#8220;Time&#8221; dongle</a> with built-in AES, host-accessible 4kB EEPROM, and &#8220;tamperproof&#8221; real-time clock (RTC).</li>
<li>A cross-platform SDK with libraries and example code in C and a handful of other languages.</li>
<li>Printed API documentation.</li>
</ul>
<p>After pestering them with a few emails over the course of a week, AKS sent me the kit and it arrived just in time to distract me from the first round of exams during my Senior year `X|`</p>
<p>The SDK includes a demo application which can&#8230;</p>
<ul>
<li>Read/write the token&#8217;s EEPROM.</li>
<li>Ask the token to encrypt/decrypt data with its key.</li>
<li>Read the RTC.</li>
</ul>
<span id="The_hack"><h3>The hack</h3></span>
<p>To prevent its use in a commercial setting, AKS hard-codes the encryption keys on its evaluation kit tokens.</p>
<p>So, I set out to make use of one of the &#8221;un-crippled&#8221; features: the on-token EEPROM. Claiming 1,000,000+ read/write cycles, it seems like a nice place to store &#8221;my own&#8221; encryption keys or perhaps store two-factor authentication data.</p>
<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4426568909"><img class="flickr small" title="FUSE architecture" alt="FUSE architecture" src="http://farm3.static.flickr.com/2705/4426568909_5df292d6df_m.jpg" /></a></div>
					At the time, Miklos Szeredi had just <a href="http://marc.info/?l=linux-fsdevel&amp;m=110099238632141&amp;w=2">released his Filesystem-in-userspace (FUSE) framework</a> thus extending the Real Ultimate Power(tm) of the *NIX &#8220;everything-is-a-file&#8221; paradigm to mere mortals<sup>1</sup>.</p>
<p>I hacked up the demo application to implement a bare-bones FUSE filesystem &#8211; one which provides a single file, `hello`, backed by the token&#8217;s EEPROM. I call the result &#8220;<a href="http://unsyncopated.com/hg/haspfuse/file/tip/haspfuse.c#l1">haspfuse</a>&#8220;.</p>
<p>Here are its limitations. See <a href="http://unsyncopated.com/hg/haspfuse/">the haspfuse code</a> for details.</p>
<ul>
<li>The filesystem only supports a single file. This wouldn&#8217;t be too bad if you were to stack a <a href="http://code.google.com/p/fuse-zip/">fuse-zip</a> or <a href="http://en.wikipedia.org/wiki/Archivemount">archivemount</a>-based tarball-backed filesystem on top. Don&#8217;t even think about JFFS(2) or ext2 &#8211; they each require more than 4kB for a single block.</li>
<li>The single file has a fixed size of 3584.</li>
<li>No operation besides: `getattr`, `readdir`, `open`, `read`, `write`, `truncate`, and `chmod` is supported.</li>
<li>The filesystem probably isn&#8217;t &#8220;eject-safe&#8221;. See FUSE&#8217;s `direct_io` for a starting point.</li>
</ul>
<span id="The_blob"><h3>The blob</h3></span>
<p>Additionally, a proprietary blob &#8220;driver&#8221; named `aksusbd` and a static library from the SDK named `libhasp_linux.a` are required. I had trouble with version 3.5.0 so I included v1.8.1 with the haspfuse code.</p>
<p>`aksusbd` is a userspace driver that employs usbfs to interact with the token. Unfortunately, the deprecation of usbfs is <a href="http://www.alteraforum.com/forum/showthread.php?t=5893">apparently now complete with the release of the 2.6.31.20 Ubuntu kernel</a>. This means that <a href="https://help.ubuntu.com/community/VirtualBox/USB">the old standby methods for re-enabling it</a> no longer work.</p>
<p>You&#8217;ll need to use a custom kernel with usbfs support, or better yet, develop an open source driver for these tokens!</p>
<p>The latter approach would be especially helpful because my friend Bob claims that &#8220;`aksusbd` is setuid root and full of vulnerabilities&#8221;. But that&#8217;s another story&#8230;</p>
<p>Be aware that various AKS licenses and draconian US laws may prohibit you from reverse engineering `akusbd`.</p>
<span id="What_Bob_and_I_learned"><h3>What Bob and I learned</h3></span>
<ul>
<li>Filesystem design for severely space-constrained storage devices.</li>
<li>How to build a virtual filesystem using the FUSE C API.</li>
<li>Methods for rebuilding ELF symbol tables and the idiosyncrasies that result when the binary is dynamically-linked and uses <a href="http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library">the Native POSIX Thread Library (NTPL)</a>.</li>
<li>The software tools available for USB protocol reversing.</li>
<li>The myriad sorts of implementation failures that lead to &#8220;cracked&#8221; hardware tokens.</li>
</ul>
<span id="Further_reading"><h3>Further reading</h3></span>
<ul>
<li><a href="http://www.etokenonlinux.org/et/">etokenonlinux.org</a> &#8211; A great resource for using other AKS tokens to do two-factor authentication, one-time password storage, and encrypted partition unlocking <em>The Right Way™</em>. Provided by Cornelius Koelbel.</li>
<li>Guy-Gregoire Leclercq&#8217;s <a href="http://www.stacksegment.net/wiki/index.php/Aladdin_eToken_64k">detailed notes on using the eToken 64k with OpenCT/OpenSC on Debian</a>.</li>
<li>Andy Smith&#8217;s rebuilt, <a href="http://andys.org.uk/bits/2009/12/23/openssh-and-opensc-for-debian-and-ubuntu/">OpenSC-enabled, openssh-client and how to store SSH keys</a> on an eToken with it.</li>
</ul>
<ol class="footnotes">
<li id="footnote_0_542" class="footnote">Well, mortals too squeamish to run <a href="http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs">Plan 9</a> as their every-day operating system ;]</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2010/03/12/libhasp-repurposing-a-copy-protection-dongle-for-general-purpose-data-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creds101 v0.1 Release</title>
		<link>http://unsyncopated.com/blog/index.php/2010/02/20/creds101-v0-1-release/</link>
		<comments>http://unsyncopated.com/blog/index.php/2010/02/20/creds101-v0-1-release/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 14:38:45 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Python programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Table of Contents]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2010/02/20/creds101-v0-1-release/</guid>
		<description><![CDATA[I&#8217;m happy to announce the first release of a credentials (e.g. &#8220;usernames and passwords&#8221;) management system that I&#8217;ve been working on for the past few weeks. It&#8217;s called Creds101 and this excerpt from the documentation gives some more detail: Creds101 has 2 parts: Software that you run on your computer (the &#8220;host&#8221;) to send commands [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce the first release of a credentials (e.g. &#8220;usernames and passwords&#8221;) management system that I&#8217;ve been working on for the past few weeks. It&#8217;s called Creds101 and this excerpt from <a href="http://unsyncopated.com/corral/creds101-0.1/index.html">the documentation</a> gives some more detail:</p>
<hr />Creds101 has 2 parts:</p>
<ol>
<li>Software that you run on your computer (the &#8220;host&#8221;) to send commands to&#8230;</li>
<li>A USB &#8220;token&#8221; which A) encrypts and stores credentials from the host and B) decrypts and displays them on its LCD.</li>
</ol>
<p>Creds101 serves the same purpose as traditional &#8220;password database&#8221; solutions but it is different in two fundamental ways:</p>
<ol>
<li>Credentials aren&#8217;t stored on the user&#8217;s computer &#8211; they&#8217;re stored on a USB &#8220;token&#8221;.</li>
<li>Sensitive credential data &#8221;cannot be read by malicious software on the user&#8217;s computer&#8221; &#8211; credentials can only be viewed on the token&#8217;s &#8220;trusted LCD display&#8221;.</li>
</ol>
<hr />
<span id="Contents"><h3>Contents</h3></span>
<div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#Contents">Contents</a>
	</li>
	<li>
		<a href="#Whats_in_v0.1">What's in v0.1?</a>
	</li>
	<li>
		<a href="#Whats_next">What's next?</a>
	</li>
	<li>
		<a href="#What_I_learned">What I learned</a>
	</li>
	<li>
		<a href="#Download__Quickstart">Download / Quickstart</a>
	</li>
	<li>
		<a href="#Further_reading">Further reading</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div>
<span id="What8217s_in_v0.1"><h3>What&#8217;s in v0.1?</h3></span>
<ul>
<li><a href="http://www.methods.co.nz/asciidoc/">AsciiDoc</a>-based documentation including the &#8220;host-&gt;token&#8221; serial command protocol and data-flow diagrams illustrating how credentials are encrypted, stored, decrypted, and displayed by the token.</li>
<li>A <a href="http://docs.python.org/library/unittest.html">unittest</a> test suite which exercises each of the commands accepted by the token. Install <a href="http://twistedmatrix.com/trac/">Twisted</a> and try
<pre class="brush: bash;">PYTHONPATH=src trial src/TestSimulatorToken.py</pre>
</li>
<li>A cross-platform &#8220;token administration&#8221; GUI for storing and retrieving credentials. Try
<pre class="brush: bash;">bin/creds101-admin-gui --use-simulator</pre>
<p>or see screenshot 1.						<div class="flickr-gallery image none"><a href="http://www.flickr.com/photos/55502932@N00/4373389528"><img class="flickr small" title="Screenshot 1 - GUIs" alt="Screenshot 1 - GUIs" src="http://farm5.static.flickr.com/4066/4373389528_7f97d950e4_m.jpg" /></a></div>
					</li>
<li>A command-line &#8220;token administration&#8221; interface. Try
<pre class="brush: bash;">bin/creds101 --help</pre>
</li>
<li>A &#8220;token simulator&#8221; that allows us to 1) develop tests 2) iron out token design issues &#8221;before&#8221; coding in C for an embedded platform. Try
<pre class="brush: bash;">bin/creds101-simulator --gui</pre>
<p>or see screenshot 1.</li>
<li>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4372493561"><img class="flickr small" title="Photo 2 - Desoldering flash part" alt="Photo 2 - Desoldering flash part" src="http://farm3.static.flickr.com/2709/4372493561_13955be0f6_m.jpg" /></a></div>
					The beginnings of the code for an <a href="http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove">Arduino</a>-based token. Take a look in `src/arduino`. This includes code for&#8230;
<ul>
<li>Receiving commands from the &#8220;host&#8221; via the Arduino&#8217;s FTDI serial-over-USB chip.</li>
<li>Reading and writing data to the 512 bytes of internal EEPROM or an attached SPI <a href="http://www.atmel.com/products/dataflash/default.asp">DataFlash</a> part. See photos 2 and 3.</li>
<li>Displaying text on a <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9394">SparkFun SerLCD</a> LCD module.</li>
<li>Encrypting and decrypting data with 128-bit AES.</li>
</ul>
</li>
</ul>
<span id="What8217s_next"><h3>What&#8217;s next?</h3></span>
<ul>
<li>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4373266740"><img class="flickr small" title="Photo 3 - New leads" alt="Photo 3 - New leads" src="http://farm3.static.flickr.com/2706/4373266740_32369563b4_m.jpg" /></a></div>
					Completing the Arduino token implementation so that we have something that&#8217;s suitable for everyday use.</li>
<li>Completing a thumbdrive-sized token implementation &#8211; the ideal form factor.</li>
<li>The smaller tasks that can be found in the `TODO` file.</li>
</ul>
<span id="What_I_learned"><h3>What I learned</h3></span>
<ul>
<li>How to create slick, source-based docs with the AsciiDoc tool suite. As much as I like MoinMoin markup, the wiki engine itself isn&#8217;t amenable to being invoked from a build automation tool.</li>
<li>GUI design with <a href="http://glade.gnome.org/">Glade</a>, a slick <a href="http://en.wikipedia.org/wiki/Rapid_application_development">RAD</a> tool used by many free software projects.</li>
<li>GUI interaction with <a href="http://www.pygtk.org/">PyGTK</a>. I wrote a well-behaved worker thread that runs alongside the GTK main loop for the token simulator component.</li>
<li>The theory and implementation of &#8220;Secret Sharing&#8221; schemes especially Shamir&#8217;s Secret Sharing Scheme (SSSS). We discarded SSSS in favor of the current &#8220;store-the-key-on-the-host, store-the-ciphertext-on-the-token&#8221; design.</li>
<li>A handful of Python skills&#8230;
<ul>
<li>Finding a script&#8217;s location &#8221;from within the script&#8221;. Handy for using `bin/foo -&gt; src/foo.py` symlinks in conjunction with external (e.g. Glade XML) resources.</li>
<li>Python&#8217;s built-in <a href="http://docs.python.org/library/xmlrpclib.html">XML-RPC</a> library. Reconciling UNIX socket semantics with thread semantics gave me fits before I switched to this IPC mechanism.</li>
<li>Steven Bethard&#8217;s superior <a href="http://code.google.com/p/argparse/">argparse</a> module which makes handling subcommands and required positional arguments a breeze compared with Python&#8217;s standard optparse module.</li>
</ul>
</li>
</ul>
<span id="Download__Quickstart"><h3>Download / Quickstart</h3></span>
<p>Creds101 is licensed under the GPL.</p>
<p>Here are the steps to grab the v0.1 source tarball from <a href="http://unsyncopated.com/hg/creds101/">the hgweb interface</a> and take the GUIs for a test drive!</p>
<pre class="brush: bash;">
$ wget http://unsyncopated.com/hg/creds101/archive/0.1.tar.gz
$ tar xzf 0.1.tar.gz
$ cd creds101-0.1
$ bin/creds101-simulator --gui &amp;           # launch the token simulator
$ bin/creds101-admin-gui --use-simulator &amp; # connect to the simulator
</pre>
<span id="Further_reading"><h3>Further reading</h3></span>
<p>You can see our design notes, plans, and a list of similar projects at <a href="https://www.unsyncopated.com/wiki/Creds101">the wiki page</a> but beware the outdated Secret Sharing content.</p>
<p>I&#8217;m accumulating all the research papers, datasheets, and application notes I&#8217;ve encountered during this project in <a href="http://unsyncopated.com/hg/creds101-research_materials/file/tip">a &#8220;research materials&#8221; repository</a>. You might find the contents useful if you&#8217;re trying to choose an AES implementation for an AVR microcontroller or if your project falls into one of these categories: &#8220;cryptographic co-processor&#8221;, &#8220;hardware security module&#8221;, &#8220;embedded secret secret sharing&#8221;, &#8220;ubiquitous/pervasive computer security&#8221;, or &#8220;tamper evidence/proof&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2010/02/20/creds101-v0-1-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending data via cellular voice connections with Linux</title>
		<link>http://unsyncopated.com/blog/index.php/2009/11/19/sending-data-via-cellular-voice-connections-with-linux/</link>
		<comments>http://unsyncopated.com/blog/index.php/2009/11/19/sending-data-via-cellular-voice-connections-with-linux/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 10:45:03 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Footnotes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Shell programming]]></category>
		<category><![CDATA[Syntax highlighter]]></category>
		<category><![CDATA[Table of Contents]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2009/11/20/sending-data-via-cellular-voice-connections-with-linux/</guid>
		<description><![CDATA[&#8220;A5/1 [the encryption scheme used in most cellular voice calls] has operated unchanged for the last 21 years but it has now reached its cryptographic end-of-life, engulfed by the march of Moore&#8217;s Law. However, the operational end-of-life of A5/1 may still be decades away as there are approximately 2 billion GSM subscribers, commanding about 80% of [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="padding-left: 30px;">&#8220;A5/1 [the encryption scheme used in most cellular voice calls] has operated unchanged for the last 21 years but it has now reached its cryptographic end-of-life, engulfed by the march of Moore&#8217;s Law. However, the operational end-of-life of A5/1 may still be decades away as there are approximately 2 billion GSM subscribers, commanding about 80% of the global mobile market. This would be a tough product recall indeed. A5/1 is well-positioned to become the NT of the mobile crypto world, and I see the makings of a long tail of GSM vulnerability.&#8221; - <a href="http://ch.linkedin.com/pub/luke-o-connor/1/bb6/152">Dr. Luke O&#8217;Connor</a> at <a href="http://lukenotricks.blogspot.com/2009/09/another-crack-at-open-rainbow-tables.html">NoTricks: Another crack at open Rainbow Tables for A5/1</a></p>
<div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#Introduction">Introduction</a>
	</li>
	<li>
		<a href="#The_modem__Hardware_components">The modem / Hardware components</a>
	</li>
	<li>
		<a href="#Transmitting_audio_from_a_PC_to_a_cell_phone__Software_components">Transmitting audio from a PC to a cell phone / Software components</a>
	</li>
	<li>
		<a href="#Demonstration__OKCrypto_scripts">Demonstration / OKCrypto scripts</a>
	</li>
	<li>
		<a href="#Encryption">Encryption</a>
	</li>
	<li>
		<a href="#Further_work">Further work</a>
	</li>
	<li>
		<a href="#What_I_learned">What I learned</a>
	</li>
	<li>
		<a href="#Conclusion__Download">Conclusion / Download</a>
	</li>
	<li>
		<a href="#Further_reading">Further reading</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div>
<span id="Introduction"><h3>Introduction</h3></span>
<p>The ability to intercept and decrypt GSM cell phone conversations is now well within the reach of hobbyists.<sup>1</sup><sup>2</sup></p>
<p>My friend Scott and I were discussing this sobering fact one night and we began wondering if any systems exist which provide end-to-end encryption for this insecure link.</p>
<p>Sure, there are plenty of solutions for people with access to cellular dataconnections, but what can voice call participants use to foil eavesdroppers?</p>
<p>We didn&#8217;t find any low-cost systems so we decided to create our own. OKCrypto is the Linux-based encrypting software modem that we&#8217;ve made. It consists of two components: the modem component and crypto component.</p>
<span id="The_modem__Hardware_components"><h3>The modem / Hardware components</h3></span>
<p>We needed the ability to send data before we could try sending  encrypteddata, so the first step was to design a simple software modem.</p>
<p>Rather than executing the modem code on the cell phones themselves, I decided to host the modem code on a the sender and receiver&#8217;s Linux systems. This design provides two benefits:</p>
<ol>
<li>The modem code and crypto code has access to the rich Linux API.</li>
<li>Sensitive code and data are isolated from the both the cell phone itself and from the cell infrastructure. We have clean separation between trusted (PC) and untrusted (cell) environments.</li>
</ol>
<p>Thus, the &#8220;real work&#8221; in OKCrypto is done on the PC &#8211; the cell phones simply allow the PCs to talk to each other. See figure 1 for an overview of the hardware involved in the system. 						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4153181728"><img class="flickr small" title="Fig. 1 - Hardware components" alt="Fig. 1 - Hardware components" src="http://farm3.static.flickr.com/2534/4153181728_a0fe8e3a63_m.jpg" /></a></div>
					</p>
<p>Conceptually, the modem is similar to the analog Plain Old Telephone Service (POTS) modems from the Bad Old Days before broadband service became popular. Instead of an audio coupler, we&#8217;re using Bluetooth to connect our PC to our phone line. Instead of custom hardware, our modem is comprised of some glue scripts and the software packages they connect &#8211; all running on a Linux PC.</p>
<p>The modem doesn&#8217;t provide an asynchronous full-duplex communication link like traditional modems. This modem&#8217;s operation is simpler: The sender&#8217;s modem dials the number of, and subsequently transmits a pre-prepared chunk of data to, the recipient&#8217;s modem. It then hangs up.</p>
<p>The modem uses Dual-tone multi-frequency (DTMF) signaling to encode the data it transmits. I chose DTMF because I was familiar with it and because Debian provides a package for <a href="http://www.baycom.org/~tom/ham/linux/multimon.html">Multimon</a>. OKCrypto uses two utilities that Multimon provides:</p>
<ol>
<li>gen &#8211; a DTMF generation utility (digits-&gt;wav file)</li>
<li>multimon &#8211; a DTMF detection utility (wav file-&gt;digits)</li>
</ol>
<span id="Transmitting_audio_from_a_PC_to_a_cell_phone__Software_components"><h3>Transmitting audio from a PC to a cell phone / Software components</h3></span>
<p>I&#8217;d been working on a few Bluetooth security projects at the time, so the Hands-Free Profile (HFP)<sup>3</sup> came immediately to mind as a convenient way to transfer audio (and any data we&#8217;ve encoded in the audio) between a PC and a cell phone during a call.</p>
<p>-flickr size=&#8221;small&#8221; float=&#8221;right&#8221;-4153181752-/flickr-In most cases HFP is used to connect a a Bluetooth phone to a Bluetooth headset so that the headset can be used to make calls via the phone. See figure 2.</p>
<p>-flickr size=&#8221;small&#8221; float=&#8221;right&#8221;-4153181518-/flickr-In the PC world, HFP is typically used to connect a desktop computer to a bluetooth headset. See figure 3. In that configuration, the PC fulfills the first of two roles mandated by the HFP specification: the Audio Gateway (AG) role. The headset fulfills the hands-free (HF) role.</p>
						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4152393267"><img class="flickr small" title="Fig. 4 - PC ~ Cell phone" alt="Fig. 4 - PC ~ Cell phone" src="http://farm3.static.flickr.com/2737/4152393267_95526e2aaf_m.jpg" /></a></div>
					For our purposes, we need the PC to appear to be a bluetooth headset to a cell phone &#8211; the PC must fulfill the HF role. See figure 4. This is similar to how call-handling in-vehicle GPS/stereo units work.</p>
<p>Support for the HF role in <a href="http://www.bluez.org/">bluez</a>, the Linux Bluetooth stack (pronounced &#8220;blue-zee&#8221;), is just now maturing<sup>4</sup> so I went searching for a userspace implementation of the HFP protocol stack.</p>
<p>One of the best, chan_mobile, is distributed as an add-on to the popular open-source private branch exchange (PBX) <a href="http://www.asterisk.org/">Asterisk</a> system. If you configure chan_mobile to use your cell phone, Asterisk can make both outbound calls and receive inbound calls with the phone.</p>
<p>Asterisk is the largest software component of the OKCrypto modem. It not only provides a reliable HFP HF role implementation which works with a wide array of modern phones (see above), but also many essential telephony operations:</p>
<ol>
<li>Recording audio during a call. OKCrypto uses Asterisk&#8217;s built-in voicemail capabilities.</li>
<li>Transmitting audio during a call.</li>
<li>Pausing for a given time period.</li>
<li>Logging phone call details.</li>
</ol>
<p>See figure 5 for an overview of the software components in the OKCrypto system. Note that the same software is used on both the sender and receiver&#8217;s PCs.						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4153379126"><img class="flickr small" title="Fig. 5 - Software components" alt="Fig. 5 - Software components" src="http://farm3.static.flickr.com/2521/4153379126_22a0fbc569_m.jpg" /></a></div>
					
<span id="Demonstration__OKCrypto_scripts"><h3>Demonstration / OKCrypto scripts</h3></span>
<p>Let&#8217;s look at how we can use this modem to send a 16-byte binary file over a cellular voice connection.</p>
<p>First, the sender and recipient will need to perform some set-up steps:</p>
<ol>
<li>1. Acquire a Linux-supported computer and Bluetooth adapter. I found that using a virtual machine introduces latency that bluez/btusb cannot tolerate.</li>
<li>Acquire a HFP-capable cell phone.</li>
<li>Install Linux, <a href="http://sox.sourceforge.net/">SoX</a>, Python, multimon, Asterisk, the Asterisk &#8220;add-ons&#8221;, GPG, and the OKCrypto scripts.</li>
<li>Pair cell phone with computer. Grant HFP access.</li>
<li>Configure chan_mobile</li>
<li>Start Asterisk Next, the sender can issue this command at a shell to send the file &#8216;/tmp/foo&#8217; to the recipient at 585-555-3258.
<pre class="brush: bash;">$ ./bin_to_int_seq.py /tmp/foo | ./ast_send.sh 5855553258 [...]
$ cksum /tmp/foo 668417501 16 /tmp/foo</pre>
<p>She&#8217;ll notice her PC making a call with her phone, silently transmitting the data, and disconnecting. Behind the scenes, the OKCrypto scripts will&#8230;</li>
<li>Convert the bytes in /tmp/foo to a series of decimal digits.</li>
<li>Encode the digits as DTMF tones with gen from the multimon package. 1. Increase the pitch (time-independent) to prevent any intermediary systems (esp. Asterisk) from interpreting the tones.</li>
<li>Queue the final audio file for transmission by Asterisk.</li>
</ol>
<p>The recipient will hear his phone ring once before his PC answers the call, records the audio, and disconnects. When the call is complete, Asterisk will invoke one of the OKCrypto scripts to&#8230;</p>
<ol>
<li>Decrease the pitch to yield the original DTMF tones.</li>
<li>Decode the DTMF tones to a series of decimal digits.</li>
<li>Convert the digits to a series of bytes which is written to &#8216;/tmp/bar&#8217;.
<pre class="brush: bash;">$ tr -d '\n' &lt; /tmp/newest_vm.txt | ./int_seq_to_bin.py /tmp/bar [...]
$ cksum /tmp/bar 668417501 16 /tmp/bar</pre>
</li>
</ol>
<span id="Encryption"><h3>Encryption</h3></span>
<p>Now that we can reliably send data, let&#8217;s make sure that it&#8217;s encrypted first. This turns out to be one of the simplest components of the system &#8211; many good crypto APIs are available.</p>
<p>I use <a href="http://www.gnupg.org/">GnuPG</a>:</p>
<pre class="brush: bash;">$ gpg --symmetric --force-mdc --cipher-algo AES256 filetoencrypt </pre>
<p>The `&#8211;force-mdc` option provides integrity checking &#8211; useful for handling transmission errors. Consider these GPG options carefully and make sure they fit your requirements.</p>
<span id="Further_work"><h3>Further work</h3></span>
<p>Here are a few ideas we&#8217;re pursuing for the future of this project:</p>
<ul>
<li>Moving the modem code to the cell phone. This would simplify the setup but potentially risk security.</li>
<li>Improving modem error rate. Data is often erroneously duplicated during transmission.</li>
<li>Increasing the modem throughput. The current code averages a meager 10 bytes/second.</li>
<li>Hiding the data within a steganographic channel in a normal voice conversation.</li>
<li>Incorporating GPG into the OKCrypto scripts.</li>
<li>Packaging the system as a LiveCD/Live flash drive.</li>
<li>Implementing key exchange.</li>
<li>Building an embedded device dedicated to OKCrypto.</li>
</ul>
<span id="What_I_learned"><h3>What I learned</h3></span>
<p>I gained experience in the follow areas during the design, implementation. and testing:</p>
<ul>
<li>GSM, CDMA crypto. I suspect the cellular phone industry would make a great case study in protocol security by obscurity.</li>
<li>Cellular voice codecs used by large carriers. Trivia: your calls only require ~10kbps.<sup>5</sup></li>
<li>Bluetooth HFP specification and available implementations.</li>
<li>Debugging latency tolerances in virtual machine USB &#8220;passthrough&#8221; subsystems.</li>
<li>The <a href="http://www.twilio.com/">Twilio</a> telephony API. I used Twilio when I only had one cell phone to debug with.</li>
<li>Asterisk administration.</li>
</ul>
<span id="Conclusion__Download"><h3>Conclusion / Download</h3></span>
<p>I&#8217;ve described a method to securely transmit data over any of the widely-available cell voice networks. The implementation requires only commodity hardware, open-source software, and minimal setup.</p>
<p>Be aware that transmitting data by &#8220;automated means&#8221; may violate the terms of your cellular service contract. I disclaim all liability. This information is provided for educational purposes only.</p>
<p>You can download the OKCrypto system here: http://www.unsyncopated.com/corral/okcrypto_v0.1.tar.gz</p>
<p>It is licensed under the LGPL.</p>
<span id="Further_reading"><h3>Further reading</h3></span>
<ul>
<li>You&#8217;ll find lots of links to cell security architecture articles, Bluetooth HFP implementations, and Asterisk administration web pages on the wiki at <a href="http://www.unsyncopated.com/wiki/Crypto%20Phone/Stacked%20Linux-based%20CPhone%20Brainstorming">Crypto Phone/Stacked Linux-based CPhone Brainstorming</a></li>
</ul>
<p>Update 1/13/09 - Check out some technical notes on our recent progress with a faster and more reliable modem: <a href="https://www.unsyncopated.com/wiki/OKCrypto/Progress%20Report%20for%2001-09-2010">OKCrypto/Progress Report for 01-09-2010</a></p>
</div>
<ol class="footnotes">
<li id="footnote_0_317" class="footnote"><a href="http://spectrum.ieee.org/telecom/wireless/open-source-effort-to-hack-gsm">Open-Source Effort to Hack GSM</a> John Blau &#8211; IEEE Spectrum Magazine &#8211; December 2009 issue</li>
<li id="footnote_1_317" class="footnote"><a href="https://har2009.org/program/attachments/119_GSM.A51.Cracking.Nohl.pdf">Subverting the security base of GSM</a> Karsten Nohl &#8211; Hacking at Random &#8211; 8/15/2009</li>
<li id="footnote_2_317" class="footnote"><a href="http://www.bluetooth.com/Bluetooth/Technology/Works/HFP.htm">Bluetooth Hands-Free Profile (HFP) 1.5</a> &#8211; Bluetooth Special Interest Group &#8211; 11/25/2005</li>
<li id="footnote_3_317" class="footnote"><a href="https://bugs.maemo.org/show_bug.cgi?id=2754#c1">Comment #1 on Maemo bug #2754</a> &#8211; Johan Hedberg &#8211; 1/25/2009</li>
<li id="footnote_4_317" class="footnote"><a href="http://en.wikipedia.org/w/index.php?title=Adaptive_Multi-Rate_audio_codec&amp;oldid=327719647">Adaptive Multi-Rate audio codec</a> &#8211; Wikipedia &#8211; 11/24/2009</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2009/11/19/sending-data-via-cellular-voice-connections-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secure browser-based communications</title>
		<link>http://unsyncopated.com/blog/index.php/2009/04/18/secure-browser-based-communications/</link>
		<comments>http://unsyncopated.com/blog/index.php/2009/04/18/secure-browser-based-communications/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 20:35:12 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Footnotes]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Syntax highlighter]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2009/04/19/secure-browser-based-communications/</guid>
		<description><![CDATA[Introduction I&#8217;ve often wanted to securely send a message to someone who didn&#8217;t have a serious software package like GPG installed. Rather than ask them to install software they might not use ever again, I employed the scheme described below &#8211; it only requires a web browser with Javascript support. Our friends Alice and Bob [...]]]></description>
			<content:encoded><![CDATA[<span id="Introduction"><h3>Introduction</h3></span>
<p>I&#8217;ve often wanted to securely send a message to someone who didn&#8217;t have a serious software package like <a href="http://www.gnupg.org/">GPG</a> installed. Rather than ask them to install software they might not use ever again, I employed the scheme described below &#8211; it only requires a web browser with Javascript support.</p>
<p style="text-align: left;">Our friends Alice and Bob have agreed to help me illustrate this scheme for secure browser-based communications. Eve declined my invitation. She&#8217;s busy <a href="http://www.willhackforsushi.com/Home/Entries/2009/2/3_Decrypting_DebIan-Vulnerable_SSH_Traffic.html">decrypting debian-vulnerable SSH sessions off the wire</a>.</p>
<p style="text-align: left;"><div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#Introduction">Introduction</a>
	</li>
	<li>
		<a href="#The_scheme">The scheme</a>
	</li>
	<li>
		<a href="#Potential_pitfalls">Potential pitfalls</a>
	</li>
	<li>
		<a href="#Conclusion">Conclusion</a>
	</li>
	<li>
		<a href="#An_aside:_Damn_I_shouldnt_have_killed_that_Emacs_buffer">An aside: "Damn! I shouldn't have killed that Emacs buffer!"</a>
	</li>
	<li>
		<a href="#See_also">See also</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div></p>
<span id="The_scheme"><h3>The scheme</h3></span>
<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/3456154555"><img class="flickr small" title="Secure browser-based communication" alt="Secure browser-based communication" src="http://farm4.static.flickr.com/3585/3456154555_a31501c097_m.jpg" /></a></div>
					<br />
Alice wants to send Bob a secret message. Bob doesn&#8217;t want to fiddle around with any stand-alone crypto software in order to read the secret message. Bob <em>is</em>, however, saavy with his web browser.</p>
<ol>
<li>Alice points her browser to an SSL-secured web page (&#8220;https://foo.com/aes.html&#8221;) which contains a bit of HTML and an inline <a href="http://www.movable-type.co.uk/scripts/aes.html">Javascript implementation of the AES encryption standard</a>.</li>
<li>Alice uses the form on the web page to encrypt the secret message (&#8220;linux rulz&#8221;) with the password she chose (&#8220;thelegendofdrunkenmaster&#8221;). The encryption is performed locally &#8211; the secret message does not enter the network nor interact with any software besides the browser&#8217;s Javascript engine.</li>
<li>Alice sends the message encrypted message (&#8220;MGfrSbm5ubmqsnbYtoa9cgeYfA==&#8221;) to Bob via a second channel &#8211; e.g. by reading it to him over the telephone. Alice also gives Bob a hint about the password (&#8220;it&#8217;s the name of <a href="http://en.wikipedia.org/wiki/Drunken_Master_II">the movie</a> we watched last week &#8211; without any spaces&#8221;).</li>
</ol>
<ol>
<li>Bob visits the same secured page with &#8221;his&#8221; web browser. He types the encrypted message and the password into the form.</li>
<li>The decrypted message appears on his screen and he compliments Alice on her astute observation.</li>
</ol>
<span id="Potential_pitfalls"><h3>Potential pitfalls</h3></span>
<ul>
<li>The password &#8220;hint&#8221; should be chosen carefully. If it isn&#8217;t, a passive attacker (Eve, when she&#8217;s done submitting Valgrind &#8220;uninitialized data&#8221; warning reports to the Debian project<sup>1</sup> ) has a chance at brute-forcing the password. Substituting an ad-hoc &#8220;hint&#8221; system for well-designed key-exchange mechanisms should be done with caution!</li>
<li>Alice and Bob should devote an entire browser instance to this task and &#8221;only&#8221; to this task. They should close the browser and reboot after handling the decrypted message. If they don&#8217;t, malicious browser components, malicious websites, or OS paging could subvert their efforts by revealing the decrypted message to an attacker. I recommend that they use <a href="http://www.google.com/googlebooks/chrome/">a browser</a> that was &#8221;designed&#8221; with security in mind.</li>
<li>The webserver that serves the encryption/decryption page should be managed by a trusted party. If it isn&#8217;t, an active attacker could obtain the decrypted message. Barring port-forwarding and self-signed SSL key hassles, Alice herself could run a <a href="http://www.yeraze.com/2008/03/webservers-with-python-ssl-cac-authentication/">small webserver</a> devoted to the purpose.</li>
<li><a href="http://www.movable-type.co.uk/scripts/aes.html">Chris Veness&#8217; Javascript</a> emits Base64 encoded ciphertext. Base64&#8242;s default alphabet may lend itself to transcription errors if the telephone is chosen as a second channel e.g. &#8220;3&#8243; is heard as &#8220;E&#8221;. In rare cases, this could go undetected by the decoding scheme&#8217;s error detection and result in the generation of incorrect plaintext e.g. &#8220;linux drulz&#8221;. For &#8221;one&#8221; clever (ref: genetic algorithms!) solution to the transcription problem, see <a href="http://en.wikipedia.org/wiki/PGP_word_list">The PGP word list</a>.</li>
</ul>
<span id="Conclusion"><h3>Conclusion</h3></span>
<p>I&#8217;ve presented a scheme for secure communications between two parties where the only application software required is a Javascript-capable web browser and a SSL-capable web server.</p>
<p>Using a second channel and carefully-chosen password &#8220;hint&#8221;, this scheme allows access to high-grade cryptography with minimal &#8220;new software&#8221; requirements.</p>
<span id="An_aside:_8220Damn_I_shouldn8217t_have_killed_that_Emacs_buffer8221"><h3>An aside: &#8220;Damn! I shouldn&#8217;t have killed that Emacs buffer!&#8221;</h3></span>
<p>I began writing some code for this article in an Emacs scratch buffer. I then proceeded to accidentally kill the buffer before cutting its contents to my kill-ring.</p>
<p>I figured that maybe I could find the &#8220;lost&#8221; source code in Emacs&#8217; heap so I forced a core dump with `killall &#8211;signal ABRT emacs`<sup>2</sup><sup>3</sup>.</p>
<p>Next I tried to search for a snippet of the source code (the word &#8220;alice&#8221;) in the core dump with the `strings(1)` utility. The values for `CUR_ENC` are from the `strings(1)` manpage.</p>
<pre class="brush: bash;">

$ for CUR_ENC in s S b l B L; do strings --encoding \
${CUR_ENC} core | grep --ignore-case alice; done

$
</pre>
<p>No dice! If I had to guess, I&#8217;d say that Emacs uses some funky elisp mechanism for allocating memory for the contents of buffers, hence the failure of this naive `strings | grep` search. Suggestions welcome `;]`.</p>
<p><strong>Update 5/12/09</strong> &#8211; I should have tried <a href="http://bitbucket.org/haypo/hachoir/wiki/hachoir-grep">hachoir-grep</a> &#8211; it&#8217;s UNICODE-aware.</p>
<span id="See_also"><h3>See also</h3></span>
<ul>
<li><a href="http://lists.immunitysec.com/pipermail/dailydave/2009-May/005730.html">A DailyDave discussion on sources of entropy is Javascript-land</a></li>
<p><!-- detacord --></ul>
<ol class="footnotes">
<li id="footnote_0_245" class="footnote">Ooooooh. Twice in one blog post? I only do it because I love ya, Debian `:]`</li>
<li id="footnote_1_245" class="footnote">I&#8217;d started emacs in a shell where I&#8217;d previously run `ulimit -c unlimited`, thus enabling core dumps. Dog help you if you haven&#8217;t done so and need a core dump. </li>
<li id="footnote_2_245" class="footnote">Ubuntu disables `/dev/mem` (booooo hissss) IIRC so I didn&#8217;t try that route.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2009/04/18/secure-browser-based-communications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not every OS can be as correct as OpenBSD</title>
		<link>http://unsyncopated.com/blog/index.php/2009/03/04/not-every-os-can-be-as-correct-as-openbsd/</link>
		<comments>http://unsyncopated.com/blog/index.php/2009/03/04/not-every-os-can-be-as-correct-as-openbsd/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 11:50:28 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2009/03/05/not-every-os-can-be-openbsd/</guid>
		<description><![CDATA[Here&#8217;s a really impressive method to provide memory safety for your favorite kernel that so desperately lacks it: the &#8220;Secure Virtual Architecture&#8221;. See&#8230; This 24MB 21min Quicktime video&#8230; and the accompanying PDF slides&#8230; and the research paper itself &#8211; Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems. See especially page 5 for [...]]]></description>
			<content:encoded><![CDATA[<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/ribarnica/2193305041"><img class="flickr small" title="inside" alt="inside" src="http://farm3.static.flickr.com/2368/2193305041_6673d63faa_m.jpg" /></a></div>
					Here&#8217;s a really impressive method to provide memory safety for your favorite kernel that so desperately lacks it: the &#8220;Secure Virtual Architecture&#8221;. See&#8230;</p>
<ul>
<li><span style="font-size: 13.3333px;"><a href="http://llvm.org/devmtg/2007-05/08-Criswell-SVA.mov">This 24MB 21min Quicktime video</a>&#8230;</span></li>
<li><span style="font-size: 13.3333px;">and the a<a href="http://llvm.org/devmtg/2007-05/08-Criswell-SVA.pdf">ccompanying PDF slides</a>&#8230;</span></li>
<li><span style="font-size: 13.3333px;">and the research paper itself &#8211; <a href="http://llvm.org/pubs/2007-SOSP-SVA.pdf">Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems</a>. See especially page 5 for the SAFECode features it provides.</span></li>
</ul>
<p>I&#8217;m curious what the Japanese mobile operator NTT DoCoMo is using it for, if anything. One of their employees was a co-author.</p>
<p>See also:</p>
<ul>
<li><span style="font-size: 13.3333px;"><a href="http://llvm.org/devmtg/2007-05/">May &#8217;07 LLVM Developers&#8217; Meeting Proceedings</a> for more LLVM Developer&#8217;s Meeting proceedings</span></li>
<li><span style="font-size: 13.3333px;"><a href="http://www.reddit.com/r/programming/comments/81o7x/llvm_25_released_amazing_collection_of_bug_fixes/">LudoA&#8217;s thread about compiling popular FLOSS kernels with LLVM</a>. Sounds like clang can handle FreeBSD.</span></li>
</ul>
<p><strong>Update</strong>: These researchers <a href="http://llvm.org/devmtg/2008-08/">presented in 2008</a> as well.</p>
<span id="Further_reading"><h3>Further reading</h3></span>
<ul>
<li><span style="font-size: 13.3333px;"><a href="http://uml.harlowhill.com/uml/Wiki.jsp?page=ValgrindingUML">Google&#8217;s attempts</a> at running <a href="http://valgrind.org/docs/manual/mc-manual.html#mc-manual.bugs">Valgrind&#8217;s MemCheck tool</a> on User-mode Linux. John Reiser did most of the work on the project. See his <a href="http://www.mail-archive.com/user-mode-linux-devel@lists.sourceforge.net/msg05602.html">initial announcement</a> and <a href="http://bitwagon.com/valgrind+uml/index.html">complete write-up</a> for more info. John has released some other slick software through <a href="http://www.bitwagon.com/">BitWagon Software LLC</a> including an ARM-tuned zlib port, some GPL&#8217;d dynamic linker hacks, and a super-slick (commercially-licensed) dynamic profiler.</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2009/03/04/not-every-os-can-be-as-correct-as-openbsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://llvm.org/devmtg/2007-05/08-Criswell-SVA.mov" length="25359566" type="video/quicktime" />
		</item>
		<item>
		<title>good.net is fast.com</title>
		<link>http://unsyncopated.com/blog/index.php/2009/02/24/goodnet-is-fastcom/</link>
		<comments>http://unsyncopated.com/blog/index.php/2009/02/24/goodnet-is-fastcom/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:34:57 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Footnotes]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Shell programming]]></category>
		<category><![CDATA[Syntax highlighter]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2009/02/24/goodnet-is-fastcom/</guid>
		<description><![CDATA[good.net is a stripped-down file-hosting service (cf. drop.io/sendthisfile.com)1 that has four &#8220;new-to-me&#8221; features:2 You can earn money when people download your files via their affiliate program. Your audience can access your files via HTTPS. An honest dedication to free speech and free software. You can upload your files via FTP-over-explicit-SSL (FTPES). Their support page doesn&#8217;t list [...]]]></description>
			<content:encoded><![CDATA[						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/docsearls/2440194966"><img class="flickr small" title="2008_04_biketrail_infrastructure_016" alt="2008_04_biketrail_infrastructure_016" src="http://farm3.static.flickr.com/2133/2440194966_ec0face197_m.jpg" /></a></div>
					<br />
<a href="http://good.net/">good.net</a> is a stripped-down file-hosting service (cf. <a href="http://www.drop.io">drop.io</a>/<a href="http://www.sendthisfile.com">sendthisfile.com</a>)<sup>1</sup> that has four &#8220;new-to-me&#8221; features:<sup>2</sup></p>
<ul>
<li>You can earn money when people download your files via <a href="http://good.net/affiliate/">their affiliate program</a>.</li>
<li>Your audience can access your files via HTTPS.</li>
<li>An honest <a href="https://good.net/about/">dedication to free speech and free software</a>.</li>
<li>You can upload your files via FTP-over-explicit-SSL (FTPES). <a href="http://good.net/support/">Their support page</a> doesn&#8217;t list their FTPES host key fingerprint but you &#8221;can&#8221; just barely see it at 0m36s on their <a href="http://good.net/support/filezilla.html">FileZilla support page</a>. <strong>Update:</strong> they&#8217;ve posted <a href="https://forums.good.net/phpBB/viewtopic.php?f=4&amp;t=6&amp;sid=a6c80c76bc9054ac1a3a51e7f313b3a1">the fingerprint in their support forum</a>. See <a href="http://unsyncopated.com/wiki/Secure good.net FTP uploads with lftp">my notes on uploading with lftp(1)</a> for more info on securing your CLI FTP transactions.</li>
</ul>
<p>Their servers are also hooked up to especially fat pipes. I get 5 megabytes/sec sustained with my Thinkpad T30&#8242;s wired NIC on RIT&#8217;s library network. I got <em>10</em> megabytes/sec with my <a href="http://www.rimuhosting.com">Rimuhosting</a> VPS in their <a href="http://rimuhosting.com/datacenters.jsp#a3">Level(3) and Abovenet</a>-connected datacenter.</p>
<span id="Backstory"><h3>Backstory</h3></span>
<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/3308794151"><img class="flickr small" title="Openmoko guru Harald Welte at 25C3" alt="Openmoko guru Harald Welte at 25C3" src="http://farm4.static.flickr.com/3374/3308794151_8d3c79147a_m.jpg" /></a></div>
					
<p>I found good.net via a link in <a href="http://www.mcgrewsecurity.com/2008/09/11/black-hat-usa-2008-and-defcon-16-audio-available/">the McGrew Security blog</a> to <a href="https://avondale.good.net/dl/bd/">good.net&#8217;s mirror</a> of <a href="http://darkoz.com/">DarkOz</a>&#8216;s <em>giant</em> collection of security conference videos &#8211; the &#8220;Hacker Media Archive&#8221;.</p>
<p>The Archive&#8217;s <a href="https://avondale.good.net/dl/bd/25c3/video_h264_720x576/">25th Chaos Communication Congress (25C3) videos</a> alone occupy nearly 40GB&#8230;</p>
<pre class="brush: bash;">

$ curl --silent http://avondale.good.net/dl/bd/25c3/video_h264_720x576/ |
awk --assign i=0 '/.mp4&quot;/{i=i+substr($8, 1, length($8)-1);} END {print i}'

39175
</pre>
<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/3309623054"><img class="flickr small" title="Tor Project co-founder Roger Dingledine at 25C3" alt="Tor Project co-founder Roger Dingledine at 25C3" src="http://farm4.static.flickr.com/3039/3309623054_268ec04272_m.jpg" /></a></div>
					<br />
I&#8217;ve included two screen captures from the <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">freely-licensed</a> h264-encoded 720&#215;576 25C3 videos at right.</p>
<p>In addition to the CCC videos, you can find footage and materials from DEFCON, HOPE, Black Hat, CodeCon, DeepSec, HITB, NOTACON, PhreakNIC,  REcon, Shmoocon, and ToorCon. Phew!
<ol class="footnotes">
<li id="footnote_0_128" class="footnote">If you&#8217;re looking for a more &#8221;active&#8221; filesharing tool, one that syncs files across machines for you, try <a href="http://www.getdropbox.com">Dropbox</a> as recommended by an <a href="http://www.imdb.com/name/nm1168932/bio">aspiring grocer</a> friend of mine. They&#8217;ve even got a Linux client.</li>
<li id="footnote_1_128" class="footnote">Yes, the above manhole cover photo was taken by <a href="http://blogs.law.harvard.edu/doc/">the Doc Searls of Linux Journal fame</a>.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2009/02/24/goodnet-is-fastcom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ShmooCon 2009</title>
		<link>http://unsyncopated.com/blog/index.php/2009/02/07/shmoocon-2009/</link>
		<comments>http://unsyncopated.com/blog/index.php/2009/02/07/shmoocon-2009/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 02:31:27 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Footnotes]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/index.php/2009/02/08/schmoocon-2009/</guid>
		<description><![CDATA[Having last attended Shmoocon in 2007, I was glad to see that all the things that made it great &#8221;then&#8221; were still present for the 2009 installment: A close-knit community feel. The Shmoo Group&#8217;s prolific members are very active in the infosec community and appear to unite many disparate groups within it. The freedom to [...]]]></description>
			<content:encoded><![CDATA[						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/sonicvanajr/3267407795"><img class="flickr small" title="Shmoocon Attendee Badge" alt="Shmoocon Attendee Badge" src="http://farm4.static.flickr.com/3371/3267407795_0cddc9cd1d_m.jpg" /></a></div>
					
<p>Having last attended Shmoocon in 2007, I was glad to see that all the things that made it great &#8221;then&#8221; were still present for the 2009 installment:</p>
<ul>
<li>A close-knit community feel. The Shmoo Group&#8217;s prolific members are very active in the infosec community and appear to unite many disparate groups within it.</li>
<li>The freedom to push the boundaries of free speech. I believe this freedom comes, in part, from an independent backing (as opposed to an overriding corporate interest).</li>
<li>Affordable tickets.</li>
</ul>
<p>There wasn&#8217;t enough reverse engineering content for my taste, but the low price and DC&#8217;s proximity more than make up for it.</p>
<span id="Twitter"><h3>Twitter</h3></span>
<p>During the conference I spent a fair amount of time reading <a href="http://search.twitter.com/search?q=shmoocon">other attendees&#8217; Twitter feeds</a>. I was impressed. It is honestly a decent alternative to an official &#8216;con IRC channel. I used it to find&#8230;</p>
<ul>
<li>The locations of unscheduled events (e.g. the Podcaster&#8217;s meetup)</li>
<li>Feedback on nearby restaurants and BARZ.</li>
<li><a href="http://flickr.com/search/?s=rec&amp;q=shmarcode">This photographic collection of entries to the &#8220;Barcode Shmarcode&#8221; competition</a> wherein prizes were given to the most creative ticket barcode substitute.</li>
</ul>
<p>It was also nice to see people discussing a presentation &#8221;&#8217;as it happened&#8221;&#8217; rather than hoping to be called upon during the short Q&amp;A in meatspace<sup>1</sup>.</p>
<p>If I succumb to ADD, I might start twittering sometime in the future. In the meantime, I&#8217;m keeping <a href="http://unsyncopated.com/wiki/My Blog#Micro-blogging">some notes on alternative (esp. open source) micro-blogging software</a>.</p>
<span id="Ticket_resale_market_on_eBay"><h3>Ticket resale market on eBay</h3></span>
<p>A friend of mine wasn&#8217;t able to make it so I sold a ticket on eBay. After eBay/PayPal fees (~$20 all told) I lost about $30 on the deal. Anyways, for future reference, here&#8217;s <a href="http://unsyncopated.com/mirror/shmoocon_ebay_completed_auctions-2.html">how eBay looked on the day the conference began</a>. As you can see, 34 of 47 listed auctions resulted in a sale between January 22nd and Feb 5th with an average selling price of ~$150.</p>
<p>As an aside, selling barcodes/UUIDs is apparently a violation of eBay&#8217;s TOS &#8211; they&#8217;re &#8220;intangible&#8221;.</p>
<p>For more on the economics of Shmoocon ticket sales look for a video of the &#8217;0wn the con&#8217; organizer-led presentation.</p>
<span id="Saturday_272009"><h3>Saturday 2/7/2009</h3></span>
<p>If you&#8217;re staying at the Wardman Park Marriott and you&#8217;ve got a hankering for a killer NY-style deli sandwich, you should take the 12-minute walk to <a href="http://www.yelp.com/biz/sos-your-mom-washington">So&#8217;s Your Mom</a> in Adam&#8217;s Morgan. Buy your chips and drink at the natural foods store next door, though, to save a buck or two.</p>
<p>Here are some rough notes I took during <a href="http://crispincowan.com/">Crispin Cowan</a>&#8216;s <a href="http://www.shmoocon.org/presentations-all.html#stranger">presentation</a> on his transition from the Linux world to the Microso~1 world.</p>
<ul>
<li>Microsoft employs &#8221;&#8217;entire compute farms&#8221;&#8217; for the purpose of fuzzing their software.</li>
<li>Some members of it&#8217;s security team are paid &#8221;per discoverd bug&#8221;.</li>
<li>In the early part of the decade Microsoft&#8217;s OS group stopped most of it&#8217;s design and coding work for a period of a few months to educate its engineers on the topic of secure coding. During this time, it &#8220;lost&#8221; $200 million dollars.</li>
<li>A security prompt to the user is and unhandled security exception.</li>
<li>Access control in X is very immature &#8211; apps can keylog others.</li>
<li>Microsoft&#8217;s security department is roughly the size of the entire SUSE Linux company.</li>
</ul>
<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/3265857538"><img class="flickr small" title="R U A MACHINE Y/N" alt="R U A MACHINE Y/N" src="http://farm4.static.flickr.com/3522/3265857538_c6ac6f1bba_m.jpg" /></a></div>
					In the evening, I watched the <a href="http://hackorhalo.blogspot.com/">Hack or Halo</a> competition (props to coynemartin) and started <a href="http://unsyncopated.com/wiki/Computer%20Security/Auditing%20Shmoocon%202009's%20FreeRADIUS%20Registration">poking at the conference&#8217;s FreeRADIUS registration form</a>. I discovered that its (homebrew?) CAPTCHA is vulnerable to replay attacks `:/`. If this is still the case next year, I&#8217;ll have to let them know. I wonder what the consequence of this vulnerability is. Resource exhaustion?</p>
<span id="Sunday_282009"><h3>Sunday 2/8/2009</h3></span>
<p>A beautiful, sunny day. Arrived just in time to learn about <a href="http://reusablesec.googlepages.com/">Matt Weir&#8217;s clever synthesis of dictionaries/rulesets and rainbow tables</a>. At some point I should grab the source code and see if he&#8217;s optimized the OpenSSL MD5 code or used it verbatim as the <a href="http://www.freerainbowtables.com/">freerainbowtables.com</a> folks have.</p>
<p>After the conference wrapped up at 4ish, I <a href="http://www.gmap-pedometer.com/?r=2546997">walked</a> from the Mariott, down scenic Connecticut Avenue to the Obama family&#8217;s new home. As I walked towards the capital, the Obamas returned from their first Camp David trip via three Marine helicopters<sup>2</sup>. Finally, I walked <em>past</em> the hostel for a giant fish sandwich at <a href="http://www.yelp.com/biz/horace-and-dickies-seafood-carryout-washington">Horace and Dickie&#8217;s</a>, past the hostel <em>again</em> for an overpriced six-pack of Sam Adams, and then <em>to</em> the hostel to enjoy both with a new batch of folks at the hostel.</p>
<span id="Charity"><h3>Charity</h3></span>
<p>I was glad to see that ShmooCon directly and indirectly supports the following charities and non-profits:</p>
<ul>
<li><a href="http://deviating.net/ttb/">Deviant Ollum&#8217;s Travelling Terabyte Project</a> &#8211; Sending suitcases of hard drives containing lots of multimedia to members of the armed services.</li>
<li>The EFF</li>
<li><a href="http://www.covenanthousedc.org/">The Covenant House</a></li>
</ul>
<ol class="footnotes">
<li id="footnote_0_98" class="footnote">Yeah, I said it. &#8220;Meatspace&#8221;. </li>
<li id="footnote_1_98" class="footnote">Part of a <a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/03/16/AR2008031602936.html">fleet</a> that costs more than 11 <em>billion</em> dollars</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2009/02/07/shmoocon-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fighting Spam with OpenWRT</title>
		<link>http://unsyncopated.com/blog/index.php/2007/09/09/fighting-spam-with-openwrt/</link>
		<comments>http://unsyncopated.com/blog/index.php/2007/09/09/fighting-spam-with-openwrt/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 18:57:00 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/?p=760</guid>
		<description><![CDATA[Time Warner recently cut off our RoadRunner cable service because one of our computers was blasting spam out onto the internet. To find out which machine it was, I ran the following command in a GNU Screen session on OpenWRT on my WL500gP router: tcpdump -n -X -s 96 -tttt -i br0 port 25 This [...]]]></description>
			<content:encoded><![CDATA[<p>Time Warner recently cut off our RoadRunner cable service because one of our computers was blasting spam out onto the internet. To find out which machine it was, I ran the following command in a GNU Screen session on OpenWRT on my WL500gP router:</p>
<blockquote>
<pre>tcpdump -n -X -s 96 -tttt -i br0 port 25</pre>
</blockquote>
<p>This command says basically &#8220;show me 96 bytes of each outbound packet destined for port 25 (SMTP) on a remote machine&#8221;</p>
<p>48 hrs later, tcpdump had chewed up almost all available memory and the GNU Screen log I had set up was occupying almost all of the router&#8217;s flash disk space. To OpenWRT&#8217;s credit, the router was still functioning.</p>
<p>My housemate Dave&#8217;s Windows XP had contracted some malware called SDBot. It&#8217;s a crafty bit of code that appeared to wait until the machine was idle to do its <a href="http://www.modernlifeisrubbish.co.uk/article/how-viagra-spam-works">dirty deeds</a>. It was sending about 1 email every three seconds to geographically disparate servers.</p>
<p>During testing I wanted to block all outbound SMTP traffic. Here&#8217;s what I added towards the top of the router&#8217;s `/etc/firewall.user` to accomplish this:</p>
<blockquote>
<pre>iptables -I FORWARD -i br0 -p tcp --dport 25 -j DROP</pre>
</blockquote>
<p>I ran `/etc/init.d/S35firewall restart` so that this new rule would take effect.</p>
<p>We installed McAfee&#8217;s virus scan and a firewall on Dave&#8217;s machine and we&#8217;re back in business.</p>
<p>How to improve on my (crude) method:</p>
<ul>
<li><span style="font-size: 13.3333px;">Figure out a nice way to save the tcpdump capture to another machine on the lan via SSH. Alternatively, coerce iptables to save logs ala <a href="http://www.quietearth.us/articles/2006/10/25/Iptables-logging-in-openwrt">Quiet Earth&#8217;s method</a>.</span></li>
<li><span style="font-size: 13.3333px;">Use iptable&#8217;s Layer 7 module (l7) to catch/block SMTP traffic to non-standard ports.</span></li>
</ul>
<p>If any of you networking guru&#8217;s have any thoughts esp. regarding iptables, please leave a note `:]`</p>
<span id="Further_reading"><h3><span style="font-size: 13.3333px;">Further reading</span></h3></span>
<p><span style="font-size: 13.3333px;"><a href="http://www.freebsddiary.org/pf.php">The FreeBSD Diary &#8212; Fighting spam with pf</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2007/09/09/fighting-spam-with-openwrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Omitting Certain Commands from zsh&#8217;s History</title>
		<link>http://unsyncopated.com/blog/index.php/2007/08/18/omitting-certain-commands-from-zshs-history/</link>
		<comments>http://unsyncopated.com/blog/index.php/2007/08/18/omitting-certain-commands-from-zshs-history/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 19:02:52 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Shell programming]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/?p=763</guid>
		<description><![CDATA[I use pwsafe to store passwords on Ubuntu. It&#8217;s a *nix command line port of Counterpane&#8217;s Password Safe which uses twofish to store passwords in a database file. You can find it in the Ubuntu universe repository. If someone somehow managed to get ahold of my shell&#8217;s history file, they&#8217;d get a lot of juicy [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://nsd.dyndns.org/pwsafe/">pwsafe</a> to store passwords on Ubuntu. It&#8217;s a *nix command line port of Counterpane&#8217;s <a href="http://passwordsafe.sourceforge.net/">Password Safe</a> which uses <a href="http://en.wikipedia.org/wiki/Twofish">twofish</a> to store passwords in a database file. You can find it in the Ubuntu universe repository.</p>
<p><span style="font-size: 13.3333px;">If someone somehow managed to get ahold of my shell&#8217;s history file, they&#8217;d get a lot of juicy info like:</span></p>
<ul>
<li>What system and web accounts I have.</li>
<li>The names I used for my accounts which might be helpful in the cryptoanalysis of my pwsafe database.</li>
</ul>
<p>So what I&#8217;ve done is set up zsh, my shell, to <em>not</em> save invocations of pwsafe in my history. With the &#8220;HIST_IGNORE_SPACE&#8221; option, you can tell zsh to ignore commands that begin with a space. I did this for a while but found myself forgetting to type the space sometimes. The trick is to set up an alias which includes a leading space:</p>
<blockquote>
<pre>alias pwsafe=" pwsafe"</pre>
</blockquote>
<p>So now whenever I run something like</p>
<blockquote>
<pre>pwsafe -l ubuntu.forums -up</pre>
</blockquote>
<p>it won&#8217;t get saved to the history file.</p>
<span id="Further_reading"><h3>Further reading</h3></span>
<ul>
<li>The Z-Shell Manual &#8211; <a href="http://zsh.sourceforge.net/Doc/Release/Options.html#SEC105">16.2.4: History options</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2007/08/18/omitting-certain-commands-from-zshs-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xbox 360 Arbitrary Code Execution</title>
		<link>http://unsyncopated.com/blog/index.php/2007/03/22/xbox-360-arbitrary-code-execution/</link>
		<comments>http://unsyncopated.com/blog/index.php/2007/03/22/xbox-360-arbitrary-code-execution/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 17:16:40 +0000</pubDate>
		<dc:creator>Tyler</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://unsyncopated.com/blog/?p=663</guid>
		<description><![CDATA[An anonymous researcher has published a detailed write-up on how to execute arbitrary code with high privileges on a recent Xbox 360 kernel. The vulnerability exists in the (now patched) system call handler. There&#8217;s no googleprint for anohacker@gmail.com so I&#8217;m assuming this person created that email address just for the purpose of disclosing this vulnerability. [...]]]></description>
			<content:encoded><![CDATA[<p>						<div class="flickr-gallery image right"><a href="http://www.flickr.com/photos/55502932@N00/4454127405"><img class="flickr small" title="Anonymous XBox Hacker at 23c3" alt="Anonymous XBox Hacker at 23c3" src="http://farm5.static.flickr.com/4013/4454127405_2304d1efab_m.jpg" /></a></div>
					<br />
An anonymous researcher has <a href="http://marc.theaimsgroup.com/?t=117261923100002">published a detailed write-up</a> on how to execute arbitrary code with high privileges on a recent Xbox 360 kernel. The vulnerability exists in the (now patched) system call handler.</p>
<p>There&#8217;s no <a href="http://www.google.com/search?q=anohacker">googleprint for anohacker@gmail.com</a> so I&#8217;m assuming this person created that email address just for the purpose of disclosing this vulnerability.</p>
<p>Since the report cites 12/30/2006 as the date of &#8220;public demonstration&#8221;, it&#8217;s probably safe to say that the person who posted this report is the same masked (German?) guy that gave the <a href="http://events.ccc.de/congress/2006/Lightning_Talks#Day_4_-_December_30th">mysterious lightening talk</a> at <a href="http://events.ccc.de/congress/">23c3</a> called &#8220;<a href="http://www.digg.com/linux_unix/23c3_XBOX_360_was_hacked_Linux_Kernel_coming_soon">Consolen Hacking Suprise</a>&#8220;. Pay no attention to the man behind the black bandana! He&#8217;s only breaking (one of?) the most technically advanced game console security system ever devised &#8211; a security archictecture in which Microsoft has invested tens of millions of dollars.</p>
<p>If anybody has any more technical details or knows where this researcher hangs out on IRC/forums, I&#8217;d love to know.</p>
<p>As expected, <a href="http://games.slashdot.org/games/07/02/28/2325212.shtml">the Slashdot story</a> has some of the best commentary on the topic:</p>
<ul>
<li><a href="http://games.slashdot.org/comments.pl?sid=224594&amp;cid=18189160">Debate over whether Xbox 360 gamers &#8220;own&#8221; or &#8220;license&#8221;</a> the system.</li>
<li><a href="http://games.slashdot.org/comments.pl?sid=224594&amp;cid=18189268">Some idle speculation</a> on why Windows Media DRM and Xbox security vulnerability fixes are pushed out to end users roughly 22 times <a href="http://blog.washingtonpost.com/securityfix/2006/01/a_time_to_patch.html">faster than critical Windows OS vulnerabilities</a>.</li>
<li>And finally, <a href="http://games.slashdot.org/comments.pl?sid=224594&amp;cid=18192416">a proper response</a> to some dillweed who said &#8220;we shouldn&#8217;t use C anymore! it&#8217;s insecure!&#8221;</li>
</ul>
<p>Console security really fascinates me because its a realm where the manufacturer has almost complete control over the design of the entire system, and that system is destined to be in the hands of millions of hackers and homebrew enthusiasts.</p>
<p>I&#8217;ll leave the final word to <a href="http://community.corest.com/~gera/">Gerardo Richarte</a> (aka gera) from Core Security who sees <a href="http://marc.theaimsgroup.com/?l=bugtraq&amp;m=117268303919177&amp;w=2">the death of the freedom to tinker on the horizon</a>.</p>
<p>Further reading: <a href="http://forums.xbox-scene.com/index.php?showtopic=495800&amp;referid=&amp;highlight=efuse"></a></p>
<ul>
<li><a href="http://forums.xbox-scene.com/index.php?showtopic=495800&amp;referid=&amp;highlight=efuse">IBM &#8220;efuse&#8221; technology</a></li>
<li>gera&#8217;s write-up on a <a href="http://www.coresecurity.com/index.php5?action=item&amp;id=1179">vulnerability in a linksys router</a> that I own. It includes disassembled firmware code and python exploit code. Nice.<a href="http://forums.xbox-scene.com/index.php?showtopic=495800&amp;referid=&amp;highlight=efuse"><br />
</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://unsyncopated.com/blog/index.php/2007/03/22/xbox-360-arbitrary-code-execution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
