Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/02/10 19:17
Read: times


 
#173739 - 40 instead of 50000000
Responding to: ???'s previous message
What do you mean by, "a timing based password attack" ?

Especially considering that this is for manual keypad entry?


Kai was using an 8 decimal digit password "12345678"
and so up to 100.000.000 different passwords would have to
be checked (or 50.000.000 on average).

Using a timing based password attack this _can_ reduce
to 80 different tries (or 40 tries on average).
Within reach of a human operator:)


Assume Kai's device uses a keyboard with a 4 columns 4 rows
scan matrix and as he posted he has external LCD.

You connect one probe of a digital scope to one of the
scan lines (preferably the last), connect another
probe to the chip select of the LCD. These are peripheral
signals so will likely be easily accessible.

Then you set the scope screen display to persist, and the
scope to trigger on the column (you may need to improve
the trigger condition) then you input 11111111, 22222222, ...
and note the time difference between the last scan line
access and the chip select.

One of the timings should really stick out - you just
found out the first digit.


The strncmp routine will at least have to use two
(generic) pointer increments, two loads from (generic)
pointers, one compare to zero, one compare to equality
and one (16 bit) compare to maximum string length per
iteration of its compare loop. Lots of cycles so
there is a distinct signature of the correct digit.

You can also use a 8051 with a PCA unit
instead of a scope. (8051 should be much faster than
the target or synchronous to the target)
Even with that cheap hardware you could
be able to detect the much more subtle difference
whether a branch like
if (password[cnt2] != passINP[cnt2]) flag = 0;
is taken or not...

Eventually (search for the term tempest) similar
stuff can be done remotely, SO:

Electronic Voting Machines should be Open Source!
(or paper please!)


List of 22 messages in thread
TopicAuthorDate
Question about KEIL            01/01/70 00:00      
   It ain't how i would do it            01/01/70 00:00      
      Thank you!            01/01/70 00:00      
      using strncmp for a password check is a bug :^)            01/01/70 00:00      
         Yeah whatever            01/01/70 00:00      
         Interesting            01/01/70 00:00      
         Eh??            01/01/70 00:00      
            40 instead of 50000000            01/01/70 00:00      
   Nothing to do with Keil            01/01/70 00:00      
      Hmmm I see            01/01/70 00:00      
         Problem solved!            01/01/70 00:00      
            Do you undrestand why it did not work?            01/01/70 00:00      
               Wrong            01/01/70 00:00      
                  Yes, it's wrong - but...            01/01/70 00:00      
                     code size decrease            01/01/70 00:00      
                        Maybe            01/01/70 00:00      
                  After a nights sleep            01/01/70 00:00      
         Where it gets specific to Keil (or whatever)            01/01/70 00:00      
   Explain            01/01/70 00:00      
      Woops.            01/01/70 00:00      
         such a 'newb' error (sic)            01/01/70 00:00      
   Password application            01/01/70 00:00      

Back to Subject List