<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
<link rel="self" type="application/atom+xml" href="https://forum.yubico.com/feed.php?f=16&amp;t=95" />

<title>Yubico Forum</title>
<subtitle>...visit our web-store at</subtitle>
<link href="https://forum.yubico.com/index.php" />
<updated>2008-08-01T22:50:07+01:00</updated>

<author><name><![CDATA[Yubico Forum]]></name></author>
<id>https://forum.yubico.com/feed.php?f=16&amp;t=95</id>
<entry>
<author><name><![CDATA[paul]]></name></author>
<updated>2008-08-01T22:50:07+01:00</updated>
<published>2008-08-01T22:50:07+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=516#p516</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=516#p516"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=516#p516"><![CDATA[
I think you are right, if you unplug the Yubikey, the time stamp trick will not work well. But you can always specifically emphasize that in your GUI.<br /><br />A 2-phased auth approach here seems simpler to me:<br /><br /><!-- l --><a class="postlink-local" href="http://forum.yubico.com/viewtopic.php?f=11&amp;t=114">viewtopic.php?f=11&amp;t=114</a><!-- l --><p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=55">paul</a> — Fri Aug 01, 2008 10:50 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gmik]]></name></author>
<updated>2008-08-01T17:34:12+01:00</updated>
<published>2008-08-01T17:34:12+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=513#p513</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=513#p513"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=513#p513"><![CDATA[
---<br />&gt; Another feature to prevent OTP harvesting and Phishing is to use the timestamp field to calculate the delta between two generated OTPs. In a scenario where a bigger stake is at risk, the server would typically ask for one OTP when the user logs on and a second when &quot;checking out&quot;. The server knows the exact time delta between the OTPs but the Phisher doesn't.<br />---<br /><br />I'm not sure I understand this.  Could someone please elaborate?<br />Please assume, tokens would be unplugged/plugged for logon/logoff.<br /><br />The timer is reset to a non-zero value each time, right?<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=204">gmik</a> — Fri Aug 01, 2008 5:34 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[alex]]></name></author>
<updated>2008-06-30T22:43:02+01:00</updated>
<published>2008-06-30T22:43:02+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=388#p388</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=388#p388"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=388#p388"><![CDATA[
I am not sure of the robustness of the advices I am about to give, but here they are...<br /><br />For critical actions within an application, it is good practice to re-authenticate the user and log the time of the action (Yubikey make this a breeze as long as you take care of the focus to the yubikey code field for the user).<br /><br />You can use the time difference suggested above to ensure no harvesting of passcode was done. This might also protect your app against XSRF (<!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">http://en.wikipedia.org/wiki/Cross-site_request_forgery</a><!-- m -->) for these critical actions.<br /><br />If the client host is compromized, it is also possible to intercept the passcode and freeze the browser/client before submission into the encrypted channel (This is true for any token based solution). The above advice might still apply but a separate channel is probably preferable, (i.e. SMS confirmation...).<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=186">alex</a> — Mon Jun 30, 2008 10:43 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[alexpi]]></name></author>
<updated>2008-06-17T01:05:46+01:00</updated>
<published>2008-06-17T01:05:46+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=303#p303</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=303#p303"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=303#p303"><![CDATA[
<div class="quotetitle">JakobE wrote:</div><div class="quotecontent"><br />We beleive that sharing Yubikeys between multiple services is best done through one single validator (which we hope there will be thousands of in the future). That validator is typically the one issuing the key. Other sites can then as that particular validator to validate an OTP.<br /><br /><br />Another feature to prevent OTP harvesting and Phishing is to use the timestamp field to calculate the delta between two generated OTPs. In a scenario where a bigger stake is at risk, the server would typically ask for one OTP when the user logs on and a second when &quot;checking out&quot;. The server knows the exact time delta between the OTPs but the Phisher doesn't. <br /><br />Regards,<br /><br />JakobE<br />Hardware- and firmware guy @ Yubico<br /></div><br /><br />Very good point about the timestamp, I didn't think of that. That adds a whole new order of magnitude in terms of difficulty perpetrating this attack.<br /><br />Thank you for the response.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=140">alexpi</a> — Tue Jun 17, 2008 1:05 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jakob]]></name></author>
<updated>2008-06-12T19:35:03+01:00</updated>
<published>2008-06-12T19:35:03+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=250#p250</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=250#p250"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=250#p250"><![CDATA[
Good discussion on an important topic,<br /><br />We all encourage implementations to be validated to one server only (it does not need to be our own) for a few reasons:<br /><br />- Keeping track of counters and as mentioned earlier in the thread, properly detect potential replay attempts. If several servers are to share keys, a certain &quot;band&quot; of accepting potential replays has to be accepted. Furthermore, no real information can be gained if lots of OTPs are lost. A single server can detect this as some form of misusage.<br /><br />- Minimizing the spread of symmetric keys. As we all know, a symmetric key that is not held tight can destroy for others. We beleive it is a legal nightmare to sort out who-has-compromised-the-key issues<br /><br />- Revoking of a key is simpler<br /><br />We beleive that sharing Yubikeys between multiple services is best done through one single validator (which we hope there will be thousands of in the future). That validator is typically the one issuing the key. Other sites can then as that particular validator to validate an OTP.<br /><br /><br />Another feature to prevent OTP harvesting and Phishing is to use the timestamp field to calculate the delta between two generated OTPs. In a scenario where a bigger stake is at risk, the server would typically ask for one OTP when the user logs on and a second when &quot;checking out&quot;. The server knows the exact time delta between the OTPs but the Phisher doesn't. <br /><br />Regards,<br /><br />JakobE<br />Hardware- and firmware guy @ Yubico<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=83">Jakob</a> — Thu Jun 12, 2008 7:35 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[alexpi]]></name></author>
<updated>2008-06-12T13:46:18+01:00</updated>
<published>2008-06-12T13:46:18+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=248#p248</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=248#p248"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=248#p248"><![CDATA[
<div class="quotetitle">caitsith6502 wrote:</div><div class="quotecontent"><br />Also, another consideration, is that the moment you use a new key, ANY and ALL previously captured keys, regardless of having been used or not, will give the REPLAYED_OTP response.   This means if you think an attacker may have borrowed your yubikey for 5 minutes, to capure 50 OTPs, 10 per insert, you can invalidate 100% of these captures,  therefore, either let yubico validate the key,  <strong>or check all of the counters, and only accept keys that are newer than the previously played counter.</strong><br /></div><br /><br />I thought of this, but I believe it would only work if you as the centralized server are aware of <strong>all</strong> uses of that particular yubikey. The second you have two authentication providers per AES key, or a non-centralized solution, the attacker could capture an OTP from the second provider and submit it to the first, and it would be valid because the first provider is not aware of the session/use count incrementing with the second provider. Also, this is assuming the user does not just pop open notepad and start hitting the yubikey button just for kicks, and they happen to be infested by malware. So in a perfect world where you can keep track of <strong>all</strong> uses of the yubikey OTPs you can then keep track of them and invalidate them.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=140">alexpi</a> — Thu Jun 12, 2008 1:46 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[alexpi]]></name></author>
<updated>2008-06-12T13:39:03+01:00</updated>
<published>2008-06-12T13:39:03+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=247#p247</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=247#p247"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=247#p247"><![CDATA[
Thanks to all who replied.<br /><br /><div class="quotetitle">patgadget wrote:</div><div class="quotecontent"><br />To be safe,<br />1 Yubikey, 1 authentification server.<br /></div><br /><br />I see. Let me explain why I'm asking this question in more detail. I am considering developing a solution based on the yubikey for windows based authentication, and one of the requirements of this system is to be able to log in offline. Therefore, you can't report <strong>every</strong> key use to any centralized server. Also, some clients of this solution might not want to trust another third party with their authentication and want to run their own server (which we will provide).<br /><br />So now it seems to me that for any yubikey based system you <strong>need</strong> a centralized authentication server. So as a fictitious example, you won't be able to use the same yubikiey <strong>securely</strong> to log into an OpenID enabled web site, log into your computer, and perhaps log into a forum using the same AES key.<br /><br />So really, and this goes back to what patgadget said, for each <em>authentication provider</em> that you want to use securely you need <em>1 yubikey</em> and the authentication provider must be <em>centralized</em>.<br /><br />Am I correct in this assessment?<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=140">alexpi</a> — Thu Jun 12, 2008 1:39 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[patgadget]]></name></author>
<updated>2008-06-12T12:06:13+01:00</updated>
<published>2008-06-12T12:06:13+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=246#p246</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=246#p246"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=246#p246"><![CDATA[
To be safe,<br />1 Yubikey, 1 authentification server.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=78">patgadget</a> — Thu Jun 12, 2008 12:06 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[caitsith6502]]></name></author>
<updated>2008-06-12T02:16:54+01:00</updated>
<published>2008-06-12T02:16:54+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=244#p244</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=244#p244"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=244#p244"><![CDATA[
Also, another consideration, is that the moment you use a new key, ANY and ALL previously captured keys, regardless of having been used or not, will give the REPLAYED_OTP response.   This means if you think an attacker may have borrowed your yubikey for 5 minutes, to capure 50 OTPs, 10 per insert, you can invalidate 100% of these captures,  therefore, either let yubico validate the key,  or check all of the counters, and only accept keys that are newer than the previously played counter.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=128">caitsith6502</a> — Thu Jun 12, 2008 2:16 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomN]]></name></author>
<updated>2008-06-11T20:03:34+01:00</updated>
<published>2008-06-11T20:03:34+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=242#p242</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=242#p242"/>
<title type="html"><![CDATA[Re: Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=242#p242"><![CDATA[
If your local intranet uses the Yubico server to authenticate the key it will receive status of REPLAYED_OTP if a previously used key is entered (instead of OK status). The server checks the Session Count and Session Use fields to verify that OPT is new. If your local intranet is doing the authentication and not saving and checking these fields, it is prone to a replay attack.<br /><br />-Tom<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=122">TomN</a> — Wed Jun 11, 2008 8:03 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[alexpi]]></name></author>
<updated>2008-06-11T19:28:31+01:00</updated>
<published>2008-06-11T19:28:31+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=95&amp;p=240#p240</id>
<link href="https://forum.yubico.com/viewtopic.php?t=95&amp;p=240#p240"/>
<title type="html"><![CDATA[Reuse Attack]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=95&amp;p=240#p240"><![CDATA[
How does the yubikey deal with a key a reuse attack?<br /><br />For example:<br /><br />I have a yubikey that I use to log into my local intranet, and at the same time I'm reusing the yubikey to log into openid enabled web sites out on the Internet. There is a sniffer (malware, network sniffer) that is capturing these keys. What prevents the malware from logging into my local intranet with the keys that it captured?<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=140">alexpi</a> — Wed Jun 11, 2008 7:28 pm</p><hr />
]]></content>
</entry>
</feed>