Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add temporary passwords to commands instead of AUTHORIZE #25

Merged
merged 25 commits into from
Nov 12, 2016

Conversation

szszszsz
Copy link
Member

@szszszsz szszszsz commented Nov 9, 2016

Add temporary passwords to commands instead of using AUTHORIZE command and CRC to increase security.

Fixes #8, fixes #7

Commands affected: WRITE_TO_SLOT, GET_CODE, ERASE_SLOT, WRITE_CONFIG
Removed: AUTHORIZE, USER_AUTHORIZE

Tested on Ubuntu 16.04/16.10 with libnitrokey C++ tests. Will be checked also against general Python unittests and then merged.
Tested also on Nitrokey App for read-only backwards compatibility (affected commands besides GET_CODE will not work).

Compiled with:

arm-none-eabi-gcc (15:4.9.3+svn231177-1) 4.9.3 20150529

@szszszsz szszszsz added this to the v0.8 milestone Nov 9, 2016
@szszszsz szszszsz self-assigned this Nov 9, 2016
Extract methods for validating temporary password

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Extraction of OTP slot range checking functions

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Divide CMD_WRITE_SLOT to two packets due to limited space

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Unused later in code since it is copied directly to the device

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
… commands

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Replace magic numbers for boolean variable with constants

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
To allow for read-only backward compatibility

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
@szszszsz szszszsz merged commit 7e53453 into master Nov 12, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Authorization mechanism is vulnerable to CRC32 collisions User command authorization works only once
1 participant