成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你所知道的PHP中的公鑰加密是錯(cuò)誤的

安全 漏洞
我們的安全團(tuán)隊(duì)確認(rèn)了 CVE-2015-7503漏洞,又名ZF2015-10,這是一個(gè)在使用RSA過程中,出現(xiàn)的功能上的漏洞,存在于Zend框架的密碼庫中。

概述

去年,我們的安全團(tuán)隊(duì)確認(rèn)了 CVE-2015-7503漏洞,又名ZF2015-10,這是一個(gè)在使用RSA過程中,出現(xiàn)的功能上的漏洞,存在于Zend框架的密碼庫中。

[[179847]]

這個(gè)實(shí)際漏洞(采用PKCS1v1.5 填充方法的RSA密碼“填充預(yù)言”漏洞)最初是由Daniel Bleichenbacher在1998年發(fā)布出來的。“填充預(yù)言”漏洞允許攻擊者用一個(gè)加密的消息,并多次發(fā)送修改過的密文到服務(wù)器(每一次得到一個(gè)填充錯(cuò)誤的標(biāo)識),根據(jù)返回的錯(cuò)誤標(biāo)識,有可能恢復(fù)出原始信息。

人們可能希望,任何允許攻擊者還原出原始信息的漏洞(“填充預(yù)言”已經(jīng)被發(fā)現(xiàn)了超過十六年),開發(fā)者都應(yīng)該有所了解,并減小漏洞利用的可能性。

很遺憾,當(dāng)我們審察PHP軟件時(shí)(包括開源的和專用的),我們發(fā)現(xiàn),即使在2016年編寫的應(yīng)用層加密協(xié)議中,仍然存在這種漏洞,可以通過這種方法去攻擊。

我們相信造成這種結(jié)果的因素主要有兩個(gè)方面:

1.大多數(shù)開發(fā)人員對如何在所有語言中安全的實(shí)現(xiàn)公鑰加密了解不夠。

2.PHP的OpenSSL 擴(kuò)展在默認(rèn)配置下是不安全的,但是在實(shí)際操作中,沒有人會(huì)去修改默認(rèn)配置。

快速解決方案:使用安全的PHP公鑰加密庫

如果你對這么多的“為什么不安全”不感興趣,你可以直接看這個(gè):“為你的PHP項(xiàng)目選擇一個(gè)正確的加密庫”。

RSA是如何變壞的

當(dāng)涉及到應(yīng)用層加密,使用RSA簡直是一個(gè)錯(cuò)誤。這并不意味著你的應(yīng)該程序是完全失敗的。無論如何,你必須避免很多RSA的實(shí)施缺陷(有些是明示的,有些不明顯)。讓我們看一看一些PHP開發(fā)人員可能會(huì)遇到的情況。

1.默認(rèn)安全配置會(huì)讓每個(gè)人都上當(dāng)

在PHP中,大多數(shù)的RSA在實(shí)施過程中都會(huì)用到下面的兩個(gè)函數(shù):

openssl_public_encrypt()

openssl_private_encrypt()

來看一個(gè)這兩個(gè)函數(shù)的原型,有一個(gè)默認(rèn)配置:

RSA在實(shí)施過程中用到的兩個(gè)函數(shù)的默認(rèn)值

OPENSSL_PKCS1_PADDING 常量告訴OpenSSL 擴(kuò)展:”我們想用PKCS1填充方法“。但是我們之前已經(jīng)說過了,采用PKCS1v1.5 填充方法的RSA密碼,存在填充預(yù)言的弱點(diǎn),這一點(diǎn)從1998年就已經(jīng)被公開了。由于攻擊者為了恢復(fù)明文,可能需要一百萬個(gè)消息的攻擊成本,因此這種攻擊更多的被普遍稱為 "百萬消息攻擊"。

解決方案是無論你什么時(shí)候使用這兩個(gè)函數(shù),都需要使用OPENSSL_PKCS1_OAEP_PADDING常量。這個(gè)常量會(huì)強(qiáng)制用OAEP填充方法代替不安全的PKCS1 V1.5填充方法。

在我們的體會(huì)中,實(shí)際上沒有人這么做(除非在我們團(tuán)隊(duì)中有某個(gè)人幫它指了出來):

Zend\Crypt didn't

Sikker (PHP security library) didn't

Pikirasa (PHP cryptography library) didn't

Minds (social network allegedly backed by "Anonymous") didn't

甚至是有經(jīng)驗(yàn)加密開發(fā)人員,在使用RSA加密時(shí),常常都會(huì)忘記使用OAEP。

因此,如果你需要強(qiáng)制使用公鑰算法(不論作為一個(gè)開發(fā)者,還是一個(gè)滲透測試者),并且當(dāng)你們提到RSA算法,還談?wù)撝?rdquo;2048bit密鑰夠不夠?或者需不需要用4096bit?“時(shí),請先檢查你使用的填充方法吧。你很有可能只需要幾千條信息就能恢復(fù)出明文,從而完全將應(yīng)用程序的安全性作廢。

2.直接使用RSA加密的危險(xiǎn)性

如果你已經(jīng)閱讀了前面的內(nèi)容,并且已經(jīng)思考過,”那好,如果我僅僅記著使用OAEP,我就可以不受阻礙,直接使用RSA加密任何信息嗎?”,沒有這么快,你最好不要用RSA加密長信息。

當(dāng)面對加密長信息時(shí),大多數(shù)開發(fā)者很聰明:他們會(huì)將信息分割成214-byte的信息塊(對于2048bit的密鑰),并且對每塊分別進(jìn)行加密,可以簡單的將RSA的這種模式稱為ECB模式。

如果你這樣做,攻擊者可能不會(huì)去恢復(fù)出你的明文,但是正如之前所說過的,RSA很慢,罪犯可能會(huì)充分利用這個(gè)特點(diǎn),去發(fā)動(dòng)DDOS攻擊,從而很容易的擴(kuò)大DDOS的影響,并且對RSA發(fā)動(dòng)DDOS攻擊,不需要用明顯的攻擊方法,你可能只需要用復(fù)制、重新排序或刪除214字節(jié)塊的方法,而不是創(chuàng)建一個(gè)解密錯(cuò)誤。

使用混合密碼體制

最好的實(shí)現(xiàn)公鑰密碼的方法是建立一個(gè)混合的加密體制。結(jié)合對稱密碼和非對稱密碼。這樣做有如下幾個(gè)好處:

效率高:對稱密碼加密速度比非對稱密碼快很多

適用性:對信息長度沒有實(shí)際限制

安全性:請看來面

1.混合RSA+AES

結(jié)合RSA和AES通常很有必要:

(1)用對稱密鑰,使用對稱密碼加密消息。

(2)使用公鑰密碼加密(1)中的對稱密鑰,從而讓只有私鑰的一方才可以解密出對稱密鑰,并使用它。

Zend\Crypt在3.1.0版本以后,就已經(jīng)支付混合RSA-AES的加密體制了,并采用了EasyRSA庫。在Zend框架說明文檔中,對它采用的混合加密方案的工作原理理解的很好。

由于現(xiàn)有的AES密鑰大小一定,你需要加密的數(shù)據(jù)只有16、24、或者32byte,這遠(yuǎn)小于2048bit RSA最大允許的214bytes。實(shí)際的數(shù)據(jù)加密采用的是CBC模式的AES,或者是CTR模式的AES。對于大多數(shù)應(yīng)用程序,這種加密對消息長度沒有實(shí)踐的上限。

2.混合ECDH+Xsalsa20-Poly1305

Libsodium 加密庫使用基于橢圓曲線的DH密鑰交換算法,代替RSA,用于協(xié)商共享密鑰,該共享密鑰被xsalsa20-poly1305用于消息加密和密文鑒定中。

相關(guān)功能為crypto_box()。

當(dāng)你想用接收者的公鑰加密數(shù)據(jù)時(shí)(即發(fā)送者無法解密),Libsodium 的另一功能是對于每條消息,產(chǎn)生一個(gè)隨機(jī)的公私密鑰對,并將公鑰附在密文后面,名為 crypto_box_seal()。

針對RSA的模數(shù)攻擊是一個(gè)長期的威脅

RSA的安全性基于大數(shù)分解的困難性,然而,在不久的將來,這一安全保證會(huì)面對兩個(gè)主要威脅:

1.改進(jìn)的攻擊算法有可能比“通用數(shù)域篩法”更快的從公鑰中恢復(fù)出私鑰。對橢圓曲線密碼體制沒有效果。

2.量子計(jì)算機(jī),這貨太強(qiáng)大,連橢圓曲線密碼體制都能破。

目前認(rèn)為,一個(gè)老練的攻擊者,有可能在短短幾個(gè)月的時(shí)間里破解出1024位RSA,但是2048bit RSA仍然是安全的,然而,如果有一種方法能突破2048位RSA,那么這種方法對4096位RSA可能也有效。

如果你打算在2016年將加密技術(shù)應(yīng)用到一個(gè)新的應(yīng)用程序中,有可能突破RSA的那些迫在眉睫眉睫的威脅(真正的問題是,這種突破方法對ECDH或ECDSA是不是適用)絕對應(yīng)該被考慮。實(shí)際上,在未來,你最好考慮不要用RSA、DSA、或者傳統(tǒng)的Diffie-Hellman算法。

總結(jié)

如果你需要在你的PHP應(yīng)用中添加公鑰加密算法:

1.不要用RSA。我們甚至沒有講到數(shù)字簽名,它同樣也面臨著很多尚未解決的復(fù)雜問題(細(xì)微的偽造攻擊,假冒安全證明等等)。

2.你果你必須用RSA,不要直接用RSA。最好使用混合的加密體制,結(jié)合RSA和下面的一個(gè):

AES-256-GCM

AES-256-CTR + HMAC-SHA256 (in an Encrypt then MAC construction)

3.確保你用了OAEP,而不是PKCS1 V1.5填充。否則,這肯定是一個(gè)漏洞。

責(zé)任編輯:趙寧寧 來源: 安全客
相關(guān)推薦

2020-11-19 07:49:24

JS變量作用域

2013-04-25 09:12:36

2017-01-15 11:38:24

2017-01-15 13:37:05

2019-12-11 16:56:37

HTTPS對稱加密Java

2013-06-28 14:09:33

PHP庫

2022-12-13 08:00:39

2018-11-28 11:20:09

區(qū)塊鏈中本聰分布式

2020-03-23 08:15:43

JavaScriptError對象函數(shù)

2024-01-08 08:45:07

Spring容器Bean

2019-02-18 14:18:04

2019-06-04 05:00:27

公鑰加密工控安全網(wǎng)絡(luò)安全

2014-11-03 13:58:16

CSSWeb

2011-05-19 10:39:26

2012-12-21 16:57:37

手機(jī)安全個(gè)人信息泄漏個(gè)人信息安全

2024-04-10 10:15:16

監(jiān)聽

2018-01-10 08:27:00

2022-09-22 14:55:31

前端JavaScripthis

2022-09-26 13:10:17

JavaScriptthis

2021-07-26 23:57:48

Vuex模塊項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费黄色录像片 | 91精品国产综合久久久久 | 亚洲视频在线观看 | 婷婷在线免费 | 精品国产99 | 久久久久国色av免费观看性色 | 亚洲一区综合 | 91视频国产区 | 韩国av网站在线观看 | 一级片网址| 国产激情在线观看视频 | 99这里只有精品 | 男女午夜激情视频 | 成人在线一区二区 | 国产精品毛片 | 国产精品久久久久久久久久久久冷 | 羞羞视频在线观免费观看 | 日韩久久成人 | 日韩综合| 久久综合久| 亚洲精品大片 | 欧美精品综合在线 | 亚洲免费在线 | 亚洲国产在 | 999久久 | 中文字幕国产 | 四虎影院免费在线 | 91国内精精品久久久久久婷婷 | 欧美激情综合 | 欧美日韩高清在线一区 | 91精品国产91久久久久福利 | 成人在线免费视频 | 欧美a级成人淫片免费看 | 国产精品99久久久久久人 | 日本在线中文 | 亚洲精品一二区 | 亚洲a一区二区 | 国产目拍亚洲精品99久久精品 | 中文字幕在线视频观看 | 精品乱子伦一区二区三区 | 日韩电影在线一区 |