Você sabia que a maioria dos 2FA de exchanges brasileiras e estrangeiras, não segue as melhores práticas de segurança?
Você sabia que o aplicativo mais usado para isso, o Google Authenticator também não tem a funcionalidade necessária?
Eu explico melhor, antes deu ser 100% cripto, infelizmente fui da área de segurança/inovações dos sistemas bancários no Brasil(Bradesco, Itáu, Santander etc) e na Europa(Santander e Banco Espirito Santo), isso me deu bastante experiência e me fez participar de várias iniciativas como membro da OATH (https://openauthentication.org) a que eu julgo ser a maior iniciativa a escrever os RFC dos principais mecanismos do 2FA como HTOP, TOTP e OCRA, participei de diversas implantações do mesmo.
Porém infelizmente não usamos o modelo principal para assinar as transações, segue um breve resumo:
HOTP: An HMAC-Based OTP Algorithm (RFC 4226): Podemos ver que o HOTP, foi a primeira RFC o ponto zero de tudo, ele era um 2FA, não baseado no tempo, e sim em “evento”, a cada clique no seu dispositivo de autenticação ele mudaria o seu 2FA .
TOTP – Time-based One-time Password Algorithm (RFC 6238): Essa foi a grande sacada, por conta da RFC anterior e das pessoas clicarem muito nos seus dispositivos as vezes os mesmos tinham “perda de sincronia” com o servidor, causando um número de suporte absurdo, o TOTP, é o queridinho, ele é o algorítimo por trás do Google Authenticator atual e da maioria das exchanges o utilizam, como Mercado Bitcoin, Binance etc, porém ele é “inseguro”, para assinar transações, sendo facilmente suscetível para um ataque man-in-the-midle.
Ou seja, esse sistema atual é inseguro, a própia OATH, já sinalizou isso há tempos e pasmem, você sabia que o Bradesco e esses outros bancos que citei utilizam um protocolo diferente e que protege esses ataques?
É isto mesmo, o sistema bancário nacional está mais a frente na segurança do 2FA, do que nossas exchanges, eles utilizam o modelo OCRA para assinar as transações!
OCRA – OATH Challenge/Response Algorithms Specification(RFC 6287): O modelo OCRA, muito parecido com o modelo da OriginalMy(nossa queridinha), é um modelo que concatena dados da transações junto com a semente, e assim consegue dar um 2FA único para aquela transação, mesmo que o hacker capture seu OTP tradicional, ele não conseguiria assinar tal transação.
E porque o modelo de OCRA não é difundido nas exchanges grandes como a Binance?
A resposta é simples!
Eu não sei 🙁 talvez pelo conforto do Google Authenticator não ter a funcionalidade.
Link da RFC OCRA: https://tools.ietf.org/html/rfc6287
Especificações do OATH: https://openauthentication.org/specifications-technical-resources/