<?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"
	>
<channel>
	<title>Comments on: Counters, Freshness, and Implementation</title>
	<atom:link href="http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/</link>
	<description>Security Research, Computer Laboratory, University of Cambridge</description>
	<pubDate>Sun, 06 Jul 2008 12:11:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Jonathan Katz</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24492</link>
		<dc:creator>Jonathan Katz</dc:creator>
		<pubDate>Thu, 18 Oct 2007 01:21:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24492</guid>
		<description>Oops -- my bad. Looking at the TinySec paper, the authors take care of the issue I raised above by using a variant of standard CBC mode where the IV is passed through the cipher before being XORed with the first message block.</description>
		<content:encoded><![CDATA[<p>Oops &#8212; my bad. Looking at the TinySec paper, the authors take care of the issue I raised above by using a variant of standard CBC mode where the IV is passed through the cipher before being XORed with the first message block.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Katz</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24491</link>
		<dc:creator>Jonathan Katz</dc:creator>
		<pubDate>Thu, 18 Oct 2007 01:13:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24491</guid>
		<description>It is odd that TinySec mandates a (predictable) counter for the IV used in CBC-mode encryption; it is known (and easy to see) that this is not semantically secure. 

One can argue whether this leads to a vulnerability in practice, but the TinySec paper specifically lists semantic security as a goal, and also (mistakenly) claims that CBC is semantically secure as long as IV-reuse does not occur.</description>
		<content:encoded><![CDATA[<p>It is odd that TinySec mandates a (predictable) counter for the IV used in CBC-mode encryption; it is known (and easy to see) that this is not semantically secure. </p>
<p>One can argue whether this leads to a vulnerability in practice, but the TinySec paper specifically lists semantic security as a goal, and also (mistakenly) claims that CBC is semantically secure as long as IV-reuse does not occur.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Cvrcek</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24473</link>
		<dc:creator>Dan Cvrcek</dc:creator>
		<pubDate>Mon, 15 Oct 2007 21:52:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24473</guid>
		<description>[:to ckarlof] I should start with a basic statement that I wanted to demonstrate difficulties one encounters when security depends on more than one independent modules of a complex system. 

Let me make a few points and please, do dispute them. I am very interested in your opinion. 

1. One thing is your paper and completely different is how people understand security in sensor networks based on TinyOS. TinySec is the only widely known mechanism / library that may provide cryptographic protection. My analysis is not that much about theory but about security engineering.

2. I believe that many people do not realise that there may be a problem once TinySec is used. I tried to show some problems that are related to the use of a single common key - assuming that the attacker does not get hold of that key! (Something quite unusual for research in sensor networks.)

3. You did not try to solve key management - quite understandably - but the problem does not disappear and one has to deal with it somehow. Your paper says "...implementation is included in the current TinyOS public release and is available for routine use as well." (what key management will be deployed in "routine use"?). I cannot see a way how pairwise keys could be used in dynamic multi-hop networks at all - more realistic solution is to use end-to-end keys. 

4. You rightly say that your library was for Mica2 motes but even there, I'm missing &lt;b&gt;support&lt;/b&gt; for replay protection and for multi-hop routing in general. It seems to me that decision not to check IV of incoming frames and not to use counter for unencrypted frames was done in favour of lower overhead and not security and I'm not sure it was the right decision. TinySec does check MAC and offers result of this test to the application. Could this be done with IV/counters? I think that yes. I am also tempted to say, given 2. and 3., that "routine use" has been let down a bit.

5. Let the application do the difficult stuff? I do not see a strong reason for this because TinySec brings in serious limitations for crypto protection in the form of short IVs and MACs. Beside that, TinySec does not allow replays as the counter value in the IV is incremented with each new sent message. Iang also says about SDP1 "[there is] dosage of advice on how to watch each of these [freshness indicators]..." but the same cannot be done with TinySec because the IV is not exported with the message out of the module - application can not do anything even if it wanted to. 

6. I do think that TinySec has been a great think - as an academic work at least. The problem is that it has become a commonly used mechanism and as such, the engineering issues became even more important than ideas - the weakest link was not only shifted somewhere else but also blurred a bit.</description>
		<content:encoded><![CDATA[<p>[:to ckarlof] I should start with a basic statement that I wanted to demonstrate difficulties one encounters when security depends on more than one independent modules of a complex system. </p>
<p>Let me make a few points and please, do dispute them. I am very interested in your opinion. </p>
<p>1. One thing is your paper and completely different is how people understand security in sensor networks based on TinyOS. TinySec is the only widely known mechanism / library that may provide cryptographic protection. My analysis is not that much about theory but about security engineering.</p>
<p>2. I believe that many people do not realise that there may be a problem once TinySec is used. I tried to show some problems that are related to the use of a single common key - assuming that the attacker does not get hold of that key! (Something quite unusual for research in sensor networks.)</p>
<p>3. You did not try to solve key management - quite understandably - but the problem does not disappear and one has to deal with it somehow. Your paper says &#8220;&#8230;implementation is included in the current TinyOS public release and is available for routine use as well.&#8221; (what key management will be deployed in &#8220;routine use&#8221;?). I cannot see a way how pairwise keys could be used in dynamic multi-hop networks at all - more realistic solution is to use end-to-end keys. </p>
<p>4. You rightly say that your library was for Mica2 motes but even there, I&#8217;m missing <b>support</b> for replay protection and for multi-hop routing in general. It seems to me that decision not to check IV of incoming frames and not to use counter for unencrypted frames was done in favour of lower overhead and not security and I&#8217;m not sure it was the right decision. TinySec does check MAC and offers result of this test to the application. Could this be done with IV/counters? I think that yes. I am also tempted to say, given 2. and 3., that &#8220;routine use&#8221; has been let down a bit.</p>
<p>5. Let the application do the difficult stuff? I do not see a strong reason for this because TinySec brings in serious limitations for crypto protection in the form of short IVs and MACs. Beside that, TinySec does not allow replays as the counter value in the IV is incremented with each new sent message. Iang also says about SDP1 &#8220;[there is] dosage of advice on how to watch each of these [freshness indicators]&#8230;&#8221; but the same cannot be done with TinySec because the IV is not exported with the message out of the module - application can not do anything even if it wanted to. </p>
<p>6. I do think that TinySec has been a great think - as an academic work at least. The problem is that it has become a commonly used mechanism and as such, the engineering issues became even more important than ideas - the weakest link was not only shifted somewhere else but also blurred a bit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ckarlof</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24472</link>
		<dc:creator>ckarlof</dc:creator>
		<pubDate>Mon, 15 Oct 2007 20:40:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24472</guid>
		<description>If you read the TinySec paper again, we explicitly omit replay protection as a goal. Our thinking was along the lines of lang's comment above -- we believe replay protection is better handled at the app layer. 

Also, I'm confused by your analysis a bit. It seems to implicitly assume TinySec is being used with the TinyOS packet format designed for the 802.15.4 radio. TinySec was designed for Mica2 motes, which used a different packet format. We never proposed using TinySec with the 802.15.4 radio stack or the newer packet format. See the paper for the Mica2 TinyOS packet format. 

Please let me know if I've misinterpreted any of your work.</description>
		<content:encoded><![CDATA[<p>If you read the TinySec paper again, we explicitly omit replay protection as a goal. Our thinking was along the lines of lang&#8217;s comment above &#8212; we believe replay protection is better handled at the app layer. </p>
<p>Also, I&#8217;m confused by your analysis a bit. It seems to implicitly assume TinySec is being used with the TinyOS packet format designed for the 802.15.4 radio. TinySec was designed for Mica2 motes, which used a different packet format. We never proposed using TinySec with the 802.15.4 radio stack or the newer packet format. See the paper for the Mica2 TinyOS packet format. </p>
<p>Please let me know if I&#8217;ve misinterpreted any of your work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Iang</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24302</link>
		<dc:creator>Iang</dc:creator>
		<pubDate>Tue, 02 Oct 2007 12:07:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24302</guid>
		<description>On the issue of replay protection.  At a packet level, it is possibly not the right place for it.  As the higher layers are at liberty to do their own replays, it is maybe better to kick replay protection upstairs, and cover more forms of replay protection than just an external attacker.</description>
		<content:encoded><![CDATA[<p>On the issue of replay protection.  At a packet level, it is possibly not the right place for it.  As the higher layers are at liberty to do their own replays, it is maybe better to kick replay protection upstairs, and cover more forms of replay protection than just an external attacker.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Iang</title>
		<link>http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24301</link>
		<dc:creator>Iang</dc:creator>
		<pubDate>Tue, 02 Oct 2007 12:01:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/10/02/counters-freshness-and-implementation/#comment-24301</guid>
		<description>In designing SDP1, a datagram encryption layout, Zooko and I hassled over the IV issue at great length.

The main problem is that all of the classical cryptography suggestions have implementation-side weaknesses.  In short, one answer is an implementation-robust solution.  We chose to embed into the IV an incrementing counter, a time, &lt;i&gt;and&lt;/i&gt; a random.  As well, logically, there is a session number in the IV.  Then, there is a dosage of advice on how to watch each of these in the implementation in order to get a balance between architectural issues and a decent IV.

The ball is in the implementor's court:  e.g., if keeping an incrementing counter is unlikely because of needs for atomic storage, you can skip it, but keep the time and random elements.</description>
		<content:encoded><![CDATA[<p>In designing SDP1, a datagram encryption layout, Zooko and I hassled over the IV issue at great length.</p>
<p>The main problem is that all of the classical cryptography suggestions have implementation-side weaknesses.  In short, one answer is an implementation-robust solution.  We chose to embed into the IV an incrementing counter, a time, <i>and</i> a random.  As well, logically, there is a session number in the IV.  Then, there is a dosage of advice on how to watch each of these in the implementation in order to get a balance between architectural issues and a decent IV.</p>
<p>The ball is in the implementor&#8217;s court:  e.g., if keeping an incrementing counter is unlikely because of needs for atomic storage, you can skip it, but keep the time and random elements.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
