| ??? 03/01/10 17:40 Read: times |
#173691 - using strncmp for a password check is a bug :^) Responding to: ???'s previous message |
well at least if you consider being a very easy target for a
timing based password attack a problem... Rather do the compare routine yourself so it has a constant execution time (regardless where the first non-matching character is). Do something like:
bit passwdchk()
{
unsigned char i;
unsigned char pattern = 0;
for ( i=0; password[i]; i++ ) // assuming the known password is zero terminated
{
pattern |= (password[i] ^ passINP[i]);
}
return pattern == 0;
}
Note, there is no "if" keyword in the inner loop. |
| Topic | Author | Date |
| 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 |



