本發(fā)明涉及數(shù)據(jù)隱私保護的研究領(lǐng)域,特別涉及一種基于ShadowDOM的Web應(yīng)用加解密方法。
背景技術(shù):
::隨著互聯(lián)網(wǎng)的飛速發(fā)展的同時,用戶隱私泄露問題日益嚴重。用戶的隱私數(shù)據(jù)不但可能在服務(wù)器端數(shù)據(jù)庫中被竊取,也可能在傳輸過程中泄露,甚至在客戶端應(yīng)用的代碼也同樣面臨著泄露危險。因而讓用戶自己控制隱私數(shù)據(jù)的加密可以避免上述威脅。而傳統(tǒng)加密算法使用所帶來密文格式的變化不但會影響應(yīng)用的前臺驗證,同樣破壞了數(shù)據(jù)庫字段的存儲要求。所以,既能使用戶隱私得到保護同時不破壞應(yīng)用數(shù)據(jù)庫存儲及主要功能,是一個亟待解決的問題。技術(shù)實現(xiàn)要素:本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于ShadowDOM的Web應(yīng)用加解密方法,實現(xiàn)對用戶隱私數(shù)據(jù)的保護且不破壞應(yīng)用數(shù)據(jù)庫的存儲和應(yīng)用的主要功能。為了達到上述目的,本發(fā)明采用以下技術(shù)方案:本發(fā)明基于ShadowDOM的Web應(yīng)用加解密方法,包括下述步驟:(1)web開發(fā)人員或者維護人員標(biāo)記敏感數(shù)據(jù);(2)用戶在瀏覽器安裝ShadowFPE擴展程序,并設(shè)置密鑰;(3)ShadowFPE瀏覽器擴展程序鑒別敏感數(shù)據(jù)并在安全的隔離環(huán)境下實現(xiàn)加解密。作為優(yōu)選的技術(shù)方案,步驟(1)中,標(biāo)記敏感數(shù)據(jù)的方法為:(1.1)為需要渲染的敏感數(shù)據(jù)之間添加自定義標(biāo)簽<myshadowspan>;(1.2)為涉及敏感數(shù)據(jù)的標(biāo)簽添加自定義屬性data-crypt以標(biāo)識數(shù)據(jù)格式,該屬性取值可為{“AES”,“FPE”,“INT”,“STRING”,“IDNUMBER”,“EMAIL”}集合中的一項,“AES”,“FPE”,“INT”,“STRING”,“IDNUMBER”,“EMAIL”分別表示AES加密、未指定格式的FPE、格式為整數(shù)的FPE、格式為字符串的FPE、格式為身份證類型的FPE、格式為電子郵件類型的FPE。作為優(yōu)選的技術(shù)方案,步驟(3)中,ShadowFPE瀏覽器擴展程序鑒別敏感數(shù)據(jù)的方法為:(3.1.1)遍歷應(yīng)用DOM中存在的<myshadowspan>標(biāo)簽與data-crypt屬性;(3.1.2)對帶有data-crypt屬性的文本輸入元素認定為待加密的敏感數(shù)據(jù),如input元素、textarea元素、[contentEditable]等,其數(shù)據(jù)格式為data-crypt的值所指定;(3.1.3)對<myshadowspan>標(biāo)簽內(nèi)的文本認定為待解密的敏感數(shù)據(jù)密文,其數(shù)據(jù)格式為data-crypt的值所指定。作為優(yōu)選的技術(shù)方案,步驟(3.1.2)中,對待加密元素格式的鑒別依賴于該元素中屬性的值:A、若data-crypt取值為AES,則認為該字段格式不敏感,使用AES加密算法進行加密;B、若data-crypt取值為{“INT”,“string”,“IDNUMBER”,“EMAIL”}中一項,則認為該字段格式敏感,使用FPE算法中的特定格式進行處理;C、若data-crypt取值為“FPE”,即該字段格式敏感但沒有明確給出數(shù)據(jù)格式,此時ShadowFPE會對數(shù)據(jù)格式進行自動化識別:ShadowFPE將遍歷該元素的所有屬性,發(fā)現(xiàn)關(guān)鍵字即返回。作為優(yōu)選的技術(shù)方案,步驟(3.1.2)中,所述待解密密文的鑒別方式有兩種:D、通過對data-crypt屬性的鑒別;E、通過正則匹配的方式對密文進行鑒別。作為優(yōu)選的技術(shù)方案,步驟(3)中,所述在安全的隔離環(huán)境下實現(xiàn)加解密的方法為:(3.2.1)采集用戶敏感數(shù)據(jù)時,在shadowDOM中生成替換應(yīng)用代碼與用戶敏感數(shù)據(jù)進行交互的元素,監(jiān)聽用戶擊鍵事件,對用戶輸入的敏感數(shù)據(jù)進行加密,并將密文更新給原應(yīng)用;(3.2.2)為用戶呈現(xiàn)敏感數(shù)據(jù)時,將密文加密,并將明文封裝在shadowDOM中呈現(xiàn)給用戶。本發(fā)明涉及的與數(shù)據(jù)加密有關(guān)的一些基本概念:(1)AES:密碼學(xué)中的高級加密標(biāo)準(AdvancedEncryptionStandard,AES),是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準。這個標(biāo)準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級加密標(biāo)準由美國國家標(biāo)準與技術(shù)研究院(NIST)于2001年11月26日發(fā)布于FIPSPUB197,并在2002年5月26日成為有效的標(biāo)準。2006年,高級加密標(biāo)準已然成為對稱密鑰加密中最流行的算法之一。(2)FPE:密碼學(xué)中的保留格式加密(FormatPreservingEncryption,F(xiàn)PE),F(xiàn)PE是一種全新的密碼學(xué)技術(shù),它將特定格式的明文加密成相同格式的密文,即密文的長度和類型與明文相同。(3)shadowDOM:ShadowDOM是W3C提出的一個HTML的新規(guī)范,其允許開發(fā)者封裝自己的HTML標(biāo)簽、CSS樣式和JavaScript代碼。本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:1.本發(fā)明可實現(xiàn)用戶對敏感數(shù)據(jù)的控制權(quán),避免了客戶端應(yīng)用代碼、傳輸過程中以及服務(wù)器端對用戶隱私的泄露。2.本發(fā)明使用保留格式加密算法使得密文格式不發(fā)生變化,不會破壞應(yīng)用的前臺驗證以及數(shù)據(jù)庫存儲的字段格式。3.本發(fā)明應(yīng)用的開發(fā)者或維護人員可以自行選擇敏感字段并添加標(biāo)簽,避免了加密對應(yīng)用功能造成的影響。附圖說明圖1是本發(fā)明裝置的方法流程圖;圖2是本發(fā)明輸入隔離原理圖;圖3是本發(fā)明輸出隔離原理圖。具體實施方式下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。實施例用戶敏感數(shù)據(jù)涉及姓名、電話、身份證號碼、電子郵件、地址等,本發(fā)明以電子郵件作為實例進行細節(jié)描述。如圖1所示,本實施例基于ShadowDOM的Web應(yīng)用加解密方法,其具體的實現(xiàn)方式如下:1、web開發(fā)人員或者維護人員標(biāo)記敏感數(shù)據(jù);1.1、當(dāng)應(yīng)用需要對用戶敏感信息進行采集時,應(yīng)對涉及敏感數(shù)據(jù)的元素添加data-crypt屬性。如對<inputtype=”text”name=”email”/>添加data-crypt以標(biāo)識該電子郵件字段需要進行加密處理,并選擇對應(yīng)的格式為data-crypt賦值??蓪⑵湫薷臑?lt;inputtype=”text”name=”email”data-crypt=”FPE”/>或<inputtype=”text”name=”email”data-crypt=”email”/>。二者的區(qū)別在于是否明確指出數(shù)據(jù)格式,對于未明確指出數(shù)據(jù)格式的字段,shadowFPE將對其進行自動化識別。1.2、當(dāng)應(yīng)用需要為用戶呈現(xiàn)敏感信息時,應(yīng)對敏感字段密文用<myshadowspan>標(biāo)識,用data-crypt進行數(shù)據(jù)格式標(biāo)識。例如,若huxtdg@gmail.com表示nankai@gmail.com加密后的密文,則可標(biāo)注為<myshadowspandata-crypt=”FPE”>huxtdg@gmail.com<myshadowspan>或<myshadowspandata-crypt=”email”>huxtdg@gmail.com<myshadowspan>。此二者區(qū)別在于是否指定保留格式加密的具體數(shù)據(jù)格式,對于未明確指出數(shù)據(jù)格式的字段,shadowFPE將對其進行自動化識別。2、鑒別機制;2.1、鑒別待加密的輸入。ShadowFPE會遍歷應(yīng)用DOM中的各個節(jié)點,對文本輸入元素(例如,input,textarea,[contenEditable])遍歷其屬性。對于存在data-crypt屬性的textinputelement認定為待加密元素。對待加密元素格式的鑒別依賴于該元素中屬性的值:(1)若data-crypt取值為AES,則認為該字段格式不敏感,使用AES加密算法進行加密;(2)若data-crypt取值為{“INT”,“string”,“IDNUMBER”,“EMAIL”}中一項,則認為該字段格式敏感,使用FPE算法中的特定格式進行處理;(3)若data-crypt取值為“FPE”,即該字段格式敏感但沒有明確給出數(shù)據(jù)格式,此時ShadowFPE會對數(shù)據(jù)格式進行自動化識別:ShadowFPE將遍歷該元素的所有屬性,發(fā)現(xiàn)關(guān)鍵字即返回。此過程的偽代碼如下述所示:2.2、鑒別待解密的輸入。ShadowFPE會遍歷應(yīng)用DOM中的各個節(jié)點,對<myshadowspan>標(biāo)簽進行識別,<myshadowspan>標(biāo)簽內(nèi)的文本即為待解密的輸出。對密文格式的鑒別有兩種方式:(1)通過對data-crypt屬性的鑒別,此時與上述方案相同;(2)通過正則匹配的方式對密文進行鑒別,判斷其格式,shadowFPE提供了具有一定準確度的自動識別算法,在下述代碼中以函數(shù)IdentifyDecFormat表示。此過程的偽代碼如下述所示:3、生成安全的隔離環(huán)境并實現(xiàn)加解密使用shadowDOM隔離應(yīng)用DOM以生成安全的輸入輸出環(huán)境。在ShadowFPE中,有輸入隔離和輸出隔離兩種操作。3.1、輸入隔離。在具有隔離性的shadowDOM中的文本輸入元素獲取用戶輸入,并以鑒別模塊的鑒別結(jié)果為參數(shù)調(diào)用算法庫中合適的加密算法,對明文信息進行加密,并將密文更新給應(yīng)用。根據(jù)鑒別結(jié)果,對涉及敏感數(shù)據(jù)的元素進行處理。以input元素為例,在其前插入新節(jié)點myspan用來作為影子宿主掛載影子樹,在影子樹內(nèi),生成一個新的input元素。然后,將應(yīng)用中的原input元素通過添加屬性值為”display:none”的屬性”style”設(shè)置為不顯示。對影子樹內(nèi)的input元素進行監(jiān)聽,對用戶每次擊鍵事件,shadowFPE對用戶輸入以對應(yīng)格式進行加密處理,此后將密文更新給應(yīng)用原input元素。此過程如圖2所示,其核心代碼如下所示:3.2、輸出隔離。對鑒別模塊識別出的密文及格式調(diào)用算法庫中合適的解密算法,對密文數(shù)據(jù)進行解密,并將明文在具有隔離性的shadowDOM中呈現(xiàn)給用戶。根據(jù)鑒別結(jié)果,調(diào)用算法庫中相應(yīng)的解密算法,對密文按照相應(yīng)格式進行解密。之后以密文標(biāo)識標(biāo)簽<myshadowspan>為影子宿主生成影子樹,并將敏感數(shù)據(jù)明文置于影子樹中。此過程如圖3所示,其核心代碼如下所示:本實施例中,通過應(yīng)用開發(fā)人員或維護人員在應(yīng)用代碼中對敏感字段進行標(biāo)識,用戶在客戶端瀏覽器安裝本發(fā)明的瀏覽器擴展并設(shè)置秘鑰后,將應(yīng)用中涉及用戶敏感信息的數(shù)據(jù)封裝在安全的、與應(yīng)用DOM相隔離的shadowDOM中,并進行保留格式加解密處理。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3