專利名稱:防止消息重放攻擊的安全性的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及防止通過網(wǎng)絡(luò)發(fā)送的消息的重放攻擊的安全性。更具體地說,本發(fā)明涉及防止重放一則被攔截消息的安全性,它通過把和消息包括在一起的一個特有消息啟動碼與存儲在接收設(shè)備中的一個特有消息啟動碼列表進行比較,以便確定是否啟動該消息的處理。
背景技術(shù):
很遺憾,通過網(wǎng)絡(luò)發(fā)送的消息的重放攻擊已經(jīng)變成一件經(jīng)常發(fā)生的事件。一個重放攻擊通常包括黑客攔截通過網(wǎng)絡(luò)發(fā)送的一則消息,然后在稍后某個時刻第二次重發(fā)該消息給預(yù)定的設(shè)備(或者重放該消息)。作為一個示例,為了從一個帳戶轉(zhuǎn)帳到另一帳戶,可以通過互聯(lián)網(wǎng)從家中或商業(yè)用戶那里發(fā)送一則消息給金融機構(gòu)。攔截該消息的黑客可以在稍后某個時刻第二次發(fā)送該消息給金融機構(gòu),從而導致第二次資金轉(zhuǎn)送。作為另一示例,通過網(wǎng)絡(luò)向一臺打印機發(fā)送機密打印作業(yè)可能會被黑客攔截,然后他可以在一個稍后時刻把該打印作業(yè)重放給打印機,從而獲得機密信息。
雖然類似上述通過網(wǎng)絡(luò)的許多傳輸可以應(yīng)用諸如數(shù)字簽名之類一些類型的保密操作來驗證消息是真的,但是這樣一個簽名很少能防止重放攻擊。關(guān)于這點,黑客通過攔截消息可以獲得必要的簽名來在一個稍后時刻重放該消息。因為簽名在該消息的第一次播放中被驗證,所以它也可能在該消息的第二次播放(回放)中被驗證。
已經(jīng)被建議來處理重放攻擊的一個技術(shù)(所謂的Kerberos)涉及把一個票和一個時間戳加到一則發(fā)送消息上。當一則消息被接收設(shè)備接收時,這個票和時間戳在接收設(shè)備中被臨時保存一段規(guī)定的時間(例如5分鐘)。當另外的消息被接收時,最新接收消息的票和時間戳被提取以便確定它們是否與臨時保存的票和時間戳相同。如果是,那么返回一則錯誤信息。因此,雖然此系統(tǒng)提供防止重放攻擊的一些安全性,但是它還是有一些問題。
上述系統(tǒng)的一個問題是當時間戳被使用作為一則消息的有效性度量時,相同的時間戳可以給不同的消息。因此,由于時間戳不識別消息本身,而是識別發(fā)送消息的時間,所以如果與正式消息相同的時間戳存在時,一則重放的消息可以被認為是有效的。
上述系統(tǒng)的另外一個問題是開銷增加,因為每個接收設(shè)備必須提供足夠的存儲空間存儲所使用的票和時間戳。隨著越來越多的消息被接收到,則需要一個更大的存儲空間量來保存所使用的票。此外,隨著票數(shù)目增長得越來越大,則需要更多處理時間來搜索所使用的票,從而由于時間而降低了系統(tǒng)的性能。
另外,黑客也許能從接收設(shè)備中刪除一個臨時保存的票和時間戳然后重放消息。因此,雖然票和時間戳可能已被使用過一次,但是因為這個票和時間戳已從臨時保存的信息中刪除,所以重放的消息將被視為有效;假定在時間戳的一個可允許期限內(nèi)消息被重放。結(jié)果,臨時保存所使用的票和時間戳的Kerberos過程雖然提供某些保護但是仍然在防止重放攻擊方面有一些弱點。
發(fā)明內(nèi)容
本發(fā)明的目的是解決至少一個上述問題。本發(fā)明通過如下操作來解決上述問題在接收并處理作業(yè)的設(shè)備中存儲一個有效代碼或令牌列表,把與接收消息包括在一起的特有消息啟動代碼(令牌)與存儲的列表進行比較,以便確定所述代碼(令牌)是否有效,然后從存儲的列表中刪除接收到的代碼(令牌)。因此,根據(jù)本發(fā)明,一個特有消息啟動代碼的列表被存儲在接收設(shè)備中。在主機設(shè)備中生成的一則消息包括來自生成的列表中的至少一個特有消息啟動代碼,該消息被發(fā)送給接收設(shè)備。接收設(shè)備在接收到消息后,把與接收消息包括在一起的特有消息啟動代碼與包含在存儲列表中的代碼進行比較以便確定是否拒絕該消息的處理。因此,在一個實施例中,如果與消息一起被接收的特有消息啟動代碼包括在存儲的列表中,那么該消息被認為是有效的并且從存儲的列表中刪除相應(yīng)的特有消息啟動代碼??墒?,如果與消息一起被接收的特有消息啟動代碼未包括在存儲的列表中,那么該消息的處理被拒絕。
結(jié)果,如果黑客想要攔截該消息并企圖通過在一個稍后時刻重發(fā)該消息給接收設(shè)備來第二次回放該消息時,則由于特有啟動代碼不再包含在存儲的列表中所以接收設(shè)備將拒絕該消息。此外,與上述Kerberos系統(tǒng)不同,如果黑客想要從接收設(shè)備中刪除存儲的代碼列表,則由于該代碼不被包括在列表中所以重放的消息將被拒絕。當然,在這種情況下,消息的第一次播放也將被拒絕,但是消息發(fā)送方可以只須獲得一個新的代碼并發(fā)送一則新消息與新代碼即可。另外,可以把一個設(shè)備建入該系統(tǒng)中以便在黑客刪除當前存儲的列表時自動地獲取新的代碼列表。因此,通過在接收設(shè)備中提供該接收設(shè)備特定的一個特有消息啟動代碼列表并從列表中刪除使用過了的代碼,則能夠很容易地提供防止攔截消息回放的安全性。
因此,在一個方面中,本發(fā)明通過把第二設(shè)備從第一設(shè)備接收到的一則消息的特有消息啟動代碼與存儲在第二設(shè)備中的特有消息啟動代碼的列表進行比較以便確定與消息一起被接收的特有消息啟動代碼是否包括在存儲的列表中,來提供防止從第一設(shè)備向第二設(shè)備發(fā)送的一則消息的重放的安全性?;诒容^,確定是否拒絕第二設(shè)備對該消息的處理。
在確定與消息一起被接收的特有消息啟動代碼包括在存儲的列表中的情況下,該消息的處理不被拒絕并且相應(yīng)的特有消息啟動代碼從存儲的列表中被刪除。另一方面,在確定與消息一起被接收的特有消息啟動代碼未包括在存儲的列表中的情況下,該消息的處理被拒絕。
優(yōu)選地,特有消息啟動代碼列表由第三設(shè)備或第一設(shè)備生成,生成的列表被發(fā)送給第二設(shè)備并存儲在其中??商娲?,特有消息啟動代碼可以由第二和第三設(shè)備互相地生成而不是在設(shè)備之間發(fā)送列表。因此,消息可以在第一設(shè)備中生成,以使消息包括來自生成的列表中的至少一個特有消息啟動代碼。當然,消息和特有消息啟動代碼然后可以從第一設(shè)備被發(fā)送到第二設(shè)備。
作為生成消息的一部分,第一設(shè)備可以向第三設(shè)備請求一個要被包括在消息中的特有消息啟動代碼,因此第三設(shè)備將所述要被包括在消息中的特有消息啟動代碼發(fā)送給第一設(shè)備。對于這個方面,一個安全的服務(wù)器可以為第二設(shè)備保存有效代碼列表,并且多個第一設(shè)備可以請求一個代碼用于使用來與消息一起發(fā)送給第二設(shè)備。
在本發(fā)明的另外一個方面中,第二設(shè)備可以確定預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼是否包含在存儲的列表中。如果確定所述列表包含預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼,那么第二設(shè)備可以為該列表獲取補充的特有消息啟動代碼。例如,一旦列表被消耗到一個預(yù)定數(shù)量或更少數(shù)量時,第二設(shè)備可以通知第一設(shè)備或第二設(shè)備需要補充的代碼。從而,補充的特有消息啟動代碼可以被發(fā)送給第二設(shè)備,因此第二設(shè)備能夠啟動一個新的列表代替當前存儲的列表,或者可以只是把補充的代碼添加到當前列表中以便形成一個累積的列表。可替代地,如果實施例中使用代碼的相互生成,則第二設(shè)備可以只須它自己生成一個新的列表。
雖然上文描述了在本發(fā)明中應(yīng)用三個設(shè)備的情況,但是可以很容易知道可以改為使用更少或更多的設(shè)備。例如,一個只應(yīng)用第一和第二設(shè)備的系統(tǒng)可以被使用,其中,代碼列表在第一設(shè)備本身之中被生成并且列表被轉(zhuǎn)送給第二設(shè)備。然后,當?shù)谝辉O(shè)備想要發(fā)送一個作業(yè)給第二設(shè)備時,它可以只須從它自己的內(nèi)部列表中獲取與作業(yè)包括在一起的一個代碼,而無須與第三設(shè)備通信以便獲取代碼。
以上內(nèi)容用以使本發(fā)明的特性可以被迅速理解。通過結(jié)合附圖參考本發(fā)明優(yōu)選實施例的如下詳細說明,則能夠獲得本發(fā)明的一個更完整的理解。
圖1是可以實現(xiàn)本發(fā)明的一個網(wǎng)絡(luò)計算環(huán)境的典型視圖。
圖2是示出個人計算機內(nèi)部構(gòu)造示例的框圖。
圖3是示出服務(wù)器內(nèi)部構(gòu)造示例的框圖。
圖4描述了根據(jù)本發(fā)明在各個組件之間通信的軟件體系結(jié)構(gòu)。
圖5描述了用于由一個目錄組件處理命令的軟件體系結(jié)構(gòu)。
圖6描述了根據(jù)本發(fā)明用于通信的軟件體系結(jié)構(gòu),包括授權(quán)請求和授權(quán)響應(yīng)。
圖7描述了功能提供者和安全應(yīng)用之間的通信示例。
圖8描述了功能提供者內(nèi)的軟件體系結(jié)構(gòu)。
圖9是根據(jù)本發(fā)明用于發(fā)送作業(yè)到一個功能提供者以及功能提供者處理該作業(yè)的處理步驟流程圖。
圖10是功能提供者確定與作業(yè)一起被接收的令牌有效性的處理步驟流程圖。
圖11是功能提供者確定與作業(yè)一起被接收的令牌有效性以及確定是否需要補充的令牌的處理步驟流程圖。
圖12是功能提供者從一個安全性應(yīng)用中獲取補充的令牌的處理步驟流程圖。
具體實施例方式
本發(fā)明通常針對防止消息的重放攻擊。正如將在下面更詳細描述的那樣,在一個網(wǎng)絡(luò)計算環(huán)境中實現(xiàn)本發(fā)明,其中諸如個人計算機、多功能設(shè)備和服務(wù)器之類的各個設(shè)備通過網(wǎng)絡(luò)彼此通信。在下面提供的詳細描述雖然針對執(zhí)行從主計算機向多功能設(shè)備發(fā)送一個打印作業(yè)并防止打印作業(yè)在多功能設(shè)備上重放的這樣一個打印操作,但是它不限制為這樣一個實施例。相反,本發(fā)明可以被實現(xiàn)在防止越權(quán)用戶重放消息的任何各種環(huán)境中。同樣,附加到此的權(quán)利要求不被限制為打印環(huán)境,而是被概括解釋為包含防止電子通信重放攻擊的任何環(huán)境。
圖1提供了可以實現(xiàn)本發(fā)明的一個網(wǎng)絡(luò)計算環(huán)境的系統(tǒng)視圖。如圖1所示,網(wǎng)絡(luò)計算環(huán)境可以包括網(wǎng)絡(luò)100,連接到網(wǎng)絡(luò)100的是臺式機10、服務(wù)器40、多功能設(shè)備30和打印機50。雖然對于其它類型的網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))也可以應(yīng)用本發(fā)明,但是優(yōu)選地,網(wǎng)絡(luò)100是一個由總線型物理構(gòu)造組成的以太網(wǎng)網(wǎng)絡(luò)媒體。
優(yōu)選地,臺式機10是一個個人計算機,比如具有諸如個人計算機典型的微軟視窗2000之類的視窗環(huán)境的IBM PC-兼容計算機,優(yōu)選地,臺式機10具有顯示屏11(比如彩色顯示器)、鍵盤12、鼠標13或其它定點設(shè)備、以及諸如軟盤/硬盤/CD-ROM等等之類的存儲媒體14。
還示出的連接到網(wǎng)絡(luò)100的是多功能設(shè)備30,它能夠通過網(wǎng)絡(luò)接收要被設(shè)備30處理的命令和數(shù)據(jù)。例如,設(shè)備30可以接收來自個人計算機10的一個打印作業(yè)用于處理該打印作業(yè)以便打印一張圖像。多功能設(shè)備30還可能能夠接收和發(fā)送傳真、執(zhí)行復(fù)印操作、或者掃描圖像。多功能設(shè)備30經(jīng)由網(wǎng)絡(luò)接口(未示出)通過網(wǎng)絡(luò)100與其它設(shè)備通信以使設(shè)備30能夠接收并處理來自網(wǎng)絡(luò)上其它設(shè)備中的命令和數(shù)據(jù)。本發(fā)明中涉及多功能設(shè)備30的一個特征是為設(shè)備30存儲特有消息啟動代碼(在下文中也被稱為″令牌″或″TAT″)的列表,正如在下面將更詳細描述的那樣,代碼例如由服務(wù)器40提供給設(shè)備30,并被利用來防止網(wǎng)絡(luò)上的其它設(shè)備對發(fā)送至設(shè)備30的消息的重放或者傳輸。因此,設(shè)備30不僅包括與個人計算機10通信的能力而且包括與服務(wù)器40通信的能力。
關(guān)于這點,服務(wù)器40還連接到網(wǎng)絡(luò)100。優(yōu)選地,服務(wù)器40包括一個服務(wù)器類型的計算機,它具有各種類型的服務(wù)器操作系統(tǒng)中的任何之一,比如DOS,微軟視窗2000服務(wù)器,Novell,UNIX,Linux等等。服務(wù)器40有一個存儲設(shè)備480,優(yōu)選地,存儲設(shè)備480是一個用于存儲眾多文件的大容量硬盤。服務(wù)器40因此能被網(wǎng)絡(luò)100上的其它設(shè)備利用為文件服務(wù)器。服務(wù)器40也可以為網(wǎng)絡(luò)100上其它設(shè)備擔當對諸如互聯(lián)網(wǎng)之類的另一網(wǎng)絡(luò)的網(wǎng)關(guān)。本發(fā)明更特定的是服務(wù)器40優(yōu)選地包括一個安全性應(yīng)用(SA),它生成特有消息啟動代碼或TAT(事件接入令牌),其被利用在實踐本發(fā)明之中。即,服務(wù)器40的安全性應(yīng)用包括以一個安全的方式生成可以被發(fā)送給網(wǎng)絡(luò)上其它設(shè)備(比如多功能設(shè)備30)的TAT列表的能力,安全的方式例如可以是SSL連接或者可以是被加密。這些過程將在下面關(guān)于服務(wù)器的安全性應(yīng)用而被更詳細地描述。
打印機50也連接到網(wǎng)絡(luò)100并且優(yōu)選地是激光或噴墨打印機。打印機50包括沿著多功能設(shè)備30的線路的功能,但是更具體地說,被引導來僅僅執(zhí)行打印操作。因此,打印機50在它涉及本發(fā)明時以與多功能設(shè)備30相同的方式操作,并且因此,設(shè)備30的描述同樣應(yīng)用于打印機50。
圖2是示出臺式機10內(nèi)部構(gòu)造概述的框圖。圖2中,看到臺式機10包括諸如可編程微處理器之類的中央處理器(CPU)210,它與計算機總線200接口。也耦合到計算機總線200上的是用于接口到鍵盤12的鍵盤接口220、用于接口到鼠標13的鼠標接口230、用于接口到軟盤14的軟盤接口240、用于接口到顯示屏(顯示器)11的顯示屏接口250、用于接口到網(wǎng)絡(luò)100的網(wǎng)絡(luò)接口260、以及用于與本地外圍設(shè)備(未示出)接口的外圍設(shè)備接口265。隨機訪問存儲器(″RAM″)270接口到計算機總線200以便向中央處理器(″CPU″)210提供對內(nèi)存存儲器的訪問,從而擔當CPU 210的主運行時刻存儲器。具體地說,當執(zhí)行存儲程序指令序列時,CPU 210把那些指令序列從硬盤280(或其它內(nèi)存媒體)載入到隨機訪問存儲器(″RAM″)270中并執(zhí)行出自RAM270的那些存儲程序指令序列。還應(yīng)當指出按照窗口操作系統(tǒng)可用的標準磁盤交換技術(shù)允許內(nèi)存分段以與RAM270和硬盤280交換。只讀存儲器(″ROM″)290存儲不變的指令序列,比如CPU 210的啟動指令序列或附加到計算機10上的外圍設(shè)備操作的基礎(chǔ)輸入輸出操作系統(tǒng)(″BIOS″)序列。
硬盤280是計算機可讀介質(zhì)的一個示例,它存儲中央處理器(″CPU″)210可執(zhí)行的程序指令序列。一些存儲程序指令包括視窗操作系統(tǒng)281、打印機驅(qū)動器282、本地外圍設(shè)備驅(qū)動器283、加密/解密邏輯284、應(yīng)用程序285和網(wǎng)絡(luò)外圍設(shè)備驅(qū)動器286。如上所述,雖然對于本發(fā)明可以使用其它類型的操作系統(tǒng),但是優(yōu)選地,操作系統(tǒng)281是視窗操作系統(tǒng)。打印機驅(qū)動器282被利用來準備用于在諸如多功能設(shè)備30或打印機50之類的至少一個圖像形成設(shè)備上打印的圖像數(shù)據(jù)。本地外圍設(shè)備驅(qū)動器283被利用來驅(qū)動并控制用于與本地(即,本地連接到計算機10上的設(shè)備)外圍設(shè)備進行接口的本地外圍設(shè)備接口265。加密/解密邏輯284提供用于執(zhí)行要被計算機10發(fā)送給網(wǎng)絡(luò)上其它設(shè)備的數(shù)據(jù)的加密,以及執(zhí)行計算機10從網(wǎng)絡(luò)上其它設(shè)備中接收到的加密數(shù)據(jù)的解密。應(yīng)用程序285例如可以包括用于創(chuàng)建文檔和圖像的標準文字處理器程序,例如Microsoft Word、PowerPoint或者Corel WordPerfect。網(wǎng)絡(luò)外圍設(shè)備驅(qū)動器286包含計算機10與網(wǎng)絡(luò)外圍設(shè)備通信(諸如在多功能設(shè)備30上執(zhí)行遠程操作(例如,遠程掃描、拷貝、傳真等等)之類的)所必需的驅(qū)動器。
圖3是示出服務(wù)器40內(nèi)部構(gòu)造概述的框圖。圖3中,看到服務(wù)器40包括中央處理器(″CPU″)410,鍵盤接口420,鼠標接口430,顯示屏接口450,用于接口到網(wǎng)絡(luò)100的網(wǎng)絡(luò)接口460,隨機訪問存儲器(″RAM″)470,硬盤480,以及只讀存儲器(″ROM″)490,其中所有的組件都耦合到計算機總線400上。每一個上述組件的功能和操作類似于關(guān)于圖2所描述的相同組件。因此,關(guān)于圖2描述的這些組件的操作的詳細描述同樣適于圖3中描述的組件,因此為了簡潔在此省略了它們的描述。
硬盤480是計算機可讀介質(zhì)的一個示例,它存儲CPU410可執(zhí)行的程序指令序列。具體地說,諸如操作系統(tǒng)411、網(wǎng)絡(luò)接口驅(qū)動器412、安全性應(yīng)用413和目錄服務(wù)414之類的軟件應(yīng)用可以被存儲在硬盤480上。網(wǎng)絡(luò)接口驅(qū)動器412被利用來驅(qū)動用于把服務(wù)器40與網(wǎng)絡(luò)100進行接口的網(wǎng)絡(luò)接口460。在下面將更詳細地描述安全性應(yīng)用413,它提供各種安全性功能用于實踐本發(fā)明??墒?,簡要地說,安全性應(yīng)用413從網(wǎng)絡(luò)上的各個設(shè)備(包括計算機10、多功能設(shè)備30和打印機50)中接收命令,并相應(yīng)地處理那些命令。例如,安全性應(yīng)用413可以接收來自多功能設(shè)備30中的命令以便發(fā)布設(shè)備信息到目錄服務(wù)414中,或者請求一個TAT塊的下載。安全性應(yīng)用413還可以接收來自計算機10中的命令以便請求授權(quán)發(fā)送一個作業(yè)給設(shè)備30(將在下面更詳細地描述)。授權(quán)請求可以包括計算機10的任何必需的與安全性相關(guān)的信息(也將在下面被更詳細地描述)的一個請求以便能夠以一種能阻止作業(yè)重放的方式提交一個作業(yè)給多功能設(shè)備30。優(yōu)選地,目錄服務(wù)414是一個基于LDAP(輕量級目錄訪問協(xié)議)的目錄服務(wù),它執(zhí)行各種目錄功能,比如存儲連接到網(wǎng)絡(luò)的各個設(shè)備的設(shè)備信息。應(yīng)該指出雖然目錄服務(wù)414被示出為位于硬盤480內(nèi),但是目錄服務(wù)可以改為位于服務(wù)器40外部。例如,目錄服務(wù)可以被實現(xiàn)在另一服務(wù)器(圖1中未示出)中,以使服務(wù)器40經(jīng)由網(wǎng)絡(luò)接口460通過網(wǎng)絡(luò)與目錄服務(wù)服務(wù)器通信。
現(xiàn)在將用在實踐本發(fā)明中所利用的軟件體系結(jié)構(gòu)來進行描述。簡要地說,該體系結(jié)構(gòu)包括如下組件諸如計算機10之類的一個功能用戶(在下文中被稱為″FU″),諸如多功能設(shè)備30之類的一個功能提供者(在下文中被稱為″FP″),諸如安全性應(yīng)用413之類的一個安全性應(yīng)用(在下文中被稱為″SA″),以及諸如目錄服務(wù)414之類的一個目錄服務(wù)(在下文中被稱為″DS″)。每個組件包括提供根據(jù)本發(fā)明用于執(zhí)行作業(yè)提交處理功能的各個模塊。例如,在執(zhí)行一個打印操作時,功能用戶想要發(fā)送一個打印作業(yè)給多功能設(shè)備30,發(fā)送一個作業(yè)授權(quán)請求命令給安全性應(yīng)用。該請求可以是安全性應(yīng)用向功能用戶提供一個授權(quán)響應(yīng),授權(quán)響應(yīng)包括一個TAT(事件授權(quán)令牌),在此,該響應(yīng)要被用于發(fā)送打印作業(yè)給設(shè)備30。正如將在下面被更詳細地描述的那樣,包括在授權(quán)響應(yīng)中的TAT被利用在防止打印作業(yè)的重放攻擊中。安全性應(yīng)用處理授權(quán)請求并用授權(quán)響應(yīng)對功能用戶進行響應(yīng)。功能用戶在接收授權(quán)響應(yīng)之后,把打印作業(yè)和授權(quán)響應(yīng)一起提交給設(shè)備30,在此,功能提供者(設(shè)備30)相應(yīng)地處理打印作業(yè)。正如將在下面被更詳細地描述的那樣,功能提供者對打印作業(yè)的處理可以包括驗證包括在與打印作業(yè)一起被接收的授權(quán)響應(yīng)中的TAT是否有效以便防止一個重放攻擊?,F(xiàn)在將更詳細地描述這些過程。
圖4給出了具有所述安全性應(yīng)用組件內(nèi)部說明的一個系統(tǒng)的總體軟件體系結(jié)構(gòu)。如圖4所示,安全性應(yīng)用組件113(SA)與可以包括計算機10的功能用戶110(FU)通信、與諸如多功能設(shè)備30之類的功能提供者130(FP)通信、與管理用戶(示出為,AU’)160以及與諸如目錄服務(wù)414之類的目錄服務(wù)114(DS)通信。優(yōu)選地,在SA 113和FU 110、AU 160以及DS 114之間的通信在諸如SSL(安全套接層)之類的安全傳輸協(xié)議上。在圖4中用斜紋箭頭描述一個SSL通信,而用普通箭頭描述非SSL通信。可是,SA 113和FP 130之間的通信可以既在SSL鏈路上又在非SSL鏈路上。例如,在從SA 113中下載令牌(TAT)列表給FP 130的情況下可以利用SSL鏈路,而當設(shè)備是一個新設(shè)備的時候FP 130向DS 114發(fā)布設(shè)備信息時或者當利用加密要從SA中向FP下載令牌(TAT)列表時可以利用非SSL鏈路。
如圖4中所看到的,安全性應(yīng)用113包括SSL組件120、命令處理組件121、安全性組件122和目錄組件123。SA中的SSL組件120提供用于套接通信的SSL支持。在套接上外出的所有數(shù)據(jù)都通過SSL組件。當然,如果一個非SSL連接被用于通信,則SSL組件將包括與被利用的連接類型對應(yīng)的一個通信組件,而不是包括SSL。
命令處理組件121處理對SA的呼入命令。命令處理模塊的主要功能是把來自不同源的呼入命令翻譯為適于SA中的組件。命令處理模塊可以識別的一個命令示例是一個設(shè)備發(fā)布命令。設(shè)備發(fā)布命令用于發(fā)布一個新設(shè)備的設(shè)備信息(即,MIB(管理信息庫)信息等等)到DS 114中。命令處理組件為此命令而與目錄組件123和安全性組件122通信。
安全性組件122執(zhí)行各種操作,包括安全信息的生成以及向新設(shè)備的遞送,比如TAT的生成以及向網(wǎng)絡(luò)上的設(shè)備的遞送;以及把一個數(shù)字簽名施加到被包括在授權(quán)響應(yīng)中的一個TAT上(在下面被更詳細地描述)。TAT被利用在本發(fā)明中以便通過確保一個給定事件(是一個打印作業(yè)或者任何其它類型的事件)將只被處理一次來阻止重放攻擊。TAT在重放防止中的基礎(chǔ)應(yīng)用如下。
一個TAT或者一個TAT列表由SA生成。優(yōu)選地,TAT具有這樣的特性(例如一個簡單的隨機值或者與時間和日期的表示法合并的一個隨機值),其擔保它是特有的(從不重復(fù))并且它不會被攻擊者合理預(yù)測或推測。TAT被安全地遞送給FP(例如,經(jīng)由SSL或者通過被加密),優(yōu)選地,和其它TAT一起作為TAT塊的一部分而被安全地遞送,在此,它們被存儲在FP中。即,一個TAT塊由SA生成并預(yù)先(或者以合宜的時間間隔)分發(fā)給FP,以使FP保存將被用于將來操作的TAT塊。因此,SA可以預(yù)先生成一個TAT塊并把它們發(fā)送給FP,在此,直到被需要之前它們將被安全地存儲。想要發(fā)送作業(yè)給FP的FU發(fā)送一個授權(quán)請求給SA。SA處理該請求并生成一個授權(quán)響應(yīng)。與TAT塊一起遞送的TAT之一被SA包括在授權(quán)響應(yīng)中,因此該響應(yīng)然后被返回給發(fā)送授權(quán)請求的FU。FU把作業(yè)和包括TAT的授權(quán)響應(yīng)一起遞送給FP。FP通過把TAT與它早先從SA中接收到的TAT列表匹配來確認與作業(yè)一起包括的TAT是否有效。如果發(fā)現(xiàn)該TAT有效(即,它包含在存儲的塊中),則FP處理這件作業(yè)然后從存儲的列表中刪除該TAT,以使包含同一TAT的任何將來的作業(yè)將不被重視。這種基于令牌的授權(quán)系統(tǒng)確保每個事件將只被處理一次。因此,如果事件的一點圖像被攻擊者重放,則FP將不能發(fā)現(xiàn)在它的本地存儲器中的一個匹配TAT,并將拒絕該事件。此實施的一個附加優(yōu)點是FP不需要為將來的參考而存儲已使用令牌的拷貝。這個方法防止正如在設(shè)備的功率循環(huán)期間可能發(fā)生的通過破壞FP存儲的令牌可以設(shè)制然后發(fā)送事件的重放給設(shè)備的那些攻擊,在此,一個已使用過的令牌將不會被發(fā)現(xiàn)。另一方面,依靠令牌存儲器的易變性,可能需要遵循一個功率循環(huán)重新分發(fā)有效TAT給設(shè)備。正如將在下面被更詳細地描述的那樣,在正態(tài)分布機構(gòu)的邊界內(nèi)可以很容易管理任何這樣的分發(fā)。
現(xiàn)在將關(guān)于SA向FP的TAT生成和分發(fā)、以及SA和FP相互獨立的TAT生成來提供一個簡短的描述。
在一個優(yōu)選實施例中,所有令牌由SA生成,并且在按需基礎(chǔ)上生成并分別地轉(zhuǎn)送給FP,或者在單個操作中作為一個令牌塊被生成并轉(zhuǎn)送給FP。無論它們是分別地還是作為一塊被生成,則對于令牌結(jié)構(gòu)都能使用相同的方法。關(guān)于這點,通過只是生成適當長度的一個加密強隨機值(rv)或者通過為了最精確可用的分辨率而合并日期的時間和隨機值,則SA可以生成TAT。發(fā)生器的結(jié)果輸出(例如rv,與rv合并的tod等等)可以被直接使用作為一個TAT。因此,如果TAT只包括一個隨機值(rv),則SASA利用任何已知的發(fā)生器生成一個加密強隨機值。在合并實施中,每個TAT可以由SA使用下列方法而分別地生成TATn=tod‖rv
在此tod是日期的時間,rv是一個加密強隨機值,和‖表示級聯(lián)。
對于初始令牌,一個簡單的發(fā)生器可以被實現(xiàn)為TAT0=tod‖rv在此tod是日期的時間,rv是一個加密強隨機值,和‖表示級聯(lián)。
由于有在SA上的實時時鐘中的一個足夠精確的分辨率,特有性(唯一性)可以被確保。
一旦生成TAT,它們可以在按需基礎(chǔ)上各個地或者更優(yōu)選地作為一個TAT塊被SA安全地分發(fā)給FP。如上所述,TAT可以經(jīng)由一個SSL連接被SA分發(fā)給FP,或者塊可以被SA數(shù)字標記,所述塊然后被SA加密并發(fā)送給FP。
作為上文的一個替代方案,TAT可以由SA和FP相互獨立地生成。即,SA可以獨立地生成一個TAT塊而FP也可以獨立地生成一個相應(yīng)的TAT塊。這個方法消除了對于通過網(wǎng)絡(luò)從SA發(fā)送TAT塊給FP的需要,從而減少了攻擊者攔截所述塊的可能性。在生成過程期間,相互的生成例如可以使用散列法或者加密。使用這個實施例,SA和FP獨立地生成一個完全相同的TAT值序列,它們無法被攻擊者預(yù)測--即使攻擊者知道前一數(shù)值序列。完成這個任務(wù)的一種方法是使用一個簡單的發(fā)生器,它使用散列函數(shù)來混合輸入。使用這種方法,合并實施中的初始令牌可以由SA生成如下TAT0=tod‖rv在此tod是日期的時間,rv是一個加密強隨機值。
后來,完全相同的令牌可以由SA和FP使用如下方法獨立地生成TATn=tod‖Hk(TATn-1‖n在此H是一個鍵控散列函數(shù),比如HMAC-SHA1,
tod是在初始令牌中由SA提供的日期的時間,k是由SA在當前塊初始化期間生成的隨機密鑰,和n是一個計數(shù)器的數(shù)值,在此n>0。
對于這個實施例,由于等式以右的所有變量可以被攻擊者已知,所以需要散列密鑰的存在。如果不知道k,盡管擁有tod、TATn-1和n,則攻擊者不能生成TATn。
因此,正如從上文可以看到的,在各個實施的任何一個中,TAT可以在SA和FP之間生成和分發(fā)。可是,優(yōu)選地,TAT由SA作為一塊而被生成,TAT塊被分發(fā)給FP,為了將來使用而把它們存儲在此。當然,TAT塊還被SA保存以使當FU請求在FP上執(zhí)行一個操作時,SA可以確定哪些TAT對應(yīng)于FU想要使用的FP并且能夠為FU提供一個適當?shù)腡AT給FU以便包括在發(fā)送給FP的作業(yè)中。
返回到圖4,目錄組件123與命令處理組件121和目錄服務(wù)114通信。圖5描述了目錄組件123的一個更詳細的框圖。
正如在圖5中看到的,目錄組件123包括與命令處理組件121和規(guī)劃管理器模塊131通信的設(shè)備發(fā)布模塊126。設(shè)備發(fā)布模塊126處理由SA從FP中接收到的設(shè)備發(fā)布命令以便設(shè)置任何新的設(shè)備。當一個新的設(shè)備被啟動并執(zhí)行一個發(fā)現(xiàn)操作以便發(fā)現(xiàn)SA時,設(shè)備發(fā)布模塊根據(jù)設(shè)備規(guī)劃從FP中獲取設(shè)備配置信息并把收集的信息存儲在目錄服務(wù)114中。規(guī)劃管理器模塊131處理目錄訪問請求并知道目錄規(guī)劃,因此它能夠把任何目錄訪問請求映射到目錄規(guī)劃以便(優(yōu)選地經(jīng)由LDAP)拉出存儲在目錄服務(wù)中的適當信息。
圖6描述了根據(jù)本發(fā)明在FU、SA和DS之間的通信示例。在如下描述中,如圖6所示的已編號箭頭描述各個模塊之間的通信并且已編號箭頭將被歸于一個括弧中(例如,箭頭編號1為(箭頭1))。在圖6中,假定FU和SA之間的鏈路經(jīng)由SSL,則FU 110連接到收聽SA的SSL端口(箭頭1)。FU和SA之間的驗證過程可以在這個時候被執(zhí)行以使SA接受連接并為FU產(chǎn)生一個線程和一個新數(shù)據(jù)通信套接。因此,在SA和FU之間建立一個安全的(SSL)連接(箭頭2)。然后FU發(fā)送一個授權(quán)請求給SA(箭頭3)。授權(quán)請求例如可以是這樣一個請求由FU在FP 130上執(zhí)行一個打印操作并且SA向FU提供一個TAT。命令處理組件121處理該請求,調(diào)用判斷模塊127,并把請求傳遞給判斷模塊127(箭頭4)。判斷模塊處理該請求以便構(gòu)造授權(quán)比特并把授權(quán)比特傳遞給安全性組件(箭頭5)。安全性組件處理授權(quán)比特以便提供一個被加密了的(優(yōu)選地被數(shù)字標記了的)TAT返給判斷模塊(箭頭6)。判斷模塊127以授權(quán)響應(yīng)的形式發(fā)送被加密了的TAT返給FU(箭頭7和8)。FU和SA之間的套接連接然后關(guān)閉。
圖7描述了在FP 130和SA 113之間的通信的軟件體系結(jié)構(gòu)示例。正如在圖7中看到的,F(xiàn)P可以發(fā)出與SA的一個非安全通信。非安全通信例如可以被使用于網(wǎng)絡(luò)上一個新設(shè)備的初始設(shè)置,或者請求SA向FP提供一個新的TAT塊。因此,F(xiàn)P連接到SA正在收聽的一個非SSL端口。SA接受該連接并為這個FP產(chǎn)生一個線程和一個新數(shù)據(jù)通信套接。在初始建立模式中,F(xiàn)P把一個設(shè)備發(fā)布命令以及一個命令信息塊一起發(fā)送給SA,SA規(guī)定它是一個新設(shè)備(箭頭1)。如果FP正在請求一個新的TAT塊,則箭頭1表示請求所述新塊的一個命令。命令處理組件121處理接收到的命令并把它傳遞給安全性組件122(箭頭2)。如果FP是一個新設(shè)備,安全性組件122生成被下載給新設(shè)備的安全信息。更具體地說,SA的安全性組件為所述新設(shè)備生成一個公共/專用密鑰對,并為SA生成一個已標記的證書。安全性組件還利用上述任何一種方法生成一個TAT塊。在命令是用于設(shè)置一個新設(shè)備的情況下或者命令是用于獲取一個新TAT塊的情況下都執(zhí)行這個過程??商娲兀瑸榱嗽O(shè)置一個新設(shè)備,在使用相互生成TAT的實施例中,安全性組件可以生成一個初始TAT,其被兩個設(shè)備使用來生成將來的TAT。安全信息或者新的TAT塊然后被下載到FP(箭頭3)。應(yīng)該指出不同于箭頭1,箭頭3的通信是一個安全通信。即,安全信息或新的TAT塊通過如下方法被下載1)通過SA與FP建立一個SSL鏈路然后經(jīng)由SSL把安全信息發(fā)送給FP,或者2)通過SA加密安全信息然后把加密了的安全信息發(fā)送給FP。FP然后斷掉連接并且套接關(guān)閉。
圖8描述了FP的一個內(nèi)部軟件體系結(jié)構(gòu)。正如在圖8中看到的,F(xiàn)P優(yōu)選地通過安全性組件132提供的安全信道連接與SA通信。安全性應(yīng)用發(fā)現(xiàn)組件133處理SA發(fā)現(xiàn)過程。當設(shè)備被加電時,這個模塊使用DNS服務(wù)來發(fā)現(xiàn)組織SA組件并在SA和FP之間建立安全連接。
圖9是用于從功能用戶(FU)向功能提供者(FP)提交一個作業(yè)的處理步驟流程圖。作為作業(yè)提交的一個示例,一個打印作業(yè)可以從計算機10(形成FU)提交給多功能設(shè)備30(形成FP),在此,打印作業(yè)通過服務(wù)器40(形成SA)被處理??墒牵蛴∽鳂I(yè)不是可以被提交的唯一作業(yè)類型,作業(yè)可以包括各種功能的任何一個,比如執(zhí)行遠程拷貝操作、傳真操作、掃描操作、從一個帳戶轉(zhuǎn)帳到另一帳戶等等的一個請求。而且,雖然FP優(yōu)選地是能夠執(zhí)行上述操作的任何一個或多個的一個多功能設(shè)備,但是它不必是一個多功能設(shè)備,而可以改為任何其它類型的設(shè)備,比如服務(wù)器、打印機、復(fù)印機、傳真設(shè)備等等。現(xiàn)在參考圖9,在步驟S901,用戶執(zhí)行一些類型的動作來發(fā)出一個授權(quán)請求以便在FP上執(zhí)行一個操作。在打印作業(yè)要從計算機10提交給多功能設(shè)備30的情況下,用戶在計算機10處執(zhí)行發(fā)出動作??墒牵脩艨梢栽谌魏蜦U設(shè)備處發(fā)出所述請求動作并且本發(fā)明不限制為與FP分開的計算機。例如,F(xiàn)P本身可以包括一個諸如與網(wǎng)絡(luò)通信的多功能設(shè)備上的觸板顯示屏之類的操作單元,以使用戶可以在FP自己那里發(fā)出該請求。在FU是個人計算機10的情況下,請求動作可以由在應(yīng)用程序中執(zhí)行操作的用戶發(fā)出以便提交給FP。正如用于執(zhí)行打印操作所公知的那樣,用戶可以通過選擇諸如文字處理程序之類的應(yīng)用程序內(nèi)的一個打印選項來發(fā)出打印處理,因此激活一個打印驅(qū)動器用于提交打印作業(yè)以便打印出來。
在本發(fā)明中,當打印驅(qū)動器被激活時,由打印驅(qū)動器為打印作業(yè)生成作業(yè)數(shù)據(jù)。例如,打印驅(qū)動器可以生成包括所執(zhí)行的操作類型(即,打印)、作業(yè)頁數(shù)、以及各種打印選項(彩印、雙面打印等等)在內(nèi)的打印數(shù)據(jù)。另外,F(xiàn)U(計算機10)和FP(多功能設(shè)備30)的信息可以被包括在作業(yè)數(shù)據(jù)中。例如,諸如FU和FP的MAC地址或IP地址之類的標識信息可以被獲取并包括在作業(yè)數(shù)據(jù)中。一旦作業(yè)數(shù)據(jù)已被獲取,則它優(yōu)選地以一則授權(quán)請求消息的形式而被封裝用于傳輸給SA。
然后FU與SA建立一個連接以便把授權(quán)請求發(fā)送給SA(步驟S902)。優(yōu)選地,所述連接是一個安全的連接,比如SSL。這可以被視為對應(yīng)于圖6的箭頭1和2。可是,代替經(jīng)由SSL被發(fā)送,則授權(quán)請求還可以以加密的形式被發(fā)送給SA。一旦安全的連接已被建立,則FU發(fā)送授權(quán)請求命令給SA(步驟S903)。這可以被視為對應(yīng)于圖6的箭頭3。SA在接收授權(quán)請求后,處理該請求以便構(gòu)造一則授權(quán)響應(yīng)(步驟S904)。在構(gòu)造授權(quán)響應(yīng)時,SA為授權(quán)請求中識別的FP獲取一個TAT,并對該TAT進行數(shù)字標記。被加密了的(被數(shù)字標記了的)TAT然后被包括在授權(quán)響應(yīng)內(nèi)并且SA向FU提供授權(quán)響應(yīng)(步驟S905)。優(yōu)選地,SA以一種安全的方式(即,SSL或經(jīng)由加密)向FU提供授權(quán)響應(yīng)。
在FU接收來自SA的授權(quán)響應(yīng)之后,F(xiàn)U以作業(yè)請求的形式構(gòu)造一個FP命令包,其包括作業(yè)數(shù)據(jù)和授權(quán)響應(yīng)。即,F(xiàn)U從KSA中接收到的授權(quán)響應(yīng)只按照與它被接收時相同的形式被插入到作業(yè)請求中。優(yōu)選地,利用一個對話密鑰加密該作業(yè)請求(它包括作業(yè)數(shù)據(jù)和授權(quán)響應(yīng)),加密了的作業(yè)然后被FU發(fā)送給FP(步驟S906)。在接收加密了的作業(yè)請求后,F(xiàn)P利用對話密鑰來解密接收數(shù)據(jù)并且從授權(quán)響應(yīng)中提取TAT。FP確定提取的TAT是否有效(步驟S907),并且如果是,則相應(yīng)地處理作業(yè)數(shù)據(jù)(步驟S908)(即,如果它是一個打印作業(yè)則打印出該作業(yè))。如果TAT被確定為無效,則該作業(yè)被拒絕(步驟S909)。在下面關(guān)于圖10和11更詳細地描述步驟S907的TAT有效性過程。
圖10是FP確定與作業(yè)一起被接收的TAT有效性的處理步驟流程圖。正如圖10中看到的,F(xiàn)P的安全性組件132接收來自FU的作業(yè)(步驟S1001)。如上所述,優(yōu)選地,作業(yè)包括作為授權(quán)響應(yīng)一部分的TAT。安全性組件132從接收到的授權(quán)響應(yīng)中提取TAT并把它與預(yù)先存儲在FP中的TAT塊進行比較(步驟S1002)。如上所述,優(yōu)選地,TAT塊被預(yù)先存儲在FP中?;诒容^,確定與作業(yè)一起被接收到的TAT是否被包括在存儲的TAT塊中(步驟S1003)。如果否,那么TAT被確定為無效(步驟S1004)并且該作業(yè)被拒絕(步驟S909)。如果一個相應(yīng)的TAT被包括在存儲的塊中,那么TAT被確定為有效(步驟S1005)并且相應(yīng)地該作業(yè)被處理。
一旦一個TAT已被使用,則從存儲的TAT塊中刪除該TAT(步驟S1006)。流程然后繼續(xù)到圖9的步驟S908。因此,可以很容易看出通過使用每個消息唯一的一個特有消息(啟動)代碼,由于基于每個消息唯一的該代碼進行確定,所以重放消息將不被認為是有效的。
圖11是類似于圖10的一個流程圖,但是包括可以被包括在TAT有效性過程內(nèi)的另外的步驟。因此,步驟S1101到S1106與上述步驟S1001到S1006相同??墒牵趫D11中,一旦TAT從存儲的TAT塊中被刪除,則確定是否有足夠數(shù)量的TAT保存于存儲的決中。因此,在步驟S1107中,確定保存在存儲的塊中的TAT數(shù)目是否小于一個預(yù)定數(shù)量(n),在此n可以是任何整數(shù)。例如,n可以等于一(1),以使如果沒有(零)TAT保存在存儲的塊中時,F(xiàn)P可以執(zhí)行一個過程來獲取補充的TAT。因此,如果足夠數(shù)量的TAT仍然保存在存儲的塊中,則TAT有效性過程停止(步驟S1108)并且流程繼續(xù)到步驟S908來處理作業(yè)??墒?,如果沒有足夠數(shù)量的TAT保存在存儲的塊中,那么FP執(zhí)行一個過程來為存儲的塊獲得補充的TAT(步驟S1109)。應(yīng)該指出在開始獲得補充TAT的處理之前,作為S1107步驟的一部分可以進行一個補充的確定,借此可以確定下載或獲取補充的TAT的過程是否早已在進行中。如果處理早已在進行中,則將不需要執(zhí)行步驟S1109并且流程將繼續(xù)到步驟S1108。在TAT塊被SA生成并被SA發(fā)送給FP的情況下,在下面將關(guān)于圖12描述的一個過程可以被使用??墒?,在TAT由SA和FP相互生成的實施例中,F(xiàn)P的安全性組件132可以只基于相互的TAT生成算法在內(nèi)部生成一個新的TAT塊并把補充的TAT存儲在塊中。
圖12是在TAT塊由SA生成(而不是相互生成TAT)并被發(fā)送給FP的情況下功能提供者從SA中獲得補充的TAT的處理步驟流程圖。圖12的處理步驟對應(yīng)于步驟S1109的過程。正如在圖12中看到的,當FP確定存儲的塊需要補充的TAT時,F(xiàn)P與SA建立一個連接(步驟S1201)。優(yōu)選地,連接是一個安全的SSL連接,但是如果SSL不被利用而是改為利用一個基于加密的TAT通信,那么連接可以是一個非安全的連接。在與SA建立連接之后,F(xiàn)P發(fā)送一個命令給請求補充的TAT的SA(步驟S1202)。SA在接收請求后,首先可以執(zhí)行各種驗證檢查以便驗證發(fā)送該請求的FP。當FP已被驗證時,SA處理該請求并生成一個新的TAT塊(步驟S1203)。按照與上述關(guān)于TAT生成相同的方法來生成新的TAT塊。新的TAT塊然后被安全地發(fā)送給FP(步驟S1204)。如上所述,TAT塊可以經(jīng)由SSL被SA安全地發(fā)送給FP,或者TAT塊可以被加密(并且作為選擇被進行數(shù)字標記),然后通過非SSL信道發(fā)送給FP。一旦FP接收到新的TAT塊,所述新塊被存儲在FP中(步驟S1205)。在步驟S1205中,通過從當前存儲的塊中刪除任何剩余的TAT并用新近接收到的TAT塊替代它們,則新的TAT塊可以被存儲在安全性組件132中,或者,新近接收到的TAT塊可以被添加到任何剩余的存儲TAT上使得形成一個累積的塊。
因此,正如可以從圖9到12的上述描述中可以看到的那樣,F(xiàn)U發(fā)送一個授權(quán)請求給SA。SA處理該請求并生成一個包括TAT的授權(quán)響應(yīng),并把授權(quán)響應(yīng)發(fā)送給FU。FU在接收授權(quán)響應(yīng)后,發(fā)送一個作業(yè)給FP,其中該作業(yè)包括授權(quán)響應(yīng)。FP在接收作業(yè)和授權(quán)響應(yīng)后,提取TAT并把接收到的TAT與存儲的TAT列表進行比較以便確定TAT是否有效。如果接收到的TAT未被包括在存儲的列表中,那么該作業(yè)被拒絕。即,由于包括的TAT早已被接收并從列表中被刪除,所以FP確定現(xiàn)在的作業(yè)請求是先前提交的作業(yè)的一個重放??墒牵绻l(fā)現(xiàn)接收到的TAT被包括在存儲的列表中,那么TAT被認為是有效的并且相應(yīng)地該作業(yè)被處理。然后從存儲的列表中刪除該TAT以使使用同一TAT重放作業(yè)請求的任何企圖將被拒絕。正如可以很容易看到的,上述處理提供一個相對自動的方式用于阻止消息的重放攻擊。
上述處理步驟可以被實現(xiàn)為由一個或多個計算機設(shè)備執(zhí)行的計算機可執(zhí)行處理步驟。計算機可執(zhí)行處理步驟可以被存儲在計算機可讀介質(zhì)上,比如軟盤、磁盤、CD-ROM、硬盤等等。因此,本發(fā)明可以被實現(xiàn)為計算機可執(zhí)行處理步驟本身或者可以被實現(xiàn)為存儲計算機可執(zhí)行處理步驟的計算機可讀存儲介質(zhì)。而且,具有存儲在其中的計算機可執(zhí)行處理步驟的諸如計算機之類的一個裝置可以包括本發(fā)明。
結(jié)合特定的說明性實施例已經(jīng)描述了本發(fā)明。應(yīng)該理解的是本發(fā)明不限制為上述實施例并且不偏離本發(fā)明的精神和范圍本領(lǐng)域普通技術(shù)人員可以進行各種改變和修改。
權(quán)利要求
1.一種防止從第一設(shè)備發(fā)送到第二設(shè)備的消息被重放而提供安全的方法,包括如下步驟把第二設(shè)備從第一設(shè)備接收到的消息的特有消息啟動代碼與存儲在第二設(shè)備中的特有消息啟動代碼的列表進行比較,以便確定與消息一起被接收的特有消息啟動代碼是否被包括在所存儲的列表中;和基于上述比較步驟,確定是否拒絕第二設(shè)備對消息的處理。
2.根據(jù)權(quán)利要求1的方法,其中在比較步驟確定與消息一起被接收的特有消息啟動代碼包括在存儲的列表中的情況下,該消息的處理不被拒絕并且從存儲的列表中刪除相應(yīng)的特有消息啟動代碼,和其中,在比較步驟確定與消息一起被接收的特有消息啟動代碼未包括在存儲的列表中的情況下,該消息的處理被拒絕。
3.根據(jù)權(quán)利要求2的方法,還包括如下步驟生成特有消息啟動代碼的列表;和把生成的列表存儲在第二設(shè)備中。
4.根據(jù)權(quán)利要求3的方法,其中所述特有消息啟動代碼列表在第三設(shè)備中生成,并且該列表被發(fā)送給第二設(shè)備以便存儲在其中。
5.根據(jù)權(quán)利要求3的方法,其中所述特有消息啟動代碼列表在第一設(shè)備中生成,并且該列表被發(fā)送給第二設(shè)備以便存儲在其中。
6.根據(jù)權(quán)利要求3的方法,其中所述特有消息啟動代碼列表由第二設(shè)備和第三設(shè)備互相地生成。
7.根據(jù)權(quán)利要求3的方法,還包括如下步驟在第一設(shè)備中生成要被發(fā)送給第二設(shè)備的消息,該消息包括來自所生成的列表中的至少一個特有消息啟動代碼;把生成的消息和所述特有消息啟動代碼一起從第一設(shè)備發(fā)送給第二設(shè)備;和由第二設(shè)備接收發(fā)送的消息和所述特有消息啟動代碼。
8.根據(jù)權(quán)利要求7的方法,還包括如下步驟第一設(shè)備向第三設(shè)備請求要被包括在所述消息中的一個特有消息啟動代碼;和第三設(shè)備將所述要被包括在消息中的特有消息啟動代碼發(fā)送給第一設(shè)備。
9.根據(jù)權(quán)利要求2的方法,其中第一設(shè)備和第二設(shè)備通過網(wǎng)絡(luò)進行通信。
10.根據(jù)權(quán)利要求2的方法,還包括如下步驟在第二設(shè)備中確定一個預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼是否包含在存儲的列表中,在確定所述列表包含所述預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼的情況下,第二設(shè)備為該列表獲取補充的特有消息啟動代碼。
11.根據(jù)權(quán)利要求10的方法,其中所述補充的特有消息啟動代碼包括存儲在第二設(shè)備中代替當前存儲列表的一個新列表。
12.根據(jù)權(quán)利要求3的方法,其中所述補充的特有消息啟動代碼被添加到當前存儲的列表中。
13.根據(jù)權(quán)利要求4或5的方法,其中生成的特有消息啟動代碼列表以一種安全的方式被發(fā)送給第二設(shè)備。
14.根據(jù)權(quán)利要求2的方法,其中特有消息啟動代碼包括隨機數(shù)。
15.根據(jù)權(quán)利要求2的方法,還包括第二設(shè)備對接收到的特有消息啟動代碼執(zhí)行一個驗證檢查。
16.根據(jù)權(quán)利要求7的方法,其中由第一設(shè)備發(fā)送給第二設(shè)備的所述消息和特有消息啟動代碼在被發(fā)送之前經(jīng)過散列算法處理。
17.根據(jù)權(quán)利要求1的方法,其中所述消息的處理包括打印處理。
18.一個從主機設(shè)備接收并處理消息的裝置,包括一個接口,用于接收來自主機設(shè)備的消息和發(fā)送消息到主機設(shè)備;一個處理器,該處理器執(zhí)行計算機可執(zhí)行處理步驟;和一個存儲介質(zhì),該存儲介質(zhì)存儲包括由處理器執(zhí)行的計算機可執(zhí)行處理步驟在內(nèi)的信息,其中計算機可執(zhí)行處理步驟包括(a)把由該設(shè)備從主機設(shè)備中接收的一則消息的特有消息啟動代碼與存儲在存儲介質(zhì)中的特有消息啟動代碼的列表進行比較,以便確定與消息一起被接收的特有消息啟動代碼是否包括在存儲的列表中;和(b)基于比較步驟,確定是否拒絕該設(shè)備對該消息的處理。
19.根據(jù)權(quán)利要求18的裝置,其中在比較步驟確定與消息一起被接收的特有消息啟動代碼包括在存儲的列表中的情況下,該消息的處理不被拒絕并且從存儲的列表中刪除相應(yīng)的特有消息啟動代碼,和其中,在比較步驟確定與消息一起被接收的特有消息啟動代碼未包括在存儲的列表中的情況下,該消息的處理被拒絕。
20.根據(jù)權(quán)利要求19的裝置,其中在除所述裝置以外的一個設(shè)備中生成特有消息啟動代碼列表,并且生成的列表被發(fā)送給所述裝置以便存儲在存儲介質(zhì)中。
21.根據(jù)權(quán)利要求20的裝置,其中所述特有消息啟動代碼列表在第三設(shè)備中生成并且該列表被第三設(shè)備發(fā)送給所述裝置以便存儲在其中。
22.根據(jù)權(quán)利要求20的裝置,其中所述特有消息啟動代碼列表在主機設(shè)備中生成并且該列表被主機設(shè)備發(fā)送給所述裝置以便存儲在其中。
23.根據(jù)權(quán)利要求20的裝置,其中所述特有消息啟動代碼列表由第二設(shè)備和第三設(shè)備互相地生成。
24.根據(jù)權(quán)利要求20的裝置,其中接收到的消息在主機設(shè)備中生成并且生成的消息包括來自生成的列表中的至少一個特有消息啟動代碼。
25.根據(jù)權(quán)利要求24的裝置,其中主機設(shè)備向第三設(shè)備請求要被包括在消息中的一個特有消息啟動代碼;第三設(shè)備將所述要被包括在消息中的特有消息啟動代碼發(fā)送給主機設(shè)備。
26.根據(jù)權(quán)利要求19的裝置,其中所述裝置和主機設(shè)備通過網(wǎng)絡(luò)進行通信。
27.根據(jù)權(quán)利要求19的裝置,其中所述處理步驟還包括所述裝置確定一個預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼是否包含在存儲的列表中,和在確定所述列表包含預(yù)定數(shù)量或更少數(shù)量的特有消息啟動代碼的情況下,則所述裝置為該列表獲取補充的特有消息啟動代碼。
28.根據(jù)權(quán)利要求27的裝置,其中補充的特有消息啟動代碼包括存儲在所述裝置中代替當前存儲列表的一個新列表。
29.根據(jù)權(quán)利要求27的裝置,其中補充的特有消息啟動代碼被添加到當前存儲的列表中。
30.根據(jù)權(quán)利要求21或22的設(shè)備,其中生成的特有消息啟動代碼列表以一種安全的方式被發(fā)送給所述裝置。
31.根據(jù)權(quán)利要求19的裝置,其中特有消息啟動代碼包括隨機數(shù)。
32.根據(jù)權(quán)利要求19的裝置,其中所述處理步驟還包括所述裝置對接收到的特有消息啟動代碼執(zhí)行一個驗證檢查。
33.根據(jù)權(quán)利要求25的裝置,其中由主機設(shè)備發(fā)送給所述裝置的所述消息和特有消息啟動代碼在被發(fā)送之前經(jīng)過散列算法處理。
34.根據(jù)權(quán)利要求3的方法,其中特有消息啟動代碼列表由第一設(shè)備和第二設(shè)備互相地生成。
35.根據(jù)權(quán)利要求20的裝置,其中特有消息啟動代碼列表由所述裝置和第二設(shè)備互相地生成。
36.根據(jù)權(quán)利要求7的方法,其中由第一設(shè)備發(fā)送給第二設(shè)備的該消息和特有消息啟動代碼在被發(fā)送之前經(jīng)過數(shù)字簽名算法處理。
37.根據(jù)權(quán)利要求25的裝置,其中由主機設(shè)備發(fā)送給所述裝置的該消息和特有消息啟動代碼在被發(fā)送之前經(jīng)過數(shù)字簽名算法處理。
38.根據(jù)權(quán)利要求18的裝置,其中消息的處理包括打印處理。
全文摘要
通過在第一設(shè)備中生成特有消息啟動代碼列表并把列表存儲在第二設(shè)備中來防止消息重放的安全性。在第一設(shè)備中生成的一則消息包括來自列表中的至少一個特有消息啟動代碼,該消息被發(fā)送給第二設(shè)備。接收消息的特有消息啟動代碼與存儲在第二設(shè)備中的列表進行比較,以便確定是否啟動第二設(shè)備對該消息的處理。
文檔編號H04L29/06GK1713563SQ20051008094
公開日2005年12月28日 申請日期2005年6月24日 優(yōu)先權(quán)日2004年6月25日
發(fā)明者羅伊斯·E·斯萊克, 內(nèi)爾·I·伊瓦莫托, 馬丁·馬丁內(nèi)茲 申請人:佳能株式會社