Tenho usado chaves RSA SecureID ® já há algum tempo (talvez 10 anos), para coisas como a segurança de minha conta de home banking online ou acessar meu rede de computadores da empresa em casa. Essas chaves geram um token numérico de 6 dígitos que está definido para expirar. No entanto, sempre me perguntei como isso funciona.

RSA Chavefob SecurID

No lado direito há um ponto (não mostrado na imagem) que pisca uma vez por segundo, e à esquerda há uma pilha de seis empilhados horizontalmente barras, cada uma desaparecendo uma vez a cada dez segundos. Cada vez que sessenta segundos se passam, o token é reinicializado e o token anterior torna-se inválido.

AFAIK esses dispositivos não fazem uso da rede, e os números que eles geram devem ser verificados pelo servidor (se o servidor seja um banco ou servidor de uma empresa). Portanto, dentro deste dispositivo deve ser armazenado um algoritmo que gere números aleatórios com um mecanismo que inclui um cronômetro muito preciso alimentado por uma pequena bateria. O cronômetro deve ser muito preciso, pois, o servidor precisa verificar a validade dos dígitos gerados no mesmo intervalo de tempo. Para cada usuário / funcionário, o servidor deve, tanto quanto eu entendo, armazenar o mesmo algoritmo de geração de número aleatório, com um tal algoritmo por cliente / funcionário. É claro que o chip deve ser construído de forma que, se for roubado, o invasor não possa acessar o algoritmo de geração de número aleatório armazenado nele, mesmo se o dispositivo estiver quebrado.

É assim que funciona?

Obrigado!

Comentários

  • Da mesma forma TOTP funciona, exceto para o último, você não ‘ tem que comprar uma solução cara e pode usar telefones regulares ou qualquer dispositivo capaz de computação básica, até mesmo um smartwatch .
  • OTP definido por software é extremamente ruim, pois você não ganha a resistência à adulteração, que é necessária para ganhar resistência contra a clonagem da semente. Qualquer pessoa com um cabo micro-USB e as ferramentas certas pode clonar seu telefone em < 5 minutos. Se sua senha for protegida, o clone criptografado pode ser armazenado até que o código possa ser obtido por software malicioso ou navegação no ombro. Alguns telefones hoje oferecem um armazenamento de chaves de hardware resistente a violações, então é uma boa ideia usar isso ou um Security Smart-MicroSD. Isso evita que a semente seja extraída, apenas ” usado “. Mas os tokens de TOTP de hardware não RSA são realmente baratos.
  • Relacionados: Como funcionam os tokens RSA
  • @sebastiannielsen que ainda depende de engenharia social ou de usuários que não cuidam de suas coisas adequadamente. Se eu puder conectar o telefone ‘ do usuário a um computador sem que ele perceba, posso roubar seu token RSA e colocar outro em seu lugar (e ele ganhou ‘ note até a próxima vez que ele tentar usá-lo, o que seria tarde demais).
  • Vale a pena vincular: Pode o números em tokens RSA SecurID podem ser previstos?

Resposta

Sim, funciona como você diz . O chip é “resistente à violação” e apagará a “semente” (chave secreta) se houver qualquer tentativa de atacá-lo. Isso geralmente é conseguido com uma bateria que não pode ser substituída pelo usuário e uma “armadilha” que interrompe a alimentação do dispositivo assim que ele é aberto ou a superfície do chip é removida. A chave é então armazenada em uma SRAM, exigindo energia para mantê-la.

A chave é uma semente, que combinada com a hora atual em 60 segundos (efetivamente, o carimbo de data / hora UNIX atual / 60), atualiza o código.

Não, o dispositivo NÃO precisa ser preciso. Em vez disso, o servidor armazenará a hora do último código aceito. Então, o servidor aceitará um código um minuto antes, um minuto antes e no horário atual, portanto, se o horário atual no servidor for 23:20, ele aceitará um código de 23:19, 23:20 e 23: 21.

Depois disso, ele armazenará a hora do último código aceito, por exemplo, se um código 23:21 foi aceito, ele armazenará 23:21 em um banco de dados e se recusará a aceitar qualquer código que foi gerado às 23:21 ou antes.

Agora a parte interessante: para evitar que um token impreciso desincronize do servidor, o servidor armazenará em seu banco de dados, se for necessário aceitar um 23: Código 19 ou 23:21 às 23:20. Isso garantirá que no próximo logon, o servidor corrigirá o código com o número de etapas.

Digamos que você no relógio 23:20 faça o login com um código de 23:19. O servidor armazena “-1” em seu banco de dados (e se fosse um código 23:21, ele armazenaria “+1” no banco de dados). Na próxima vez que você fizer login, o relógio será 23:40. Então, o servidor aceitará um código 23:38, 23:39 ou 23:40.Se um código 23:38 for aceito, ele armazenará “-2” no banco de dados, às 23:39 manterá “-1” no banco de dados e às 23:40 armazenará “0” no banco de dados.

Isso garante efetivamente manter o servidor sincronizado com o seu token. Além disso, o sistema, se um token “rodar muito longe” do servidor (por não ter sido usado por um longo tempo), permite a ressincronização. Isso é realizado por um administrador do sistema ou um serviço de ressincronização de autoatendimento é apresentado, onde o usuário do token é solicitado a fornecer 2 códigos subsequentes do token, como 23:20 e 23:21 ou 19:10 e 19:11. Observe que o servidor NUNCA aceitará um código de token gerado no momento ou antes do “último código de token usado” (pois isso permitiria a reutilização de códigos OTP). Quando uma ressincronização é feita, o token irá armazenar a diferença dos 2 códigos de token fornecidos, e a hora do servidor atual e em uma ressincronização, a janela de pesquisa poderia ser como mais / menos 50 etapas (o que permitiria cerca de 0,75 horas de desincronizado em ambas as direções).

O servidor pode detectar um token dessincronizado gerando os 50 códigos anteriores e 50 códigos futuros e, se o código especificado corresponder a isso, ele iniciará o processo de ressincronização automaticamente. Muitas vezes, para evitar que um invasor use o processo de ressincronização para encontrar códigos válidos, uma vez que uma conta está no modo de ressincronização, o login não será aceito sem a ressincronização, o que exigiria que o invasor encontrasse o código exato subsequente ou antes do código apenas encontrado.

Comentários

  • Coisas legais, não ‘ sabia disso.

Resposta

O token SecurID tem um valor de “semente” atribuído a ele e é programado com um algoritmo específico que gera números com base na semente e no relógio do sistema. O valor da semente também é armazenado em um arquivo que é enviado com o token. Ao receber o token, os administradores do sistema importam o arquivo seed para o servidor de autenticação. Como o dispositivo de token SecurID e o servidor têm o valor de semente e ambos estão usando o algoritmo, o servidor pode determinar qual deve ser o código de token correto a qualquer momento.

Ocasionalmente, o token “s O relógio pode sair de sincronia com o servidor de autenticação. Se isso acontecer, os Administradores do sistema ou outra equipe de suporte autorizada podem ajudar o usuário executando um processo de ressincronização no servidor. Isso configurará o servidor para reconhecer a diferença de horário para esse token para que futuras tentativas de autenticação sejam tratadas com precisão.

Nota: Como esses números devem ser previsíveis pelo servidor, com base apenas nos dados armazenados no arquivo de semente, na hora atual e em um algoritmo padrão, eles também pode ser previsto por um invasor com ferramentas especiais e acesso ao token. (Ou pior, acesso aos próprios arquivos de semente – como suspeita de ter acontecido em 2011 .) Dados códigos de token consecutivos suficientes, há que ols que podem determinar o valor da semente e, em seguida, gerar códigos futuros por conta própria.

Resposta

A resposta de Sebastian foi excelente. Vou reafirmar isso em termos gerais. O token SecureID é simplesmente um relógio com um valor de semente nele. Em vez de exibir o tempo, ele exibe um número. O ponto que podemos ver na imagem é segundos (eu acho), a barra é quando o número vai mudar para que você possa cronometrá-lo. Se estiver chegando ao fim, está prestes a mudar e se você estiver digitando, espere.

O ” seed “também está no servidor que está autenticando o dispositivo. Quando o pessoal da segurança instala o servidor RSA, eles precisam carregar as mesmas sementes no servidor que receberá seu código PIN.

Então … Basicamente, é um criptoclock. Assim como os velhos relógios LCD que meus filhos têm com Dora ou princesas. A diferença é a semente que fornece a matemática para o número.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *