PolarSSL 1.3.8 發布,SSL 加密庫

2021-01-08 開源中國

輕量級SSL庫PolarSSL發布1.3.8.2014-07-11。上個版本2014-05-03的1.3.7。遺留產品線1.2.11 很多應用已支持PolarSSL如hiawatha,OpenVPN,Monkey 相對OpenSSL漏洞頻出,這種趨勢可能會更明顯。

此版本包括了一些小的 bug 修復和改進,不會影響現有的 API。

完全改進:

PolarSSL 1.3.8 released Description

PolarSSL 1.3.8 has been released!

On the security front this release fixes a potential Denial of Service attack on PolarSSL entities using GCM (Security Advisory 2014-02) that was found with the Codenomicon Defensics toolkit.

For the rest, this release primarily adds support for the CCM cipher mode and RSASSA-PSS signatures in X.509 structures, in addition to RAM / usage optimizations for specific configurations.

Features and changes

On the feature-front this release introduces:

CCM cipher mode support and thus the CCM and CCM_8 ciphersuites

Parsing  and verification support for RSASSA-PSS signatures in X.509 certificates, CRLs and CSRs

Variable key length support for the cipher layer, e.g. for Blowfish

Ability to configure server-side enforcement of renegotiation requests

RAM optimizations

Other important changes include:

Improved usage pattern of contexts

Migration to a single, safer, zeroization function

And more.. In addition outstanding bugs were fixed.

CCM cipher mode support

The cipher layer now fully supports AES and Camellia in CCM cipher mode. This naturally results in the fact that we now support the following 20 ciphersuites as well:

TLS-ECDHE-ECDSA-WITH-AES-256-CCM

TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8

TLS-ECDHE-ECDSA-WITH-AES-128-CCM

TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8

TLS-DHE-RSA-WITH-AES-256-CCM

TLS-DHE-RSA-WITH-AES-256-CCM-8

TLS-DHE-RSA-WITH-AES-128-CCM

TLS-DHE-RSA-WITH-AES-128-CCM-8

TLS-RSA-WITH-AES-256-CCM

TLS-RSA-WITH-AES-256-CCM-8

TLS-RSA-WITH-AES-128-CCM

TLS-RSA-WITH-AES-128-CCM-8

TLS-PSK-WITH-AES-256-CCM

TLS-PSK-WITH-AES-256-CCM-8

TLS-PSK-WITH-AES-128-CCM

TLS-PSK-WITH-AES-128-CCM-8

TLS-DHE-PSK-WITH-AES-256-CCM

TLS-DHE-PSK-WITH-AES-256-CCM-8

TLS-DHE-PSK-WITH-AES-128-CCM

TLS-DHE-PSK-WITH-AES-128-CCM-8

These are of course added to our list of supported ciphersuites.

Parsing support for RSASSA-PSS signatures

A long time ago, the RSA standard or more specifically the PKCS#1 standard, got an upgrade from version 1.5 to version 2.1. PKCS#1 version 2.1 introduced some nice features such as a probabilistic signature scheme. And although a lot of certificates are signed with RSA, most use the old signatures and not the new RSASSA-PSS signatures. We are now seeing an uptake in RSASSA-PSS signature in some standards and thus integrated support for parsing and verifying these signatures in the standard structures, like X.509 certificates, CSRs and CRLs.

Variable key length support in cipher layer

The cipher layer now has direct support for variable key lengths for ciphers, such as Blowfish. Meaning that you can now use non-standard keysizes without having to hack your way around the old limit.

So for ciphers that have the POLARSSL_CIPHER_VARIABLE_KEY_LEN flag (like Blowfish), you can usecipher_setkey()with any key length.

Server-side enforcement of renegotiation requests

This release provides more flexibility on the server side on how to handle clients that do or do not respond to a renegotiation request.

If a server sends aHelloRequestmessage to the client in order to let the client initiate renegotiation, the server now allows the client to send up torenego_max_recordsof data packets before it will will forcefully break the connection for non-compliance. This is especially important when there might be data packets in transit when theHelloRequestis sent.

This behaviour is controlled byssl_set_renegotiation_enforced().

RAM optimizations

A number of smaller RAM optimizations are introduced to further help low-RAM environments.

We now provide a number of standard configurations (located in configs) to show low-memory-usage scenarios (such as *configs/config-ccm-psk-tls1_2.h).

Further optimizations can be done based on specific needs and platform options.

The new CCM-PSK configuration results in a 51K binary with 12.5K RAM usage for a client-side handshake. (This is with a non-optimized libc implementation).

Usage pattern: _init() / _free()

Simple usage patterns improve security and prevent mistakes. In order to further improve PolarSSL usage, the _init() / _free() pattern is now omnipresent. All useable contexts within PolarSSL now have a_init()and_free()function.

That means that in principle you can now put all_init()calls at the start of your function, and all_free()calls at the end, and there is no risk in memory loss or unexpected data whengoto exit;is called.

In the 1.3 branch this does not hold for all contexts. Specifically not for contexts that have an_init()function that can 'fail'. For example contexts likessl_contextandctr_drbg_contextstill require amemset()initialization at the start, because there initialization functions (ssl_init()andctr_drbg_init()) can result in an error.

In the next major release, we will enforce that_init()functions cannot fail (voidreturn type), and further initialization such as allocating internal memory structures (which can fail), requires another function call. So the behaviour of functions likessl_init()will be split in a truessl_init()to initialize the structure, and another function to do the fault-sensitive initialization parts.

We feel that the increased security and clarity from the new usage pattern weighs up to the introduction of an extra initialization function for some contexts.

Single zeroization function

In this version PolarSSL introduces a singlepolarssl_zeroize()function that is used in all modules instead ofmemset()to clear sensitive information from memory. In some cases, a simple call tomemset()could be optimized away by the compiler, whilepolarssl_zeroize()is designed to avoid that. Another advantage is that it is now clear in code if a statement is meant to just initialize (memset()) a buffer, or clear potentially sensitive data (polarssl_zeroize()).

All_free()functions for contexts usepolarssl_zeroize()to clear context data from memory.

Bug fixes

Fixes include:

Stricter check on SSL ClientHello internal sizes compared to actual packet size (found by TrustInSoft)

Fix WSAStartup() return value check (found by Peter Vaskovic)

Fix symlink command for cross compiling with CMake (found by Andre Heinecke)

Fix DER output of gen_key app (found by Gergely Budai)

Very small records were incorrectly rejected when truncated HMAC was in use with some ciphersuites and versions (RC4 in all versions, CBC with versions < TLS 1.1).

Very large records using more than 224 bytes of padding were incorrectly rejected with CBC-based ciphersuites and TLS >= 1.1

Very large records using less padding could cause a buffer overread of up to 32 bytes with CBC-based ciphersuites and TLS >= 1.1

Restore ability to use a v1 cert as a CA if trusted locally. (This had been removed in 1.3.6.)

Restore ability to locally trust a self-signed cert that is not a proper CA for use as an end entity certificate. (This had been removed in 1.3.6.)

Fix preprocessor checks for bn_mul PPC asm (found by Barry K. Nathan).

Use \n\t rather than semicolons for bn_mul asm, since some assemblers interpret semicolons as comment delimiters (found by Barry K. Nathan).

Fix off-by-one error in parsing Supported Point Format extension that caused some handshakes to fail.

Fix possible miscomputation of the premaster secret with DHE-PSK key exchange that caused some handshakes to fail with other implementations. (Failure rate <= 1/255 with common DHM moduli.)

Disable broken Sparc64 bn_mul assembly (found by Florian Obser).

Fix base64_decode() to return and check length correctly (in case of tight buffers)

Fix mpi_write_string() to write "00" as hex output for empty MPI (found by Hui Dong)

More details can be found in the ChangeLog.

下載:https://polarssl.org/download/start/polarssl-1.3.8-gpl.tgz


相關焦點

  • PolarSSL 1.1.4 發布,SSL 加密庫
    PolarSSL 1.1.4發布了,該版本修正了幾個bug。2012-05-31 上一個版本是2012-04-30的1.1.3 。
  • PolarSSL 1.2.0 發布,SSL 加密庫
    PolarSSL 1.2.0發布了,這是新的產品系列。2012-10-31 上一個版本是2012-05-31的1.1.4 。
  • PolarSSL 被發現包含高脆弱性安全漏洞
    該高危漏洞(CVE-2015-1182)是由 PolarSSL 的開發者在內部代碼審核階段發現的,影響的範圍從 1.0 版本到 1.3.9 版本的某些特定配置下,如果伺服器不詢問客戶端證書的話就不受影響。
  • PolarSSL 1.2.15/mbed TLS 1.3.12 發布
    PolarSSL 1.2.15/mbed TLS 1.3.12 發布,這兩個版本是維護版本,主要是一些 bug 修復和安全修復。
  • window伺服器禁用默認的ssl2.0和ssl3.0隻啟用啟用tls1.2保證安全
    因為有需要使用ssl但是部署後發現伺服器默認使用了ssl2!有兩種方式,一種直覺修改註冊表,另一種使用iis工具直覺修改。簡單粗暴!https說明:SSL/TLS 系列中有五種協議:SSL v2,SSL v3,TLS v1.0,TLS v1.1和TLS v1.2:SSL v2 是不安全的,不能使用。
  • 我不是"鑰"神 - 帶綠色地址欄的EV SSL證書真的便宜了
    首先引入進行主推的產品就是Comodo EV SSL證書,在推廣期間Comodo EV證書將以接近 3 折價格進行銷售(低至 999 元一年),讓國內企業以最優惠的價格用上業界安全級別最高的SSL證書。 本款數字證書帶有綠色地址欄功能,能夠有效增強用戶的信任和在線交易的信心,是展現網站品牌形象、反釣魚欺詐的利器。本次活動即日開始截止到 10 月 15 日結束。
  • FineUIPro v3.1 發布,ASP.NET控制項庫
    FineUI(專業版)v3.1 正式發布了,60多項更新,官網示例多達 690 個,新增 30 個頁面加載動畫!
  • Oracle Linux 8 Update 3 發布
    Oracle Linux 8 Update 3 發布。這是 Oracle 企業級 Linux 發行版舊分支的新構建版本,由 Red Hat Enterprise Linux (RHEL) 7.9 的原始碼編譯而成。
  • 從1到8,「數說」國家基因庫
    2019年9月22日 是深圳國家基因庫的第3個生日 從2011年獲批組建 2016年正式啟動運行 到2019年運營三周年 8年淬鍊 國家基因庫
  • 一文詳解EV SSL證書,EV、OV和DV證書有何區別?
    DV SSL證書:域名驗證型證書,只需驗證網站域名所有權的簡易型證書,10分鐘快速頒發,可以加密傳輸,但無法向用戶證明網站的真實身份。OV SSL證書:組織驗證型證書,既要驗證域名所有權,也要驗證企業或組織身份,安裝OV證書後,既能保證加密傳輸,也能證明網站的真實身份,安全性和可信任度更高。
  • 分享COMODO證書增強型EV SSL證書申請注意細節
    具體涉及步驟:1、相關平臺下單綁定對應的訂單,下單yuming.com,默認包含:www.yuming.com2、下單成功後,後臺會鎖定對應的資金,訂單顯示inactive,這時候可以著手生成CSR和KEY3、綁定CSR籤發後,證書機構comodo
  • 加密貨幣「扎堆」暴跌 等待8月重要時刻
    加密貨幣「扎堆」暴跌 等待8月重要時刻 每日經濟新聞 2017-07-17 19:08:43
  • 南瑞集團發布首臺電力量子加密機
    南瑞集團發布首臺電力量子加密機 作者:袁仲偉 汪苑 發布時間:2017-04-27   來源:中國電力網   4月21日,南瑞集團有限公司聯合科大國盾公司在江蘇南京舉辦電力專用量子加密產品發布會
  • 百度Paddle Fluid v1.3版本官方正式發布
    前言:Paddle Fluid v1.3版本於今日發布,在基礎框架、預測引擎、模型建設、分布式訓練各個方向上完成多項升級。下面將Paddle Fluid v1.3版本所發布的內容,全面介紹給廣大開發者:重要更新統一Executor和ParallelExecutor接口,用戶只需通過CompiledProgram將單卡模型轉化多卡模型,並利用Executor進行訓練或者預測。
  • 庫容量2.34萬噸8座保鮮庫給力全省蔬菜市場供應
    截至目前,我省已擁有8座蔬菜保鮮庫,庫容量為2.34萬噸,在保鮮蔬菜的同時,也在蔬菜生產淡季平抑菜價方面起到了積極作用。  4月15日,省農牧廳市場信息處處長徐宏偉介紹,目前,全省已經投入使用了8座保鮮庫,其中,西寧市有3座,平安、樂都、互助、貴德、烏蘭各1座。
  • 圖靈獎得主力推:PyTorch 1.3 今天發布
    機器之心報導參與:一鳴、思今天凌晨,PyTorch 開發者大會在舊金山開幕,會上發布了最新版本 PyTorch1.3。本次更新最大的亮點在於對行動裝置的支持、挑戰傳統張量的「命名張量」,以及更好的性能改進。今天,PyTorch1.3 發布了。圖靈獎得主,被譽為「深度學習三座山頭」之一的 LeCun 發推稱讚。
  • ssl證書到期後如何更新續費?
    那麼到底是什麼原因讓SSL證書到期的,首先SSL證書為確保安全性,所以規定每年更新一遍私鑰與公鑰,確保證書保持優秀的狀態,所以SSL證書擁有1年的有效期,到期必須要重新更新。通常比較靠譜的SSL證書頒發機構,會到期之前提前通知辦理續費。
  • 來自各界的12位知名人士,緣何進入加密貨幣領域支持比特幣、以太坊...
    1、阿什頓·庫徹(Ashton Kutcher)——好萊塢最大的瑞波幣粉絲好萊塢明星艾什頓·庫徹(Ashton Kutcher)可能是最具知名度的加密貨幣愛好者。他很早就參與了加密貨幣,大手筆地向 BitPay 和 BitGo 投資了數百萬美元。