[RADIATOR] AuthSQLYubikey
Hugh Irvine
hugh at open.com.au
Thu Sep 24 17:58:09 CDT 2009
Hello Jerome -
Many thanks for your report - I will forward it to Mike when he
returns from overseas.
regards
Hugh
On 25 Sep 2009, at 02:21, jeje wrote:
> Hi there,
>
> I've found 2 more issues with AuthSQLYUBIKEY:
>
> - the code assumes the string sent by the key is 12 chars + 32 chars,
> otherwise the code thinks there's a static password in front
>
> This seems to be true only for "out of the box" keys, but when they
> are reprogrammed (using ykpersonalize in my case), the string can then
> be longer, up to 36 chars for the second part
>
>> From the help:
> Usage: ykpersonalize [options]
> -1 change the first configuration. This is the default and
> is normally used for true OTP generation.
> In this configuration, TKTFLAG_APPEND_CR is set by default.
> -2 change the second configuration. This is for Yubikey II
> only
> and is then normally used for static key generation.
> In this configuration, TKTFLAG_APPEND_CR,
> CFGFLAG_STATIC_TICKET,
> CFGFLAG_STRONG_PW1, CFGFLAG_STRONG_PW2 and CFGFLAG_MAN_UPDATE
> are set by default.
> -sFILE save configuration to FILE instead of key.
> (if FILE is -, send to stdout)
> -iFILE read configuration from FILE.
> (if FILE is -, read from stdin)
> -aXXX.. A 32 char hex value (not modhex) of a fixed AES key to use
> -cXXX.. A 12 char hex value to use as access code for programming
> (this does NOT SET the access code, that's done with -
> oaccess=)
> -oOPTION change configuration option. Possible OPTION arguments are:
> salt=ssssssss Salt to be used for key generation. If
> none is given, a unique random one will
> be
> generated.
> fixed=xxxxxxxxxxx The public identity of key, in MODHEX.
> This is 0-16 characters long.
>
> if you give a 16 chars fixed param, then it will break Radiator
> assumptions, the string generated by the yubikey will be 12+36 chars.
>
> Then Radiator thinks there's a static password for 2 factor auth, and
> the auth fails.
>
> I think this code has to be rewritten, sorry I have no clean patch to
> provide yet
>
> Second issue:
>
> I'm trying to use DBD::CSV for my tests, and when Radiator tries to
> update the database it does:
>
> Thu Sep 24 18:12:38 2009: ERR: do failed for 'update yubikeys set
> accessed=now(), counter=1, low=30090, high=253 where t
> okenId='SmVqZS5v'': Unknown function 'now'
>
> Thu Sep 24 18:12:38 2009: DEBUG: Radius::AuthSQLYUBIKEY IGNORE:
> Database update failed: jeje [jeje]
> Thu Sep 24 18:12:38 2009: DEBUG: AuthBy SQLYUBIKEY result: IGNORE,
> Database update failed
>
> And then the auth fails again...
>
> I don't think the function now() is standard SQL, probably the time
> should be done by Radiator, not assuming that the SQL frontend can do
> it lazily ;-)
>
> Cheers,
>
> Jerome.
>
>
> On Thu, May 7, 2009 at 18:00, Sami Keski-Kasari <samikk at archred.com>
> wrote:
>> Hello,
>>
>> I am testing Yubikeys and find two issues:
>>
>> 1. Custom AuthSelect doesn't work because of this issue:
>>
>> --- Radius/AuthSQLYUBIKEY.pm-orig 2009-05-06
>> 20:52:40.000000000 +0300
>> +++ Radius/AuthSQLYUBIKEY.pm 2009-05-06 20:53:14.000000000 +0300
>> @@ -17,7 +17,7 @@
>> use MIME::Base64;
>> use strict;
>>
>> -%Radius::AuthSQLDIGIPASS::ConfigKeywords =
>> +%Radius::AuthSQLYUBIKEY::ConfigKeywords =
>> ('AuthSelect' =>
>> ['string', 'SQL query that will be used to fetch Yubikey data from
>> the
>> database. Special characters are permitted, and %0 is replaced with
>> the
>> quoted user name. %1 is replaced with the token ID. The default
>> works with
>> the sample yubikey database created by db_schema.sql from the YubiKey
>> Validation Server.', 0],
>> 'UpdateQuery' =>
>>
>> 2. Replay attack recoqnition is done now only via counter in
>> Radiator.
>> I think that it should be done with counter, timestamp_low and
>> timestamp_high.
>>
>> Now the problem is that if you are using Replay attack recoqnition
>> and need
>> more than one otp password you have to unplug and plug yubikey
>> everytime.
>>
>> Regards,
>> Sami
>>
>> _______________________________________________
>> radiator mailing list
>> radiator at open.com.au
>> http://www.open.com.au/mailman/listinfo/radiator
>>
> _______________________________________________
> radiator mailing list
> radiator at open.com.au
> http://www.open.com.au/mailman/listinfo/radiator
NB:
Have you read the reference manual ("doc/ref.html")?
Have you searched the mailing list archive (www.open.com.au/archives/radiator
)?
Have you had a quick look on Google (www.google.com)?
Have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?
Have you checked the RadiusExpert wiki:
http://www.open.com.au/wiki/index.php/Main_Page
--
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
Includes support for reliable RADIUS transport (RadSec),
and DIAMETER translation agent.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
-
CATool: Private Certificate Authority for Unix and Unix-like systems.
More information about the radiator
mailing list