什么是ECC
ECC是Elliptic Curves Cryptography的縮寫,意為橢圓曲線密碼編碼學。和RSA算法一樣,ECC算法也屬于公開密鑰算法。最初由Koblitz和Miller兩人于1985年提出,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。
ECC算法的數學理論非常深奧和復雜,在工程應用中比較難于實現,但它的單位安全強度相對較高,它的破譯或求解難度基本上是指數級的,黑客很難用通常使用的暴力破解的方法來破解。RSA算法的特點之一是數學原理相對簡單,在工程應用中比較易于實現,但它的單位安全強度相對較低。因此,ECC算法的可以用較少的計算能力提供比RSA加密算法更高的安全強度,有效地解決了“提高安全強度必須增加密鑰長度”的工程實現問題。
與RSA算法相比,ECC算法擁有突出優(yōu)勢:
1、更適合于移動互聯(lián)網: ECC加密算法的密鑰長度很短(256位),意味著占用更少的存儲空間,更低的CPU開銷和占用更少的帶寬。隨著越來越多的用戶使用移動設備來完成各種網上活動,ECC加密算法為移動互聯(lián)網安全提供更好的客戶體驗。
2、更好的安全性:ECC加密算法提供更強的保護,比目前的其他加密算法能更好的防止攻擊,使你的網站和基礎設施比用傳統(tǒng)的加密方法更安全,為移動互聯(lián)網安全提供更好的保障。
3、更好的性能: ECC加密算法需要較短的密鑰長度來提供更好的安全,例如,256位的ECC密鑰加密強度等同于3072位RSA密鑰的水平(目前普通使用的RSA密鑰長度是2048位)。其結果是你以更低的計算能力代價得到了更高的安全性。經國外有關權威機構測試,在Apache和IIS服務器采用ECC算法,Web服務器響應時間比RSA快十幾倍。
4、更大的IT投資回報:ECC可幫助保護您的基礎設施的投資,提供更高的安全性,并快速處理爆炸增長的移動設備的安全連接。 ECC的密鑰長度增加速度比其他的加密方法都慢(一般按128位增長,而 RSA則是倍數增長,如:1024 -2048--4096),將延長您現有硬件的使用壽命,讓您的投資帶來更大的回報。
ECC加密算法的通用性不斷增強
ECC加密算法自1985年提出,因其工程應用中難度較高,到2005年才在各種操作系統(tǒng)中獲得廣泛支持,在全球安全市場需求的刺激下,ECC算法將逐步取代RSA算法,成為主流加密算法。目前,全球各大CA都已經陸續(xù)開始為用戶簽發(fā)采用ECC加密算法的各種證書.ECC加密算法以后支持所有操作系統(tǒng)、所有瀏覽器和各種移動終端,主要有:
Mozilla NSS 3.11以上版本支持
OpenSSL 1.0以上版本支持
微軟CryptoAPI Vista/Win7/Win8都支持
BouncyCastle 1.32以上版本支持
JSSE 6 以上版本支持
BSAFE 4.0 以上版本支持
各種版本的IE瀏覽器、火狐瀏覽器、谷歌瀏覽器和蘋果瀏覽器都支持
安卓系統(tǒng)(2.3以上版本)、蘋果IOS(5.0以上版本)、Window Phone(各種版本)都支持
北京天威誠信電子商務服務有限公司是國家授牌CA認證機構;專業(yè)從事數字證書等技術和產品服務,服務于阿里巴巴、百度、騰訊、京東、聯(lián)想、金山、中行、工行、建行等全行業(yè)超95%的大客戶,覆蓋超10億網民,擁有豐富的應對和解決各種復雜及突發(fā)情況的專業(yè)服務支持團隊,可以為用戶提供優(yōu)質的本地化服務與技術支持。
Apache配置方法
首先將 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配置方法
nginx 最新的 mainline 版本已經支持了雙證書,推薦使用nginx 1.11.1版本,openssl 版本推薦使用1.0.2h版本。
修改nginx的配置文件 nginx.conf 配置雙證書:
ssl_certificate ssl/ecc/server.pem;
ssl_certificate_key ssl/ecc/server.key;
ssl_certificate ssl/rsa/server.pem;
ssl_certificate_key ssl/rsa/server.key;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!