Programmierbare Hardware-TOTP-Schlüssel mit der Möglichkeit, die Uhrzeit zu synchronisieren

    Wir freuen uns, eine neue Reihe programmierbarer Hardware-TOTP-Schlüssel von TOKEN2 ankündigen zu können. Die wichtigste Neuerung besteht in der Möglichkeit, die Hardware-Schlüssel der Systemuhr über die NFC-API mit speziellen Anwendungen zu synchronisieren. Derzeit wird ein Release für Android und Windows 10 vorbereitet.

    Für iOS gibt es noch keine Anwendungen: Obwohl NFC-Chips auf den neuesten iPhone-Modellen physisch vorhanden sind, bietet Apple noch keine öffentliche API für deren Verwendung an.


    Für was ist es


    Im Gegensatz zu mobilen TOTP-Anwendungen können Hardwareschlüssel die Zeit nicht über NTP, über ein Mobilfunknetz oder ein Funksignal synchronisieren: Die Hardwareschlüssel des Geräts sind vollständig isoliert und autonom und verwenden eine Uhr auf ihrer Platine als genaue Zeitquelle. In 1933-1934 Die Physiker Scheibe und Adelsberger vom Kaiserlichen Institut für Physik und Technologie in Berlin nutzten die Möglichkeiten, den piezoelektrischen Effekt zur Zeitmessung zu nutzen. Dieser Effekt liegt der Systemuhr der Hardwareschlüssel zugrunde. Die Genauigkeit dieser Stunden variiert je nach Qualität zwischen ± 0,3 und ± 1,1 s / Tag. Wenn diese Genauigkeit für gewöhnliche Armbanduhren ausreichend ist, kann die Zeitdifferenz, die eine bestimmte Grenze überschreitet, bei Hardwareschlüsseln dazu führen, dass die Aktivierung und / oder die Authentifizierung fehlschlagen. Diese Grenze hängt von dem jeweiligen System ab (z. B. erlaubt Microsoft Azure MFA bis zu 600 Sekunden für beide Seiten), wenn ein Hardwareschlüssel zuerst registriert wird. Der Vorgang des Synchronisierens der Vorspannung während der Verwendung des Schlüssels für die Eingabe ist bereits in beschriebenRFC 6238

    RFC 6238 / 6. Resynchronisation
    Because of possible clock drifts between a client and a validation
    server, we RECOMMEND that the validator be set with a specific limit
    to the number of time steps a prover can be «out of synch» before
    being rejected.

    This limit can be set both forward and backward from the calculated
    time step on receipt of the OTP value. If the time step is
    30 seconds as recommended, and the validator is set to only accept
    two time steps backward, then the maximum elapsed time drift would be
    around 89 seconds, i.e., 29 seconds in the calculated time step and
    60 seconds for two backward time steps.

    This would mean the validator could perform a validation against the
    current time and then two further validations for each backward step
    (for a total of 3 validations). Upon successful validation, the
    validation server can record the detected clock drift for the token
    in terms of the number of time steps. When a new OTP is received
    after this step, the validator can validate the OTP with the current
    timestamp adjusted with the recorded number of time-step clock drifts
    for the token.

    Also, it is important to note that the longer a prover has not sent
    an OTP to a validation system, the longer (potentially) the
    accumulated clock drift between the prover and the verifier. In such
    cases, the automatic resynchronization described above may not work
    if the drift exceeds the allowed threshold. Additional
    authentication measures should be used to safely authenticate the
    prover and explicitly resynchronize the clock drift between the
    prover and the validator.

    Das heißt, wenn der Authentifizierungsserver alle RFC-Vorschriften einhält und der Schlüssel nicht zur Authentifizierung verwendet wird, beispielsweise mindestens einige Male pro Jahr (die genaue Anzahl kann anhand der Genauigkeit des Oszillators und der vom Server zugelassenen Zeitverschiebung berechnet werden), werden Zeitversätze berücksichtigt auf der Server-Seite sollten Probleme auftreten. Bei der Verwendung von Tasten unter solchen Bedingungen wird die Zeitsynchronisationsfunktion grundsätzlich nicht benötigt.

    Die Zeitsynchronisierungsfunktion kann jedoch in folgenden Fällen nützlich sein:

    • Wenn die Serverimplementierung von TOTP nicht der RFC6238-Empfehlung Nr. 6 entspricht. Ein Beispiel für eine solche Implementierung ist DUO :
      TOTP-Token-Drift und Resynchronisation werden nicht unterstützt. Es ist nicht notwendig, mit dem Autor zusammenzuarbeiten, muss dies aber nicht

    • Wurde vor einiger Zeit ein Stapel von Hardwareschlüsseln erworben, mussten sie jedoch erst nach einiger Zeit aktiviert werden - in diesem Fall gibt es in vielen Systemen einfach keinen Synchronisationsmechanismus.
    • Wenn der Hardwareschlüssel verwendet wird, um sich seltener anzumelden, als für die Synchronisation benötigt wird. Wenn ein Benutzer beispielsweise dasselbe TOTP-Profil (genauer den geheimen geheimen Schlüssel) auf zwei Geräte „kopieren“ möchte: a) für den täglichen Gebrauch auf eine mobile Anwendung am Telefon und b) auf einen programmierbaren Hardwareschlüssel als Sicherung für einen Regentag . Wenn dieser Regentag in 3-4 Jahren kommt, wird der Hardware-Token aufgrund des Zeitunterschieds nicht mehr genau verwendet. Und der Akku des Tokens, der lange Zeit nicht eingeschaltet wurde, verliert fast keine Kapazität. In diesem Fall reicht es also aus, die Uhr darauf einzustellen, um sie an das System zurückzugeben.

    Sicherheitsanalyse
    Как всегда, такого рода новшества всегда основаны на балансе комфорта/удобства и уровня безопасности. Не являются исключением и программируемые ключи с возможностью синхронизации времени, от атак по сети (фишинг, человек посередине и т.д. — в большинстве случаев наши клиенты используют TOTP токены именно для защиты от такого рода атак) они конечно защитят в полной мере, но данная возможность предполагает малозначительную и чисто теоретическую вероятность атаки путём повтора (replay attack) с условием что злоумышленники могут:

    1. Получить первый фактор (пароль).
    2. Иметь физический доступ к аппаратному ключу без ведома владельца на протяжении достаточно долгого времени (см этап 3.).
    3. С помощью приложения, через NFC перевести время на ключе вперед на определенную дату, и записать достаточное количество сгенерированных кодов. Скриптом это реализовать не получится, так как для генерации кодов нужно нажать на физическую кнопку, а текущий код только подсмотреть на экране (по NFC он не передается).
    4. Вернуть время обратно (чтобы владелец ни о чем не догадался).
    5. И, наконец, выполнить вход в систему используя пароль (этап 1) и один из кодов полученных на этапе 3.

    Данный риск, как видим, может возникнуть лишь при условии физического доступа к устройству, например, атаку сможет осуществить коллега сидящий рядом и по какой-то причине еще и знающий пароль. Но при таких условиях использование классических TOTP токенов приведет к такому же риску. К слову сказать, риск компрометации токенов с функцией синхронизации времени сравним с риском fido u2f девайсов — если злоумышленник временно и незаметно получил доступ к u2f ключу обладая при этом паролем, он может войти в систему с этим ключом, и добавить другой (свой) ключ и затем так же незаметно вернуть иходный ключ владельцу- по спецификации у одного акаунта может быть более одного u2f ключа, и любой можно использовать для параллельного входа. Такому же риску подвержены и факторы подобные Perfect paper passwords.
    Как видите, атака довольно сложная и маловероятна, и в целом уровень риска использования таких токенов можно сравнить с использованием приложения типа Google Authenticator на смартфоне без пин-кода, не имеющим доступа в сеть и который пользователь всегда носит с собой.
    Для клиентов, все же считающих даже этот риск достаточно большим наши рекомендации по этому поводу такие:
    1. Ограничивать физический доступ к такого типа ключам приблизительно так же как и к банковским картам (к слову сказать, наши ключи именно в формате банковских карт).
    2. Использовать программируемые ключи без функции синхронизации времени (miniOTP-1)
    3. Использовать программируемые ключи c функцией синхронизации времени, совмещенной с удалением секретного ключа. То есть, при изменении времени токена, seed будет обнулен и надо будет заносить его заново (miniOTP-3, о дате релиза модели будет обьявлено дополнительно)


    Wo kaufen?
    Предзаказ открыт на нашем сайте. Используйте промокод HABR2019 для скидки 10% (количество купонов ограничено). Доставка обычной почтой (SwissPost или La Poste France). С доставкой в страны СНГ проблем до сих пор не возникало.

    Jetzt auch beliebt: