1️⃣ O que é o formato PEM?
PEM (Privacy-Enhanced Mail) é um formato de texto usado para armazenar e transferir chaves e certificados. Ele codifica dados DER binários em Base64 e os agrupa com cabeçalhos e rodapés como-----BEGIN <LABEL>-----e-----END <LABEL>-----. Rótulos comuns incluemCHAVE PÚBLICA, CHAVE PRIVADA, eCERTIFICADO. É fácil copiar, colar e transmitir em fluxos de trabalho baseados em texto, tornando-o um dos formatos de troca de chaves mais comuns.
2️⃣ Quais outros formatos são comuns além do PEM?
- DER: um formato binário puro que armazena estruturas ASN.1 diretamente. Não é legível por humanos e é comum em ecossistemas Java.
- HEX: expressa o conteúdo binário do DER como uma string hexadecimal, útil para depuração ou incorporação no código.
- Base64 (sem cabeçalhos): DER bruto codificado como Base64 sem cabeçalhos PEM, frequentemente usado em configurações compactas ou cargas úteis de token.
- PKCS#12 (PFX): um formato de contêiner binário que pode agrupar chaves públicas e privadas, geralmente protegido por senha e frequentemente usado por navegadores ou sistemas Windows.
3️⃣ Quando você deve usar cada formato?
- PEM: a opção mais universal, adequada para OpenSSL, servidores web (Nginx/Apache) e troca de API.
- DER: comumente usado em ambientes Java ou onde é necessário armazenamento binário estrito.
- HEX: útil em depuração, sistemas embarcados ou sempre que a inspeção exata de bytes for necessária.
A criptografia
- Base64 (sem cabeçalhos): útil quando a formatação é restrita ou é necessária uma representação compacta.
- PKCS#12: útil quando as chaves pública e privada devem ser transportadas juntas enquanto protege a chave privada com uma senha.