1. O Que E RSA
RSA (Rivest–Shamir–Adleman) e o algoritmo de criptografia assimetrica mais amplamente usado no mundo, criado em 1977. Ele funciona com um par de chaves matematicamente relacionadas: uma chave publica, que pode ser distribuida livremente, e uma chave privada, que deve ser mantida em segredo absoluto.
A seguranca do RSA se baseia na dificuldade computacional de fatorar o produto de dois numeros primos grandes. Com chaves de 2048 bits, essa fatoracao e considerada inviavel com hardware atual.
2. Formatos PEM, PKCS#8 e SPKI
As chaves geradas por esta ferramenta sao exportadas nos formatos padrao da industria:
- PEM (Privacy-Enhanced Mail): Formato textual com Base64 delimitado por linhas "BEGIN/END". E o formato mais comum para armazenar e transferir chaves.
- PKCS#8: Formato padrao para chaves privadas. Suportado por OpenSSL, Java, Node.js e a maioria das linguagens modernas.
- SPKI (SubjectPublicKeyInfo): Formato padrao X.509 para chaves publicas. Usado em certificados TLS e interoperabilidade entre sistemas.
3. Tamanhos de Chave e Seguranca
O tamanho da chave RSA determina diretamente o nivel de seguranca:
- 1024 bits: Obsoleto. Quebrado em ambiente academico. Nao use em producao.
- 2048 bits: Recomendado pelo NIST para uso ate aproximadamente 2030. Equilibrio entre seguranca e performance.
- 4096 bits: Alta seguranca de longo prazo. Geracao mais lenta (especialmente em 4096 bits) e operacoes criptograficas mais custosas para o CPU.
"Para a maioria das aplicacoes web, 2048 bits e suficiente e recomendado. Use 4096 bits apenas quando a longevidade da chave ou o nivel de sigilo exigir seguranca adicional."
4. RSA-OAEP vs RSA-PSS vs PKCS1
Os tres algoritmos disponiveis tem propositos distintos:
- RSA-OAEP: Optimal Asymmetric Encryption Padding. Usado para criptografar dados com a chave publica do destinatario. Nao pode ser usado para assinatura.
- RSA-PSS: Probabilistic Signature Scheme. O esquema de assinatura moderno recomendado. Cada assinatura e diferente mesmo para a mesma mensagem (sal aleatorio).
- RSASSA-PKCS1-v1_5: Esquema legado de assinatura deterministica. Amplamente suportado, mas considerado menos seguro que RSA-PSS para novos sistemas.
5. Casos de Uso Praticos
- TLS/HTTPS: Chaves RSA sao usadas no handshake TLS para estabelecer canais seguros.
- JWT com RS256/PS256: Tokens JWT assinados com RSA permitem verificacao publica sem expor a chave privada.
- SSH: Autenticacao sem senha em servidores Linux usa pares de chaves RSA.
- Assinatura de codigo: Distribuidores de software usam RSA para assinar artefatos e garantir autenticidade.
- Testes e desenvolvimento: Gerar chaves para ambientes de dev/staging sem depender de infraestrutura de PKI.
6. Perguntas Frequentes
As chaves geradas sao seguras para uso em producao?
Sim. A geracao usa a Web Crypto API do navegador, que usa o gerador de numeros aleatorios criptograficamente seguro (CSPRNG) do sistema operacional. A qualidade da chave e equivalente a chaves geradas por OpenSSL ou bibliotecas criptograficas padrao.
Posso usar a chave publica gerada em um certificado SSL?
Voce pode usar a chave privada para gerar um CSR (Certificate Signing Request) com OpenSSL, que pode ser submetido a uma CA. A chave publica ficara embutida no certificado resultante.
Por que a geracao de 4096 bits demora mais?
Gerar uma chave RSA envolve encontrar dois numeros primos grandes. Com 4096 bits, os primos tem ~2048 bits cada, o que requer muito mais operacoes matematicas que os primos de ~1024 bits usados em chaves de 2048 bits.