<?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>Orzeszek Blog &#187; FI Tools</title>
	<atom:link href="http://www.orzeszek.org/blog/tag/fi-tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.orzeszek.org/blog</link>
	<description>An inchoate upside-down perspective</description>
	<lastBuildDate>Sun, 25 Jul 2010 03:21:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>TrueCrypt Volumes Still Undetectable</title>
		<link>http://www.orzeszek.org/blog/2009/05/01/truecrypt-volumes-still-undetectable/</link>
		<comments>http://www.orzeszek.org/blog/2009/05/01/truecrypt-volumes-still-undetectable/#comments</comments>
		<pubDate>Fri, 01 May 2009 06:55:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[FI Tools]]></category>
		<category><![CDATA[steganography]]></category>
		<category><![CDATA[TrueCrypt]]></category>

		<guid isPermaLink="false">http://www.orzeszek.org/blog/?p=576</guid>
		<description><![CDATA[Last week, Forensic Innovations Inc announced on its blog that it has a tool that can identify headerless encrypted data, such as TrueCrypt volumes. For the tool to work, it would have to be able to distinguish between random or pseudo-random data and the output of ciphers like AES. I ran a quick test to see whether it could. It can’t.]]></description>
			<content:encoded><![CDATA[<p></p><p><span class="drop_cap">L</span>ast week, Forensic Innovations Inc announced on its blog that it has a tool that can <a href="http://www.forensicinnovations.com/blog/?p=7">identify headerless encrypted data</a>, such as <a href="http://www.truecrypt.org/">TrueCrypt</a> volumes. Yesterday, this story was <a href="http://it.slashdot.org/article.pl?sid=09/04/30/201222">picked up by Slashdot</a>.</p>
<p>Good ciphers, like <a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard">AES</a>, output ciphertext that is computationally indistinguishable from random data. An encryption tool that properly implements such a cipher to generate headerless encrypted data will also produce output that is computationally indistinguishable from random data.</p>
<p>For Forensic Innovations Inc’s tool to work, it would have to be able to distinguish between random or pseudo-random data and the output of ciphers like AES. I ran a quick test to see whether it could. It can’t.</p>
<p>I <a href="http://www.forensicinnovations.com/downloads.html">downloaded</a> a trial copy of FI TOOLS for Windows 2.23. I then generated two 10&nbsp;MB files filled with pseudo-random data. I used a <a href="http://www.microsoft.com/powershell">PowerShell</a> script to do this:</p>
<div class="orz-codeblock">
<p><code>$b = New-Object byte[] 1024;</code></p>
<p><code>$fs = New-Object System.IO.FileStream "C:\Test\random-1.dat", Create;<br />
$r = New-Object System.Random;<br />
1..10240 | % {<br />
&nbsp;&nbsp;&nbsp;$r.NextBytes($b);<br />
&nbsp;&nbsp;&nbsp;$fs.Write($b, 0, 1024);<br />
}<br />
$fs.Close();</code></p>
<p><code>$fs = New-Object System.IO.FileStream "C:\Test\random-2.dat", Create;<br />
$r = New-Object System.Security.Cryptography.RNGCryptoServiceProvider;<br />
1..10240 | % {<br />
&nbsp;&nbsp;&nbsp;$r.GetBytes($b);<br />
&nbsp;&nbsp;&nbsp;$fs.Write($b, 0, 1024);<br />
}<br />
$fs.Close();</code></p>
</div>
<p>The first file, random-1.dat, is filled with pseudo-random data generated by the <a href="http://msdn.microsoft.com/en-us/library/system.random.aspx">System.Random</a> class from the Microsoft .NET Framework. This class provides a very weak random stream. It should be distinguishable from a truly random stream.</p>
<p>The second file, random-2.dat, is filled with pseudo-random data generated by the <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx">System.Security.Cryptography.RNGCryptoServiceProvider</a> from the Microsoft .NET Framework. This class provides cryptographically strong pseudo-random data that should be computationally indistinguishable from truly random data.</p>
<p>Finally, I created a third file, random-3.dat, which was a 10&nbsp;MB headerless TrueCrypt volume created using the default settings and using a strong random password.</p>
<p>Here is the result:</p>
<p><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/05/file-investigator-file-find-screenshot.png" alt="File Investigator File Find results screenshot" title="File Investigator File Find results screenshot" width="445" height="585" class="aligncenter size-full wp-image-577 orz-img-no-border" /></p>
<p>As you can see, the tool identified each of the files as headerless encrypted data. Only random-3.dat was actually headerless encrypted data. In other words, the tool cannot distinguish between pseudo-random data and headerless encrypted data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orzeszek.org/blog/2009/05/01/truecrypt-volumes-still-undetectable/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
