Chaves TOTP de hardware programável com a capacidade de sincronizar o tempo

Temos o prazer de anunciar a nova linha de chaves TOTP de hardware programável do TOKEN2. A principal inovação é a capacidade de sincronizar o relógio do sistema de chaves de hardware por meio da API NFC usando aplicativos especiais - uma versão para Android e Windows 10 está sendo preparada.

Ainda não há aplicativos para iOS: apesar dos chips NFC estarem fisicamente presentes nos modelos mais recentes do iPhone, a Apple ainda não fornece uma API pública para seu uso.


Para que é isso?


Diferentemente dos aplicativos TOTP móveis, nas chaves de hardware, não há como sincronizar a hora via NTP, através de uma rede celular ou de um sinal de rádio: as chaves de hardware do dispositivo são completamente isoladas e independentes, e usam o relógio na placa como fonte de tempo preciso. Nos anos 1933-1934. Os físicos Scheibe e Adelsberger, do Instituto Imperial de Física e Tecnologia de Berlim, aproveitaram as possibilidades de usar o efeito piezoelétrico para medir o tempo. É esse efeito subjacente ao relógio do sistema das chaves de hardware. A precisão desses relógios varia de ± 0,3 a ± 1,1 s / dia, dependendo da qualidade. Se essa precisão for suficiente para um relógio de pulso convencional, nas chaves de hardware, uma diferença de tempo maior que um determinado limite pode levar a uma recusa de ativação e / ou autenticação. Esse limite depende do sistema específico (por exemplo, o Microsoft Azure MFA permite até 600 segundos de viés nas duas direções) quando se trata do primeiro registro de uma chave de hardware. Além disso, o processo de sincronização de deslocamento durante o uso da tecla para entrar já está claramente descrito na RFC 6238

RFC 6238 / 6. Ressincronização
Devido a possíveis desvios do relógio entre um cliente e uma validação
RECOMENDAMOS que o validador seja definido com um limite específico
ao número de etapas que um provador pode estar "fora de sincronia" antes de
sendo rejeitado.

Esse limite pode ser definido para frente e para trás a partir do valor calculado.
intervalo de tempo após o recebimento do valor OTP. Se o intervalo de tempo for
30 segundos, conforme recomendado, e o validador está configurado para aceitar apenas
dois passos para trás, o desvio máximo de tempo decorrido seria
89 segundos, ou seja, 29 segundos no intervalo de tempo calculado e
60 segundos para duas etapas de retrocesso.

Isso significaria que o validador poderia realizar uma validação contra o
hora atual e, em seguida, mais duas validações para cada etapa anterior
(para um total de 3 validações). Após a validação bem-sucedida, o
servidor de validação pode registrar o desvio do relógio detectado para o token
em termos do número de etapas de tempo. Quando um novo OTP é recebido
Após esta etapa, o validador pode validar o OTP com o atual
registro de data e hora ajustado com o número registrado de desvios do relógio de tempo
para o token.

Além disso, é importante observar que quanto mais tempo um provador não enviar
um OTP para um sistema de validação, quanto maior (potencialmente) o
desvio acumulado do relógio entre o provador e o verificador. Em tais
casos, a ressincronização automática descrita acima pode não funcionar
se o desvio exceder o limite permitido. Adicionais
medidas de autenticação devem ser usadas para autenticar com segurança o
provador e ressincronize explicitamente o desvio do relógio entre o
provador e validador.

Ou seja, se o servidor de autenticação atender a todos os requisitos da RFC e se a chave não for usada muito raramente para autenticação, por exemplo, pelo menos duas vezes por ano (o número exato pode ser calculado levando em consideração a precisão do oscilador e o tempo permitido pelo servidor), as compensações de tempo serão levadas em consideração no lado do servidor e os problemas não devem surgir. Ao usar chaves nessas condições, a função de sincronização de tempo não é, em princípio, necessária.

No entanto, a função de sincronização de horário pode ser útil nos seguintes casos:

  • Se a implementação do servidor TOTP não seguir a Recomendação 6 da RFC6238. Um exemplo dessa implementação é o DUO :
    O desvio de token TOTP e a ressincronização não são suportados. Como resultado, os tokens TOTP importados podem não funcionar para autenticação com o Duo Security ou podem não funcionar para autenticação após um período variável de tempo ...

  • Se um lote de chaves de hardware foi comprado por um longo tempo, mas elas precisaram ser ativadas apenas após algum tempo - nesse caso, simplesmente não há mecanismo de sincronização em muitos sistemas.
  • Se o dongle for usado para login com menos frequência do que o necessário para sincronização. Por exemplo, se um usuário deseja "copiar" o mesmo perfil TOTP (mais precisamente, um segredo compartilhado) para dois dispositivos: a) em um aplicativo móvel no telefone para uso diário eb) em uma chave de hardware programável como backup, para um dia chuvoso . Portanto, se esse dia chuvoso chegar em 3 a 4 anos, o token de hardware não poderá mais ser usado precisamente devido à diferença de horário. Além disso, a bateria do token, que não liga há muito tempo, quase não perde capacidade. Portanto, neste caso, é bastante simples "trazer" o relógio para eles para retorná-los à operação.

Análise de segurança
Como sempre, esse tipo de inovação é sempre baseado em um equilíbrio de conforto / conveniência e nível de segurança. As chaves programáveis ​​com a capacidade de sincronizar o tempo dos ataques à rede (phishing, pessoas no meio etc.) - na maioria dos casos, nossos clientes usam tokens TOTP precisamente para se proteger contra esses ataques); eles certamente protegerão totalmente, mas essa possibilidade implica uma probabilidade insignificante e puramente teórica de um ataque por meio de um ataque de repetição (ataque de repetição) com a condição de que os atacantes podem:

  1. Obtenha o primeiro fator (senha).
  2. Tenha acesso físico à chave de hardware sem o conhecimento do proprietário por um tempo suficientemente longo (consulte a etapa 3.).
  3. Usando o aplicativo, por meio da NFC, traduza o tempo da chave para uma data específica e registre um número suficiente de códigos gerados. Isso não funcionará com um script, porque para gerar códigos, você precisa clicar no botão físico, e o código atual só pode ser visto na tela (não é transmitido via NFC).
  4. Retorne o tempo de volta ( para que o proprietário não adivinhe nada ).
  5. Por fim, efetue login usando a senha (etapa 1) e um dos códigos recebidos na etapa 3.

Esse risco, como vemos, pode surgir apenas sob a condição de acesso físico ao dispositivo; por exemplo, um ataque pode ser realizado por um colega sentado próximo e, por algum motivo, também sabendo a senha. Mas nessas condições, o uso de tokens TOTP clássicos levará ao mesmo risco. A propósito, o risco de comprometer tokens com a função de sincronização de horário é comparável ao risco de dispositivos fido u2f - se um invasor tiver acesso temporário e imperceptível a uma chave u2f com uma senha, ele poderá fazer login no sistema com essa chave e adicionar outra (sua) chave e em seguida, devolva a chave original ao proprietário da mesma forma - de acordo com a especificação, uma conta pode ter mais de uma chave u2f e qualquer uma pode ser usada para login paralelo. Fatores como as senhas Perfect paper correm o mesmo risco.
Como você pode ver, o ataque é bastante complexo e improvável e, em geral, o nível de risco do uso desses tokens pode ser comparado ao uso de um aplicativo como o Google Authenticator em um smartphone sem código PIN, sem acesso à rede e que o usuário sempre carrega consigo.
Para os clientes que ainda consideram esse risco bastante amplo, nossas recomendações sobre o assunto são as seguintes:
  1. O limite de acesso físico a esse tipo de chave é aproximadamente o mesmo que para cartões bancários (a propósito, nossas chaves estão no formato de cartões bancários).
  2. Use teclas programáveis ​​sem a função de sincronização de tempo ( miniOTP-1 )
  3. Use chaves programáveis ​​com uma função de sincronização de tempo, combinada com a remoção da chave secreta. Ou seja, quando o tempo do token mudar, a semente será redefinida e será necessário digitá-la novamente (miniOTP-3, a data de lançamento do modelo será anunciada adicionalmente)


Onde comprar?
A pré-encomenda está aberta no nosso site. Use o código promocional HABR2019 para um desconto de 10% (número limitado de cupons). Entrega por correio normal (SwissPost ou La Poste France). Com a entrega nos países da CEI, ainda não há problemas.

Source: https://habr.com/ru/post/pt435858/


All Articles