999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSON的RSA-PKCS#1加密算法的安全性研究*

2018-01-29 01:36:46建,蔣琳,廖清,王
關(guān)鍵詞:利用

何 建,蔣 琳,廖 清,王 軒

(哈爾濱工業(yè)大學(xué)深圳研究生院 計算機科學(xué)與技術(shù)學(xué)院,廣東 深圳 518055)

0 引言

互聯(lián)網(wǎng)中數(shù)據(jù)的安全性可以分為數(shù)據(jù)在傳輸過程中的安全與數(shù)據(jù)在端點存儲的安全兩類[1]。通常情況下,互聯(lián)網(wǎng)中的數(shù)據(jù)在傳輸過程中是通過SSL/TLS協(xié)議來保證其安全性的。但是,SSL/TLS協(xié)議只能夠保證數(shù)據(jù)在端到端的傳輸過程中的安全性,并不能保證數(shù)據(jù)在端點的存儲是安全的[2]。因為數(shù)據(jù)被傳輸?shù)蕉它c后就要經(jīng)過SSL/TLS協(xié)議解密成明文,然后以明文形式存儲于端點。這樣,如果端點是不可信的,那么,就意味著數(shù)據(jù)完全暴露在危險之下,有極大的可能被惡意的攻擊者利用?;贘SON的加密標準的提出,恰好可以解決上述存在的安全問題。基于JSON的加密標準是針對應(yīng)用層數(shù)據(jù)進行的加密操作,可以將敏感數(shù)據(jù)的所有權(quán)和控制權(quán)牢牢地掌握在用戶自己的手中。

基于JSON的RSA-PKCS#1加密算法是基于JSON的加密標準中的一種加密算法,且被作為第一推薦算法使用。它利用JSON的特有結(jié)構(gòu),對應(yīng)用層數(shù)據(jù)進行RSA加密運算生成密文,并最終生成符合JSON結(jié)構(gòu)特點的序列。它不依賴任何解析器可以獨立完成數(shù)據(jù)的解析。但因為其在加密明文前需要進行符合公鑰密碼學(xué)標準的填充預(yù)處理[3],而此填充預(yù)處理因為不夠充分的安全考慮,使得攻擊者可以利用選擇密文攻擊破解密文。

目前針對基于JSON的安全算法的研究包括針對JSON結(jié)構(gòu)的簽名繞過攻擊[4]和利用JSON結(jié)構(gòu)漏洞的Web劫持攻擊[5]。另外,還有若干針對SSL/TLS協(xié)議、XML協(xié)議等實施選擇密文攻擊的研究[6-8]。結(jié)合國內(nèi)外研究者的研究經(jīng)驗,本文展開針對基于JSON的RSA-PKCS#1加密算法的選擇密文攻擊的研究。由于JSON協(xié)議具有輕量級、自解析等特點,使得它成為了應(yīng)用開發(fā)者數(shù)據(jù)交換格式的首選,其未來的前景也更加令人期待,所以,針對基于JSON的RSA-PKCS#1加密算法的安全性研究具有重要的現(xiàn)實意義。

1 預(yù)備知識

1.1 JSON的基本概念

JavaScript對象標記(JavaScript Object Notation, JSON)是一種輕量級的數(shù)據(jù)交換格式。它采用完全不依賴于計算機程序語言的文本格式來存儲和表示數(shù)據(jù)。簡單的結(jié)構(gòu)使得 JSON 成為數(shù)據(jù)交換類型語言中的首選。JSON方便人們編寫,同時也易于機器的解析,可以有效地提升網(wǎng)絡(luò)傳輸效率[9]。

在JSON結(jié)構(gòu)當中,其整體結(jié)構(gòu)需要用大括號“{}”括起來,數(shù)據(jù)結(jié)構(gòu)表示為鍵值對的形式。在數(shù)組結(jié)構(gòu)當中,其整體結(jié)構(gòu)需要用中括號“[]”括起來。

表1為一個使用JSON結(jié)構(gòu)表示的事物,通過屬性-值的方式來對此事物進行描述。

表1 使用JSON結(jié)構(gòu)描述事物

目前,絕大多數(shù)的計算機語言都已經(jīng)支持JSON,包括ASP、C/C++、Java、JavaScript、Python以及Go語言等。同時,目前JSON的應(yīng)用場景也非常豐富,包括Apache CXF、OpenID Connect等都實現(xiàn)了通過JSON進行數(shù)據(jù)傳輸?shù)墓δ堋?/p>

1.2 基于JSON的RSA-PKCS#1加密算法

針對表1中的內(nèi)容,使用基于JSON的RSA-PKCS#1加密算法對其加密生成密文。同時分別對header、payload以及生成的密文進行base64url編碼,并用“.”進行連接,得到的結(jié)果如表2所示。

表2 基于JSON的RSA-PKCS#1加密的結(jié)果

結(jié)果按照順序依次為:

(1)header:用于標注使用的加密算法,也可能會用于存儲加密密鑰,或其他與加密密鑰相關(guān)的信息。

(2)payload:需要加密的內(nèi)容,加密算法由header中的“alg”所指定,本文中為RSA1_5(RSA-PKCS#1)。

(3)ciphertext:加密生成的密文。

1.3 選擇密文攻擊

在針對密碼學(xué)安全分析的研究當中,選擇密文攻擊指的是一種攻擊方式。選擇密文攻擊要求攻擊者掌握對解密機的訪問權(quán)限,攻擊者具有一定的能力來獲取或者構(gòu)造一定數(shù)量的密文,然后可以利用解密機對這些密文進行解密,通過一定的運算最終可以在未獲取密鑰的情況下破解出密文所對應(yīng)的明文,此攻擊被稱為選擇密文攻擊。

與選擇密文攻擊密切相關(guān)的一個問題是密文的可延展性。例如,如果一個加密方案擁有這樣一個屬性:給定未知消息m的密文c,可得到未知消息m′的密文c′,其中m′和m具有某種已知的關(guān)聯(lián)。例如給定m的密文c,可以構(gòu)造2m對應(yīng)的密文c′,c′=X*c,其中X表示利用密文的可延展性所產(chǎn)生的與2有關(guān)系的中間變量。我們稱符合上例中的特性為可延展性。RSA加密算法具有此類可延展性。

利用選擇密文攻擊,惡意攻擊者可以通過事先任意搜集或構(gòu)造一定數(shù)量的密文,讓這些密文透過被攻擊的加密算法進行解密運算,然后利用某些規(guī)則可以在未破解出加密算法私鑰的情況下,獲取到密文對應(yīng)的明文。

2 基于JSON的RSA-PKCS#1加密算法的選擇密文攻擊

在針對基于JSON的RSA-PKCS#1加密算法的選擇密文攻擊的場景中,攻擊者的目的就是在不知道RSA算法私鑰的情況下,成功破解出由RSA加密的密文c。為了達到這一目的,攻擊者利用選擇密文攻擊原理,通過不斷地調(diào)整中間變量值s來調(diào)整密文c的值,并利用前一次服務(wù)器的反饋信息調(diào)整下一次的密文c′,c″,…,再繼續(xù)進行攻擊,如此過程循環(huán),直到破解出密文c的值。

選擇性密文攻擊具體可分為以下兩個步驟:

(1)驗證函數(shù)庫是否存在可攻擊的漏洞

為了驗證本攻擊所針對的漏洞是否存在,構(gòu)造多個攻擊向量,這些攻擊向量都是密文消息,但是這些密文消息都故意在某一部分不符合PKCS#1填充規(guī)則,比如不加空字節(jié)、在Padding部分中加入空字節(jié)、前兩個字節(jié)不是0x00和0x02等,其具體內(nèi)容如表3所示。

表3 基于JSON的PKCS#1加密算法的攻擊向量

攻擊者利用上述攻擊向量,構(gòu)造假的密文發(fā)送給服務(wù)器,然后通過服務(wù)器的返回消息判斷是否存在漏洞。

(2)利用找到的利用點實施選擇密文攻擊

當攻擊者確定服務(wù)器存在漏洞后,將會進行選擇密文攻擊。

現(xiàn)假設(shè)某攻擊者截獲一條使用RSA-PKCS#1算法加密的數(shù)據(jù)c,并想要破解出其對應(yīng)明文m。已知m與c的關(guān)系為m=cd(modn)。此時,攻擊者隨機生成一個整數(shù)s,使得:

c'=cse(modn)

(1)

由RSA的可延展性,可以得到:

m'=ms(modn)

(2)

攻擊者將此c'發(fā)送至目標服務(wù)器。目標服務(wù)器先對其進行RSA解密,之后再對解密得到的數(shù)據(jù)進行PKCS#1編碼檢驗。如果服務(wù)器向攻擊者返回消息稱c'符合PKCS#1標準,則攻擊者可以獲得到對攻擊有利消息,即ms的頭兩個字節(jié)為00和02?,F(xiàn)設(shè)輔助變量B:

B=28(k-2)

(3)

其中,k為n的字節(jié)長度。

如果ms符合PKCS#1標準,則可以得到如下關(guān)系:

2B≤ms(modn)<3B

(4)

進一步,攻擊者可以通過選取恰當?shù)膕值,不斷地縮小m的取值范圍,最終將范圍縮小至一個區(qū)間,此時即可得出m的值。攻擊的實施過程如圖1所示。

圖1 選擇密文攻擊圖解

攻擊算法為,攻擊者需要按照上述格式構(gòu)造基于JSON的解密請求,并且通過選擇密文攻擊的方法構(gòu)造攻擊請求消息,發(fā)送給服務(wù)器。具體實施如算法1。

算法1:基于JSON的RSA-PKCS#1加密算法的選擇密文攻擊輸入:給定密文c值、RSA-PKCS#1加密算法公鑰(n,e)輸出:密文c值所對應(yīng)的明文m值步驟:Step1:盲試。對于給定的密文c值,隨機選取不同的s0,檢查c(s0)e(modn)是否符合PKCS#1標準。知道第一次成功選取到符合要求的s0,此時我們可以得到以下關(guān)系式c0←c(s0)e(modn)M0←{[2B,3B-1]}i←1Step2:尋找符合PKCS#1標準的消息。Step2.a(chǎn):初級尋找階段。如果i=1,然后取最小的s1,使得s1?n3B,使得c0(s1)e(modn)符合PKCS#1標準Step2.b:尋找至只剩一個間隔階段。如果i>1,同時Mi-1集合中區(qū)間個數(shù)大于1,則需要重新選取si值,使得si?si-1,同時si使得c0(si)e(modn)符合PKCS#1標準Step2.c:間隔內(nèi)尋找。當Mi集合中區(qū)間個數(shù)為1時(假設(shè)Mi-1={[a,b]}),然后選取較小的si,ri值,且滿足以下關(guān)系式ri?2bsi-1-2Bn2B+rinb£si<3B+rina根據(jù)上述兩個不等式,知道找到si滿足c0(si)e(modn)符合PKCS#1標準Step3:縮小尋找范圍。有上step2.c找到恰當?shù)膕i值,根據(jù)此si計算Mi集合Mi←∪{[maxa,2B+rnsi(),min(b,3B-1+rnsi]}foralla,b[]∈Mi-1andasi-3B+1n?si

3 結(jié)果及加固方案

3.1 結(jié)果

利用上述攻擊算法,實現(xiàn)了攻擊程序。本攻擊針對一個提供RSA解密服務(wù)的服務(wù)器實施攻擊。使用RSA-PKCS#1算法加密一則消息“My666”,生成密文,作為HTTP的Payload值發(fā)送至服務(wù)器,然后構(gòu)造用于測試服務(wù)器是否存在漏洞的攻擊向量,并發(fā)送給服務(wù)器。

攻擊程序利用攻擊向量測試的結(jié)果實施選擇密文攻擊,經(jīng)過多次的服務(wù)器訪問,最后可以破解出RSA算法加密的密文,結(jié)果如圖2所示。

圖2 針對基于JSON的RSA-PKCS#1加密算法的攻擊結(jié)果

通過使用不同長度的RSA密鑰值,計算成功破解一條密文的攻擊實施次數(shù)的最小值與平均值,具體情況如表4所示。

表4 基于JSON的RSA-PKCS#1選擇密文攻擊攻擊結(jié)果

由表4可以得出結(jié)論:隨著密鑰長度的增加,導(dǎo)致破解一條基于JSON的RSA-PKCS#1加密密文的計算次數(shù)也隨之增加。這是因為密鑰長度決定明文長度,即明文的可能取值的范圍增大,因此導(dǎo)致中間變量s的選取空間增大,增大了訪問服務(wù)器所用的次數(shù)。

在本機為Linux操作系統(tǒng),3.2 GHz的Intel i5處理器的計算能力下,破解一條1 024 bit的基于JSON的RSA-PKCS#1密文大概需要10 000 s。

3.2 加固方案

傳統(tǒng)的隨機填充加固方案中[10],攻擊者構(gòu)造假的密文需要利用前一次攻擊服務(wù)器反饋回來的消息,所以,如果可以使得攻擊者得到的反饋消息無差異化,即當服務(wù)器檢查出請求消息不符合PKCS#1標準時,也假裝此請求符合PKCS#1標準,正常進行后續(xù)的通信流程。傳統(tǒng)加固流程可以應(yīng)對的攻擊者攻擊方式如圖3所示。

圖3 隨機填充方案可以阻止的攻擊方式

不同的是,服務(wù)器不使用真實明文作為返回值,而是隨機生成一個隨機數(shù)作為替代值返回給攻擊者。這樣來,攻擊者就無法利用構(gòu)造的假消息進行選擇密文攻擊。

如果攻擊者使用含有相同密文值的攻擊請求再次向服務(wù)器發(fā)起訪問,因為每次調(diào)用隨機填充方法時,所產(chǎn)生的隨機數(shù)都不相同,那么通過比對兩次返回的結(jié)果,如果值不相同則可斷定服務(wù)器識別出了攻擊并使用了隨機數(shù)替代了真實明文。攻擊者由此可知,此次向服務(wù)器發(fā)起訪問的攻擊請求中所對應(yīng)的明文值符合PKCS#1標準,因此獲得了對攻擊有利的反饋消息,即攻擊漏洞。改進的攻擊流程具體如圖4所示,此情況下傳統(tǒng)的基于隨機填充的加固方式不能夠抵抗攻擊。

圖4 改進的選擇密文攻擊

針對此種情況,采用以隨機數(shù)替代密鑰值的方式已經(jīng)不能避免選擇密文攻擊,所以提出使用固定值代替隨機數(shù),可以使用服務(wù)器的公鑰值作為替代真實明文的數(shù)據(jù)進行返回。此時,攻擊者兩次的攻擊請求因為都使用了相同的固定值代替明文作為返回消息,攻擊者并不能識別出所發(fā)送的請求是否符合PKCS#1標準,因此不能繼續(xù)進行選擇密文攻擊。所以采用固定值而非隨機填充方式的加固方案,在避免攻擊者實施選擇密文攻擊方面更具實用意義,可以抵抗攻擊者更復(fù)雜的攻擊手段。

4 結(jié)論

為提升基于JSON的RSA-PKCS#1加密算法的安全性,本文通過分析選擇密文攻擊的原理與漏洞存在原因,結(jié)合基于JSON結(jié)構(gòu)的加密算法的通信流程,提出基于JSON的RSA-PKCS#1加密算法的選擇密文攻擊,并通過實驗證明漏洞存在。同時針對此漏洞,本文提出了一種改進的加固方案,通過分析傳統(tǒng)的隨機填充加固方案的弊端,提出使用固定值代替隨機數(shù)來作為服務(wù)器返回值的改進加固方案,以使得服務(wù)器可以無差別地處理攻擊請求,避免了此類攻擊的威脅。

[1] 馮登國, 張敏, 李昊. 大數(shù)據(jù)安全與隱私保護[J]. 計算機學(xué)報, 2014, 37(1): 246-258.

[2] DIERKS T. The transport layer security (TLS) protocol version 1.2[J]. Network Working Group, 2008: 17-30.

[3] KALISKI B. PKCS# 1: RSA encryption version 1.5[J]. RSA Laboratories Ease, 1998: 4-20.

[4] ALVARO M, OLEKSANDR M. Friday the 13th: JSON attac-ks [C]. Proceedings of the Black Hat 2017 Conference, New York, 2017: 82-127.

[5] DAVID R. The security risks of Web 2.0[J]. Technical Report, Defcon, 2009: 25-32.

[6] MEYER C. Revisiting SSL/TLS implementations: new bleichenbacher side channels and attacks[C].USENIX Security Symposium, New York, 2014: 733-748.

[7] JAGER T, SCHINZEL S, SOMOROVSKY J. Bleichenbacher’s

attack strikes again: breaking PKCS# 1 v1.5 in XML encryption[J]. Computer Security ESORICS, 2012: 752-769.

[8] BLEICHENBACHER D. Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS#1[C].Advances in Cryptology CRYPTO'98. Springer Berlin/Heidelberg, 1998: 1-12.

[9] BRAY T. The javascript object notation (JSON) data interchange format[J]. Internet Engineering Task Force, 2014:45-67.

[10] RESCORLA E. Preventing the million message attack on cryptographic message syntax[J]. Network Working Group, 2002: 12-17.

猜你喜歡
利用
利用min{a,b}的積分表示解決一類絕對值不等式
利用倒推破難點
如何利用基本不等式比較大小
利用一半進行移多補少
利用口訣算除法
利用數(shù)的分解來思考
Roommate is necessary when far away from home
利用
回收木再利用——Piet Hein Eek
低丘緩坡未利用地的開發(fā)利用探討
河北遙感(2015年4期)2015-07-18 11:05:06
主站蜘蛛池模板: a网站在线观看| 久久精品aⅴ无码中文字幕 | 国产成人狂喷潮在线观看2345| 四虎永久在线精品国产免费| 亚洲AV人人澡人人双人| 999国内精品久久免费视频| 欧美国产三级| 欧美另类视频一区二区三区| 国产久草视频| 毛片久久网站小视频| 狠狠久久综合伊人不卡| 一级毛片在线播放免费观看| 最新国产成人剧情在线播放| 国产欧美视频在线观看| 99久视频| 国产午夜一级毛片| 99久久国产自偷自偷免费一区| 999在线免费视频| 国内精品久久人妻无码大片高| 国产一级毛片网站| 不卡无码网| 午夜成人在线视频| 国产迷奸在线看| 成人伊人色一区二区三区| 亚洲日韩高清在线亚洲专区| 91精品国产综合久久香蕉922| 日韩视频免费| 国产精品亚洲欧美日韩久久| 毛片视频网址| 欧美黄网站免费观看| 99精品视频播放| 日本www色视频| 亚洲日韩久久综合中文字幕| 国产毛片高清一级国语| 日韩AV手机在线观看蜜芽| 国内黄色精品| 青青草91视频| 国产麻豆永久视频| 国产自在自线午夜精品视频| 色AV色 综合网站| 国产日韩久久久久无码精品| 无码一区中文字幕| 久久伊人操| 久久天天躁夜夜躁狠狠| 国语少妇高潮| 成人久久精品一区二区三区| 国产精品女熟高潮视频| 欧美啪啪一区| 亚洲国产精品日韩专区AV| 囯产av无码片毛片一级| 亚洲日韩精品无码专区97| 国产菊爆视频在线观看| 国产在线精品99一区不卡| 欧美精品影院| 一级毛片中文字幕| 国产99视频精品免费观看9e| 欧美激情综合一区二区| 久久综合五月婷婷| 成人毛片免费观看| 欧美日韩免费在线视频| 国产手机在线小视频免费观看 | 嫩草国产在线| 国产区在线观看视频| 亚洲男女天堂| www.youjizz.com久久| 亚洲欧美日韩精品专区| 国产精品页| 伊人天堂网| 国产又色又爽又黄| 国产亚洲日韩av在线| 91九色最新地址| 国内嫩模私拍精品视频| 国产成人h在线观看网站站| 精品国产女同疯狂摩擦2| 免费在线色| 青青草原国产精品啪啪视频| 国产乱人伦偷精品视频AAA| 亚洲人成色在线观看| 久久精品无码中文字幕| 色婷婷电影网| 久久久国产精品免费视频| 99精品国产电影|