<?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=5&amp;t=98" />

<title>Yubico Forum</title>
<subtitle>...visit our web-store at</subtitle>
<link href="https://forum.yubico.com/index.php" />
<updated>2008-10-20T12:16:44+01:00</updated>

<author><name><![CDATA[Yubico Forum]]></name></author>
<id>https://forum.yubico.com/feed.php?f=5&amp;t=98</id>
<entry>
<author><name><![CDATA[Simon]]></name></author>
<updated>2008-10-20T12:16:44+01:00</updated>
<published>2008-10-20T12:16:44+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=762#p762</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=762#p762"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=762#p762"><![CDATA[
<div class="quotetitle">Russell Coker wrote:</div><div class="quotecontent"><br />It seems to me that if I was to use a Yubikey to authenticate to multiple sites, and if one of those sites was compromised or the key was captured in-flight then the attacker could use it to login to other servers.<br /></div><br /><br />Right, and two ways to combat that would be to use two-factor authentication (a password) and design the web page so that it requires multiple OTPs in order to do important operations.  When you get multiple OTPs, you can compare times between them, to detect passive attackers.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Realistically, few people have a threat model that involves an attack of that complexity (for basic 0wnage the simpler attacks work well enough that the bad guys are kept busy and wealthy).  Also for the case of ssh access a skilled attacker could own the terminal and take over a session once it was authenticated, fake a BSOD and make the user think that they just lost access.  A few hours of access while the legitimate user thought that they were having technical problems could do a lot of damage.<br /></div><br /><br />Yeah, there are limitations to what we can do, but our target is to do something simple that is &quot;good enough&quot; for many purposes.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Also even if a device using Yubikey technology (USB keyboard based) had a battery and included a time-stamp, this would not prevent an attacker from logging in to server B within a matter of seconds of me logging in to server A.  So the battery backed keys that display a number are also vulnerable to the same attack.  It seems that solving this properly (in a cryptographic sense) would require that the key receive a challenge from the server.<br /><br />As the caps-lock light is used for sending data to the key, I wonder if (using hardware that is more advanced than the current Yubikey) it would be possible to have an enhanced mode of operation which uses the caps, scroll, and num lock lights to transmit 3 bits of data per baud to send a challenge from the server, that should allow sending a 32bit challenge in a small amount of time but would require client software to manipulate the LEDs.<br /></div><br /><br />Yup, we have thought of that and _many_ other ways to do a platform-independent challenge/response mechanism, but we haven't come up with a good solution... Yet.<br /><br />The problem with caps/etc-lock light is that it isn't cross-platform: Mac OS X treat each USB keyboard attached to it as separate devices, with their own caps lock etc status.  In other words, pressing caps-lock on one keyboard doesn't change the light on other keyboards.  I understand X.Org will change to similar mode in the future, because it allows the operating system to control each keyboard separately (i.e., you can have one US keyboard and one Swedish keyboard both working at the same time).<br /><br />We may eventually do a YubiKey that can accept a challenge via a USB HID command, but it will require client software on the host computer.  Writing it for Windows, Mac OS X, Linux etc will be possible, but it isn't as neat and convenient as the YubiKey is today.  You probably will need some kind of admin capability on the machine as well.<br /><br />/Simon<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=2">Simon</a> — Mon Oct 20, 2008 12:16 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Russell Coker]]></name></author>
<updated>2008-09-21T05:47:44+01:00</updated>
<published>2008-09-21T05:47:44+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=702#p702</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=702#p702"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=702#p702"><![CDATA[
<div class="quotetitle">Simon wrote:</div><div class="quotecontent"><br /><div class="quotetitle">jwoltman wrote:</div><div class="quotecontent">I agree with patgadet - since the Yubikey can be part of a multi-factor authentication system, it can be the &quot;something you have&quot; part.  So if a bad guy has physical access to your yubikey, then all bets are off and you're toast.  But that's the same if you have some other sort of security token.  A good system should probably employ a user+password+yubikey.<br /></div><br /><br />That's true.  However, a 10s-check catches the scenario where the attacker borrowed your yubikey for a few minutes, and generated a lot of OTPs and then returned the yubikey.  This can be a feasible attack that doesn't take many seconds.  Thus, a &quot;best practice&quot; for web sites that use yubikeys for sensitive stuff would be to require the user to authenticate several times and compare the time deltas.  If the yubikey is removed and re-inserted (i.e., counter=0), ask for another OTP and compare time deltas.<br /></div><br /><br />If you use a device with a battery then someone who gets a copy of the code sent to site A can not use it on site B (outside the few minutes in the time window).<br /><br />It seems to me that if I was to use a Yubikey to authenticate to multiple sites, and if one of those sites was compromised or the key was captured in-flight then the attacker could use it to login to other servers.<br /><br />For example let's say I want to login to two servers via ssh from an Internet cafe.  Let's also assume that I don't want to have them talk to each other (maybe they are owned by different people - and even if they were owned by the same person there are reliability issues in getting multiple servers to talk to each other).<br /><br />So if I use a Yubikey on machine A then an attacker could use the same key to immediately login to machine B.  Now there is the option of using a password as well.  But if I was to use the same Internet cafe on multiple occasions (or do something else that allows a hostile party to get the password) then they win.<br /><br />Realistically, few people have a threat model that involves an attack of that complexity (for basic 0wnage the simpler attacks work well enough that the bad guys are kept busy and wealthy).  Also for the case of ssh access a skilled attacker could own the terminal and take over a session once it was authenticated, fake a BSOD and make the user think that they just lost access.  A few hours of access while the legitimate user thought that they were having technical problems could do a lot of damage.<br /><br />Also even if a device using Yubikey technology (USB keyboard based) had a battery and included a time-stamp, this would not prevent an attacker from logging in to server B within a matter of seconds of me logging in to server A.  So the battery backed keys that display a number are also vulnerable to the same attack.  It seems that solving this properly (in a cryptographic sense) would require that the key receive a challenge from the server.<br /><br />As the caps-lock light is used for sending data to the key, I wonder if (using hardware that is more advanced than the current Yubikey) it would be possible to have an enhanced mode of operation which uses the caps, scroll, and num lock lights to transmit 3 bits of data per baud to send a challenge from the server, that should allow sending a 32bit challenge in a small amount of time but would require client software to manipulate the LEDs.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=249">Russell Coker</a> — Sun Sep 21, 2008 5:47 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Simon]]></name></author>
<updated>2008-06-16T11:22:08+01:00</updated>
<published>2008-06-16T11:22:08+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=295#p295</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=295#p295"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=295#p295"><![CDATA[
<div class="quotetitle">jwoltman wrote:</div><div class="quotecontent"><br /><div class="quotetitle">patgadget wrote:</div><div class="quotecontent">i think that the bad guy could unplug and plug back the yubikey then press on the button.<br />The timer at that point have nothing to compare it to!<br />since there is no battery inside the yubikey, there is no way to prevent that but anyway at that point the guy have a physical access to the key witch is bad anyway.<br /></div><br /><br />I agree with patgadet - since the Yubikey can be part of a multi-factor authentication system, it can be the &quot;something you have&quot; part.  So if a bad guy has physical access to your yubikey, then all bets are off and you're toast.  But that's the same if you have some other sort of security token.  A good system should probably employ a user+password+yubikey.</div><br /><br />That's true.  However, a 10s-check catches the scenario where the attacker borrowed your yubikey for a few minutes, and generated a lot of OTPs and then returned the yubikey.  This can be a feasible attack that doesn't take many seconds.  Thus, a &quot;best practice&quot; for web sites that use yubikeys for sensitive stuff would be to require the user to authenticate several times and compare the time deltas.  If the yubikey is removed and re-inserted (i.e., counter=0), ask for another OTP and compare time deltas.<br /><br />This attack isn't the most important thing to spend time on fixing, IMHO, but for completeness this is what should be done.<br /><br />/Simon<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=2">Simon</a> — Mon Jun 16, 2008 11:22 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jwoltman]]></name></author>
<updated>2008-06-16T06:41:09+01:00</updated>
<published>2008-06-16T06:41:09+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=292#p292</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=292#p292"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=292#p292"><![CDATA[
<div class="quotetitle">patgadget wrote:</div><div class="quotecontent"><br />i think that the bad guy could unplug and plug back the yubikey then press on the button.<br />The timer at that point have nothing to compare it to!<br />since there is no battery inside the yubikey, there is no way to prevent that but anyway at that point the guy have a physical access to the key witch is bad anyway.<br /></div><br /><br />I agree with patgadet - since the Yubikey can be part of a multi-factor authentication system, it can be the &quot;something you have&quot; part.  So if a bad guy has physical access to your yubikey, then all bets are off and you're toast.  But that's the same if you have some other sort of security token.  A good system should probably employ a user+password+yubikey.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=125">jwoltman</a> — Mon Jun 16, 2008 6:41 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[patgadget]]></name></author>
<updated>2008-06-16T02:37:23+01:00</updated>
<published>2008-06-16T02:37:23+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=290#p290</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=290#p290"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=290#p290"><![CDATA[
i think that the bad guy could unplug and plug back the yubikey then press on the button.<br />The timer at that point have nothing to compare it to!<br />since there is no battery inside the yubikey, there is no way to prevent that but anyway at that point the guy have a physical access to the key witch is bad anyway.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=78">patgadget</a> — Mon Jun 16, 2008 2:37 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Simon]]></name></author>
<updated>2008-06-15T23:58:05+01:00</updated>
<published>2008-06-15T23:58:05+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=285#p285</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=285#p285"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=285#p285"><![CDATA[
Testing for a 10s interval would be really nice.  It should probably result in a particular error code, so that the web application can recover by asking for another yubikey OTP.  If the next OTP is also bad, you should warn the administrator or something like that.<br /><br />Thanks for your effort!<br /><br />/Simon<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=2">Simon</a> — Sun Jun 15, 2008 11:58 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jwoltman]]></name></author>
<updated>2008-06-14T23:36:38+01:00</updated>
<published>2008-06-14T23:36:38+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=277#p277</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=277#p277"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=277#p277"><![CDATA[
Thanks for explanation, I think I understand it now.  What does everything think is a good time?  10 seconds like caitsith6502 suggested sounds reasonable to me.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=125">jwoltman</a> — Sat Jun 14, 2008 11:36 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[patgadget]]></name></author>
<updated>2008-06-13T17:34:45+01:00</updated>
<published>2008-06-13T17:34:45+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=262#p262</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=262#p262"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=262#p262"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Could you give an example of how an attack would work, and how the timestamp prevents the attack?<br />I agree with you on the counter, and that is how I'm implementing it in my code. I don't completely understand what you're saying with the timestamp though. Could you give an example of how an attack would work, and how the timestamp prevents the attack?<br /></div><br /><br />Lets say you keep your Yubikey always plug in your laptop.<br />Someone open notepad and press on the button.<br />it will generate a code and the bad guy take this to is computer (email, thumdrive, floppy...) and try to login from is desk with a valid OTP.<br />Since it was the next valid code. the authentification server will say valid OTP but ... the time stamp is not matching.<br /><br />simply said the timestamp is for checking the time the button was press to the time it is send to the authentification server. too long is not good (an attack).<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=78">patgadget</a> — Fri Jun 13, 2008 5:34 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jwoltman]]></name></author>
<updated>2008-06-13T13:51:27+01:00</updated>
<published>2008-06-13T13:51:27+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=261#p261</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=261#p261"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=261#p261"><![CDATA[
I agree with you on the counter, and that is how I'm implementing it in my code.  I don't completely understand what you're saying with the timestamp though.  Could you give an example of how an attack would work, and how the timestamp prevents the attack?<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=125">jwoltman</a> — Fri Jun 13, 2008 1:51 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[caitsith6502]]></name></author>
<updated>2008-06-13T07:07:36+01:00</updated>
<published>2008-06-13T07:07:36+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=257#p257</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=257#p257"/>
<title type="html"><![CDATA[Re: Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=257#p257"><![CDATA[
<strong>Counters:</strong>  Shifting insert counter left to combine with usage counter should work.  The combined counter of the next decoded passcode should actually be higher than the combined counter of the previously decoded passcode.  If it is not, then this would be a replayed password.<br /><br /><strong>Timestamps:</strong>  This runs at 8hz.  If you are checking this, for correct issue time (plus/minus 10 seconds to account for internet lag),  then you have to check just the insertion counter by itself in the process.  That is, if insertion counter of current decoded passcode is higher than the insertion counter of last decoded passcode, then Store the current decoded timestamp, as well as the server side date/time. If the insertion counter of current passcode is the same as insertion counter of last decoded passcode,  then subtract previously recorded server date/time from currently recorded server date/time, (converted to seconds.), and multiply that result by 8.  Now subtract previously decoded passcode timestamp from current decoded passcode timestamp,  and compare the results.  (It should be plus/minus 10 seconds.)   This is only really needed for high security applications.<br /><br /><strong>Random Values:</strong> Only really there to add entropy to the encrypted result. Calculate the checksum and validate the whole block, before doing the previous two operations.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=128">caitsith6502</a> — Fri Jun 13, 2008 7:07 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jwoltman]]></name></author>
<updated>2008-06-13T03:49:34+01:00</updated>
<published>2008-06-13T03:49:34+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=98&amp;p=255#p255</id>
<link href="https://forum.yubico.com/viewtopic.php?t=98&amp;p=255#p255"/>
<title type="html"><![CDATA[Questions about the OTP]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=98&amp;p=255#p255"><![CDATA[
Hi everyone,<br /> I have some questions about how we should be using the values given to us when an OTP is decoded and parsed.  Each OTP has, among other things, the following: a session counter, a &quot;times inserted&quot; counter, a low timestamp and a high timestamp.<br /><br /><strong>Counters</strong><br />Is it good enough to take the &quot;times inserted&quot; counter, shift it left, and add the session counter to get a &quot;total counter&quot; that we can keep track of in a database?  Or should we be keeping these values separate?<br /><br /><strong>Timestamps</strong><br />Mostly the same question.  If you shift the high timestamp left and add the low timestamp, then you get the entire timestamp, correct?<br /><br /><strong>Random Values</strong><br />My thought is that there's no need to keep track of this at all.  It's merely used to add some entropy to the key before it is encrypted.  The only time you have to worry about it is if you're performing the CRC.<br /><br /><strong>Google Project</strong><br />I started a project on Google Code, <!-- m --><a class="postlink" href="http://code.google.com/p/yubico-php-lib/">http://code.google.com/p/yubico-php-lib/</a><!-- m -->.  It is not meant to compete with Alex's project, it is merely a way to test different ideas.<p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=125">jwoltman</a> — Fri Jun 13, 2008 3:49 am</p><hr />
]]></content>
</entry>
</feed>