安全訪問方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,特別涉及一種安全訪問方法及裝置。
【背景技術(shù)】
[0002]遠(yuǎn)程巾貞緩沖(英文:Remote Frame Buffer,縮寫:RFB)是一種用于遠(yuǎn)程訪問圖形用戶界面的簡單協(xié)議。根據(jù)該協(xié)議,RFB客戶端可以遠(yuǎn)程訪問RFB服務(wù)器的圖形用戶界面。遠(yuǎn)程幀緩沖被廣泛應(yīng)用于遠(yuǎn)程辦公、遠(yuǎn)程控制等領(lǐng)域。
[0003]出于安全性的考慮,高級精簡指令集機(jī)器(英文:Advanced RISC Machines,縮寫:ARM)公司提供信任區(qū)域(英文:TrustZone)硬件技術(shù)。在采用TrustZone硬件技術(shù)的終端中,終端可以運(yùn)行在普通世界(英文:Normal World)或者安全世界(英文:Secure World)。其中,普通世界和安全世界的運(yùn)行環(huán)境相互隔離。該終端在安全世界下運(yùn)行RFB客戶端時,可以保證遠(yuǎn)程訪問過程的安全性。
[0004]發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于安全世界不會直接復(fù)用普通世界下的代碼庫,如果要使RFB客戶端能夠運(yùn)行在安全世界,就需要在安全世界下重新實(shí)現(xiàn)一套支持RFB協(xié)議的代碼庫,不僅會使安全世界下的代碼量劇增,而且因?yàn)榇a量的增加而導(dǎo)致安全世界有可能會出現(xiàn)本不應(yīng)該出現(xiàn)的漏洞。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種安全訪問方法及裝置,使用本發(fā)明實(shí)施例提供的安全訪問方法及裝置,可以解決在安全世界下運(yùn)行RFB客戶端所導(dǎo)致的安全世界下的代碼庫增加的問題。所述技術(shù)方案如下:
[0006]第一方面,提供了一種安全訪問方法,用于支持信任區(qū)域硬件技術(shù)的終端中,所述終端可以運(yùn)行在普通世界或者安全世界,所述方法包括:
[0007]在所述普通世界下,通過遠(yuǎn)程幀緩沖RFB客戶端獲取RFB服務(wù)端的加密數(shù)據(jù);
[0008]從所述普通世界切換為所述安全世界,對所述加密數(shù)據(jù)進(jìn)行解密得到顯示數(shù)據(jù);
[0009]在所述安全世界下,根據(jù)所述顯示數(shù)據(jù)進(jìn)行顯示。
[0010]結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述從所述普通世界切換為安全世界,對所述加密數(shù)據(jù)進(jìn)行解密得到顯示數(shù)據(jù),包括:
[0011]在所述普通世界下,接收所述RFB客戶端的寫入請求,其中,所述寫入請求是指將所述加密數(shù)據(jù)寫入幀緩沖區(qū)內(nèi)存的請求,所述幀緩沖區(qū)內(nèi)存是僅在所述安全世界下能夠訪問的內(nèi)存;
[0012]在所述寫入請求觸發(fā)錯誤時,由所述普通世界切換為所述安全世界;
[0013]在所述安全世界下,對所述加密數(shù)據(jù)進(jìn)行解密得到顯示數(shù)據(jù);
[0014]所述在所述安全世界下,根據(jù)所述顯示數(shù)據(jù)進(jìn)行顯示,包括:
[0015]將所述顯示數(shù)據(jù)寫入所述幀緩沖區(qū)內(nèi)存中,并由顯示組件自動讀取所述幀緩沖區(qū)內(nèi)存中的所述顯示數(shù)據(jù)進(jìn)行顯示。
[0016]結(jié)合第一方面,在第一方面的第二種可能的實(shí)施方式中,所述在普通世界下,通過遠(yuǎn)程幀緩沖RFB客戶端獲取RFB服務(wù)端的加密數(shù)據(jù)之前,還包括:
[0017]在所述普通世界下,通過所述RFB客戶端登錄所述RFB服務(wù)端;
[0018]在登錄所述RFB服務(wù)端成功時,將所述幀緩沖區(qū)內(nèi)存設(shè)置為僅在所述安全世界下能夠訪問的內(nèi)存。
[0019]結(jié)合第一方面的第二種可能的實(shí)施方式,在第一方面的第三種可能的實(shí)施方式中,所述在所述普通世界下,通過所述RFB客戶端登錄所述RFB服務(wù)端,包括:
[0020]在所述普通世界下,通過所述RFB客戶端獲取所述RFB服務(wù)端的登錄界面數(shù)據(jù);[0021 ] 根據(jù)所述登錄界面數(shù)據(jù)顯示登錄界面;
[0022]從所述普通世界切換為所述安全世界,接收在所述登錄界面中輸入的用戶名和密碼;
[0023]在所述普通世界下,將所述用戶名和加密后的所述密碼發(fā)送給所述RFB服務(wù)端,以使得所述RFB服務(wù)端根據(jù)所述用戶名和所述加密后的所述密碼進(jìn)行驗(yàn)證。
[0024]結(jié)合第一方面的第三種可能的實(shí)施方式,在第一方面的第四種可能的實(shí)施方式中,所述在所述普通世界下,將所述用戶名和加密后的所述密碼發(fā)送給所述RFB服務(wù)端,包括:
[0025]在所述安全世界下,將接收到的所述密碼寫入安全內(nèi)存中,將接收到的所述用戶名寫入普通內(nèi)存中,所述安全內(nèi)存為僅在所述安全世界下能夠訪問的內(nèi)存,所述普通內(nèi)存是在所述普通世界和所述安全世界下均能訪問的內(nèi)存;
[0026]從所述安全世界切換為所述普通世界,并通過所述RFB客戶端將所述用戶名發(fā)送至所述RFB服務(wù)端;
[0027]在所述用戶名通過所述RFB服務(wù)端的驗(yàn)證時,接收所述RFB服務(wù)端產(chǎn)生的隨機(jī)數(shù);
[0028]從所述普通世界切換為所述安全世界,并利用預(yù)定哈希函數(shù)將所述隨機(jī)數(shù)和密碼轉(zhuǎn)化為反饋信息,所述預(yù)定哈希函數(shù)為所述RFB客戶端和所述RFB服務(wù)端預(yù)先約定的哈希函數(shù);
[0029]從所述安全世界切換為所述普通世界,并通過所述RFB客戶端將所述反饋信息發(fā)送給所述RFB服務(wù)端。
[0030]結(jié)合第一方面,或是第一方面的第一種可能的實(shí)施方式,或是第一方面的第二種可能的實(shí)施方式,或是第一方面的第三種可能的實(shí)施方式,或是第一方面的第四種可能的實(shí)施方式,在第一方面的第五種可能的實(shí)施方式中,所述在普通世界下,通過遠(yuǎn)程幀緩沖RFB客戶端獲取RFB服務(wù)端的加密數(shù)據(jù)之前,還包括:
[0031]在啟動后直接進(jìn)入所述安全世界,并將安全世界提醒組件設(shè)置為僅在所述安全世界下能夠使用,所述安全世界提醒組件用于提醒當(dāng)前運(yùn)行世界為所述普通世界和所述安全世界中的一種。
[0032]結(jié)合第一方面,或是第一方面的第一種可能的實(shí)施方式,或是第一方面的第二種可能的實(shí)施方式,或是第一方面的第三種可能的實(shí)施方式,或是第一方面的第四種可能的實(shí)施方式,在第一方面的第六種可能的實(shí)施方式中,,所述方法還包括:
[0033]在所述安全世界下,獲取外部輸入設(shè)備接收到的輸入信號,所述外部輸入設(shè)備是僅在所述安全世界下能訪問的外部輸入設(shè)備;
[0034]將所述輸入信號加密后寫入普通內(nèi)存,所述普通內(nèi)存是在所述普通世界和所述安全世界下均能訪問的內(nèi)存;
[0035]在所述普通世界下,通過所述RFB客戶端將加密后的所述輸入信號發(fā)送給所述RFB服務(wù)端。
[0036]結(jié)合第一方面的第六種可能的實(shí)施方式,在第一方面的第七種可能的實(shí)施方式中,所述在所述安全世界下,獲取外部輸入設(shè)備接收到的輸入信號之前,還包括:
[0037]在所述RFB客戶端啟動時,將所述終端的外部輸入設(shè)備設(shè)置為僅在所述安全世界下能訪問的外部輸入設(shè)備。
[0038]第二方面,提供了一種安全訪問裝置,用于支持信任區(qū)域硬件技術(shù)的終端中,所述終端可以運(yùn)行在普通世界或者安全世界,所述裝置包括:
[0039]數(shù)據(jù)獲取模塊,用于在所述普通世界下,通過遠(yuǎn)程幀緩沖RFB客戶端獲取RFB服務(wù)端的加密數(shù)據(jù);
[0040]數(shù)據(jù)解密模塊,用于從所述普通世界切換為所述安全世界,對所述加密數(shù)據(jù)進(jìn)行解密得到顯示數(shù)據(jù);
[0041]數(shù)據(jù)顯示模塊,用于在所述安全世界下,根據(jù)所述顯示數(shù)據(jù)進(jìn)行顯示。
[0042]結(jié)合第二方面,在第二方面的第一種可能的實(shí)施方式中,所述數(shù)據(jù)解密模塊,包括:
[0043]請求接收單元,用于在所述普通世界下,接收所述RFB客戶端的寫入請求,其中,所述寫入請求是指將所述加密數(shù)據(jù)寫入幀緩沖區(qū)內(nèi)存的請求,所述幀緩沖區(qū)內(nèi)存是僅在所述安全世界下能夠訪問的內(nèi)存;
[0044]安全切換單元,用于在所述寫入請求觸發(fā)錯誤時,由所述普通世界切換為所述安全世界;
[0045]數(shù)據(jù)解密單元,用于在所述安全世界下,對所述加密數(shù)據(jù)進(jìn)行解密得到顯示數(shù)據(jù);
[0046]所述數(shù)據(jù)顯示模塊,用于將所述顯示數(shù)據(jù)寫入所述幀緩沖區(qū)內(nèi)存中,并由顯示組件自動讀取所述幀緩沖區(qū)內(nèi)存中的所述顯示數(shù)據(jù)進(jìn)行顯示。
[0047]結(jié)合第二方面,在第二方面的第二種可能的實(shí)施方式中,所述裝置,還包括:
[0048]客戶登陸模塊,用于在所述普通世界下,通過所述RFB客戶端登錄所述RFB服務(wù)端;
[0049]安全內(nèi)存模塊,用于在登錄所述RFB服務(wù)端成功時,將所述幀緩沖區(qū)內(nèi)存設(shè)置為僅在所述安全世界下能夠訪問的內(nèi)存。
[0050]結(jié)合第二方面的第二種可能的實(shí)施方式,在第二方面的第三種可能的實(shí)施方式中,所述客戶登陸模塊,包括:
[0051 ] 登錄界面單元,用于在所述普通世界下,通過所述RFB客戶端獲取所述RFB服務(wù)端的登錄界面數(shù)據(jù);
[0052]界面顯示單元,用于根據(jù)所述登錄界面數(shù)據(jù)顯示登錄界面;
[0053]輸入接收單元,用于從所述普通世界切換為所述安全世界,接收在所述登錄界面中輸入的用戶名和密碼;
[0054]輸入發(fā)送單元,用于在所述普通世界下,將所述用戶名和加密后的所述密碼發(fā)送給所述RFB服務(wù)端,以使得所述RFB服務(wù)端根據(jù)所述用戶名和所述加密后的所述密碼進(jìn)行驗(yàn)證。
[0055]結(jié)合第二方面的第三種可能的實(shí)施方式,在第二方面的第四種可能的實(shí)施方式中,所述輸入發(fā)送單元,包括:
[0056]輸入寫入子單元,用于在所述安全世界下,將接收到的所述密碼寫入安全內(nèi)存中,將接收到的所述用戶名寫入普通內(nèi)存中,所述安全內(nèi)存為僅在所述安全世界下能夠訪問的內(nèi)存,所述普通內(nèi)存是在所述普通世界和所述安全世界下均能訪問的內(nèi)存;
[0057]用戶名發(fā)送子單元,用于從所述安全世界切換為所述普通世界,并通過所述RFB客戶端將所述用戶名發(fā)送至所述RFB服務(wù)端;
[0058]隨機(jī)數(shù)接收子單元,在所述用戶名通過所述RFB服務(wù)端的驗(yàn)證時,接收所述RFB服務(wù)端產(chǎn)生的隨機(jī)數(shù);
[0059]反饋生成子單元,用于從所述普通世界切換為所述安全世界,并利用預(yù)定哈希函數(shù)將所述隨機(jī)數(shù)和密碼轉(zhuǎn)化為反饋信息,所述預(yù)定哈希函數(shù)為所述RFB客戶端和所述RFB服務(wù)端預(yù)先約定的哈希函數(shù);
[0060]所述反饋發(fā)送子單元,用于從所述安全世界切換為所述普通世界,并通過所述RFB客戶端將所述反饋信息發(fā)送給所述RFB服務(wù)端。
[0061]結(jié)合第二方面,或是第二方面的第一種可能的實(shí)施方式,或是第二方面的第二種可能的實(shí)施方式,或是第二方面的第三種可能的實(shí)施方式,或是第二方面的第四種可能的實(shí)施方式,在第二方面的第五種可能的實(shí)施方式中,所述裝置,還包括:
[0062]安全啟動模塊,用于在啟動后直接進(jìn)入所述安全世界,并將安全世界提醒組件設(shè)置為僅在所述安全世界下能夠使用,所述安全世界提醒組件用于提醒當(dāng)前運(yùn)行世界為所述普通世界和所述安全世界中的一種。
[0063]結(jié)合第二方面,或是第二方面的第一種可能的實(shí)施方式,或是第二方面的第二種可能的實(shí)施方式,或是第二方面的第三種可能的實(shí)施方式,或是第二方面的第四種可能的實(shí)施方式,在第二方面的第六種可能的實(shí)施方式中,所述裝置還包括:
[0064]輸入獲取模塊,用于在所述安全世界下,獲取外部輸入設(shè)備接收到的輸入信號,所述外部輸入設(shè)備是僅在所述安全世界下能訪問的外部輸入設(shè)備;
[0065]加密寫入模塊,用于將所述輸入信號加密后寫入普通內(nèi)存,所述普通內(nèi)存是在所述普通世界和所述安全世