Upload
buikhanh
View
216
Download
0
Embed Size (px)
Citation preview
1/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
“Como implementar autenticação e segurança de 2º Fator
com Software Livre”
Julho / 2012José Damico
2/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
O que é segundo fator de segurança?
Nome de usuário & Senha
Senha de uso único
Algo que você sabe
Algo que você não sabe
Algo que está em você
Algo está com você
1º Fator
2º Fator
3/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Padronização
RFCs
IETF
HOTP (4226)
TOTP (6238)
PSKC (6030)
OATH
Specifications
OATH Reference Architecture
Initiatives
4/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Algoritmos disponíveis● HOTP:HOTP: (RFC 4226)
● Baseado na assinatura HMAC de um contador;
● TOTP: TOTP: (RFC 6238)(RFC 6238) ● Baseado na assinatura HMAC de um contador
relacionado ao tempo;
● OCRA: OCRA: (RFC 6287) ● Baseado em HOTP e em um algoritmo de desafio-
resposta;
5/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
TOTP (RFC 6238)(RFC 6238)
HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
TOTP = HOTP(K, T)TOTP = HOTP(K, T)
Resposta Resposta DecimalDecimal
Segredo Segredo compartilhadocompartilhado
T = (Current Unix time - T0) / X
6/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
TOTP (RFC 6238)(RFC 6238)
● Parâmetros iniciais:● Seed: Semente ou segredo compartilhado. Array de
bytes de 16 à 20 posições gerado a partir de um algoritmo de derivação de chaves;
● T0: Contador inicial de tempo● Time interval: Intervalo de geração de OTPs● Epoch Time: Tempo na representação epoch ● Size: Comprimento da resposta do OTP
7/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Implementação em Javahttps://github.com/damico/JavaOTP
Show me the code
8/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Implementação em Arduino / C++https://github.com/damico/ARDUINO-OATH-TOKEN
Show me the code
9/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Janela de Validação
12:00:00
12:00:30
12:01:00
12:01:30
12:02:00
11:59:30
11:59:00
11:58:30
11:58:00
0
1
2
3
4
-1
-2
-3
-4
FuturoPassado
|-4| + |Current| + |+4| = 9 OTPs
Show me the code
public void TestOtpWindow()
https://github.com/damico/JavaOTP/blob/master/src/org/jdamico/tfa/oath/test/TestTotp.java
10/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Token Serial Number
[NF][AR][00000001]
OATH prefixManufacturer token type
Manufacturer serial number
Referencial entre o usuário e sua semente.
11/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Implementação de Tokens com PSKC
● PSKC: Portable Symetric Key Container● A xml message to import/export tokens
Show me the code
https://github.com/damico/PskcBuilder
12/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
Arquitetura
usuáriosite
autenticador
hsm
Segredo compartilhado em ambas as extremidades
em dispositivos físicos seguros
13/13Como implementar autenticação e segurança de 2º Fator com Software Livre [Jose Damico – [email protected]]
https://github.com/damico
@josedamico
http://br.linkedin.com/in/josedamico