ECC RSA雙證書解決方案

2021-10-11 20:56:59 字數 3597 閱讀 7432

ecc是elliptic curves cryptography的縮寫,意為橢圓曲線密碼編碼學。和rsa演算法一樣,ecc演算法也屬於公開金鑰演算法。最初由koblitz和miller兩人於2023年提出,其數學基礎是利用橢圓曲線上的有理點構成abel加法群上橢圓離散對數的計算困難性。

ecc演算法的數學理論非常深奧和複雜,在工程應用中比較難於實現,但它的單位安全強度相對較高,它的破譯或求解難度基本上是指數級的,黑客很難用通常使用的暴力破解的方法來破解。rsa演算法的特點之一是數學原理相對簡單,在工程應用中比較易於實現,但它的單位安全強度相對較低。因此,ecc演算法的可以用較少的計算能力提供比rsa加密演算法更高的安全強度,有效地解決了「提高安全強度必須增加金鑰長度」的工程實現問題。

1、更適合於移動網際網路: ecc加密演算法的金鑰長度很短(256位),意味著占用更少的儲存空間,更低的cpu開銷和占用更少的頻寬。隨著越來越多的使用者使用移動裝置來完成各種網上活動,ecc加密演算法為移動網際網路安全提供更好的客戶體驗。

2、更好的安全性:ecc加密演算法提供更強的保護,比目前的其他加密演算法能更好的防止攻擊,使你的**和基礎設施比用傳統的加密方法更安全,為移動網際網路安全提供更好的保障。

3、更好的效能: ecc加密演算法需要較短的金鑰長度來提供更好的安全,例如,256位的ecc金鑰加密強度等同於3072位rsa金鑰的水平(目前普通使用的rsa金鑰長度是2048位)。其結果是你以更低的計算能力代價得到了更高的安全性。經國外有關權威機構測試,在apache和iis伺服器採用ecc演算法,web伺服器響應時間比rsa快十幾倍。

4、更大的it投資回報:ecc可幫助保護您的基礎設施的投資,提供更高的安全性,並快速處理**增長的移動裝置的安全連線。 ecc的金鑰長度增加速度比其他的加密方法都慢(一般按128位增長,而 rsa則是倍數增長,如:1024 -2048–4096),將延長您現有硬體的使用壽命,讓您的投資帶來更大的回報。

ecc加密演算法自2023年提出,因其工程應用中難度較高,到2023年才在各種作業系統中獲得廣泛支援,在全球安全市場需求的刺激下,ecc演算法將逐步取代rsa演算法,成為主流加密演算法。目前,全球各大ca都已經陸續開始為使用者簽發採用ecc加密演算法的各種證書.ecc加密演算法以後支援所有作業系統、所有瀏覽器和各種移動終端,主要有:

mozilla nss 3.11以上版本支援

openssl 1.0以上版本支援

微軟cryptoapi vista/win7/win8都支援

bouncycastle 1.32以上版本支援

jsse 6 以上版本支援

bsafe 4.0 以上版本支援

各種版本的ie瀏覽器、火狐瀏覽器、谷歌瀏覽器和蘋果瀏覽器都支援

安卓系統(2.3以上版本)、蘋果ios(5.0以上版本)、window phone(各種版本)都支援

首先將 ecc 證書和 rsa 證書的證書鏈合併, ecc 證書鏈在前, rsa在後, cat chain-ecc.crt chain-rsa.crt > chain-ecc-rsa.crt 開啟apache安裝目錄下conf/extra目錄中的httpd-ssl.conf(或conf目錄中的ssl.conf)檔案

在配置檔案中的

……之間新增或編輯如下配置項

sslprotocol all -sslv2 -sslv3

sslhonorcipherorder on

sslciphersuite ecdhe-ecdsa-aes128-gcm-sha256:high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium

#ecc 將 ecc 證書(不含證書鏈)和 ecc 證書的金鑰檔案放在前

sslcertificatefile /etc/apache2/ssl2015/ecdsa.cert.crt

sslcertificatekeyfile /etc/ssl2015/certs/ecdsa.key

#rsa 將 rsa 證書(不含證書鏈)和 rsa 證書的金鑰檔案放在後

sslcertificatefile /etc/apache2/ssl2015/rsa.cert.crt

sslcertificatekeyfile /etc/apache2/ssl2015/rsa.cert.key

#指定 ecc/rsa 合併後的證書鏈位置

sslcertificatechainfile /etc/apache2/ssl2015/chain-ecc-rsa.crt

如果伺服器的 openssl 版本已經為 1.0.2 以及更新的版本,則用以下方法,ecc 和 rsa 證書要包含證書鏈:

#ecc 指定 ecc 證書檔案位置(證書以及證書鏈合併為乙個檔案為 ecdsa.cert.pem ) 

sslcertificatefile /etc/apache2/ssl2015/ecdsa.cert.pem

sslcertificatekeyfile /etc/ssl2015/certs/ecdsa.key

#rsa 指定 rsa 證書檔案位置(證書以及證書鏈合併為乙個檔案為 rsa.cert.pem )

sslcertificatefile /etc/apache2/ssl2015/rsa.cert.pem

sslcertificatekeyfile /etc/apache2/ssl2015/rsa.cert.key

以上是指定證書的方式,各位根據 openssl 的版本選擇對應的方式,當然這還沒完,下一步要直接指定證書加密方式,確保 ecc 的加密方式要在 rsa 模式的前面,否則 ecc 證書沒法生效了。

nginx 最新的 mainline 版本已經支援了雙證書,推薦使用nginx 1.11.1版本,openssl 版本推薦使用1.0.2h版本。

修改nginx的配置檔案 nginx.conf 配置雙證書:

linux雙顯示卡解決方案

最近由於需要,裝了deepin linux,發現風扇瘋狂轉個不停。更誇張的是,樓主win7風扇吹出的風是冷風,而在linux下面的熱風都有點燙手。找了一下資料,原來是雙顯示卡在作怪 下面就針對比較常見的兩種情況給出解決方案。情況一 顯示卡是i n,即顯示卡是英偉達的顯示卡,那就很簡單,可以直接安裝b...

ArchLinux中證書錯誤解決方案

ca certificates 更新 x509 failed to load system roots and no roots provided.curl error problem with the ssl ca cert path?access rights?本地 ca 證書的處理方式發生了變...

Nginx配置SSL證書出錯解決方案

一 引言 當我們的linux伺服器上當中發布了web專案,有時候需要配置乙個ssl證書,這樣表示你這個 還比較正式哈哈哈。當我把證書 好,把nginx.conf配置好,簡直就是萬事俱備,只欠重啟。結果一重啟,duang 出錯了。nginx emerg unknown directive ssl,就是...