SRP: protocolo de senha remota segura
Entenda como o SRP permite que cliente e servidor se autentiquem mutuamente sem que o servidor armazene senhas.
SRP: protocolo de senha remota segura é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.
Visão geral e história do SRP
O protocolo Senha Remota Segura (SRP) foi desenvolvido por Tom Wu, de Stanford, e publicado como RFC 2945 em 2000, com uma versão aprimorada, SRP-6a, definida posteriormente. O SRP permite autenticação mútua baseada em uma senha compartilhada sem jamais transmitir a própria senha, nem mesmo em forma criptografada.
O servidor armazena um verificador, não uma senha
Durante o registro no SRP, o cliente calcula um verificador de senha v = g^x mod N, em que x = H(salt || password) e N é um primo seguro grande. O servidor armazena apenas o sal e o verificador v. Mesmo que o banco de dados do servidor seja comprometido, o verificador armazenado não revela diretamente a senha.
Geração da chave de sessão do SRP
Durante o acesso pelo SRP, o cliente e o servidor realizam uma troca semelhante à de Diffie-Hellman que gera uma chave de sessão compartilhada. O cálculo de cada lado incorpora o valor derivado da senha, portanto a chave de sessão resultante só pode ser calculada corretamente por alguém que conheça a senha e pelo servidor que possua o verificador, respectivamente.
Autenticação mútua no SRP
O SRP oferece autenticação mútua: o cliente prova que conhece a senha, e o servidor prova que possui o verificador legítimo. Isso impede ataques de fraude por sites falsos nos quais um servidor falso tenta coletar informações da senha, pois um servidor falso não consegue concluir corretamente a troca do SRP sem o verificador verdadeiro.
O cálculo do verificador
O verificador é calculado como v = g^x mod N, em que x = H(salt || password), g é um gerador e N é um primo seguro de 2048 bits ou mais. O problema do logaritmo discreto torna computacionalmente inviável recuperar x a partir de v. A senha só pode ser verificada com a conclusão bem-sucedida de toda a troca do SRP.
Melhorias do SRP-6a
O SRP-6a corrige fragilidades dos projetos originais SRP-3 e SRP-6 ao introduzir um parâmetro multiplicador k = H(N, g) e modificar a ordem dos cálculos do cliente e do servidor. Essas mudanças impedem determinados ataques de adivinhação com vantagem de dois por um e garantem que a contribuição do servidor fique vinculada desde o início do protocolo.
SRP em sistemas de produção
O SRP teve uma implantação significativa no mundo real. A Apple usa o SRP na sincronização das Chaves do iCloud para permitir que os dispositivos recuperem dados do chaveiro sem revelar a senha da conta aos servidores da Apple. O 1Password usou o SRP em seu modelo de autenticação para impedir a exposição de credenciais no servidor.
O SRP impede fraudes por sites falsos
Como o SRP gera uma chave de sessão que vincula tanto a senha quanto o verificador do servidor, um servidor usado em uma fraude por site falso não consegue concluir corretamente a negociação do SRP. Um usuário que se conecte a um site fraudulento por meio do SRP falhará na autenticação, obtendo uma propriedade integrada de proteção contra fraudes por sites falsos que não existe no envio tradicional de senhas.
Limitações do SRP
O SRP é computacionalmente dispendioso, pois exige exponenciação modular com inteiros grandes (de 2048 bits ou mais). É complexo implementá-lo corretamente, com muitas armadilhas sutis na validação de parâmetros que já causaram vulnerabilidades em implementações. O protocolo também exige um canal seguro (TLS) para impedir a espionagem passiva da própria troca.
Conjuntos de cifras TLS-SRP
A RFC 5054 define conjuntos de cifras TLS-SRP que integram a autenticação mútua do SRP diretamente à negociação TLS. Isso elimina a necessidade de certificados de servidor e, ao mesmo tempo, oferece autenticação mútua criptografada. No entanto, o TLS-SRP teve adoção limitada na prática, pois FIDO2 e OPAQUE surgiram como alternativas mais modernas.
SRP versus alternativas modernas
Embora o SRP tenha sido revolucionário, alternativas modernas como OPAQUE oferecem garantias de segurança mais fortes (resistência à pré-computação), e FIDO2/chaves de acesso eliminam completamente as senhas. Para sistemas novos, OPAQUE ou FIDO2 são preferíveis, mas o SRP continua sendo uma opção válida para sistemas que exigem autenticação mútua baseada em senha sem vulnerabilidade a fraudes por sites falsos.
Verificação do verificador do SRP
No SRP, o que o servidor armazena em vez da senha do usuário?
Recapitulação da lição: autenticação SRP
O SRP armazena um verificador de senha, não a senha, gera uma chave de sessão compartilhada por meio de uma troca semelhante a DH e oferece autenticação mútua resistente a fraudes por sites falsos. O SRP-6a aprimora o original com resistência a ataques de adivinhação. As Chaves do iCloud da Apple e o 1Password usam o SRP em produção. O OPAQUE e o FIDO2 são sucessores modernos para sistemas novos.
Perguntas Frequentes
A aula “SRP: protocolo de senha remota segura” é grátis?
Sim — o texto completo de “SRP: protocolo de senha remota segura” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.
O que vou aprender em “SRP: protocolo de senha remota segura”?
Entenda como o SRP permite que cliente e servidor se autentiquem mutuamente sem que o servidor armazene senhas. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cryptology Academy?
Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “SRP: protocolo de senha remota segura”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cryptology Academy?
Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O problema fundamental da autenticação por senha
- SRP: protocolo de senha remota segura
- Protocolos PAKE e suas propriedades
- Autenticação sem senha: WebAuthn e FIDO2