基于多方互不信任的密碼拆分管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及系統(tǒng)數(shù)據(jù)安全和網(wǎng)絡(luò)數(shù)據(jù)安全技術(shù)領(lǐng)域,具體地,涉及一種基于多方互不信任的密碼拆分管理方法。
【背景技術(shù)】
[0002]隨著智能手機(jī)的普及,應(yīng)用程序的數(shù)量大量增長,自然也包含了許多需要用戶輸入用戶名、密碼進(jìn)行登錄的應(yīng)用程序,比如電子郵件、手機(jī)銀行、社交軟件等等。由于手機(jī)輸入的不方便性,用戶為了使用方便,通常將登錄密碼保存在手機(jī)中以避免重復(fù)輸入。然而,當(dāng)前手機(jī)操作系統(tǒng)對這些敏感數(shù)據(jù)的保護(hù)并不夠,許多應(yīng)用程序直接將密碼以明文形式保存在手機(jī)中,另一部分應(yīng)用程序雖然對密碼進(jìn)行了加密,但為了版本兼容性和用戶迀移的便捷性,將加密的密鑰編碼在程序中,很容易被攻擊者獲得,導(dǎo)致加密形同虛設(shè)。同時(shí),這些應(yīng)用程序?qū)τ脩裘艽a數(shù)據(jù)明文的保護(hù),完全依賴于手機(jī)操作系統(tǒng)提供的應(yīng)用問數(shù)據(jù)的隔離性。
[0003]然而,明文保存的用戶密碼數(shù)據(jù)存在很大的風(fēng)險(xiǎn),其安全性依賴于操作系統(tǒng)的正確實(shí)現(xiàn)、應(yīng)用開發(fā)者對接口的正確使用,以及手機(jī)的物理安全。首先,由于手機(jī)操作系統(tǒng)本身可能存在漏洞,并不能完全保證應(yīng)用程序問的隔離。其次,應(yīng)用程序可能沒有使用正確的接口,使得用戶密碼數(shù)據(jù)的明文保存在不正確的位置,從而無法利用操作系統(tǒng)所提供的安全保護(hù)。例如部分應(yīng)用將用戶密碼數(shù)據(jù)保存在了外部存儲卡中,使得所有應(yīng)用均可直接訪問。再次,當(dāng)手機(jī)被竊或丟失后,攻擊者可以輕而易舉的通過其他設(shè)備直接讀取手機(jī)存儲,從而獲取明文的用戶密碼數(shù)據(jù)。當(dāng)前手機(jī)中的大部分應(yīng)用程序均存在明文保存用戶密碼數(shù)據(jù)的問題,其安全性亟待得到增強(qiáng)。
[0004]由此可見,不在移動(dòng)設(shè)備端保存用戶密碼數(shù)據(jù)的完整明文可以從根本上解決用戶密碼數(shù)據(jù)的安全性問題,通過采用將密碼數(shù)據(jù)明文一分為二的保存于互不信任的移動(dòng)設(shè)備端和云端這一方法,可以保證用戶密碼數(shù)據(jù)的完整明文信息不會在任一端出現(xiàn)。
[0005]網(wǎng)絡(luò)數(shù)據(jù)安全是計(jì)算機(jī)信息安全領(lǐng)域中最為重要的組成部分之一,直接關(guān)系到網(wǎng)絡(luò)環(huán)境下用戶數(shù)據(jù)的保密性、完整性。安全套接層協(xié)議(Secure Socket Lager)及其繼任者傳輸層安全協(xié)議(Transport Layer Security)是目前最為成熟、可信的保障網(wǎng)絡(luò)數(shù)據(jù)安全傳輸?shù)木W(wǎng)絡(luò)協(xié)議,因此現(xiàn)有的商用和開源操作系統(tǒng)(如Windows,Linux,Android和1S等)均實(shí)現(xiàn)了對以上協(xié)議的支持,其中使用最為廣泛的實(shí)現(xiàn)是openssl安全套接字層密碼庫,其具體流程(見圖1所示)如下:
[0006]I)【驗(yàn)證階段】首先,客戶端先向服務(wù)器發(fā)出加密通信的請求,這被稱為ClientHello請求。服務(wù)器收到客戶端請求后,向客戶端發(fā)出回應(yīng),被稱為SeverHello??蛻舳耸盏椒?wù)器回應(yīng)以后,首先驗(yàn)證服務(wù)器證書。如果證書不是可信機(jī)構(gòu)頒布、或者證書中的域名與實(shí)際域名不一致、或者證書己經(jīng)過期,就會向訪問者顯示一個(gè)警告,由其選擇是否還要繼續(xù)通信。
[0007]2)【密鑰協(xié)商】如果證書沒有問題,客戶端就會從證書中取出服務(wù)器的公鑰。然后,向服務(wù)器發(fā)送以下三項(xiàng)信息:
[0008]a) 一個(gè)隨機(jī)數(shù)。該隨機(jī)數(shù)用服務(wù)器公鑰加密,防止被竊聽。
[0009]b)編碼改變通知,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送。
[0010]c)客戶端握手結(jié)束通知,表示客戶端的握手階段己經(jīng)結(jié)束。這一項(xiàng)同時(shí)也是前面發(fā)送的所有內(nèi)容的hash值,用來供服務(wù)器校驗(yàn)。
[0011]上面第一項(xiàng)的隨機(jī)數(shù),是整個(gè)握手階段出現(xiàn)的第三個(gè)隨機(jī)數(shù),又稱"pre-masterkey"。有了它以后,客戶端和服務(wù)器就同時(shí)有了三個(gè)隨機(jī)數(shù),接著雙方就用事先商定的加密方法,各自生成本次會話所用的同一把"會話密鑰〃。服務(wù)器收到客戶端的第三個(gè)隨機(jī)數(shù)pre-master key之后,計(jì)算生成本次會話所用的〃會話密鑰〃。然后,向客戶端最后發(fā)送以下信息:
[0012](a)編碼改變通知,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送。
[0013](b)服務(wù)器握手結(jié)束通知,表示服務(wù)器的握手階段已經(jīng)結(jié)束。這一項(xiàng)同時(shí)也前面發(fā)送的所有內(nèi)容的hash值,用來供客戶端校驗(yàn)。
[0014]至此,整個(gè)握手階段,即【驗(yàn)證階段】與【密鑰協(xié)商】全部結(jié)束。
[0015]3)【數(shù)據(jù)傳輸】生成"會話密鑰"后,客戶端與服務(wù)器進(jìn)入加密通信階段,完全使用普通的HTTP協(xié)議,只不過用"會話密鑰"加密內(nèi)容進(jìn)行數(shù)據(jù)傳輸。
[0016]由此可見,為了保護(hù)用戶密碼數(shù)據(jù)完整明文的安全性,需要保證在移動(dòng)設(shè)備端和云端進(jìn)行【數(shù)據(jù)傳輸】時(shí)均不能獲得完整的用戶密碼數(shù)據(jù)明文。同時(shí)為了不對移動(dòng)設(shè)備端的應(yīng)用程序和服務(wù)端程序進(jìn)行修改,也要保證發(fā)送到服務(wù)端的網(wǎng)絡(luò)數(shù)據(jù)包解密后可以獲取到用戶密碼數(shù)據(jù)的完整明文。
[0017]目前沒有發(fā)現(xiàn)同本發(fā)明類似技術(shù)的說明或報(bào)道,也尚未收集到國內(nèi)外類似的資料。
【發(fā)明內(nèi)容】
[0018]針對現(xiàn)有技術(shù)中存在的上述不足,本發(fā)明的目的是提供了一種基于多方互不信任的密碼拆分管理方法,該密碼拆分管理方法,將一個(gè)密碼拆為多個(gè)部分,并分別保存于不同的物理設(shè)備;使用密碼時(shí)通過多方協(xié)同的方式,由各個(gè)物理設(shè)備各自將相關(guān)的密碼部分通過網(wǎng)絡(luò)發(fā)送給服務(wù)端應(yīng)用程序,由服務(wù)端應(yīng)用程序進(jìn)行自動(dòng)的合并。本發(fā)明在設(shè)計(jì)上保證了任一方受攻擊時(shí)密碼數(shù)據(jù)明文的安全性;同時(shí),通過對安全套接字傳輸層(TransportLayer Security)數(shù)據(jù)的切分以及傳輸控制協(xié)議(Transmiss1n Control Protocol)數(shù)據(jù)包的合并避免了對應(yīng)用程序和相關(guān)服務(wù)端程序的修改,進(jìn)而避免了對用戶使用習(xí)慣的影響。
[0019]為實(shí)現(xiàn)上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的。
[0020]一種基于多方互不信任的密碼拆分管理方法,包括如下步驟:
[0021]-移動(dòng)設(shè)備端密碼數(shù)據(jù)明文的多方管理階段;
[0022]-網(wǎng)絡(luò)數(shù)據(jù)包切分、合并階段;
[0023]其中:
[0024]所述移動(dòng)設(shè)備端密碼數(shù)據(jù)明文的多方管理階段為,通過應(yīng)用程序接口初始化云端的密碼數(shù)據(jù)明文部分,并在初始化完成后,移動(dòng)設(shè)備端直接輸入密碼數(shù)據(jù)的前一半明文,云端的密碼數(shù)據(jù)明文部分則自動(dòng)被占位符替代;
[0025]所述網(wǎng)絡(luò)數(shù)據(jù)包切分、合并階段包括如下步驟:
[0026]步驟SI,在超文本傳輸協(xié)議層(Hyper Text Transport Protocol)將包含有移動(dòng)設(shè)備端密碼數(shù)據(jù)明文的HTTP數(shù)據(jù)包切分成多個(gè)部分并丟棄包含占位符的網(wǎng)絡(luò)包,形成網(wǎng)絡(luò)密碼數(shù)據(jù)明文數(shù)據(jù)包;
[0027]步驟S2,同步相應(yīng)的安全傳輸層協(xié)議(Transport Layer Security)元數(shù)據(jù)和傳輸控制協(xié)議(Transmiss1n Control Protocol)元數(shù)據(jù)到云端;
[0028]步驟S3,包括如下任一個(gè)步驟:
[0029]云端利用得到的安全傳輸層協(xié)議元數(shù)據(jù)和傳輸控制協(xié)議元數(shù)據(jù)對網(wǎng)絡(luò)密碼數(shù)據(jù)明文數(shù)據(jù)包進(jìn)行加密并構(gòu)造正確的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送至服務(wù)器端;或
[0030]通過MultiPath TCP (多徑TCP,是一種利用多條路徑并發(fā)傳輸?shù)膫鬏攲訁f(xié)議)的方式直接將網(wǎng)絡(luò)密碼數(shù)據(jù)明文數(shù)據(jù)包發(fā)送至服務(wù)器端;
[0031]步驟S4,服務(wù)器端對收到的網(wǎng)絡(luò)數(shù)據(jù)包或網(wǎng)絡(luò)密碼數(shù)據(jù)明文數(shù)據(jù)包進(jìn)行正常解密流程以完成對用戶完整的密碼數(shù)據(jù)明文的使用。
[0032]優(yōu)選地,所述應(yīng)用程序接口包括:
[0033]-CREATE_TABLEO接口:用于創(chuàng)建一個(gè)云端密碼表;
[0034]-LIST_TABLE()接口:用于顯示云端所有的密碼表記錄;
[0035]-NEff_PASS()接口:用于在云端密碼表中插入一條密碼數(shù)據(jù)明文記錄;
[0036]-DELETE_PASS()接口:用于在云端密碼表中刪除一條密碼數(shù)據(jù)明文記錄。
[0037]優(yōu)選地,所述步驟SI中,將包含有移動(dòng)設(shè)備端密碼數(shù)據(jù)明文的HTTP數(shù)據(jù)包切分成三個(gè)部分。
[0038]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
[0039]1、本發(fā)明通過將密碼數(shù)據(jù)明文分為多個(gè)部分,分別保存于互不信任的物理設(shè)備上,保證了任一相關(guān)物理設(shè)備均不會出現(xiàn)密碼數(shù)據(jù)的完整明文信息,從而在任一物理設(shè)備被攻擊的情況下,保證了用戶密碼數(shù)據(jù)明文的安全性。
[0040]3.本發(fā)明通過網(wǎng)絡(luò)數(shù)據(jù)包切分、合并階段,采用透明的密碼數(shù)據(jù)明文拆分與合并方法,對包含密碼數(shù)據(jù)明文的網(wǎng)絡(luò)包在TLS(Transport Layer Security)安全傳輸層和TCP (Transmiss1n Control Protocol)層進(jìn)行切分,利用TLS和TCP層已有的數(shù)據(jù)包合并機(jī)制在服務(wù)端進(jìn)行自動(dòng)合并,保證了對應(yīng)用程序和服務(wù)端程序的透明性。
[0041]3、本發(fā)明提供的基于多方互不信任的密碼拆分管理方法,將一個(gè)密碼拆成多個(gè)部分,分別存放在互相不信任的多臺物理設(shè)備上,進(jìn)而保證在任一方受攻擊情況下用戶密碼數(shù)據(jù)明文的安全性。通過己有的網(wǎng)絡(luò)層數(shù)據(jù)包拆分與合并機(jī)制,來實(shí)現(xiàn)用戶密碼的拆分與合并,因此兼容己有的應(yīng)用,不需要修改使用密碼的應(yīng)用程序,也不需要修改相關(guān)應(yīng)用程序的服務(wù)端程序。在對用戶使用習(xí)慣和程序運(yùn)行性能基本不產(chǎn)生影響的前提下,極大提升用戶密碼數(shù)據(jù)完整明文的安全性。
【附圖說明】
[0042]通過閱讀參照以下附圖對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
[0043]圖1是安全傳輸層協(xié)議(Transport Layer Security)通信流程圖。
[0044]圖2是網(wǎng)絡(luò)數(shù)據(jù)包切分、合并流程圖。
【具體實(shí)施方式】
[0045]下面對本發(fā)明的實(shí)施例作詳細(xì)說明:本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍