Uma nova versão da biblioteca criptográfica compacta wolfSSL 5.0.0 está disponível, otimizada para uso em dispositivos embarcados com recursos limitados de CPU e memória, como dispositivos de Internet das Coisas, sistemas de casas inteligentes, sistemas de informação automotivos, roteadores e telefones celulares. O código é escrito em C e distribuído sob a licença GPLv2.
A biblioteca oferece implementações de alto desempenho dos algoritmos criptográficos modernos, incluindo ChaCha20, Curve25519, NTRU, RSA, Blake2b, TLS 1.0-1.3 e DTLS 1.2, que, segundo os desenvolvedores, são 20 vezes mais compactas do que as implementações do OpenSSL. É fornecido tanto uma API simplificada própria quanto uma camada de compatibilidade com a API OpenSSL. Há suporte para OCSP (Protocolo de Status de Certificado Online) e CRL (Lista de Certificados Revogados) para verificação de revogação de certificados.
Principais inovações do wolfSSL 5.0.0:
- Suporte adicionado a plataformas: IoT-Safe (com suporte a TLS), SE050 (com suporte a RNG, SHA, AES, ECC e ED25519) e Renesas TSIP 1.13 (para microcontroladores RX72N).
- Suporte a algoritmos de criptografia pós-quântica resistente a tentativas de ataque usando computadores quânticos adicionado: grupos NIST Round 3 KEM para TLS 1.3 e grupos híbridos NIST ECC baseados no projeto OQS (Open Quantum Safe, liboqs). Grupos resistentes a ataques de computadores quânticos também foram adicionados à camada para garantir compatibilidade. O suporte a algoritmos NTRU e QSH foi descontinuado.
- O módulo para o núcleo Linux implementou suporte a algoritmos criptográficos que atendem ao padrão de segurança FIPS 140-3. Um produto separado com implementação FIPS 140-3 foi apresentado, e seu código está atualmente em fase de teste, revisão e verificação.
- O módulo para o núcleo Linux adicionou variantes dos algoritmos RSA, ECC, DH, DSA, AES/AES-GCM, aceleradas por instruções vetoriais da CPU x86. Os manipuladores de interrupções também foram acelerados usando instruções vetoriais. Foi adicionado suporte a subsistemas para verificação de módulos por meio de assinaturas digitais. A possibilidade de compilar o motor criptográfico embarcado wolfCrypt no modo "--enable-linuxkm-pie" (independente de posição) foi garantida. O módulo oferece suporte aos núcleos Linux 3.16, 4.4, 4.9, 5.4 e 5.10.
- Foi adicionado suporte à libssh2, pyOpenSSL, libimobiledevice, rsyslog, OpenSSH 8.5p1 e Python 3.8.5 na camada de compatibilidade com outras bibliotecas e aplicações.
- Uma grande quantidade de novas APIs foi adicionada, incluindo EVP_blake2, wolfSSL_set_client_CA_list, wolfSSL_EVP_sha512_256, wc_Sha512*, EVP_shake256, SSL_CIPHER_* e SSL_SESSION_*.
- Duas vulnerabilidades consideradas não perigosas foram corrigidas: um bloqueio ao criar assinaturas digitais DSA com certos parâmetros e a verificação incorreta de certificados com vários nomes alternativos de objeto, ao usar restrições associadas a nomes.
Fonte: opennet.ru
