亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-01-29 01:36:46建,蔣琳,廖清,王
        關(guān)鍵詞:明文加密算法密文

        何 建,蔣 琳,廖 清,王 軒

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

        0 引言

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

        基于JSON的RSA-PKCS#1加密算法是基于JSON的加密標(biāo)準(zhǔn)中的一種加密算法,且被作為第一推薦算法使用。它利用JSON的特有結(jié)構(gòu),對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行RSA加密運(yùn)算生成密文,并最終生成符合JSON結(jié)構(gòu)特點(diǎn)的序列。它不依賴任何解析器可以獨(dú)立完成數(shù)據(jù)的解析。但因?yàn)槠湓诩用苊魑那靶枰M(jìn)行符合公鑰密碼學(xué)標(biāo)準(zhǔn)的填充預(yù)處理[3],而此填充預(yù)處理因?yàn)椴粔虺浞值陌踩紤],使得攻擊者可以利用選擇密文攻擊破解密文。

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

        1 預(yù)備知識(shí)

        1.1 JSON的基本概念

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

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

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

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

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

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

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

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

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

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

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

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

        1.3 選擇密文攻擊

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

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

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

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

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

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

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

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

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

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

        (2)利用找到的利用點(diǎn)實(shí)施選擇密文攻擊

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

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

        c'=cse(modn)

        (1)

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

        m'=ms(modn)

        (2)

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

        B=28(k-2)

        (3)

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

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

        2B≤ms(modn)<3B

        (4)

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

        圖1 選擇密文攻擊圖解

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

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

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

        3.1 結(jié)果

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

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

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

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

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

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

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

        3.2 加固方案

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

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

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

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

        圖4 改進(jìn)的選擇密文攻擊

        針對(duì)此種情況,采用以隨機(jī)數(shù)替代密鑰值的方式已經(jīng)不能避免選擇密文攻擊,所以提出使用固定值代替隨機(jī)數(shù),可以使用服務(wù)器的公鑰值作為替代真實(shí)明文的數(shù)據(jù)進(jìn)行返回。此時(shí),攻擊者兩次的攻擊請(qǐng)求因?yàn)槎际褂昧讼嗤墓潭ㄖ荡婷魑淖鳛榉祷叵ⅲ粽卟⒉荒茏R(shí)別出所發(fā)送的請(qǐng)求是否符合PKCS#1標(biāo)準(zhǔn),因此不能繼續(xù)進(jìn)行選擇密文攻擊。所以采用固定值而非隨機(jī)填充方式的加固方案,在避免攻擊者實(shí)施選擇密文攻擊方面更具實(shí)用意義,可以抵抗攻擊者更復(fù)雜的攻擊手段。

        4 結(jié)論

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

        [1] 馮登國(guó), 張敏, 李昊. 大數(shù)據(jù)安全與隱私保護(hù)[J]. 計(jì)算機(jī)學(xué)報(bào), 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.

        猜你喜歡
        明文加密算法密文
        一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
        一種支持動(dòng)態(tài)更新的可排名密文搜索方案
        基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
        奇怪的處罰
        奇怪的處罰
        基于小波變換和混沌映射的圖像加密算法
        四部委明文反對(duì)垃圾焚燒低價(jià)競(jìng)爭(zhēng)
        云存儲(chǔ)中支持詞頻和用戶喜好的密文模糊檢索
        Hill加密算法的改進(jìn)
        亚洲中文字幕无码久久2020| 综合色就爱涩涩涩综合婷婷| 日本免费视频| 日本在线视频www色| 乱中年女人伦av一区二区| 亚洲人精品亚洲人成在线| 欧美 丝袜 自拍 制服 另类| 久久精品国产亚洲av蜜臀 | 在线观看国产内射视频| 好吊色欧美一区二区三区四区| 无码人妻少妇色欲av一区二区| 久久久久无码国产精品不卡| 久久一区二区三区四区| 日韩激情网| 蜜桃网站在线免费观看视频| 日本熟妇免费一区二区三区| 精品国产亚洲av高清日韩专区| 中文字幕av永久免费在线| 免费人成视频网站网址| 国产av熟女一区二区三区| 久久久www成人免费毛片| 肥臀熟女一区二区三区| 欧洲成人午夜精品无码区久久| av深夜福利在线| 亚洲精品高清av在线播放| 久久国产精品懂色av| 综合激情五月三开心五月| 穿着白丝啪啪的av网站| 极品少妇xxxx精品少妇偷拍| 国产综合精品| 亚洲av无码久久寂寞少妇| 最新国产精品亚洲二区| 日韩久久无码免费看A| 久久精品国产亚洲av成人无人区 | 中文字幕乱码琪琪一区| 国产一区二区三区四区在线视频| 精品国产av一区二区三区四区 | 一个人看的视频在线观看| 成人一区二区免费中文字幕视频| 日韩人妻无码精品久久免费一 | 加勒比日韩视频在线观看|