用於驗證證書上的數字籤名的系統和方法
2023-04-27 20:36:51
專利名稱:用於驗證證書上的數字籤名的系統和方法
技術領域:
本發明大體上涉及如電子郵件消息等消息的處理,更具體地,涉及一種用於驗證用在處理已編碼消息中的證書的系統和方法。
背景技術:
可以利用多種已知協議之一對電子郵件(「e-mail」)消息進行編碼。如安全多用途網際網路郵件擴展(「S/MIME」)等一些協議依賴於公用和私用加密密鑰來提供保密性和完整性,以及依賴於公用密鑰基礎結構(PKI)來通信提供了驗證和授權的信息。只能利用私用密鑰/公用密鑰對的公用密鑰來解密利用該對的對應私用密鑰進行了加密的數據,反之亦然。利用證書來確認用在消息編碼中的公用密鑰的真實性。具體地,如果計算設備的用戶想要在將消息發送給特定的個體之前對消息進行解密,則該用戶需要針對該個體的證書。所述證書典型地包括該個體的公用密鑰以及其他標識相關信息。
證書是通常由證書權威機構頒發的數字文檔。為了信任特定的公用密鑰,公用密鑰通常需要由同樣被信任的證書權威機構頒發,或者由與可信的證書權威機構相關聯的實體頒發。可信的證書權威機構與所頒發的公用密鑰之間的關係可以通過一系列相關證書來表示,所述一系列相關證書也被稱作證書鏈。可以跟隨證書鏈,以確定證書的有效性。
典型地,證書權威機構將對其所頒發的每個證書進行數字籤名,以驗證特定的公用密鑰屬於相應證書上所指示的聲稱所有者。在構建證書鏈時,經常需要驗證證書鏈中的證書上的數字籤名。證書上的數字籤名的驗證是需要頒發該證書的證書權威機構的公用密鑰的處理。
發明內容
所述驗證處理可能是耗時且昂貴的(例如,在計算資源的使用等方面),尤其是在如行動裝置等較小的設備上進行驗證的情況下。在用戶的計算設備上處理多個證書的情況下,可能會對相同的數字籤名進行多於一次的驗證。本發明的實施例大體上涉及一種系統和方法,通過存儲籤名驗證操作中所採用的特定信息以便再次使用,有利於更為有效地驗證證書上的數字籤名。
在本發明的一個更為廣泛的方案中,提出了一種在計算設備上驗證證書上的數字籤名的方法,所述方法包括以下步驟利用與證書的頒發者相關聯的第一公用密鑰,執行對數字籤名的第一籤名驗證操作;確定在第一籤名驗證操作中數字籤名是否被成功驗證;將第一公用密鑰存儲在存儲器中;接收利用與證書的頒發者相關聯的第二公用密鑰、執行對數字籤名的第二籤名驗證操作的請求;將第二公用密鑰與存儲在存儲器中的第一公用密鑰進行比較,以確定第一和第二公用密鑰是否匹配;以及如果在第一籤名驗證操作中數字籤名被成功驗證,而且如果在比較步驟中確定了匹配,則響應於所述請求,指示數字籤名的成功驗證,由此不需要執行第二數字籤名驗證操作。
為了更好地理解本發明的實施例,以及更為清楚地示出其如何實現所述效果,現在將參照附圖,作為示例,對其進行描述,其中圖1是一個示例實施方式中的行動裝置的方框圖;圖2是圖1所示行動裝置的通信子系統組件的方框圖;圖3是無線網絡的節點的方框圖;圖4是示出了一個示例結構中的主機系統的組件的方框圖;圖5是示出了證書鏈的示例的方框圖;圖6是示出了已編碼消息的示例的組件的方框圖;圖7A是示出了兩個示例證書鏈的方框圖;圖7B是示出了連結圖7A的證書鏈的交叉證書的方框圖;圖8A是示出了本發明實施例中、驗證證書上的數字籤名的方法中的步驟的流程圖;以及圖8B是示出了本發明另一實施例中、驗證證書上的數字籤名的方法中的步驟的流程圖。
具體實施例方式
本發明的一些實施例使用移動臺。移動臺是具有高級數據通信能力的雙向通信設備,具有與其他計算機系統進行通信的能力,並且以下被統稱為行動裝置。行動裝置還可以包括語音通信能力。根據行動裝置所提供的功能,可以將其稱為數據消息收發設備、雙向尋呼機、具有數據消息收發能力的蜂窩電話、無線網際網路設備或數據通信設備(具有或不具有電話功能)。行動裝置通過收發機站網絡與其他設備進行通信。
為了幫助讀者理解行動裝置的結構及其如何與其他設備進行通信,將參照圖1到3。
首先,參考圖1,將一個示例實施方式中的行動裝置的方框圖總體表示為100。行動裝置100包括多個組件,控制組件是微處理器102。微處理器102控制行動裝置100的總體操作。通過通信子系統104執行包括數據和語音通信在內的通信功能。通信子系統104從和向無線網絡200接收和發送消息。在行動裝置100的示例實施方式中,根據全球移動通信系統(GSM)和通用分組無線業務(GPRS)標準來配置通信子系統104。GSM/GPRS無線網絡得到了廣泛的使用,並且預期這些標準最終將被全球發展增進型數據比率(EDGE)和通用移動電信系統(UMTS)所取代。仍在定義新標準,但可以確信其將具有與這裡所描述的網絡行為的類似性,並且本領域普通技術人員應當理解的是本發明傾向於使用未來開發的任何適當的標準。連接通信子系統104和網絡200的無線鏈路表示一個或多個不同的射頻(RF)信道,根據針對GSM/GPRS通信而規定的已定義協議進行操作。利用更新的網絡協議,這些信道能夠支持電路交換語音通信和分組交換數據通信。
儘管在行動裝置100的一個典型實施方式中,與行動裝置100相關聯的無線網絡是GSM/GPRS無線網絡,在變體實施方式中,其他無線網絡也可以與行動裝置100相關聯。例如,可以採用的不同類型的無線網絡包括數據中心型無線網絡、語音中心型無線網絡和通過相同的物理基站能夠支持語音和數據通信的雙模式網絡。組合雙模式網絡包括但不限於碼分多址(CDMA)或CDMA2000網絡、GSM/GPRS網絡(如上所述)和將來第三代(3G)網絡,如EDGE和UMTS。數據中心網絡的一些較早示例包括MobitexTM無線網絡和DataTACTM無線網絡。較早的語音中心型數據網絡的示例包括個人通信系統(PCS)網絡,如GSM和時分多址(TDMA)系統。
微處理器102還與其他子系統進行交互,如隨機存取存儲器(RAM)106、閃速存儲器108、顯示器110、輔助輸入/輸出(I/O)子系統112、串行埠114、鍵盤116、揚聲器118、麥克風120、短距離通信122和其他設備124。
行動裝置100的一些子系統執行通信相關的功能,而其他子系統可提供「駐留」或設備內置功能。作為示例,顯示器110和鍵盤116可以用於如輸入用於通過網絡200傳送的文本消息等通信相關功能以及如計算器或任務表等設備駐留功能。通常將微處理器102使用的作業系統軟體存儲在如閃速處理器108等永久存儲器中,或者可以是只讀存儲器(ROM)或類似的存儲元件(未示出)。本領域普通技術人員應當清楚的是可以將作業系統、設備專用應用程式或其一部分暫時加載到如RAM 106等易失性存儲器中。
在已經完成所需的網絡登記或激活程序之後,行動裝置100可以在網絡200上發送和接收通信信號。網絡接入與行動裝置100的訂戶或用戶相關聯。為了識別訂戶,行動裝置100需要將訂戶身份模塊或「SIM」卡126插入SIM接口128中,以便與網絡進行通信。特別地,SIM 126是用於識別行動裝置100的訂戶和使行動裝置100個人化的一類傳統「智慧卡」。沒有SIM 126,行動裝置100不能完全操作與網絡200的通信。通過將SIM 126插入SIM接口128,訂戶可以訪問全部已訂閱服務。服務可以包括網絡瀏覽和消息收發,如電子郵件、語音郵件、短消息服務(SMS)和多媒體消息服務(MMS)。更多的高級服務可以包括銷售點、現場服務和銷售力量自動控制(sales forceautomation)。SIM 126包括處理器和用於存儲信息的存儲器。一旦將SIM 126插入SIM接口128中,其與微處理器102相連。為了識別訂戶,SIM 126包含一些用戶參數,如國際移動訂戶身份(IMSI)等。使用SIM 126的優點是用戶不必與任何單一的物理行動裝置綁定。SIM126也可以存儲針對行動裝置的額外訂戶信息,包括記事冊(或日曆)信息和最近呼叫信息。
行動裝置100是電池供電的設備,並包括電池接口132,用於容納一個或多個可充電電池130。電池接口132與穩壓器(未示出)相連,其輔助電池130將電源V+提供給行動裝置100。儘管目前的技術使用電池,但如微型燃料電池等未來的技術也可以為行動裝置100提供能量。
除了其作業系統功能外,微處理器102能夠在行動裝置100上執行軟體應用程式。通常在製造期間,將控制基本設備操作的應用程式組(包括數據和語音通信應用程式)安裝到行動裝置100上。可以加載到行動裝置100上的其他應用程式是個人信息管理器(PIM)。PIM具有組合和管理用戶所關心的數據項的功能,例如但不限於電子郵件、日曆事件、語音郵件、約會和任務項。PIM應用程式具有通過無線網絡200發送和接收數據項的能力。PIM數據項可以通過無線網絡200與所存儲的和/或與主計算機系統相關的、行動裝置訂戶的相應數據項無縫集成、同步和更新。此功能在行動裝置100上創建了針對這些數據項的鏡像主機。這在主計算機系統是行動裝置訂戶的辦公室計算機系統的情況下尤為有利。
附加的應用程式也可以通過網絡200、通過輔助I/O子系統112、通過串行埠114、通過短距離通信子系統122或通過任何其他合適的子系統124加載到行動裝置100上。這種在應用程式安裝方面的靈活性增加了行動裝置100的功能,並且能夠提供增強的設備內置功能、通信相關功能或這二者。例如,安全通信應用程式可以使得電子商務功能和其他財務交易能夠使用行動裝置100執行。
通過提供除了通過無線通信網絡以外到行動裝置100的信息或軟體下載,串行埠114使訂戶能夠通過外部設備或軟體應用程式來設置偏好,並擴展行動裝置100的能力。例如,可選的下載路徑可以用於通過直接、從而可靠、可信的連接,將加密密鑰加載到行動裝置100上,以提供安全設備通信。
短距離通信子系統122用於行動裝置100和不同系統或設備之間的通信,無需使用網絡200。例如,子系統122可以包括紅外設備以及用於短距離通信的相關電路和組件。短距離通信的示例將包括由紅外數據協會(IrDA)、藍牙開發的標準和由IEEE開發的802.11標準族。
在使用中,通信子系統104將處理如文本消息、電子郵件消息或網頁下載等接收信號,並輸入微處理器102。然後,微處理器102處理接收信號,以便輸出到顯示器110或者代替地輸出到輔助I/O子系統112。訂戶也可以構造數據項,如電子郵件消息等,例如,與顯示器110和可能的輔助I/O子系統112相結合地使用鍵盤116。輔助子系統112可以包括以下設備觸控螢幕、滑鼠、軌跡球、紅外指紋檢測器或具有動態按鈕按下能力的滾輪。鍵盤116是字母數字鍵盤和/或電話型小鍵盤。可以通過通信子系統104、在網絡200上傳輸所構造的數據項。
對於語音通信,行動裝置100的總體操作實質上是類似的,除了將接收到的信號輸出到揚聲器118和用於傳輸的語音信號由麥克風120產生之外。可選的語音或音頻I/O子系統,如語音消息記錄子系統,也可以在行動裝置100上實現。儘管語音或音頻信號輸出主要通過揚聲器118完成,也可以使用顯示器110提供如呼叫方身份、語音呼叫的持續時間或其他語音呼叫相關信息等附加信息。
現在參照圖2,示出了圖1所示的通信子系統組件104的方框圖。通信子系統104包括接收機150、發射機152、一個或多個嵌入式或內部天線元件154、156、本地振蕩器(LO)158和如數位訊號處理器(DSP)160等處理模塊。
通信子系統104的詳細設計取決於行動裝置100將運行其中的網絡200,因此應當理解的是圖2所示的涉及只用作一個示例。將天線154通過網絡200接收的信號輸入接收機150,接收機150可以進行如信號放大、頻率下轉換、濾波、信道選擇和模擬到數字(A/D)轉換等普通接收機功能。接收信號的A/D轉換允許更複雜的通信功能,如要在DSP 160中執行的數字解調和解碼。以類似方式,處理要發射的信號,包括DSP 160執行的調製和編碼。將這些DSP處理後的信號輸入發射機152,進行數字模擬(D/A)轉換、頻率上轉換、濾波、放大和經天線156在網絡200上傳輸。DSP 620不僅處理通信信號,還提供接收機和發射機控制。例如,可以通過在DSP160中實現的自動增益控制算法,自適應控制施加到接收機150和發射機152中的通信信號的增益。
行動裝置100和網絡200之間的無線鏈路可以包含一個或多個不同的信道(典型地是不同的RF信道)以及用在行動裝置100和網絡200之間的相關協議。典型地,由於行動裝置100的總體帶寬的限制和有限電池功率,RF信道是有限的資源,必須加以保留。
當行動裝置100可完全操作時,發射機152通常只在其向網絡200進行發送時接通,而在其他時刻關閉,以保留資源。類似地,在指定的時間段內,接收機150周期性地關閉,以保留電力,直到其需要接收信號或信息為止。
現在參照圖3,將無線網絡的節點的方框圖表示為202。具體地,網絡200包括一個或多個節點202。行動裝置100與無線網絡200中的節點202進行通信。在圖3所示的示例實施方式中,根據通用分組無線業務(GPRS)和全球移動通信系統(GSM)技術來配置節點202。節點202包括與塔站206相關聯的基站控制器(BSC)204、添加了對GSM中的GPRS支持的分組控制單元(PCU)208、移動交換中心(MSC)210、歸屬位置寄存器(HLR)212、拜訪位置寄存器(VLR)214、服務GPRS支持節點(SGSN)216、網關GPRS支持節點(GGSN)218和動態主機配置協議(DHCP)220。此組件列表並不表示GSM/GPRS網絡中的每個節點202的窮盡組件列表,而是通常用在通過網絡200的通信中的組件列表。
在GSM網絡中,MSC 210與BSC 204和陸上傳輸網絡(如公用交換電話網絡(PTSN)222等)相連,以滿足電路交換的需求。通過PCU208、SGSN 216和GGSN 218到公用或專用網絡(網際網路)224(也統稱為共享網絡基礎結構)的連接表示針對GPRS使能行動裝置的數據路徑。在以GPRS能力加以擴展的GSM網絡中,BSC 204還包含與SGSN 216相連的分組控制單元(PCU)208,用於控制分段、無線電信道分頻,以及滿足分組交換需要。為了跟蹤行動裝置位置和可用性,以便進行電路交換和分組交換管理,在MSC 210和SGSN 216之間共享HLR 212。對VLR 214的訪問由MSC 210控制。
站點206是固定收發機站。站點206和BSC 204一起形成了固定收發機設備。固定收發機設備提供針對通常被稱作「小區」的特定覆蓋區域的無線網絡覆蓋。固定收發機設備通過站點206向和從其小區內的行動裝置發射和接收通信信號。固定收發機設備通常在其控制器的控制下,根據特定、通常是預定的通信協議和參數,執行對要發送到行動裝置的信號的調製和可能的編碼和/或加密等處理。固定收發機設備類似地解調和可能地解碼和解密(如果需要的話)從其小區內的行動裝置100接收到的任意通信信號。通信協議和參數可以在不同的節點間不同。例如,一個節點可以採用不同的調製方案,並在與其他節點不同的頻率進行操作。
對於與特定網絡進行登記的全部行動裝置100,將如用戶簡檔表等永久配置數據存儲在HLR 212中。HLR 212還包含針對每個已登記行動裝置的位置信息,並且可以被查詢,以確定行動裝置的當前位置。MSC 210負責一組位置區域,並將當前位於其負責區域內的行動裝置的數據存儲在VLR 214中。其他VLR 214也包含與拜訪其他網絡的行動裝置有關的信息。VLR 214中的信息包括從HLR 212傳送到VLR 214的部分永久行動裝置數據,以便進行更快的訪問。通過將額外的信息從遠程HLR 212節點移動到VLR 214,可以減少這些節點間的業務量,從而能夠以更快的響應時間提供語音和數據服務,並且同時需要較少地使用計算資源。
SGSN 216和GGSN 218是添加用於GPRS支持的元件;即在GSM內支持分組交換數據。SGSN 216和MSC 210在無線網絡200內具有類似的職責,保持對每個行動裝置100的位置的跟蹤。SGSN 216還執行安全功能和對網絡200上的數據業務的訪問控制。GGSN 218提供與外部分組交換網絡的聯網連接,並通過在網絡200內進行操作的網際網路協議(IP)骨幹網與一個或多個SGSN 216相連。在正常操作期間,給定的行動裝置100必須執行「GPRS附屬」以獲取IP位址並訪問數據服務。由於將集成服務數字網絡(ISDN)地址用於路由呼入和呼出呼叫,這一要求並不出現在電路交換語音信道中。目前,所有GPRS使能網絡使用專用、動態分配IP位址,因而需要與GGSN 218相連的DHCP伺服器220。存在多種針對動態IP分配的機制,包括使用遠程驗證撥入用戶服務(RADIUS)伺服器和DHCP伺服器的組合。一旦GPRS附屬完成,則建立從行動裝置100通過PCU 208和SGSN 216到GGSN 218內的接入點節點(APN)的邏輯連接。APN表示能夠訪問直接網際網路兼容服務或專用網絡連接的IP隧道的邏輯端點。在每個行動裝置100必須被分配給一個或多個APN,並且如果未首先執行對已授權其使用的APN的GPRS附屬,行動裝置100不能交換數據這一點上,APN還表示針對網絡200的安全機制。可以認為APN與如「myconnection.wireless.com」等網際網路域名相似。
一旦GPRS附屬完成,則創建了隧道,並利用IP分組中能夠支持的任何協議,在標準IP分組內交換所有業務。這包括如在與虛擬專用網絡(VPN)一起使用的一些IP安全(IPsec)連接的情況下的IP overIP等隧道方法。這些隧道也被稱為分組數據協議(PDP)上下文,並且在網絡200中存在有限的可用數量。為了最大化對PDP上下文的使用,網絡200將運行針對每個PDP上下文的空閒定時器,以確定是否缺乏活動性。當行動裝置100並未使用其PDP上下文時,可以取消對PDP上下文的分配,並將IP位址返回給由DHCP伺服器220管理的IP位址庫。
現在參照圖4,示出了一個示例結構中的主機系統的組件的方框圖。主機系統250將典型地是公司辦公室或其他區域網(LAN),但也可以是家庭辦公室計算機或一些其他私有系統,例如在變體實施方式中。在圖4所示的示例中,將主機系統250圖示為行動裝置100的用戶所屬的組織的LAN。
LAN 250包括通過LAN連接260彼此相連的多個網絡組件。例如,具有用於用戶行動裝置100的附屬底座264的用戶桌面計算機262a適用於LAN 250上。例如,針對行動裝置100的底座264可以通過串行或通用串行總線(USB)連接與計算機262a相連。其他用戶計算機262b也適用於LAN 250,並且每個計算機可以配備有或不配備有針對行動裝置的附屬底座264。底座264有利於信息(例如PIM數據、有利於行動裝置100和LAN 250之間的安全通信的私用對稱密鑰等)從用戶計算機262a到行動裝置100的加載,並且對於通常在初始化行動裝置100以便使用時執行的批量信息更新尤為有用。下載到行動裝置100上的信息可以包括用在消息交換中的證書。本領域普通技術人員應當理解,用戶計算機262a、262b還將典型地與圖4未示出的其他外圍設備相連。
此外,圖4隻示出了LAN 250的網絡組件的子集,並且本領域普通技術人員應當理解的是,對於此示例結構,LAN 250將包括圖4中未詳盡示出的額外組件。更一般地,LAN 250可以表示所述組織的較大網絡[未示出]的一小部分,並且可以包括與圖4所示的示例不同的組件和/或按照與圖4所示的示例不同的拓撲進行排列。
在此示例中,行動裝置100通過無線網絡200的節點202和如服務提供商網絡或公用網際網路等共享網絡基礎結構224與LAN 250進行通信。可以通過一個或多個路由[未示出]提供對LAN 250的接入,並且LAN 250的計算設備可以在防火牆或代理伺服器266的後面進行操作。
在變體實施方式中,LAN 250包括無線VPN路由器[未示出],便於LAN 250和行動裝置100之間的數據交換。無線VPN路由器的概念在無線產業中是新的,並且意味著可以通過特定的無線網絡直接建立對行動裝置100的VPN連接。使用無線VPN路由器的可能性在最近才成為可能,並且可以在新的網際網路協議(IP)版本6(IPv6)出現在基於IP的無線網絡中時使用。這種新協議將提供足夠的IP位址,從而使IP位址專用於每個行動裝置,使其能夠在任意時刻將信息推入行動裝置。使用無線VPN路由器的優點是其可以是不需要使用分離的無線網關和分離的無線基礎設施的現成的VPN組件。優選地,在此變體實施方式中,VPN連接可以是傳輸控制協議(TCP)/IP或用戶數據報協議(UDP)/IP連接,直接將消息傳遞到行動裝置100。
最初,由LAN 250的消息伺服器268接收針對行動裝置100的用戶的消息。這些消息可以來自於多個源中的任意一個。例如,可以由發送方從LAN 250內的行動裝置262b、從與無線網絡200或不同無線網絡相連的不同行動裝置[未示出]、或從不同的計算設備或能夠發送消息的其他設備,通過共享網絡基礎結構224,並可能通過應用服務提供商(ASP)或網際網路服務提供商(ISP),發送消息。
消息伺服器268典型地作為交換消息的主要接口,尤其是電子郵件消息,在所述組織內部,在共享網絡基礎結構224上。已經建立用於發送和接收消息的組織中的每個用戶典型地與由消息伺服器268管理的用戶帳戶相關聯。消息伺服器268的一個示例是MicrosoftExchangeTM伺服器。在一些實施方式中,LAN 250可以包括多個消息伺服器268。消息伺服器268也可以適用於提供除消息管理以外的附加功能,例如,包括與日曆和任務列表相關的數據的管理等。
當消息伺服器268接收到消息時,通常將其存儲在消息存儲器[未詳盡示出]中,隨後可以從中檢索消息並傳遞給用戶。例如,在用戶計算機262a上操作的電子郵件客戶端應用程式可以請求與存儲在消息伺服器268上的用戶帳戶相關聯的電子郵件消息。然後,典型地,從消息伺服器268獲得這些消息,並本地存儲在計算機262a上。
當操作行動裝置100時,用戶可能希望將所獲得的電子郵件消息傳遞到手持設備上。在行動裝置100上進行操作的電子郵件客戶端應用程式也可以向消息伺服器268請求與用戶帳戶相關聯的消息。可以配置電子郵件客戶端(由用戶或管理員進行,可能根據組織的信息技術(IT)策略),以某些預定的時間間隔或者在一些預定時間發生時,使此請求指向該用戶。在一些實施方式中,向行動裝置100分配其自身的電子郵件地址,並在消息伺服器268接收到專門尋址於行動裝置100的消息時,將其自動重新定向到行動裝置100。
為了有利於行動裝置100和LAN 250的組件之間的消息和消息相關數據的無線通信,可以設置多個無線通信支持組件270。例如,在此示例實施方式中,無線通信支持組件270包括消息管理伺服器272。消息管理伺服器272專門用於提供對消息管理的支持,如電子郵件消息等將由行動裝置處理的消息。通常,在消息仍被存儲在消息伺服器268上時,消息伺服器272可以用於控制何時、是否以及如何將消息發送給行動裝置100。消息管理伺服器272還有利於處理在行動裝置100上構成的消息,該消息被發送到消息伺服器268,以便進行隨後的傳遞。
例如,消息管理伺服器272可以針對新電子郵件消息,監視用戶的「郵箱」(例如消息伺服器268上、與用戶帳戶相關聯的消息存儲器);將用戶定義過濾器應用於新消息,以確定是否和如何將消息中繼到用戶的行動裝置100;壓縮並加密新消息(例如,使用如數據加密標準(DES)或三重DES等加密技術),並通過共享網絡基礎結構224和無線網絡200將其推入行動裝置100;以及接收在行動裝置100上構成的消息(例如利用三重DES進行加密),解密並解壓縮所構成的消息,如果需要,對所構成的消息重新格式化,從而使其看上去來自用戶的計算機262a,並將所構成的消息重新路由到消息伺服器268,以便進行傳遞。
消息管理伺服器272可以定義(由管理員根據IT策略)和強化與要從和/或要由行動裝置100發送和/或接收的消息相關聯的特定屬性或約束。可以包括行動裝置100是否可以接收已加密和/或已籤署消息、最小加密密鑰尺寸、是否必須加密和/或籤署輸出消息、以及是否要向預定副本地址發送從行動裝置100發送的全部安全消息的副本等。
消息管理伺服器272也可以用於提供其他控制功能,例如,只將存儲在消息伺服器268上的特定消息信息或消息的預定部分(如「塊」)推入行動裝置100。例如,當行動裝置100最初從消息伺服器268檢索消息時,消息管理伺服器272用於只將消息的第一部分推入行動裝置100,該部分具有預定尺寸(如2KB)。然後,用戶可以請求消息管理伺服器272將更多的消息按照類似尺寸的塊傳遞給行動裝置100,可能直到最大預定消息尺寸。
因此,消息管理伺服器272有利於更好地控制與行動裝置100進行通信的數據類型和數據量,並有助於最小化帶寬或其他資源的潛在浪費。
本領域普通技術人員應當理解的是不必將消息管理伺服器272實現在LAN 250或其他網絡中的分離物理伺服器上。例如,可以將與消息管理伺服器272相關聯的一些或全部功能與消息伺服器268或LAN250中的一些其他伺服器集成。此外,LAN 250可以包括多個消息管理伺服器272,尤其是在需要支持大量行動裝置的變體實施方式中。
本發明的實施例大體上涉及用於對已編碼消息的處理中的證書,如已加密和/或已籤署的電子郵件消息。在簡單郵件傳送協議(SMTP)、RFC 822報頭和多用途網際網路郵件擴展(MIME)體部分可以用於定義不需要編碼的典型電子郵件消息的格式時,可以在通信已編碼消息時(即在安全消息收發應用程式中),使用安全/MIME(S/MIME),MIME協議的一種版本。S/MIME實現了端到端驗證和保密性,並且從消息的發起者發送消息的時刻開始直到消息接收方解碼並使其可用為止,保護數據完整性和私密性。也可以採用其他已知的標準和協議,以有助於安全消息通信,如Pretty Good PrivacyTM(PGP)、OpenPGP或其它已知技術。
如S/MIME等安全消息收發協議依賴於公用和私用加密密鑰來提供保密性和完整性,並依賴於公用密鑰基礎結構(PKI)來通信提供了驗證和授權的信息。只能利用私用密鑰/公用密鑰對的公用密鑰來解密利用該對的對應私用密鑰進行了加密的數據,反之亦然。私用密鑰信息永不公開,而公用密鑰信息是共享的。
例如,如果發送方希望以加密形式向接收方發送消息,利用接收方的公用密鑰來加密消息,之後將只能利用接收方的私用密鑰進行解密。或者,在一些編碼技術中,產生一次性的會話密鑰,並用於加密消息體,典型地利用對稱加密技術(如三重DES等)。然後,利用接收方的公用密鑰對會話密鑰進行加密(例如,利用如RSA等公用密鑰加密算法),之後將只能利用接收方的私用密鑰進行解密。然後,利用解密後的會話密鑰來解密消息體。消息報頭可以用於規定必須用於解密消息的特定解密方案。在變體實施方式中,可以使用基於公用密鑰加密法的其他加密技術。但是,在每種情況下,只有接收方的私用密鑰可以用於有利於消息的解密,並且按照這種方式,可以保持消息的保密性。
作為另一示例,發送方可以利用數字籤名來籤署消息。數字籤名是利用發送方的私用密鑰進行加密的消息的摘要(例如消息的散列信息),然後將其附加到輸出消息上。為了在接收時驗證消息的數字籤名,接收方使用與發送方相同的技術(例如,使用相同的標準散列算法),以獲得接收消息的摘要。接收方還使用發送方的公用密鑰來解密數字籤名,以便獲得什麼是接收消息的匹配摘要。如果接收消息的摘要不匹配,這意味著在傳送期間消息內容被改變和/或所述消息並非來自將其公用密鑰用於驗證的發送方。可以按照以下方式設計數字籤名算法僅知道發送方的私用密鑰的人能夠編碼接收方將利用發送方的公用密鑰正確解碼的籤名。因此,通過按照這種方式驗證數字籤名,可以保持發送方的驗證和消息完整性。
可以加密、籤署、既加密又籤署已編碼消息。利用證書來確保用在這些操作中的公用密鑰的真實性。證書是由證書權威機構(CA)頒發的數字文檔。證書用於驗證用戶及其公用密鑰之間的關聯性,實質上提供了用戶公用密鑰的真實性的可信程度。證書包含與證書持有者有關的信息,典型地根據已接受標準(如X.509)來格式化證書內容。
考慮圖5,其中示出了示例證書鏈300。頒發給「John Smith」的證書310是頒發給個人的證書的示例,可以將其稱為終端實體證書。終端實體證書310典型地識別證書持有者(即此示例中的John Smith)和證書的頒發者314,並包括頒發者的數字籤名316和證書持有者的公用密鑰318。證書310還將典型地包括識別證書持有者的其他信息和屬性(如電子郵件地址、組織名稱、組織單位名稱、地點等)。當個人構建要發送給接收方的消息時,通常將個人的證書300包括在消息內。
對於可信的公用密鑰,其頒發組織必須是可信的。可以通過一系列相關證書來表示可信CA和用戶的公用密鑰之間的關係,也被稱作證書鏈。可以跟蹤證書鏈,以確定證書的有效性。
例如,在圖5所示的示例證書鏈300中,聲稱由John Smith發送的消息的接收方可能希望驗證附屬於接收消息的證書310的可信狀態。例如,為了在接收方計算設備(例如圖4的計算機262a)上驗證證書310的可信狀態,獲得頒發者ABC的證書320,並用於驗證證書310確實是由頒發者ABC籤署的。證書320可能已經被存儲在計算設備上的證書存儲器中,或者可能需要從證書源(例如圖4的LDAP伺服器284或一些其他公用或專用LDAP伺服器)獲得。如果證書320已經被存儲在接收方的計算設備中,並且接收方將該證書指定為可信的,則認為證書310是可信的,因為其連結到已存儲的可信證書上。
但是,在圖5所示的示例中,還需要證書330來驗證證書310的可信度。證書330是自籤署的,並被稱作「根證書」。因此,可以將證書320稱為證書鏈300中的「中間證書」;假設可以針對特定的終端實體證書確定到達根證書的鏈,到達根證書的任意給定證書鏈可以包含零個、一個或多個中間證書。如果證書330是由可信源(來自較大的證書權威機構,如Verisign或Entrust)頒發的根證書,則可以認為證書310是可信的,因為其連結到可信證書。這意味著消息的發送方和接收方都信任根證書330的源。如果證書不能連結到可信證書,則認為證書是「不可信的」。
證書伺服器存儲與證書有關的信息和用於識別已經被調用的證書的列表。可以訪問這些證書伺服器,以獲得證書,並驗證證書真實性和調用狀態。例如,輕載目錄訪問協議(LDAP)伺服器可以用於獲得證書,以及在線證書狀態協議(OCSP)伺服器可以用於驗證證書調用狀態。
標準電子郵件安全協議典型地有利於非移動計算設備(如圖4所示的計算機262a、262b;遠程桌面設備)之間的安全消息傳輸。再次參照圖4,為了能夠從行動裝置100讀取從發送方接收到的已籤署消息以及要發送到這些發送方的已加密消息,行動裝置100用於存儲證書和其他個體的關聯公用密鑰。例如,存儲在用戶的計算機262a上的證書通常是從計算機262a通過底座264下載到行動裝置100上的。
存儲在計算機262a上並被下載到行動裝置100上的證書並不局限於與個人相關的證書,還可以包括如頒發給CA的證書等。存儲在計算機262a和/或行動裝置100上的特定證書也可以被用戶明確地指定為「可信的」。因此,當用戶在行動裝置100上接收到證書時,其可以通過將所述證書與存儲在行動裝置100上並被指定為可信的證書或者被確定為連結到可信證書的證書進行匹配,在行動裝置100上進行驗證。
行動裝置100還可以用於存儲與用戶相關聯的公用密鑰/私用密鑰對的私用密鑰,從而行動裝置100的用戶可以籤署在行動裝置100上構成的輸出消息,並解密以用戶的公用密鑰加密的、發送到用戶的消息。例如,私用密鑰可以從用戶的計算機262a通過底座264下載到行動裝置100上。優選地,在計算機262a和行動裝置100之間交換私用密鑰,從而使用戶可以共享用於訪問消息的一個身份和一種方法。
用戶計算機262a、262b可以獲得來自多個源的證書,以便存儲在計算機262a、262b和/或行動裝置(如行動裝置100)上。例如,這些證書源可以是私用的(例如,專用於組織內部的用戶)或公用的,可以位於本地或遠程,並且可以從組織的專用網絡內部或通過網際網路進行訪問。在圖4所示的示例中,與所述組織相關聯的多個PKI伺服器280位於LAN 250上。PKI伺服器280包括用於頒發證書的CA伺服器282、用於搜索和下載證書(例如,針對組織內部的個人)的LDAP伺服器284、和用於驗證證書的調用狀態的OCSP伺服器286。
例如,用戶計算機262a可以從LDAP伺服器284中檢索證書,以便通過底座264下載到行動裝置100。但是,在變體實施方式中,行動裝置100也可以直接訪問LDAP伺服器284(即,在這種情況下,「在空中」),以及行動裝置100可以通過移動數據伺服器288搜索並獲得個人證書。類似地,移動數據伺服器288可以用於允許行動裝置100直接查詢OCSP伺服器286,以驗證證書的調用狀態。
在變體實施方式中,只允許選定的PKI伺服器280訪問行動裝置(例如,只允許從用戶的計算機262a、262b下載證書,同時允許從行動裝置100檢查證書的調用狀態)。
在變體實施方式中,例如,只允許特定的PKI伺服器280訪問登記給特定用戶的行動裝置,由IT管理員規定,並可能根據IT策略來規定。
例如,其他證書源[未示出]可以包括Windows證書存儲器、位於LAN 250上或之外的另一安全證書存儲器、以及智慧卡等。
現在參照圖6,將示出了可以由消息伺服器(例如圖4的消息伺服器268)接收的已編碼消息示例的組件的方框圖總體表示為350。已編碼消息350典型地包括以下的一個或多個部分報頭部分352、已編碼體部分354、可選的一個或多個已編碼附件356、一個或多個加密會話密鑰358、以及籤名和籤名相關信息360。例如,報頭部分352典型地包括地址信息,如「到」、「來自」和「抄送」地址等,也可以包括消息長度指示符以及發送方加密和籤名方案標識符等。實際消息內容通常包括消息體或數據部分354和可能的一個或多個附件356,可以由發送方利用會話密鑰進行加密。如果使用了會話密鑰,利用每個接收方的相應公用密鑰,針對每個預期的接收方,對會話密鑰進行編碼,並且包括在消息358中。如果籤署消息,則還包括籤名和籤名相關信息360。例如,這可以包括發送方的證書。
圖6所示的已編碼消息的格式只是作為示例,本領域普通技術人員應當理解,已編碼消息可以按照其它形式存在。例如,根據所使用的特定消息收發方案,已編碼消息的組件可以表現出與圖6所示不同的次序,並且已編碼消息可以包括更少、更多或不同的組件,可以依賴於是否對已編碼消息進行了加密、籤署或這二種操作。
本發明的實施例大體上涉及一種系統和方法,通過存儲籤名驗證操作中所採用的特定信息以便再次使用,有利於更為有效地驗證證書上的數字籤名。在構建證書鏈時(如圖5的示例中所討論的那樣),經常需要驗證證書上的數字籤名。在用戶的計算設備上處理多個證書的情況下,經常要對相同的數字籤名進行多於一次的驗證。在形成了包含交叉證書的證書鏈的情況下,這種情形尤為普遍。稍後,將參照圖7B,對交叉證書進行更為詳細的討論。
首先,參照圖7A,示出了兩個示例證書鏈的方框圖。將兩個示例證書鏈總體表示為400a和400b。本領域普通技術人員應當理解的是,將所述證書鏈400a和400b圖示為示例。具體地,證書鏈可以包括比所示示例更少或更多的證書。
多個組織建立其自己的CA,頒發專屬於其自己的組織中的個人的證書。頒發給特定組織內個人的終端實體證書不需要由與該組織相關聯的單一CA頒發。終端實體證書經常由以該組織的根CA為首的CA體系內的多個下級或中間CA之一頒發。此根CA可以提供被用作「可信錨標」(trust anchor)的自籤署根證書,所述可信錨標是該組織內所頒發的證書有效性的起點。
證書鏈400a示出了示例證書鏈,形成所述示例證書鏈用於驗證頒發給組織「ABC」內的個體「用戶1」的證書402a。證書402a通過由根CA頒發給該組織的中間CA的中間證書406a,連結到由該組織的根CA頒發且被用戶1信任的自籤署根證書404a上。例如,可以從由該組織維護的LDAP伺服器(如圖4的LDAP伺服器284)搜索並獲得組織ABC內所頒發的證書。
類似地,證書鏈400b示出了示例證書鏈,形成所述示例證書鏈用於驗證頒發給不同的組織「XYZ」內的個體「用戶2」的證書402b。證書402b通過中間證書406b,連結到由組織XYZ的根CA頒發且被用戶2信任的自籤署根證書404b上。例如,可以從由組織XYZ維護的LDAP伺服器搜索並獲得組織XYZ內所頒發的證書。
考慮組織ABC的用戶1接收到來自組織XYZ的用戶2的已編碼消息的示例情形。即使用戶2已經將其證書402b附加到消息上,用戶1仍然不能只通過該證書來驗證用戶2的證書402b的可信狀態(假設用戶1並未存儲用戶2的證書402b並將其標記為可信)。如果用戶1不信任來自組織XYZ的證書,則不能驗證用戶2的證書402b,因為其並未連結到可信證書上。
為了有利於不同組織的用戶之間的安全通信,需要允許證書在組織之間使用並被信任。可以在兩個組織之間執行被稱作交叉驗證的驗證方法,其中一個組織的CA驗證另一組織的CA。
術語交叉驗證可以用於一般性地表示兩個操作。通常相對不頻繁地執行的第一操作涉及通過由一個CA在被稱作交叉證書的證書中簽署另一CA的公用密鑰來建立兩個CA(例如,跨越組織或在相同的組織內)之間的信任關係。通常相對頻繁地執行的第二操作涉及通過形成包括至少一個這種交叉證書的證書鏈來驗證用戶的證書。
現在,參照圖7B,示出了連結兩個示例證書鏈的交叉證書的方框圖。在此示例中,示出了由組織XYZ的根CA頒發給組織ABC的根CA的交叉證書410。類似地,示出了由組織ABC的根CA頒發給組織XYZ的根CA的交叉證書412。
圖7B的示例示出了兩個根CA之間的相互交叉證書。但是,在變體實施方式中,其他交叉驗證方法是可能的。例如,可以由一個組織中的下級CA將交叉證書頒發給另一組織的根CA。作為另一示例,第一組織的CA可以將交叉證書頒發給第二組織的CA,即使第二組織並未反向地將交叉證書頒發給第一組織。
此外,例如,可以根據組織的IT策略,限制跨組織的證書使用。例如,一個組織的IT策略可以規定只有為了處理已編碼電子郵件消息的目的,才能信任來自其他組織的證書。而且,一個組織的頒發CA可以撤銷交叉證書,以終止與其他組織之間的信任關係。這可以有助於更為有效地控制跨組織的個體之間的安全電子郵件通信。
交叉證書有利於已經建立了信任關係的組織的個體之間的安全通信。再次考慮組織ABC的用戶1接收到來自組織XYZ的用戶2的已編碼消息的情形。用戶1能夠通過從用戶2的證書402b中獲得證書鏈中的證書,向由用戶1的組織的根CA頒發且被用戶1信任的根證書404a驗證用戶2的證書402b的可信狀態。具體地,如圖7B的示例所示,證書鏈包括ABC的根證書404a、交叉證書412、XYZ的根證書404b、中間證書406b和用戶2的證書402b。
對於用戶1,為了驗證用戶2的證書402b的可信狀態,用戶1必須獲得證書402b。其通常將伴隨著從用戶2到用戶1的消息;但是,在未提供證書402b且並未存儲在用戶1的計算設備上的情況下,必須從例如由組織XYZ維護的LDAP伺服器或其他證書伺服器獲取。此外,必須也獲得證書鏈中的剩餘證書中的每一個,以驗證證書402b的可信狀態。需要從ABC的LDAP伺服器、XYZ的LDAP伺服器或用戶1能夠訪問的一些其他LDAP伺服器中獲得證書鏈中的其他證書(在本示例中,包括根證書和交叉證書)。
如參照圖5、圖7A和7B所討論的那樣,在構建證書鏈時,通常需要驗證證書上頒發CA的數字籤名。在驗證證書時,也可以執行其他任務,如檢查證書日期的有效性,或檢查由組織根據IT策略而建立的其他有效判據。
證書上的數字籤名的驗證是需要頒發CA的公用密鑰的處理。當CA數字籤署證書時,通常利用CA的私用密鑰,對包括如證書持有者的名稱和公用密鑰的證書信息或通過應用散列算法而獲得的該信息的散列信息進行編碼。典型地,在證書中標識出頒發CA用於籤署證書的算法。之後,按照類似於驗證由用戶籤署的消息的數字籤名時所採用的方式,可以通過利用CA的公用密鑰,解碼已編碼信息或散列信息,並將結果分別與預期的證書信息或其散列信息進行比較,來驗證證書上的CA的數字籤名。成功的匹配表明CA已經驗證了證書持有者的公用密鑰可以有效地與證書持有者相綁定,並建議如果CA是可信的,則可以信任證書持有者的公用密鑰。
驗證證書籤名可能是耗時且昂貴的(例如,在計算資源的使用等方面),尤其是在如行動裝置等較小的設備上進行驗證的情況下。本發明的實施例大體上涉及一種系統和方法,通過存儲籤名驗證操作中所採用的特定信息以便再次使用,有利於更為有效地驗證證書上的數字籤名。
在至少一個實施例中,將已經頒發了特定證書的CA的一個或多個公用密鑰與該證書相關聯,並進行緩存或存儲。如上所述,在試圖驗證證書上由CA籤署的數字籤名時,需要CA的公用密鑰。但是,可能存在屬於相同CA的多個證書(每個證書均附有公用密鑰)。例如,如果幾個證書具有相同或相似的主題數據(即標識證書持有者的證書數據),或者如果CA已經頒發了多個公用密鑰(其中一些可能不再有效),則可能發生這種情形。因此,可能有利的是,跟蹤哪些特定的公用密鑰已經被用於成功地驗證了特定的證書。
參照圖8A,將示出了本發明實施例中、驗證證書上的數字籤名的方法中的步驟的流程圖總體表示為420。
在本發明的一個實施例中,通過在行動裝置上執行並駐留在其上的證書驗證應用程式來執行所述方法的至少一些步驟。在變體實施方式中,證書驗證應用程式可以駐留在除了行動裝置以為的其他計算設備上,並在其上執行。此外,證書驗證應用程式不必是獨立的應用程式,可以在移動或其他計算設備上執行並駐留在其上的一個或多個應用程式中實現證書驗證應用程式的功能。
通常,在方法420中,當使用給定的公用密鑰成功地驗證了證書上的數字籤名時,緩存該公用密鑰的副本,或者將其存儲在存儲器中。例如,可以將公用密鑰與有關證書的證書數據一起存儲,或者存儲在適合於存儲成功的籤名驗證中所採用的公用密鑰的分離存儲器(例如,查找表)中。當之後試圖驗證相同證書上的數字籤名時,不是立即執行至少需要利用公用密鑰解碼一些數據的、昂貴的籤名驗證操作,而是代替地,首先將再次用於驗證數字籤名的公用密鑰與已存儲的公用密鑰進行比較。如果這些公用密鑰匹配,則認為驗證成功,因為要使用的公用密鑰與先前成功地用於籤名驗證操作的密鑰匹配。於是,認為不必針對相同的數字籤名,再次執行實際的籤名驗證操作。因此,能夠以更為有效的比較操作(例如,字節陣列比較操作)代替至少一些隨後的籤名驗證操作。下面,將詳細描述方法420的步驟。
在步驟430,發起對證書上的數字籤名的驗證(例如,通過證書驗證應用程式)。例如,可以在為了驗證用戶所接收到的特定證書而構建證書鏈時(例如,如參照圖5所討論的那樣,為了驗證附加到所接收到的消息上的證書的可信狀態),執行對證書上的數字籤名的驗證。在本實施例中,正在進行驗證的證書上的數字籤名是頒發各個證書的證書權威機構的數字籤名。如上所述,在籤名驗證操作中,需要頒發證書的證書權威機構的公用密鑰。如果其並未被存儲在移動或其他計算設備上的證書存儲器中,在此步驟,可能需要獲得證書權威機構的證書和公用密鑰(例如,從LDAP伺服器中)。
對於給定的公用密鑰,在步驟440,在利用此公用密鑰進行籤名驗證操作之前,確定先前是否已經成功地利用此公用密鑰、對主題證書上的數字籤名進行了驗證。如上所述,這可以通過將先前用於成功地驗證主題證書上的數字籤名的證書頒發者的已存儲公用密鑰(如果存在,則在步驟470,已被存儲在緩存或其他存儲器中)與要用於驗證數字籤名的公用密鑰進行比較、然後確定是否匹配來進行。由於,在本實施例中,只將成功驗證嘗試中所採用的公用密鑰存儲在緩存或其他存儲器中,如果確定了匹配,則意味著先前已經成功地驗證了主題證書上的數字籤名。
如果先前並未利用給定的公用密鑰,成功地驗證主題證書上的數字籤名,則在步驟450,按照已知的方式,利用此公用密鑰驗證數字籤名。根據本實施例,如果在步驟460,確定利用此公用密鑰成功地驗證了該籤名,則在步驟470,將用在此成功驗證中的公用密鑰存儲在緩存或其他存儲器中,以便將來使用。例如,可以將在步驟470存儲的公用密鑰與有關主題證書的數據一起存儲,或者存儲在通過證書索引的(例如,通過將證書的頒發者名稱和序列號與公用密鑰一起存儲)、針對公用密鑰的中央存儲器中(例如,查找表中)。
另一方面,如果在步驟440確定先前已經成功地利用給定的公用密鑰驗證了主題證書上的數字籤名,則在步驟480,提供驗證成功的指示。代替執行至少需要利用公用密鑰解碼一些數據的實際籤名驗證操作,進行此操作,從而使籤名驗證處理更為有效。這有助於保存電池電力,並增強用戶的感受,例如,尤其是對於如行動裝置等小型設備。
對於額外的公用密鑰,可以重複方法420的步驟。
現在參照圖8B,將示出了本發明另一實施例中、驗證證書上的數字籤名的方法中的步驟的流程圖總體表示為420b。
方法420b類似於方法420,除了在只將成功籤名驗證中所採用的公用密鑰存儲在緩存或其他存儲器中這一方面與方法420相反,在方法420b中,將用在任何籤名驗證嘗試(成功或不成功)中的公用密鑰與驗證嘗試的結果一起存儲在緩存或其他存儲器中。
通常,在方法420b中,當使用給定的公用密鑰驗證證書上的數字籤名時,與操作的結果一起,緩存該公用密鑰的副本,或者將其存儲在存儲器中。例如,可以將公用密鑰和關聯結果與有關證書的證書數據一起存儲,或者存儲在分離存儲器(例如,查找表)中。當之後試圖利用給定公用密鑰驗證相同證書上的數字籤名時,不是執行至少需要利用公用密鑰解碼一些數據的、昂貴的籤名驗證操作,而是代替地,首先將再次用於驗證數字籤名的公用密鑰與已存儲的公用密鑰進行比較。如果給定的公用密鑰與已存儲的公用密鑰相匹配,則根據與已存儲的公用密鑰相關聯的已存儲的結果,認為當前的驗證嘗試成功或不成功。如果已存儲的結果表明利用該已存儲公用密鑰的先前驗證嘗試是成功的,則認為當前的驗證嘗試成功。如果已存儲的結果表明利用該已存儲公用密鑰的先前驗證嘗試是不成功的,則認為當前的驗證嘗試失敗。因此,能夠以更為有效的比較操作(例如,字節陣列比較操作)代替否則將需要利用公用密鑰解碼一些數據的隨後的籤名驗證操作。
在步驟430,發起對證書上的數字籤名的驗證(例如,通過證書驗證應用程式),如參照方法420所述。
對於給定的公用密鑰,在步驟440b,在利用此公用密鑰進行籤名驗證操作之前,確定先前是否已經利用此公用密鑰、對主題證書上的數字籤名進行過驗證。如上所述,這可以通過將先前用於驗證主題證書上的數字籤名的證書頒發者的公用密鑰(如果存在,則在步驟470,已被存儲在緩存或其他存儲器中)與要用於驗證數字籤名的公用密鑰進行比較、然後確定是否匹配來進行。如果確定了匹配,則意味著先前已經進行過驗證主題證書上的數字籤名的嘗試。
如果先前並未進行過驗證主題證書上的數字籤名的嘗試,則在步驟450,按照已知的方式,進行籤名驗證操作,如參照方法420所述。根據本實施例,在步驟470b,將用在此驗證中的公用密鑰和驗證嘗試的結果(即,是否成功地驗證了數字籤名的指示符)存儲在緩存或其他存儲器中,以便將來使用。例如,可以將在步驟470存儲的公用密鑰和結果與有關主題證書的數據一起存儲,或者存儲在通過證書索引的(例如,通過將證書的頒發者名稱和序列號與公用密鑰一起存儲)、針對公用密鑰的中央存儲器中(例如,查找表中)。
如果在步驟440b確定先前已經利用給定的公用密鑰驗證過主題證書上的數字籤名,則在步驟472,從緩存或其他存儲器中獲得利用此密鑰的先前驗證嘗試的結果,並確定所存儲的結果是否表示利用此密鑰的先前驗證嘗試是成功的。如果是,則在步驟480,提供當前驗證成功的指示;如果不是,則在步驟490,提供當前驗證不成功的指示。
對於額外的公用密鑰,可以重複方法420b的步驟。
代替執行至少需要利用給定公用密鑰解碼一些數據的籤名驗證操作,利用先前驗證嘗試的結果來確定利用此公用密鑰的驗證是否失敗,從而使籤名驗證處理更為有效。具體地,如果用戶利用相同的無效公用密鑰,多次請求驗證證書的數字籤名,則只需執行一次至少需要利用公用密鑰解碼一些數據的、實際的、昂貴的籤名驗證操作,以及在執行相對有效的比較操作(例如,字節陣列比較)之後,隨後的嘗試將立即失敗。這進一步有助於保存電池電力,並增強用戶的感受,例如,尤其是對於如行動裝置等小型設備。
本領域普通技術人員應當理解,在變體實施例中,如果需要,也可以將除了上述公用密鑰和驗證嘗試結果以外的其他信息存儲在緩存或其他存儲器中。
在本發明的變體實施例中,可以只允許在限定的持續時間內,將存儲在緩存或其他存儲器中的公用密鑰和其他信息(如驗證嘗試結果等)用於公用密鑰比較,在限定的持續時間之後,可以認為其已經過時,並從緩存或其他存儲器中刪除。這可以為了安全性的目的而進行,從而必須不時地重新執行至少需要利用公用密鑰解碼一些數據的實際籤名驗證操作。例如,可以根據IT策略來設置此持續時間。類似地,在本發明的另一變體實施方式中,例如,可以將存儲在緩存或其他存儲器中的一些或全部公用密鑰和其他信息標記為過時的,或從中刪除,例如,可以由用戶或管理員手工指定,從而必須重新執行籤名驗證操作。為了更為改進的安全性,例如,可以也執行驗證操作,以確保公用密鑰(例如,先前成功地驗證了證書籤名的公用密鑰)並未在存儲之後變為無效。
本發明實施例中用於驗證證書上的數字籤名的方法的步驟可以作為存儲在計算機可讀介質上的可執行軟體指令來提供,所述計算機可讀介質可以包括傳輸型介質。
已經針對多個實施例對本發明進行了描述。但是,本領域普通技術人員應當理解的是,在不偏離由所附權利要求所限定的本發明的範圍的前提下,可以進行多種變化和修改。
權利要求
1.一種在計算設備上驗證證書上的數字籤名的方法,所述方法包括以下步驟利用與證書的頒發者相關聯的第一公用密鑰,執行對數字籤名的第一籤名驗證操作;確定在第一籤名驗證操作中、數字籤名是否被成功驗證;將第一公用密鑰存儲在存儲器中;接收利用與證書的頒發者相關聯的第二公用密鑰、執行對數字籤名的第二籤名驗證操作的請求;將第二公用密鑰與存儲在存儲器中的第一公用密鑰進行比較,以確定第一和第二公用密鑰是否匹配;以及如果在第一籤名驗證操作中、數字籤名被成功驗證,而且如果在所述比較步驟中確定了匹配,則響應於所述請求,指示數字籤名的成功驗證,由此不需要執行第二數字籤名驗證操作。
2.根據權利要求1所述的方法,其特徵在於只有在第一籤名驗證操作中、數字籤名被成功驗證時,才在存儲步驟,將第一公用密鑰存儲在存儲器中。
3.根據權利要求1或2所述的方法,其特徵在於所述存儲步驟還包括存儲表示在第一籤名驗證操作中是否成功地驗證了數字籤名的結果,以及在所述指示步驟中,使用所述結果,以確定在第一籤名驗證操作中、數字籤名是否被成功驗證。
4.根據權利要求3所述的方法,其特徵在於還包括以下步驟如果在所述指示步驟中確定在第一籤名驗證操作中、數字籤名未被成功驗證,而且如果在所述比較步驟中確定了匹配,則響應於所述請求,指示數字籤名的不成功驗證。
5.根據權利要求1到4之一所述的方法,其特徵在於所述計算設備是行動裝置。
6.一種軟體應用程式,用於在計算設備上執行,所述應用程式包括存儲在計算機可讀介質上的多條指令,所述指令用於執行根據權利要求1到5之一所述的方法的步驟。
7.一種用於驗證證書上的數字籤名的系統,包括至少一個計算設備,其中證書驗證應用程式在所述至少一個計算設備中的計算設備上執行,且駐留在其上,其中對所述證書驗證應用程式進行編程,以執行根據權利要求1到5之一所述的方法的步驟。
全文摘要
一種用於驗證證書上的數字籤名的系統和方法,其可以用在對已編碼消息的處理中。在一個實施例中,當在籤名驗證操作中,數字籤名被成功驗證時,緩存用於驗證數字籤名的公用密鑰。當進行驗證數字籤名的隨後嘗試時,將要用於驗證數字籤名的公用密鑰與已緩存的密鑰進行比較。如果密鑰匹配,則可以成功地驗證數字籤名,而無需執行其中利用公用密鑰解碼一些數據的籤名驗證操作。
文檔編號H04L12/58GK1767438SQ20051011877
公開日2006年5月3日 申請日期2005年10月31日 優先權日2004年10月29日
發明者麥可·K·布朗, 麥可·S·布朗 申請人:捷訊研究有限公司