專利名稱:派生種子的制作方法
技術領域:
本發(fā)明涉及基于計算機的安全系統(tǒng)領域,并且更為具體地涉及認 證密值(secret)的分發(fā)。
背景技術:
在安全系統(tǒng)中,驗證器被用來認證,即驗證個人或如計算機的其 它實體的身份。通常請求認證的實體會例如通過輸入用戶ID來向驗 證器聲明他們的身份。然后該實體通常提供一些應當僅為有效實體知 道的額外的信息。驗證器確定該實體所提供的信息與有效實體將提供 的信息是否匹配。當實體已被認證時,這意味著驗證器已經確認該實 體的身份是它所宣稱的身份,則該實體被允許進行訪問,例如在物理 安全系統(tǒng)的情形中允許其物理訪問物理場所,或在數據安全系統(tǒng)中允 許其電子訪問資源或信息(如財務記錄、計算機數據、網絡訪問等)。驗證器可以存在多種可能的配置。驗證器可以從小鍵盤、鍵盤、 讀卡器、攝像機、麥克風、電話和計算機網絡以及其它此類數據輸入 設備接收輸入。作為輸出,驗證器激活物理機制、發(fā)送電子數據信號、 配置軟件或釆取此類其它動作來提供訪問??梢杂酶鞣N方式來實現驗 證器,例如實現為專用電子和/或機械系統(tǒng),或實現為通用計算機, 其可能但不是必須與專用硬件電子通信。一些驗證器使用所獲知或擁有的共享密值來認證實體。該密值是 "共享的",這是因為它由驗證器和正被認證的實體兩者持有。例如, 所獲知或擁有的個人身份號、密碼或密碼短語可
認證發(fā)生時,實體或者揭露該密值或者以其他方式證明獲知或擁有該 密值。如果該實體表明如特定認證系統(tǒng)所要求的那樣獲知或擁有該密 值,則該實體被認證。在一些系統(tǒng)中,實體使用包括密值的被稱為令牌的物理或數字設 備。以某種方式存儲在設備中的密值可為使用該設備的實體所獲知或 不獲知。為了證明獲知包括在設備中的密值, 一些設備提供基于該設備中 包括的密值、但與其不同的認證碼。使用此種認證碼允許設備在不揭 露密值的情況下表明其獲知密值。在一些系統(tǒng)中,認證碼是基于與時 間有關的信息的。使用此種設備的安全益處在于,更難通過監(jiān)聽實體 與驗證器之間的通信通道來確定該密值,這是因為密值本身并未被揭由個人使用來認證到驗證器的此種設備的一個例子是包括認證 碼顯示器的令牌。此人從顯示器讀出認證碼,并且將該認證碼傳輸給 驗證器。在此類系統(tǒng)中,用戶可能從未獲知共享密值。 一些此類令牌接受用戶輸入,例如PIN,并且提供響應于該用戶輸入的結果以及其 它信息(如與時間有關的信息)。采用此類令牌設備的一個缺點是只 有一個用戶可以使用該令牌來認證到驗證器。每個用戶必須具有他或 她自己的令牌。此類令牌中的一個令牌存儲被稱為種子的密值碼,并且將該密值 碼與時變值和用戶所提供的個人身份碼數學組合,以生成認證碼。以 不能從存儲在令牌中的密值碼與當前時間和其它信息加密組合的結 果中確定該密值碼的方式來進行數學組合。在作為挑戰(zhàn)-應答 (challenge-response)系統(tǒng)的另一系統(tǒng)中,該挑戰(zhàn)-應答系統(tǒng)意味著驗 證器傳輸挑戰(zhàn)以供用戶應答,該密值碼與該挑戰(zhàn)加密組合以產生發(fā)送 回驗證器作為該挑戰(zhàn)的應答的輸出。為了驗證使用共享密值的實體,驗證器需要已經獲知該共享密 值。在驗證巨大數量實體的安全系統(tǒng)中,需要在安全和驗證器可用性 之間進行折衷。如果存在巨大數量的驗證器,當特定實體需要認證時 更有可能存在可用的驗證器。但是,當已經獲知密值的驗證器數量增
加時,維護該系統(tǒng)的安全性就變得更加困難。安全系統(tǒng)的使用受限于實體可以方便地認證到的驗證器的數量 和種類。如果實體與多個與該實體共享不同密值的驗證器進行交互, 則該實體必須管理多個密值(或包括密值的設備),其中每個密值用 來認證到一個或少量驗證器。管理大量的密值增加了基于計算機實體 的復雜性,并且對于人類實體來說不方便。即使處理過程在實體和大 量驗證器中的每一個之間安全共享不同的密值,也是不方便和煩瑣 的。公開密鑰加密被用來避免在希望通信或認證的兩方之間共享密 值的需要。但是,公開密鑰加密在很多用戶和設備認證設置中不實用, 這至少部分是因為完成該計算需要強大的計算能力,以及管理證書和 證書撤消列表的復雜性。發(fā)明內容總體上說,本發(fā)明是一個系統(tǒng),由此可以使用單個共享密值作為 基礎來派生出多個用于認證的共享密值。在進行認證時的一些情形 中,派生共享密值的過程可以動態(tài)發(fā)生。這種派生密值模型的一個特 殊益處在于,包括初始共享密值的單個認證設備可以在不需要事先預 計算所有可能的派生密值的情況下被分發(fā)。這大大地簡化了在多個環(huán) 境中分發(fā)和使用單個認證設備的過程。此系統(tǒng)的另一個益處是初始共 享密值可以從不用于認證(只用于密值派生),這增加了系統(tǒng)的安全 性。此系統(tǒng)的再一個益處是它允許多方使用單個認證設備(即令牌), 或單方使用單個認證設備來認證到多個實體,或由多方使用來認證到 多個實體,而不需要在這些認證中使用共同的共享密值。在這種情況下,所有認證都通過使用對每個情況為唯一的共享密值來進行;其中 每個唯一共享密值是根據初始共享密值派生出的。在一方面,本發(fā)明的特征在于用于為多個客戶機側實體生成認證 密值(例如"種子")的方法。該方法包括基于單個主種子來生成 多個派生種子,每個種子對應多個客戶機側實體中相應的一個不同的 實體,其中生成多個派生種子中的每個種子包括將主種子與標識相應 的客戶機側實體的唯一標識符數學組合。在特定實施例中,本發(fā)明還 可以被用來為多個服務器側實體生成認證種子。其它實施例包括一個或多個下述特征。多個客戶機側實體是多個 用戶。該方法還包括將多個派生種子分發(fā)給驗證器以供在將多個客戶 機側實體中每個實體認證到驗證器時使用。下面是本發(fā)明的方法的一 個實施例的概述,其使用派生種子來將用戶認證到認證服務器。首先, 主種子生成器創(chuàng)建主種子。該主種子被加載到由多個用戶用來認證的 認證器中。該認證器可以是實現成硬件設備或軟件形式的令牌。該主 種子還被加載至派生種子生成器中。在以后某一時間,通常是在注冊 過程期間啟動使用該認證器的特定用戶的認證,該過程執(zhí)行如下步 驟(l)認證服務器獲取用戶的唯一標識符(UID); (2)認證服務器聯 系提供用戶的UID的派生種子生成器,并識別用戶將使用哪個認證 器(例如通過提供認證器序列號);(3)派生種子生成器使用認證器的 序列號來定位被加載到認證器中的主種子,然后對主種子和用戶UID 進行加密組合,以創(chuàng)建派生種子;并且(4)派生種子被發(fā)送回認證服 務器,以用作后續(xù)認證的共享密值。主種子生成器在邏輯上可以與派 生種子生成器分開,或者這兩個生成器可以被實現成執(zhí)行兩種功能的 單個生成器。在更后面的時間,用戶將決定訪問由認證服務器保護的 某些資源,并且執(zhí)行下述步驟(l)在認證時該用戶UID被傳遞給認 證器;(2)認證器在內部將先前存儲的主種子和新提供的用戶UID進 行加密組合,由此動態(tài)創(chuàng)建派生種子;并且(3)通過使用該派生種子, 認證器將執(zhí)行使用該派生種子作為共享密值的多個認證算法中的一 個,并且發(fā)布(release)合適的認證碼。認證碼然后被發(fā)送給認證服 務器。因為認證服務器已經具有派生種子的存儲的拷貝,它可以證實 該認證碼。多個不同的用戶可以使用將派生出對用戶與認證器的組合為唯 一的派生種子的相同的過程,其中每個用戶有他們各自唯一的UID。 結果是,得到的系統(tǒng)具有多個唯一的屬性。首先,單個主種子是唯一 靜態(tài)密值,其需要存儲在認證器中。其次,每個用戶具有唯一用戶 UID,并且因此也具有唯一的派生種子。每個用戶的唯一派生種子可 以在認證時動態(tài)創(chuàng)建,因此無需在認證器中存儲用戶的派生種子。從 安全性和存儲器的使用角度看,這是很有價值的。但是,派生種子同 樣可以預先計算,并存儲在認證器中。每個唯一的派生種子用于認證 每個唯一的用戶,并且因此不存在對公共認證密值的共享;從而不會 存在因密值共享引起的安全弱點。最后,由于派生種子可以在認證時 動態(tài)生成,無需存儲在認證器中,所以對能夠共享公共認證器的用戶 數量就沒有限制??傮w上說,在另一方面,本發(fā)明的特征在于使用單個主種子來將 多個客戶機側實體中任意選擇的一個實體認證到驗證器的方法,其中 多個客戶機側實體中的每一個實體由不同的唯一標識符標識。該方法 包括對于任意選擇的客戶機側實體,將組合主種子和其唯一標識符 數學組合,以為該任意選擇的客戶機側實體生成派生種子;使用為該 任意選擇的客戶機側實體生成的該派生種子來將該任意選擇的客戶 機側實體認證到驗證器。其它實施例包括一個或多個如下特征。多個客戶機側實體是多個 用戶。使用任意選擇的用戶的派生種子包括發(fā)送給驗證器根據該任意 選擇的用戶的派生種子計算出的值。使用為該任意選擇客戶機側實體 生成來將該任意選擇的客戶機側實體認證到驗證器的派生種子包括 使用從包括基于時間的認證算法、挑戰(zhàn)-應答認證算法、基于計數器 的認證算法和事件同步認證算法的一組認證算法中選出的認證算法。 數學組合主種子和該任意選擇的客戶機側實體的唯一標識符包括使 用基于共享密值的認證算法。使用共享密值的算法例子包括散列函 數、塊加密函數、流加密函數和消息認證碼函數。這些只是可以使用 的算法的例子。使用共享密值的其它算法也可以使用。進行數學組合 可以包括使用密鑰派生函數。密鑰派生函數可以包括迭代函數。密鑰 派生函數采用主種子或先前根據主種子派生出的值和多個唯一標識 符中一個或多個唯一標識符作為輸入,這些唯一標識符中的一個可以 包括用于標識多個用戶的唯一標識符??傮w上說,在另一方面,本發(fā)明的特征在于為一個或多個客戶機
側實體生成認證種子,使得它們能夠認證到一個或多個服務器側實體 的方法。該方法包括根據單個主種子生成多個派生種子,其中生成多 個派生種子的每一個包括數學組合主種子和相應的多個不同唯一標 識符,所述相應的多個不同標識符中的每個唯一標識符標識不同的實 體。其它實施例包括一個或多個如下特征。該方法還包括將多個派生 種子分發(fā)到一個或多個服務器側實體以使得用戶能夠通過使用多個 派生種子中合適的一個種子來認證到一個或多個服務器側實體。艮P, 派生種子是基于用戶唯一標識符和服務器唯一標識符的組合的,每個 用戶和服務器具有唯一標識符值。 一個或多個服務器側實體是多個服 務器側實體,其中對應多個不同標識符的每個標識符中至少有一個唯 一標識符來標識多個服務器側實體中相應的不同服務器側實體用戶。 進行數學組合包括使用密鑰派生函數。密鑰派生函數包括迭代函數。 密鑰派生函數將主種子或先前根據主種子派生出的值和多個唯一標 識符中一個或多個唯一標識符作為輸入,這些唯一標識符中的一個可 以包括用于標識多個用戶的唯一標識符。總體上說,本發(fā)明的另一方面的特征在于, 一種在令牌中實現將 多個不同用戶認證到另一實體的方法。該方法包括將主種子存儲在 令牌中;當任意一個用戶尋求認證到其它實體時,(l)數學組合主種 子和為此用戶提供的唯一標識符,以生成該用戶的派生種子;以及(2) 使用所派生的該用戶的種子來認證到其它實體。雖然已經描述了用于 將多個用戶認證到另一實體的方法,^U^要理解的是,此方法可被任 意類型的實體用來認證到另一實體。其它實施例包括一個或多個如下特征。使用該用戶的派生種子來 認證到其它實體包括使用利用共享密值的認證算法。算法例子包括 基于時間的認證算法、挑戰(zhàn)-應答認證算法、基于計數器的認證算法、 以及事件同步認證算法。在其它實施例中,該方法還包括在完成將用 戶認證到其它實體后刪除該派生種子。但是此步驟不是必須的。在另一方面,本發(fā)明的特征在于一種在網絡中使用的方法,在該 網絡中,具有存儲主種子的用戶設備的用戶通過客戶機側設備認證到
該網絡上的另一實體。該方法包括在連接到網絡上的服務器中,從 客戶機側設備接收標識該客戶機側設備的唯一標識符;在服務器中, 數學組合密值和該客戶機側設備的唯一標識符,以生成派生種子,其 中密值是根據主種子派生出的或先前生成的派生種子;并將新得到的 種子從服務器發(fā)送給客戶機側設備。其它實施例包括一個或多個如下特征。該方法還包括在客戶機側 設備接收派生種子;在接收到派生種子后,將客戶機側設備從網絡 中斷開。它還包括在用戶設備中接收客戶機側設備的唯一標識符; 數學組合至少該唯一標識符和主種子,以生成派生種子;在客戶機側 設備從網絡斷開時使用派生種子來認證到客戶機側設備。主種子是共 享密值?;蛘?,密值可以是先前根據主種子派生出的種子,即它是通 過將主種子和一個或多個其它標識符數學組合生成的。總體上說,在另一方面,本發(fā)明的特征在于一種由在網絡客戶機 側設備實現的方法,其中用戶通過客戶機側設備認證到該網絡上的另 一實體。該方法包括向網絡上的其它實體發(fā)送標識客戶機側設備的 唯一標識符;從其它實體接收派生種子,其中該派生種子是通過將密 值和客戶機側設備的唯一標識符數學組合生成,其中密值是基于主種 子生成的;從網絡上斷幵;為了認證用戶,將客戶機側設備的唯一標 識符發(fā)送給用戶設備;在客戶機側設備的唯一標識符發(fā)送到用戶設備 后,從用戶設備接收表明該用戶設備知曉派生種子的信息,比如根據 或基于得到的派生種子計算出的認證碼??傮w上說,在另一方面,本發(fā)明的特征在于在服務器站點認證多 個用戶的方法。該方法包括存儲多個派生種子,所述多個派生種子 全部是根據單個主種子計算出的,其中所述多個派生種子中的每個派 生種子對應于多個用戶中一個相應的用戶,其中所述多個派生種子中 的每個派生種子是通過將所述主種子和相應用戶的唯一標識符進行 數學組合而生成的;對于多個用戶中任意選擇的一個用戶,從該用戶 接收根據該用戶的派生種子數學生成的認證信息;對于該選擇的用 戶,基于從該用戶接收到的認證信息來認證該用戶。在其它實施例中, 該方法可用于將任意類型的實體(不只是用戶)認證到其他實體。 本發(fā)明的一個或多個實施例的細節(jié)將在下面通過附圖詳細描述。 根據發(fā)明詳述和附圖以及權利要求,本發(fā)明的其它特征、目的和優(yōu)點 將更加明顯。
圖1是為一組用戶生成派生種子的系統(tǒng)的方框圖;圖2是示出了派生種子的生成和使用的另一方面的方框圖;圖3是描述離線認證的方框圖。
具體實施方式
在專利申請人所擁有的較早專利申請中(即于1999年5月4日 的提交的U.S.S.N. 09/304,775 , 現在是美國專利 No. 6,985,583(RSA-038),在此并入作為參考),公開了使用單個主種子或 密值生成多個驗證器種子或派生種子的方法,其中每個種子用于認證 到不同站點。這允許實體認證到許多驗證器而不必管理大量的密值。 使用此技術只需要維護單個密值,與對于每個站點需要不同的密值的 方法相比,管理變得更簡單。使用一個密值,用戶可以認證到多個站 點或多個驗證器而不會危害該密值或必須與多于一個的實體共享。該 過程如下。在注冊過程期間,站點l要求用戶輸入令牌的序列號。然后站點 1將用戶令牌的序列號以及站點1的唯一標識符,即UIDp —起發(fā)送 給主種子生成器。主種子生成器將主種子和唯一標識符Uv,進行數學組合以產生派 生或驗證器種子SD1,其對于在特定站點使用的特定令牌是唯一的。 通過使用密鑰派生函數將主種子和其它信息組合以生成派生種子 SD1。密鑰生成函數具有使第三方不大可能通過獲知驗證器種子和其 它信息而確定出主種子的特性。其它信息是標識認證服務器的信息, 在本例中是唯一標識符UIDp主種子生成器將派生種子發(fā)送給站點1,它被安裝在認證服務器 或驗證器中。在實際認證期間,站點1上的認證器以某種提供標識符的其它方式(如小鍵盤輸入)發(fā)送其唯一標識符UID,給令牌或用戶。令牌在 內部將UID,和主種子組合以生成派生種子SD1的另一份拷貝。派生 種子Sw然后被用于認證到認證服務器。這通常通過將它與某一動態(tài) 變量(如時間、計數器變量、挑戰(zhàn)等)加密組合以生成認證碼來完成, 該認證碼至少是該動態(tài)變量和派生種子的函數。認證碼然后被發(fā)送至 站點1的認證服務器。因為認證服務器知道該派生種子和該動態(tài)變 量,它可以證實該碼,即它可以計算出該碼,并且將它與接收到的認 證碼進行比較以確認用戶是否知道共享密值。同樣的處理過程發(fā)生在站點2上,除了使用該站點的不同的唯一標識符UID2。該結果是不同的派生種子SD2。結果是,當在不同的站點上使用相同的令牌時所得到的認證碼也不同。UID,和UID2意在是與每個站點相關聯的唯一標識符。例如它們 可以是站點URL的散列值,或其它唯一值,比如與該站點相關聯的 公開密鑰,或可能是初始隨機選取的唯一標識符。但是一旦被分配, 該唯一標識符必須為主種子生成器和令牌兩者所獲知,這樣它們中每 個可以獨立計算出相同的派生種子。注意,主種子只被主種子生成器和主種子被編程到其中的令牌獲 知。令牌從不揭露其主種子,并且主種子生成器從不向任何人揭露主 種子。這樣,主種子本身從不用于認證。多用戶要認識到的是,在當有人想將對稱密鑰或基于種子的令牌用于多 個不同用戶的任何時候時都會產生問題。例如,假設多個家庭成員想 利用他們各自的帳號登錄同一站點(如MSN或AOL)。如果每個家 庭成員共享相同的令牌,就需要管理多個密鑰,每個為其執(zhí)行認證的 用戶對應于令牌中的一個密鑰。但在共享的令牌中提供和管理多個主 種子會變得十分復雜。此外,每個主種子會占用令牌的存儲空間,并 且必須提供一些機制來使得用戶在認證時能夠選擇正確的主種子。反 之,交替地發(fā)放多個單獨的令牌,每個用戶一個,則會很繁瑣。
還要認識到的是,為了在這些環(huán)境下解決自身所呈現的問題,可 以替代生成多個使多個不同的用戶能夠認證到相同的站點的派生種 子,其中每個派生種子為不同的用戶所使用。按照這種方式,相同的 主種子可以被用來為具有多個成員的組中的每個成員生成一個相應 的不同派生種子。在此例中,主種子在密鑰服務器和用戶所持有的令 牌之間共享。將使用令牌的人組中的每個成員具有與密鑰服務器共享 的相應的唯一的標識符。該唯一標識符是與該成員相關聯的值,如人 名的散列值。密鑰服務器通過數學組合主種子和成員的唯一標識符, 為組中的每個成員生成相應的派生種子,然后將這些派生種子發(fā)送給 驗證站點。當組中的成員希望認證到驗證站點時,該用戶將他或她唯 一標識符傳遞給令牌,令牌通過數學組合主種子和該用戶的唯一標識 符而為該用戶生成派生種子。按照這種方式,組中的每個成員具有他 或她自己的密鑰,可以不依賴組中的其他成員而獨立地認證到驗證站點;但僅僅一個主種子被要求支持該點。在這種情況下,與該用戶正認證到的站點相反,該唯一標識符與 用戶相關聯。此唯一標識符可以是唯一標識該用戶的任何東西,如用 戶的ISP登錄名的散列值,或用戶的即時消息器伙伴名的散列值。圖1示出了實現派生種子概念的系統(tǒng)的例子。它包括主種子生成 器100,它生成主種子sm且將主種子安裝在由一組用戶使用的令牌 102中。令牌102是硬件設備,被實現成例如信用卡大小的設備,它 包括配有存儲器和相關硬件邏輯和固件、電池和LCD顯示器的微處 理器。在描述的實施例中,令牌102通過連接器接口或無線通信,從 如按鈕、小鍵盤、壓感顯示屏接受數據輸入。令牌102也可以被實現 成運行在計算機、移動電話、個人數字助理或其它能夠執(zhí)行軟件應用 的軟件應用程序。主種子生成器IOO還給密鑰服務器104提供用于該組用戶的相同 主種子SM。密鑰服務器104可以是專用種子分發(fā)服務器,或者它可 以是數據服務器,如文件服務器、網頁服務器,或包括種子分發(fā)功能 的認證服務器。主種子Sm是由令牌102和密鑰服務器104共享的密值。通常, 主種子是例如通過偽隨機數生成器或通過使用觀測足夠隨機物理事 件的傳感器而隨機生成的。在任何情況下,它都是按照產生在統(tǒng)計上 都難以預測的密值數的方式而生成。還存在客戶計算機108,其被該組用戶用來認證到服務器站點而 不是包括驗證器或認證服務器110。生成派生種子的過程如下所述。 一開始,主種子生成器100分發(fā)主種子給令牌102和密鑰服務器104。用戶在客戶計算機108處登錄進服務器站點,向該站點注冊由該 站點提供的特定服務。作為注冊請求的一部分,客戶計算機108提供 正在使用的令牌的序列號以及唯一標識該用戶的標識符UID,(如登 錄名或屏顯名)。令牌的序列號將激活密鑰服務器104來在存儲于本 地數據庫的種子記錄中尋找與該令牌相關的主種子SM。作為響應,該站點處的認證服務器110發(fā)送注冊請求給密鑰服務 器。伴隨該請求的是令牌序列號和該用戶的唯一標識符。使用序列號 的密鑰服務器104在它的數據庫中査找該令牌的記錄,并且取回相應 的主種子SM。它然后將主種子和唯一標識符數學組合,以生成派生 種子SP1,該派生種子作為種子記錄的一部分發(fā)送回認證服務器110。認證服務器110將所接收的種子記錄和它的派生種子SjM—起存儲到它的數據庫中,以用于將來認證該用戶。在上述實施例中,密鑰服務器104通過使用密鑰派生函數"KDF" 生成派生種子SP1。密鑰派生函數在加密領域是公知的。密鑰派生函 數通常被選擇為具有為不同的輸入生成相對不同的輸出的能力,這是 因為它們難以反轉,即意味著對于特定輸出難以確定其輸入。各種密 鑰派生函數是基于散列函數、偽隨機函數等等的。密鑰派生函數通常將密值與其它信息組合。該密值可以是密碼。 對于本發(fā)明的方法,該密值是種子,或者是主種子或者是先前生成的 派生種子。在密鑰派生函數中也可以包括迭代函數。稱作迭代計數的 數字被用于表示派生密鑰的下層函數的執(zhí)行次數。將迭代計數用于密 鑰派生函數增加了根據密碼生成加密密鑰所需的工作量。在計算密鑰 時,適度的迭代計數,如1000,對于合法用戶而言不是大負擔,而
對攻擊者來說將會是極大的負擔。如果密碼值是大的隨機值,則可以使用小的迭代計數。使用KDF和迭代函數是如何派生出派生種子的 例子。也可以使用其它技術。應該理解的是,其它密鑰派生函數也同樣有用,并且在特定密鑰 派生函數需要時,也可以使用用戶信息和其它信息的各種替代物。在 其他替代例中,也可以使用基于下層散列函數、塊加密函數、消息認 證碼函數等的密鑰派生函數。在所描述的使用密鑰派生函數的實施例中,密鑰派生函數的輸入 是主種子,用戶標識符(或者是其串接而成的版本)和時間標識符。 用戶標識符UID包括關于用戶的信息,還可以包括其它信息,如時 間值。密鑰派生函數KDF將主種子SM和用戶的標識信息UH^作為輸 入。服務器110存儲主種子SM。令牌102同樣存儲主種子SM,并且 可以訪問用戶標識符信息UIDi。這樣令牌102也可以使用相同的密 鑰派生函數來根據主種子SM和用戶標識符信息UID,獲得相同的派生 種子Sw。共享令牌的每個用戶具有唯一標識符信息。執(zhí)行相同的過程為每 個用戶生成相應的派生種子Spi,其由認證服務器110存儲。當組中的任意用戶使用令牌來認證到站點服務器時,客戶機將用 戶的唯一標識符傳遞給令牌。令牌將在內部組合用戶的標識符和先前 存儲的主種子,以生成對該用戶為唯一的派生種子??蛻魴C然后使用 派生種子在站點服務器端將用戶認證到認證服務器。在一個實施例 中,令牌使用派生種子計算出對該用戶為唯一的認證碼。令牌將認證 碼傳回給客戶機,它然后將它們提供給站點服務器以認證該用戶。注意,實際的認證過程使用派生種子,而從不使用主種子,由此 保護了主種子的安全。認證過程通常由令牌102和/或客戶計算機 108將根據派生種子Spi數學上派生出的值傳給驗證器來完成。認證 過程可以通過使用散列函數、塊加密函數、消息認證代碼或其它技術 來完成。認證過程可以通過使用基于時間的算法來完成,根據該算法, 作為計算的一部分派生種子Spi與時間相關的信息相組合。作為另一
個例子,可以使用挑戰(zhàn)-應答方法。它包括驗證器108傳輸挑戰(zhàn)值給 令牌102。令牌102然后利用派生種子Spi對該挑戰(zhàn)值進行加密,將 結果傳輸回認證服務器110。另一種方法包括基于計數器的認證過程 和事件同步認證過程(如HOTP)。當密值由設備102和驗證器108共享時可以使用的各種認證和通 信系統(tǒng)和方法,可以被擴展為使用派生種子。例如,參見美國專利 4,720,860;美國專利4,885,778;美國專利4,S56,062;美國專利 4,998,279;美國專利5,023,卯8;美國專利5,058,161;美國專利 5,097,505;美國專利5,237,614;美國專利5,367,572;美國專利 5,361,062;美國專利5,485,519以及美國專利5,657,388,其描述了使 用共享密值進行認證的各種系統(tǒng)和方法。此系統(tǒng)可以包括在此描述的 系統(tǒng)和方法,以使用派生種子作為認證基礎。岡ij描述的方法的共同特征是在令牌中只有單個主種子,并且該令 牌使用主種子來生成所需的任何派生種子。如上所述,其具有不需要 用戶管理多個主種子的巨大優(yōu)點,而管理多個主種子對于許多用戶而 言可能是困惑和困難的。還要注意的是,令牌通常既不接收甚至也不 存儲派生種子。但是在特定實施例中,令牌可以接收和/或存儲派生 種子。在需要時它根據所存儲的單個主種子生成派生種子,當使用該 派生種子來認證到期望的站點完成后,它通常刪除該派生種子。當然,替代的方法可以預計算和在令牌中存儲不同的派生種子, 并且在需要時只是簡單地提供合適的派生種子。上述方法的進一步擴展是使用多個唯一標識符生成派生種子。例 如,如果組中的多個個體共享令牌,并且他們想使用相同的令牌來認 證到不同站點,則為每個合適的有意義的組合(個人和站點)生成派 生種子。為了簡化此例子,假定組中有兩名成員,還假定組中每位成 員希望使用令牌來認證到兩個站點(如AOL和MSN)中的每個上。 在此例中,為該系統(tǒng)定義四個派生種子,每個個人和站點的組合對應 一個。這樣,對于個人A在站點1,該組合相應的派生種子通過使用 個人A的唯一標識符(UIDa)和主種子(Sm)生成中間結果sa,然 后將站點1的唯一標識符(SiteID,)應用于該中間結果而生成派生種
子Sm。SA = KDF(SM,UIDA) SAI=KDF(SA, SiteID,)剩下的派生種子通過首先使用該用戶的UID,隨后使用站點的唯 一ID來生成。盡管上述例子示出作為串行計算(一個在另一個之后) 的Sa和Sm的派生,但這只是為了舉例的需要而不是必須的。在其 它實施例中,可以使用多個唯一標識符來執(zhí)行單個KDF。這可以被擴展成任意實體的組合。換句話說,創(chuàng)建派生種子時可 以組合多個唯一標識符。例如,個人A也許希望認證到站點1上的 計算機X。或者個人A可能希望認證到站點2處的計算機X?;蛘?個人B也許希望認證到站點2處的計算機Y,等等。這些組合中的每 一個都存在一個不同的派生種子。派生種子可能根據主種子,通過順 序應用個人的唯一標識符、計算機的唯一標識符,以及該站點的唯一 標識符而生成。任意數量的唯一標識符可以按照這種方式鏈接起來以根據單個 主種子生成相應的派生種子。此外,如上述的更簡單的例子中,只要 在認證期間要生成所需派生種子時能夠為令牌提供正確的唯一標識 符,則令牌無需存儲派生種子。令牌只需存儲主種子和用于根據主種 子生成派生種子的函數。除了站點和個人,唯一標識符可以是任何可以標識希望認證實體 的虛擬東西,或希望認證的身份實體。這包括,例如硬件唯一 ID、 唯一域ID、組ID、中間節(jié)點ID、新聞組ID、 KazzaID、駕照號碼、 護照號碼、電話號碼、有線電視盒序列號等。中間節(jié)點ID在防網絡 釣魚(antiphishing)技術(即在站點B上的用戶A來自站點C)上 很有用。圖2示出了這些觀點的進一步擴展的另一例子。這個特別的例子 示出了如何使用多個唯一標識符在網絡內部啟動本地認證過程,從而 避免每次認證時都必須回到根認證服務器。在圖2中網絡內有多臺布置成樹狀結構的認證服務器。根認證服 務器是AS,,其它的認證服務器AS2、 AS3、 AS4、 ASs和AS6通過樹
狀結構與根認證服務器相連,如圖所示。使用上述概念,認證過程由 客戶機連接到的服務器在本地執(zhí)行,所有的認證都是基于用戶所持有 的令牌中的單個主種子的。存儲主種子SM的密鑰服務器KS生成派生種子DSp并將派生種 子發(fā)送給根服務器AS,。派生種子的生成如前面描述,通過使用本領 域普通技術人員公知的合適的密鑰派生函數將主種子sm和根服務器 AS,的唯一標識符(即UID,)數學組合而生成。擁有包括主種子sm 拷貝的令牌的用戶,可以直接認證到根服務器AS,。這是通過從根服 務器AS,接收它的唯一標識符UIDp然后將唯一標識符應用于主種 子sm生成相應的派生種子DS,而完成。該操作可以表示成DS,-Sm + UID"用戶然后使用此派生種子 DS,以上述方式直接認證到根服務器。在描述的實施例中,將樹中另一認證服務器AS3的唯一標識符應 用到AS,的派生種子中,從而為此認證服務器AS3生成派生種子 DS3。換句話說,通過將UID3應用于DSp根服務器AS,為認證服務 器AS3生成派生種子DS3。即采用另一表達形式,此式可寫為DS3-DS,+UID3。 注意,如果選擇了合適的密鑰派生函數,DS3同樣可以通過將兩 個唯一標識符順序地應用至主種子生成,即 DS3-(Sm + UID)+ UID3。換句話說,AS3的派生種子可以由兩個不同的實體生成(應該注 意到,并不是所有的密鑰派生函數允許如上所示出的分開步驟。必須 選用合適的密鑰派生函數才有此特定屬性。)。如果密鑰服務器知道根 服務器AS,和認證服務器AS3的唯一標識符,則該派生種子可以通過 密鑰服務器KS根據主種子Sm生成?;蛘?,如果認證服務器AS3的 唯一標識符對于認證服務器AS,己知,可以通過認證服務器AS,根據 它的派生種子DS,生成認證服務器AS3的派生種子DS3。此方法可以擴展至樹狀結構中的其它認證服務器,為這些服務器
生成派生種子。這樣,每個認證服務器都能夠為網絡樹中的鄰居子服 務器生成派生種子。在描述的實施例中,鄰居認證服務器生成且提供派生種子給請求 服務器時還同時將它自己的唯一標識符和返回至根服務器路徑上的 所有認證服務器(包括根服務器)的唯一標識符一并發(fā)送。這樣,想 認證用戶的任意認證服務器能夠給該用戶(或用戶令牌)提供所有的 唯一標識符,使得令牌能夠根據內部存儲的主種子SM為該認證服務 器生成派生種子。這樣認證服務器在進行認證時,無論它在樹中什么 位置都不需要與樹中更上層的父服務器通信。例如,如果用戶希望認證到服務器AS6,則它從服務器AS6接收AS,、 AS3、 ASs和AS6的唯 一標識符。隨后,通過使用用戶令牌內部存儲的合適密鑰派生函數, 它將這些唯一標識符依次應用于主種子SM從而計算出服務器AS6的 派生種子。離線認證上述概念的另一個優(yōu)勢是派生種子的生成可以在任何時間進行, 而無需在為系統(tǒng)中的其它服務器或實體生成派生種子時進行。這個優(yōu) 點可以通過圖3中示出的網絡的例子進行說明。該網絡包括密鑰服務 器KS、在站點1上的認證服務器AS、連接到站點1的筆記本計算機 NB,以及用戶令牌。如上所述,站點1上的認證服務器AS通過將它的唯一標識符 UID,提供給密鑰服務器KS來向密鑰服務器KS注冊。密鑰服務器 KS然后使用密鑰派生函數將主密鑰Sw和該唯一標識符UIA組合, 以為站點1生成派生種子DS,。筆記本計算機用戶通過令牌認證到站點1,該令牌還保持主種子SM的拷貝。為了使用戶能夠認證到站點1,站點Sl的認證服務器提供它的唯一標識符UID,給筆記本計算機,然 后筆記本計算機將此唯一 id提供給令牌。令牌同時知道相應的密鑰 派生函數和主種子SM,它使用與密鑰服務器KS相同的方式生成DSp 并使用該派生種子來認證到認證服務器AS。在某一稍后時間,用戶可能想從站點1上斷開筆記本計算機,使 得它不再能夠與站點1上的認證服務器AS,進行通信。在此情況下它 可能還是想要求用戶認證到離線的筆記本計算機,此時已不可能使用 站點1的認證服務器??梢酝ㄟ^使用上面討論的概念實現此功能。具 體的,用戶向站點1的認證服務器ASr注冊筆記本計算機NB來進行 離線認證。作為回應,站點1的認證服務器AS,通過數學組合筆記本 計算機的唯一id, UIDNB,(如它的序列號)和先前提供給認證服務器 的派生種子DSp執(zhí)行另一派生種子生成過程。換句話說,站點l的 認證服務器AS,進行如下計算DS2-DS,+UID仰。然后認證服務器 在筆記本計算機斷開之前將派生種子DS2與它的唯一標識符UID,— 起發(fā)送給筆記本計算機。為了使得用戶在離線時能夠認證到筆記本計算機,筆記本計算機 將它自己的唯一標識符NIDNB以及站點1的唯一標識符UID, —并發(fā) 送給用戶令牌。令牌在內部使用密鑰派生函數數學組合主種子Sm以 及兩個標識符UID,和UIDNB,以生成DS2 (即,DS, = SM + UID1; DS2-DS, + UE)nb)。用戶然后在筆記本計算機網絡上斷開時,使用 DS2認證到該筆記本計算機。上述包括認證服務器網絡和離線認證的過程可以通過簡單地應 用已經描述的原則來擴展至許多級別以及不同的級別。注意,唯一標識符可以是任何值。盡管唯一標識符可以是任意值, 對于最高級別的安全性而言,該值是唯一的。唯一標識符的例子包括 站點的公開密鑰、站點URL、用戶名、筆記本計算機序列號等。唯 一標識符和主種子的組合可以使用本領域公知的不同算法來實現。對 它們一起求散列值是一個例子。同時,認證令牌可以是基于共享密值 (對稱密鑰或種子)的任意類型的令牌。例子包括基于時間、挑戰(zhàn)-應答、時間和事件、事件同步等。而且,對于本領域技術人員來說熟 知的是,其它信息可以包括在種子的派生中。應該理解的是,在本申請中分離示出的某些功能可以被組合在一 起,而組合示出的其他功能可以被分離,而不會對這里描述的基本原 理帶來損害。例如,主種子生成器100和密鑰服務器104在圖1中被 示出為分離的實體。然而,這兩個功能可以被組合成單個實體。而且,
服務器站點iio被示出為包括驗證器或認證管理器的功能,但是這兩個功能可以被分離,其中認證管理器正由與管理服務器站點的實體不 同的實體管理。實際上,考慮到認證服務器更可能由第三方服務器站 點提供,而不是由用戶嘗試訪問的站點提供,所述功能將是分離的。應該理解的是,正在認證進入站點的實體在此稱為用戶。實際上, 此實體還可以更通用地稱為客戶機側實體,這是因為它同樣可以是尋 求認證進入另一站點的硬件設備、應用或其它軟件實體。類似的,客 戶機側實體尋求認證進入的服務器可以是客戶機側實體希望認證進 入的服務器站點、域、區(qū)域或任何其它服務器側實體。在上述描述中,載有主種子且用于認證到服務器的用戶設備在此 稱為令牌。該設備有時還被稱為認證器。它可以采用不同的形態(tài),例如包括內部處理器元件和存儲器的硬件設備,或者是在PC上運行的代碼(如軟件令牌)。還要注意的是,用戶必須能夠存儲主種子且具有密鑰派生能力, 還必須獲知密鑰派生函數。此能力可以與用戶在連接至客戶計算機時 使用的令牌包括在一起,或包括在這些設備的組合內。其它實施例在下述權利要求中。
權利要求
1、一種用于為多個客戶機側實體生成認證種子的方法,所述方法包括基于單個主種子而生成多個派生種子,每個派生種子對應多個客戶機側實體中的一個相應的不同客戶機側實體,其中生成所述多個派生種子中的每一個包括將所述主種子和標識所述相應的客戶機側實體的唯一標識符進行數學組合。
2、 根據權利要求1所述的方法,其中,所述多個客戶機側實體 是多個用戶。
3、 根據權利要求l所述的方法,還包括將所述多個派生種子分 發(fā)給驗證器,以供在單獨地將所述多個客戶機側實體中的每個實體認 證到所述驗證器時使用。
4、 根據權利要求1所述的方法,還包括 生成所述主種子;以及接收所述多個客戶機側實體中的每個實體的相應的唯一標識符。
5、 根據權利要求1所述的方法,還包括 從主種子生成器接收所述主種子;以及接收所述多個客戶機側實體中的每個實體的相應的唯一標識符。
6、 根據權利要求4所述的方法,其中,所述接收包括從所述驗 證器接收所述多個客戶機側實體中每個實體的唯一標識符。
7、 根據權利要求1所述的方法,其中,所述方法在令牌設備上 實現,并且其中,當正為其生成所述派生種子的所述客戶機側實體試 圖認證到驗證器時,發(fā)生生成所述多個派生種子中的每一個的過程。
8、 根據權利要求1所述的方法,還包括接收標識多個客戶機側 實體中一個客戶機側實體尋求訪問的服務器的唯一標識符,其中為該 客戶機側實體生成派生種子包括將所述主種子、標識該客戶機側實體 的唯一標識符和標識所述服務器的唯一標識符進行數學組合。
9、 根據權利要求1所述的方法,其中,進行數學組合包括使用 密鑰派生函數。
10、 根據權利要求9所述的方法,其中,所述密鑰派生函數包括 迭代函數。
11、 根據權利要求9所述的方法,其中,所述密鑰派生函數采用 根據所述主種子派生出的值和標識所述多個客戶機側實體中選出的 一個實體的唯一標識符作為輸入。
12、 根據權利要求11所述的方法,其中,根據所述主種子派生 出的所述值是所述主種子。
13、 根據權利要求11所述的方法,其中,根據所述主種子派生 出的值是通過將所述主種子和至少一個其它標識符進行數學組合而 生成的。
14、 一種使用單個主種子來將多個客戶機側實體中任意一個選擇 的實體認證到驗證器的方法,其中,所述多個客戶機側實體中的每個 實體由不同的唯一標識符標識,所述方法包括將所述主種子和所述任意選擇的客戶機側實體的唯一標識符進 行數學組合,以為所述任意選擇的客戶機側實體生成派生種子;以及使用為所述任意選擇的客戶機側實體生成的所述派生種子,來將 所述任意選擇的客戶機側實體認證到所述驗證器。
15、 根據權利要求14所述的方法,其中,所述多個客戶機側實 體是多個用戶。
16、 根據權利要求15所述的方法,其中,使用所述任意選擇的 用戶的派生種子包括向所述驗證器發(fā)送根據所述任意選擇的用戶的 派生種子計算出的值。
17、 根據權利要求14所述的方法,其中,將所述主種子和所述 任意選擇的客戶機側實體的唯一標識符進行數學組合包括使用利用 由所述驗證器和所述客戶機側實體共享的密值的函數。
18、 根據權利要求17所述的方法,其中,使用為所述任意選擇 的客戶機側實體生成的所述派生種子來將所述任意選擇的客戶機側 實體認證到所述驗證器包括使用從一組認證算法中選出的認證算法, 該組認證算法包括基于時間的認證算法、挑戰(zhàn)-應答認證算法、基于 計數器的認證算法以及事件同步認證算法。
19、 根據權利要求14所述的方法,其中,將所述主種子和所述 任意選擇的客戶機側實體的唯一標識符進行數學組合包括使用從一 組函數中選出的函數,該組函數包括散列函數、塊加密函數、流加密 函數以及消息認證碼函數。
20、 根據權利要求14所述的方法,其中,進行數學組合包括使 用密鑰派生函數。
21、 根據權利要求19所述的方法,其中,所述密鑰派生函數包 括迭代函數。
22、 根據權利要求19所述的方法,其中,所述密鑰派生函數采 用根據所述主種子派生出的值和標識所述多個客戶機側實體的唯一 標識符中的一個標識符作為輸入。
23、 根據權利要求21所述的方法,其中,根據所述主種子派生 出的值是所述主種子。
24、 一種用于為一個或多個客戶機側實體生成認證種子以使它們能夠單獨地認證到一個或多個服務器側實體的方法,所述方法包括根 據單個主種子生成多個派生種子,其中生成所述多個派生種子中的每個種子包括將所述主種子和相應的多個不同的唯一標識符進行數學 組合,其中所述相應的多個不同的唯一標識符中的每個唯一標識符標 識不同的實體。
25、 根據權利要求24所述的方法,還包括將所述多個派生種子 分發(fā)給所述一個或多個服務器側實體,以使得用戶能夠通過使用所述 多個派生種子中合適的一個種子認證到那些一個或多個服務器側實 體。
26、 根據權利要求24所述的方法,其中,所述一個或多個用戶 是多個用戶,并且其中,每個相應的多個不同標識符中至少一個唯一 標識符標識所述多個用戶中相應的不同用戶。
27、 根據權利要求24所述的方法,其中,所述一個或多個服務器側實體是多個服務器側實體,其中每個相應的多個不同標識符中至 少一個唯一標識符標識所述多個服務器側實體中相應的不同服務器側實體。
28、 根據權利要求24所述的方法,其中,進行數學組合包括使 用密鑰派生函數。
29、 根據權利要求27所述的方法,其中,所述密鑰派生函數包 括迭代函數。
30、 根據權利要求27所述的方法,其中,所述密鑰派生函數采 用根據所述主種子派生出的值和標識所述多個客戶機側實體的唯一 標識符中的一個唯一標識符作為輸入。
31、 根據權利要求30所述的方法,其中,根據所述主種子派生 出的值是所述主種子。
32、 一種在令牌中實現的用于將多個不同的第一實體認證到第二 實體的方法,所述方法包括將主種子存儲在所述令牌中;當所述多個第一實體中任意一個實體尋求認證到所述第二實體 時,(l)將所述主種子和為該第一實體提供的唯一標識符進行數學組 合,以為該第一實體生成派生種子;并且(2)使用該第一實體的所述 派生種子來認證到所述第二實體。
33、 根據權利要求32所述的方法,其中,所述令牌被實現成硬 件設備。
34、 根據權利要求32所述的方法,其中,所述令牌被實現成軟件。
35、 根據權利要求32所述的方法,其中,使用該第一實體的所 述派生種子來認證到所述第二實體,包括使用利用由所述第二實體和 該第一實體共享的密值的認證算法。
36、 根據權利要求32所述的方法,其中,使用所述第一實體的 所述派生種子來認證到所述第二實體,包括使用從一組認證算法中選 出的認證算法,該組認證算法包括基于時間的認證算法、挑戰(zhàn)-應答 認證算法、基于計數器的認證算法和事件同步認證算法。
37、 根據權利要求32所述的方法,還包括(3)在將該第一實體 認證到所述第二實體后,刪除該第一實體的所述派生種子。
38、 一種在網絡中使用的方法,在所述網絡中,具有存儲主種子 的用戶設備的用戶通過客戶機側設備認證到所述網絡上的另一個實 體,所述方法包括在連接到所述網絡的服務器中,從所述客戶機側設備接收標識所 述客戶機側設備的唯一標識符;在所述服務器中,將密值與所述客戶機側設備的所述唯一標識符 進行數學組合,以生成派生種子,其中所述密值是根據所述主種子派 生出的;以及將所述派生種子從所述服務器發(fā)送至所述客戶機側設備。
39、 根據權利要求38所述的方法,其中,所述客戶機側設備是 中間服務器。
40、 根據權利要求38所述的方法,還包括在所述客戶機側設備上接收所述派生種子;以及在接收到所述派生種子后,將所述客戶機側設備從所述網絡中斷開。
41、 根據權利要求38所述的方法,還包括在所述用戶設備中 接收所述客戶機側設備的所述唯一標識符; 至少將所述唯一標識符與所述主種子進行數學組合,以生成所述派生種子;以及在所述客戶機側設備從所述網絡中斷幵的情況下,使用所述派生 種子將所述用戶設備認證到所述客戶機側設備。
42、 根據權利要求38所述的方法,其中,所述密值是所述主種子。
43、 根據權利要求38所述的方法,其中,所述密值是派生種子, 其是通過將所述主種子和一個或多個其它標識符進行數學組合而生 成的。
44、 一種由網絡上的客戶機側設備實現的方法,在所述網絡中, 用戶通過所述客戶機側設備認證到所述網絡上的另一實體,所述方法 包括將標識所述客戶機側設備的唯一標識符發(fā)送給所述網絡的該另 一實體;從所述另一實體接收派生種子,其中所述派生種子是通過將密值 和所述客戶機側設備的唯一標識符進行數學組合而生成的,其中所述 密值是基于所述主種子的;從所述網絡斷開;為了認證用戶,將所述客戶機側設備的唯一標識符發(fā)送至用戶設備;在將所述客戶機側設備的唯一標識符發(fā)送至所述用戶設備后,從 所述用戶設備接收表明該用戶設備擁有所述派生種子的信息。
45、 根據權利要求44所述的方法,其中在從所述用戶設備接收 表明該用戶設備擁有所述派生種子的信息的步驟前,所述用戶設備生 成響應于所述派生種子的認證碼,其中來自該用戶設備的信息是所述 認證碼。
46、 根據權利要求44所述的方法,其中,所述密值是根據所述 主種子進行數學計算出的。
47、 一種在服務器站點認證多個用戶的方法,所述方法包括存儲多個派生種子,所述多個派生種子全部是根據單個主種子計 算出的,其中所述多個派生種子中的每個派生種子對應于多個實體中 一個相應的不同實體,其中所述多個派生種子中的每個派生種子是通 過將所述主種子和相應實體的唯一標識符進行數學組合而生成的;對于所述多個用戶中任意選出的一個用戶,從該用戶接收根據該 用戶的派生種子數學生成的認證信息;以及對于所選出的用戶,基于從該用戶接收到的認證信息來認證該用戶。
全文摘要
一種用于為多個用戶生成認證種子的方法,該方法包括基于單個主種子生成多個派生種子,每個派生種子對應于多個用戶中的每個用戶;將所述多個派生種子發(fā)布給驗證器以在單獨將多個用戶中的每一個用戶認證到驗證器時使用,其中每個派生種子的生成包括將主種子和標識相應的用戶的唯一標識符數學組合。
文檔編號G06F21/00GK101120351SQ200680005222
公開日2008年2月6日 申請日期2006年2月17日 優(yōu)先權日2005年2月18日
發(fā)明者J·哈梅爾, W·杜安 申請人:Rsa安全公司