什么是ECC
ECC是Elliptic Curves Cryptography的縮寫,意為橢圓曲線密碼編碼學(xué)。和RSA算法一樣,ECC算法也屬于公開密鑰算法。最初由Koblitz和Miller兩人于1985年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點(diǎn)構(gòu)成Abel加法群上橢圓離散對數(shù)的計(jì)算困難性。
ECC算法的數(shù)學(xué)理論非常深?yuàn)W和復(fù)雜,在工程應(yīng)用中比較難于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對較高,它的破譯或求解難度基本上是指數(shù)級(jí)的,黑客很難用通常使用的暴力破解的方法來破解。RSA算法的特點(diǎn)之一是數(shù)學(xué)原理相對簡單,在工程應(yīng)用中比較易于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對較低。因此,ECC算法的可以用較少的計(jì)算能力提供比RSA加密算法更高的安全強(qiáng)度,有效地解決了“提高安全強(qiáng)度必須增加密鑰長度”的工程實(shí)現(xiàn)問題。
與RSA算法相比,ECC算法擁有突出優(yōu)勢:
1、更適合于移動(dòng)互聯(lián)網(wǎng): ECC加密算法的密鑰長度很短(256位),意味著占用更少的存儲(chǔ)空間,更低的CPU開銷和占用更少的帶寬。隨著越來越多的用戶使用移動(dòng)設(shè)備來完成各種網(wǎng)上活動(dòng),ECC加密算法為移動(dòng)互聯(lián)網(wǎng)安全提供更好的客戶體驗(yàn)。
2、更好的安全性:ECC加密算法提供更強(qiáng)的保護(hù),比目前的其他加密算法能更好的防止攻擊,使你的網(wǎng)站和基礎(chǔ)設(shè)施比用傳統(tǒng)的加密方法更安全,為移動(dòng)互聯(lián)網(wǎng)安全提供更好的保障。
3、更好的性能: ECC加密算法需要較短的密鑰長度來提供更好的安全,例如,256位的ECC密鑰加密強(qiáng)度等同于3072位RSA密鑰的水平(目前普通使用的RSA密鑰長度是2048位)。其結(jié)果是你以更低的計(jì)算能力代價(jià)得到了更高的安全性。經(jīng)國外有關(guān)權(quán)威機(jī)構(gòu)測試,在Apache和IIS服務(wù)器采用ECC算法,Web服務(wù)器響應(yīng)時(shí)間比RSA快十幾倍。
4、更大的IT投資回報(bào):ECC可幫助保護(hù)您的基礎(chǔ)設(shè)施的投資,提供更高的安全性,并快速處理爆炸增長的移動(dòng)設(shè)備的安全連接。 ECC的密鑰長度增加速度比其他的加密方法都慢(一般按128位增長,而 RSA則是倍數(shù)增長,如:1024 -2048--4096),將延長您現(xiàn)有硬件的使用壽命,讓您的投資帶來更大的回報(bào)。
ECC加密算法的通用性不斷增強(qiáng)
ECC加密算法自1985年提出,因其工程應(yīng)用中難度較高,到2005年才在各種操作系統(tǒng)中獲得廣泛支持,在全球安全市場需求的刺激下,ECC算法將逐步取代RSA算法,成為主流加密算法。目前,全球各大CA都已經(jīng)陸續(xù)開始為用戶簽發(fā)采用ECC加密算法的各種證書.ECC加密算法以后支持所有操作系統(tǒng)、所有瀏覽器和各種移動(dò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(各種版本)都支持
北京天威誠信電子商務(wù)服務(wù)有限公司是國家授牌CA認(rèn)證機(jī)構(gòu);專業(yè)從事數(shù)字證書等技術(shù)和產(chǎn)品服務(wù),服務(wù)于阿里巴巴、百度、騰訊、京東、聯(lián)想、金山、中行、工行、建行等全行業(yè)超95%的大客戶,覆蓋超10億網(wǎng)民,擁有豐富的應(yīng)對和解決各種復(fù)雜及突發(fā)情況的專業(yè)服務(wù)支持團(tuán)隊(duì),可以為用戶提供優(yōu)質(zhì)的本地化服務(wù)與技術(shù)支持。
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)文件
在配置文件中的 …… 之間添加或編輯如下配置項(xiàng)
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
如果服務(wù)器的 OpenSSL 版本已經(jīng)為 1.0.2 以及更新的版本,則用以下方法,ecc 和 rsa 證書要包含證書鏈:
#ECC 指定 ecc 證書文件位置(證書以及證書鏈合并為一個(gè)文件為 ecdsa.cert.pem )
SSLCertificateFile /etc/apache2/SSL2015/ecdsa.cert.pem
SSLCertificateKeyFile /etc/SSL2015/certs/ecdsa.key
#RSA 指定 rsa 證書文件位置(證書以及證書鏈合并為一個(gè)文件為 rsa.cert.pem )
SSLCertificateFile /etc/apache2/SSL2015/rsa.cert.pem
SSLCertificateKeyFile /etc/apache2/SSL2015/rsa.cert.key
以上是指定證書的方式,各位根據(jù) OpenSSL 的版本選擇對應(yīng)的方式,當(dāng)然這還沒完,下一步要直接指定證書加密方式,確保 ecc 的加密方式要在 rsa 模式的前面,否則 ecc 證書沒法生效了。
Nginx配置方法
nginx 最新的 mainline 版本已經(jīng)支持了雙證書,推薦使用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è)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!