1. O que é BoringSSL
BoringSSL é a biblioteca de criptografia de código aberto do Google baseada em OpenSSL, especificamente projetada para projetos Chromium e Android. Os componentes centrais incluem:
- Implementação de Protocolo: TLS 1.2/1.3, DTLS 1.2
- Primitivas Criptográficas: AES-GCM, ChaCha20-Poly1305, RSA-PSS, ECDSA
- Verificação de Certificados: validação da cadeia X.509
- Transporte Seguro: camada de abstração BIO
Ao contrário do OpenSSL, o BoringSSL:
- Remove o suporte para algoritmos obsoletos (SSLv3, RC4)
- Elimina os requisitos de validação FIPS 140-2
- Usa a vinculação estática como padrão
- Implementa políticas de certificado rigorosas
2. Arquitetura BoringSSL vs OpenSSL
Recurso | BoringSSL | OpenSSL |
---|---|---|
Base de Código | ~240Kloc (simplificada) | ~500Kloc |
Segurança de Threads | Operações atômicas | Bloqueios globais |
Memória | Alocador personalizado | malloc/free padrão |
API | Específica do Chromium | De uso geral |
Atualizações | Lançamentos semanais | Lançamentos trimestrais |
Compatibilidade | Quebra ABI intencionalmente | Mantém a estabilidade da ABI |
Principais diferenças arquitetônicas:
- BoringSSL usa o módulo FIPS BoringCrypto
- Sem suporte à API ENGINE
- Removeu 80% das opções de configurabilidade
- Sistema de tratamento de erros simplificado
3. Módulos Centrais do BoringSSL
Pilha TLS
- Retomada de sessão sem estado do servidor
- Otimização de False Start
- Exportador de material de chave
Criptografia
- Implementações de tempo constante
- Aceleração de hardware (AES-NI, PCLMULQDQ)
- Experimentos criptográficos pós-quânticos
X.509
- Transparência de certificados
- OCSP stapling
- Restrições de nome
Gerenciamento de Memória
- Macro ScopedOPENSSL
- Sem malloc/free em caminhos críticos
- Garantias de zeroização
Testes
- 92% de cobertura de linha
- Fuzzing com libFuzzer
- CI multiplataforma
4. BoringSSL em Aplicações Modernas
Papéis críticos na pilha de segurança:
Integração com Chromium
- Impulsiona QUIC e HTTP/3 no Chrome
- Verificação de certificado para >1B de dispositivos
- Implementação de DTLS para WebRTC
Otimizações de Desempenho
- Handshake TLS 1.3 2x mais rápido vs OpenSSL
- 40% menor tamanho binário
- Extensões criptográficas ARMv8
Melhorias de Segurança
- Correspondência estrita de nomes de certificado
- Seleção automática de curva EC
- Transparência de certificado sempre ativa
Experiência do Desenvolvedor
- Superfícies de API simplificadas
- Políticas claras de depreciação
- Documentação por função
Você Também Pode Gostar