Gli sviluppatori del progetto OpenBSD hanno presentato l'uscita della versione portabile del pacchetto LibreSSL 3.9.0, nell'ambito della quale si sviluppa un fork di OpenSSL, mirato a garantire un livello di sicurezza più elevato. Il progetto LibreSSL è orientato a fornire un supporto di qualità per i protocolli SSL/TLS, eliminando funzionalità superflue, aggiungendo ulteriori misure di protezione e conducendo una significativa pulizia e revisione della base di codice. L'uscita di LibreSSL 3.9.0 è considerata sperimentale, nella quale si sviluppano funzionalità che entreranno a far parte di OpenBSD 7.5. Contestualmente, è stata creata una versione stabile di LibreSSL 3.8.3, che corregge alcuni errori specifici per Windows e potenzia il supporto per il meccanismo di protezione CET (Control-flow Enforcement Technology).
Caratteristiche di LibreSSL 3.9.0:
- Aggiunto il supporto per algoritmi di firma digitale basati su ECDSA con hash SHA-3.
- Aggiunto il supporto HMAC con hash troncati SHA-2 e SHA-3 come PBE PRF.
- Apportate modifiche per migliorare la portabilità su altre piattaforme. Per evitare problemi durante il binding statico, la maggior parte dei simboli esportati di LibreSSL utilizzati per garantire compatibilità è contrassegnata con il prefisso «libressl_». Negli assemblaggi basati su CMake è cessata l'esportazione dei simboli compat compat- libcrypto.
- Sono state apportate modifiche mirate a migliorare la compatibilità con OpenSSL. Ad esempio, sono stati aggiunti nomi alternativi ChaCha20 e chacha20 per l'algoritmo ChaCha, unificato il funzionamento delle funzioni SSL_library_init() e OPENSSL_init_ssl(), e resi conformi ai comportamenti di OpenSSL le chiamate a EVP_{CIPHER,MD}_CTX_init().
- Nell'utility openssl è stato aggiunto il supporto per i flag «-new -force_pubkey», «-multivalue-rdn», «-set_issuer», «-set_subject» e «-utf8».
- Effettuato il passaggio dall'uso della chiamata OBJ_bsearch_() alla funzione standard bsearch().
- Semplificata l'implementazione della funzione by_file_ctrl(), EVP_Cipher{Init,Update,Final}() e API OBJ_.
- È stata effettuata una grande riorganizzazione dell'API EVP. Rimosse le funzioni EVP_add_{cipher,digest}().
- Semplificata la gestione di X509_TRUST.
- Riscritte le funzioni BIO_dump*().
- Cessato il supporto per le tabelle globali non adattate per l'uso multi-thread. Di conseguenza, non è più supportata l'assegnazione di nomi alternativi a cifrature e hash, l'aggiunta di stringhe personalizzate, metodi ASN.1, PKEY e CRL.
- Rimosse le funzioni BIO_set(), BIO_{sn,v,vsn}printf(), sk_find_ex() e OBJ_bsearch_(), così come un gran numero di funzioni obsolete dell'API CRYPTO.
- Interrotto l'accesso pubblico all'API X509_CERT_AUX e X509_TRUST.
- Il supporto per gli algoritmi GOST e STREEBOG è stato interrotto.
- Espanso il supporto per il meccanismo CET (Control-flow Enforcement Technology), utilizzato per proteggere contro l'esecuzione di exploit basati su tecniche di programmazione orientata al ritorno (ROP, Return-Oriented Programming).
Fonte: opennet.ru
