<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Thoughts about FIPS Support in Indy</title>
	<atom:link href="http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/</link>
	<description>Delphi Development &#38; More</description>
	<lastBuildDate>Mon, 19 Jul 2010 09:14:42 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4965</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Thu, 19 Nov 2009 09:02:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4965</guid>
		<description>&lt;a href=&quot;#comment-4959&quot; rel=&quot;nofollow&quot;&gt;@J. Peter Mugaas&lt;/a&gt; 

Hi Buddy ;)

Thank you for helping out with the very good explanation of what FIPS actually is. I forgot to put a link for those not being aware of (esp. users outside the US will likely not know anything about).

I know you like taking a back seat - but there&#039;s no need to, it has been your idea and suggestion!

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p><a href="#comment-4959" rel="nofollow">@J. Peter Mugaas</a> </p>
<p>Hi Buddy <img src='http://blog.digivendo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Thank you for helping out with the very good explanation of what FIPS actually is. I forgot to put a link for those not being aware of (esp. users outside the US will likely not know anything about).</p>
<p>I know you like taking a back seat &#8211; but there&#8217;s no need to, it has been your idea and suggestion!</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4964</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Thu, 19 Nov 2009 08:57:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4964</guid>
		<description>Hi,

I agree that the Skein hashing looks very promising, regarding Blue Midnight Wish I would like to wait for further research about (especially when having read about the near-collision attack, see http://www2.mat.dtu.dk/people/S.Thomsen/bmw/nc-compress.pdf).

But: We are talking about implementing FIPS by using what OpenSSL already has. I am sure the OpenSSL team will go ahead and implement the NIST finalist at some stage, so it will be available in Indy too.

By the way: Regarding fast hashing and ciphers in Delphi be sure to have a look at my co-edited Delphi Encryption Compendium for Delphi &amp; C++ Builder (hosted here http://www.michael-puff.de/Developer/Delphi/Importe/Hagen_Reddmann/). Currently it will not receive any new hashes and ciphers but probably worth a look too.

Cheers, Arvid</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I agree that the Skein hashing looks very promising, regarding Blue Midnight Wish I would like to wait for further research about (especially when having read about the near-collision attack, see <a href="http://www2.mat.dtu.dk/people/S.Thomsen/bmw/nc-compress.pdf)" rel="nofollow">http://www2.mat.dtu.dk/people/S.Thomsen/bmw/nc-compress.pdf)</a>.</p>
<p>But: We are talking about implementing FIPS by using what OpenSSL already has. I am sure the OpenSSL team will go ahead and implement the NIST finalist at some stage, so it will be available in Indy too.</p>
<p>By the way: Regarding fast hashing and ciphers in Delphi be sure to have a look at my co-edited Delphi Encryption Compendium for Delphi &amp; C++ Builder (hosted here <a href="http://www.michael-puff.de/Developer/Delphi/Importe/Hagen_Reddmann/)" rel="nofollow">http://www.michael-puff.de/Developer/Delphi/Importe/Hagen_Reddmann/)</a>. Currently it will not receive any new hashes and ciphers but probably worth a look too.</p>
<p>Cheers, Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4962</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Thu, 19 Nov 2009 08:11:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4962</guid>
		<description>Hi Rich,

I know that some prefer static linking (including myself). It is currently not implemented due to the fact the Indy does not only support Windows OSs - and in some Operating Systems the OpenSSL libraries are part of the system itself. Regarding static linking and FIPS: it is not that easy, compiling the FIPS branch for static linking (and using C++ Builder at all) is not a one-step procedure ;)

I&#039;ll consider it.

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p>Hi Rich,</p>
<p>I know that some prefer static linking (including myself). It is currently not implemented due to the fact the Indy does not only support Windows OSs &#8211; and in some Operating Systems the OpenSSL libraries are part of the system itself. Regarding static linking and FIPS: it is not that easy, compiling the FIPS branch for static linking (and using C++ Builder at all) is not a one-step procedure <img src='http://blog.digivendo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I&#8217;ll consider it.</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arvid</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4961</link>
		<dc:creator>Arvid</dc:creator>
		<pubDate>Thu, 19 Nov 2009 07:55:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4961</guid>
		<description>Hi David,

please see JP&#039;s answer below, it contains a good explanation of what FIPS is.

Cheers,
Arvid</description>
		<content:encoded><![CDATA[<p>Hi David,</p>
<p>please see JP&#8217;s answer below, it contains a good explanation of what FIPS is.</p>
<p>Cheers,<br />
Arvid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J. Peter Mugaas</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4959</link>
		<dc:creator>J. Peter Mugaas</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:27:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4959</guid>
		<description>FIPS is short for Federal Information Processing Standard and is authored by the National Institute of Standards and Technology (NIST).  FIPS 140-2 is titled &quot;Security Requirements for Cryptographic Module&quot;.  There is also a FIPS 180-3 titled &quot;Secure Hash Standard&quot; that succeeds FIPS 140-2. This is a legal requirement for government agencies and contractors in the U.S. and Canada.  Government contractors can include a wide variety of businesses and even if an institution is not required to use FIPS-140 complaint software, they may choose to do so for their own reasons.

Basically, they require that information be processed with tamper-resistant modules that uses strong NIST-approved cryptographic algorithms.  OpenSSL does have a FIPS certificate and a FIPS .DLL can be created with Visual Studio and some specific compiler directives.  The thing is that you have to use the developer&#039;s process unless you intend to obtain a certificate for your own build process and any alterations you make.  The OpenSSL developers have documents about their FIPS support at http://www.openssl.org/docs/fips/.  You should also read http://openssl.org/docs/fips/fipsnotes.html .

From a programming point of view, we will have OpenSSL for all of Indy&#039;s hashing if you are using a FIPS mode.  FIPS will only an option as some people still have to use old compromised algorithms such as MD2, MD4, and MD5.  

Anyway, I hate to toot my horn about this stuff but I want to provide a balanced discussion of this.</description>
		<content:encoded><![CDATA[<p>FIPS is short for Federal Information Processing Standard and is authored by the National Institute of Standards and Technology (NIST).  FIPS 140-2 is titled &#8220;Security Requirements for Cryptographic Module&#8221;.  There is also a FIPS 180-3 titled &#8220;Secure Hash Standard&#8221; that succeeds FIPS 140-2. This is a legal requirement for government agencies and contractors in the U.S. and Canada.  Government contractors can include a wide variety of businesses and even if an institution is not required to use FIPS-140 complaint software, they may choose to do so for their own reasons.</p>
<p>Basically, they require that information be processed with tamper-resistant modules that uses strong NIST-approved cryptographic algorithms.  OpenSSL does have a FIPS certificate and a FIPS .DLL can be created with Visual Studio and some specific compiler directives.  The thing is that you have to use the developer&#8217;s process unless you intend to obtain a certificate for your own build process and any alterations you make.  The OpenSSL developers have documents about their FIPS support at <a href="http://www.openssl.org/docs/fips/" rel="nofollow">http://www.openssl.org/docs/fips/</a>.  You should also read <a href="http://openssl.org/docs/fips/fipsnotes.html" rel="nofollow">http://openssl.org/docs/fips/fipsnotes.html</a> .</p>
<p>From a programming point of view, we will have OpenSSL for all of Indy&#8217;s hashing if you are using a FIPS mode.  FIPS will only an option as some people still have to use old compromised algorithms such as MD2, MD4, and MD5.  </p>
<p>Anyway, I hate to toot my horn about this stuff but I want to provide a balanced discussion of this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David M</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4940</link>
		<dc:creator>David M</dc:creator>
		<pubDate>Tue, 17 Nov 2009 19:17:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4940</guid>
		<description>FIPS ???</description>
		<content:encoded><![CDATA[<p>FIPS ???</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WindWings</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4934</link>
		<dc:creator>WindWings</dc:creator>
		<pubDate>Tue, 17 Nov 2009 08:01:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4934</guid>
		<description>Same as Rich. It is important for us to have a single exe file.
Also, a high-performance hash/crypt engine will be a very nice thing. It seems that the most appropriate is Skein. See http://en.wikipedia.org/wiki/Skein_Hash_Function for reference, 

...and here for an implementation both for hash and for stream cipher: http://code.google.com/p/skeinfish/ (beware, the current version is 1.2)

It seems that (perhaps?) a better alternative would be BMW (http://ehash.iaik.tugraz.at/wiki/Blue_Midnight_Wish) - according to http://www.skein-hash.info/sha3-engineering but the info about BMW is a little bit fuzzy AFAIS.</description>
		<content:encoded><![CDATA[<p>Same as Rich. It is important for us to have a single exe file.<br />
Also, a high-performance hash/crypt engine will be a very nice thing. It seems that the most appropriate is Skein. See <a href="http://en.wikipedia.org/wiki/Skein_Hash_Function" rel="nofollow">http://en.wikipedia.org/wiki/Skein_Hash_Function</a> for reference, </p>
<p>&#8230;and here for an implementation both for hash and for stream cipher: <a href="http://code.google.com/p/skeinfish/" rel="nofollow">http://code.google.com/p/skeinfish/</a> (beware, the current version is 1.2)</p>
<p>It seems that (perhaps?) a better alternative would be BMW (<a href="http://ehash.iaik.tugraz.at/wiki/Blue_Midnight_Wish" rel="nofollow">http://ehash.iaik.tugraz.at/wiki/Blue_Midnight_Wish</a>) &#8211; according to <a href="http://www.skein-hash.info/sha3-engineering" rel="nofollow">http://www.skein-hash.info/sha3-engineering</a> but the info about BMW is a little bit fuzzy AFAIS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rich</title>
		<link>http://blog.digivendo.com/2009/11/thoughts-about-fips-support-in-indy/comment-page-1/#comment-4924</link>
		<dc:creator>Rich</dc:creator>
		<pubDate>Tue, 17 Nov 2009 00:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.digivendo.com/?p=231#comment-4924</guid>
		<description>FIPS would be nice, but it is more important for me to be able to use crypto without calling DLL functions with password, etc. as parameter.

Why?  Because any monkey can intercept a DLL function call to OpenSSL and break security without any assembly language skills or time-consuming crypto analysis.

In addition to secure communication with other computers, we use crypto for software activation, license key management, etc. on computers where we do not trust the users (which is why we have software activation).

I&#039;m not saying putting crypto functions inside the exe will prevent all hacking. I&#039;m just saying that using an external crypto DLL will make automated attacks easy.  And having a FIPS-approved DLL will certainly make it worthwhile to automate attacks against it.

Compile OpenSSL using C++Builder 2010 + NASM. Then figure out a way to make it easy for Delphi projects to static link to it.  I will be your 1st customer.  I need AES-CTR and RSA and SHA-256.  PBKDF2 and secure PRNG would be nice, too. :)</description>
		<content:encoded><![CDATA[<p>FIPS would be nice, but it is more important for me to be able to use crypto without calling DLL functions with password, etc. as parameter.</p>
<p>Why?  Because any monkey can intercept a DLL function call to OpenSSL and break security without any assembly language skills or time-consuming crypto analysis.</p>
<p>In addition to secure communication with other computers, we use crypto for software activation, license key management, etc. on computers where we do not trust the users (which is why we have software activation).</p>
<p>I&#8217;m not saying putting crypto functions inside the exe will prevent all hacking. I&#8217;m just saying that using an external crypto DLL will make automated attacks easy.  And having a FIPS-approved DLL will certainly make it worthwhile to automate attacks against it.</p>
<p>Compile OpenSSL using C++Builder 2010 + NASM. Then figure out a way to make it easy for Delphi projects to static link to it.  I will be your 1st customer.  I need AES-CTR and RSA and SHA-256.  PBKDF2 and secure PRNG would be nice, too. <img src='http://blog.digivendo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
