lesbeben / m1ssi2013

Projet Annuel de Master 1 SSI: Groupe 1 (OTP)
Other
3 stars 1 forks source link

Java : hotp #6

Closed mab0te closed 10 years ago

mab0te commented 10 years ago

Les valeurs retournées par HOTP sont invalides. Des valeurs négatives sont retournées.

SteevAroy commented 10 years ago

Corrigé:: -> Fonction Utils.convert(): le ByteOrder à utiliser est BIG_ENDIAN (précisé dans le RFC 4226).

mab0te commented 10 years ago

La décision a été prise de passer tous en LITTLE ENDIAN. Le problème ne vient pas de la. J'ai corrigé un problème d'incohérence dans l'offset mais il reste un problème de valeur lorsque le bit de poids fort est 1. Le résultat n'est plus négatif mais ne correspond toujours pas à la valeur attendue.

SteevAroy commented 10 years ago

Le commit fait précédemment, je l'ai testé avec ces valeurs dans le RFC 4226: HMAC="1f8698690e02ca16618550ef7f19da8e945b555a" OTP_DIGIT=872921; Ce qui me permet de dire que les fonctions Utils.truncate(),Utils.convert(), sont bien correctes lorsqu'on utilse le BIG_ENDIAN. J'ai eu pareillement à tester la fonction Utils.HMAC_SHA1() avec la fonction native HMACSHA1 Java et c'était bien correct. Si on doit utiliser du LITTLE_ENDIAN, la change tout.

mab0te commented 10 years ago

Ok on en parle demain avec damien. Si c'était bon comme ca on repasse dessus.

Ca veut dire qu'il faudrat qu'on vérifie la version C, mais y'a un problème quelque part

monSpeudo commented 10 years ago

Je viens de vérifier avec les tests fourni à la fin de la rfc 4226, HMAC_SHA1 retourne les bonne valeurs en C. Le problème semble donc se trouver dans extractOTP !

monSpeudo commented 10 years ago

Le problème a été corrigé en C dans le commit 1ac92c2c7aee1e6edbe1c9aa62fc1051a0b75998.

Le principal problème était que le calcul de l'offset n'est pas bon. Il faut prendre les 4 bits de poids faible, et non de poids fort. Et il n'est pas question de parler d'endianness ici. Il suffit de prendre les octets dans l'ordre où ils viennent !

Après correction les valeurs qui se trouvent ici:https://tools.ietf.org/html/rfc4226#page-32 passent !

mab0te commented 10 years ago

Merci de fermer les issues quand elles sont réglées.