專利名稱:使用呼號的端點驗證的制作方法
使用呼號的端點驗證 背景人們越來越多地使用在線服務來進行交易和娛樂。例如,許多個人利 用因特網(wǎng)上的網(wǎng)站來進行先前面對面或通過電話完成的交易。用戶可以通過將因特網(wǎng)上的網(wǎng)站的統(tǒng)一資源定位符("URL")鍵入運行于該用戶的 計算機上的瀏覽器中來到達該網(wǎng)站。在一些情況下,用戶可能想要驗證用 戶實際上已經(jīng)到達所需網(wǎng)站。出于各種原因,驗證用戶已到達所需網(wǎng)站可 以是很重要的。例如,驗證用戶已到達所需網(wǎng)站最小化了諸如網(wǎng)絡釣魚 (phishing)和網(wǎng)址嫁接(pharming)等可導致身份盜竊和金錢損失的欺詐 活動的影響。另外,驗證可以鞏固用戶的信心并增加用戶與該網(wǎng)站交易的 期望。一種驗證用戶已到達所需網(wǎng)站的方法是下載由可信第三方發(fā)放的該網(wǎng) 站的數(shù)字證書。可信第三方為數(shù)字證書的內(nèi)容擔保,且數(shù)字證書包括關于 該網(wǎng)站的可被用于加密發(fā)送到該網(wǎng)站的消息的公鑰。只有具有該密鑰的網(wǎng) 站可以解密這些消息。以此方式,用戶可以對他或她正與所需網(wǎng)站通信感 到自信。雖然這一方法可被用來驗證用戶已到達所需網(wǎng)站,但是因為必須使用 第三方來發(fā)放并維護這些數(shù)字證書,所以該方法可能很昂貴。在其它情況 下,引入第三方來建立信任可能是不適當?shù)摹@?,作為密切的商業(yè)伙伴 的兩方可能想要創(chuàng)建其中他們而不是第三方控制責任的所有方面的電子關 系。在其它各示例中,第三方的引入還可能產(chǎn)生不必要的隱私擔憂。用戶因此可能期望有效的驗證系統(tǒng)和方法。用戶還可能想要允許用戶 基于用戶的需求來決定網(wǎng)站的驗證的相對強度的驗證系統(tǒng)和方法。概述提供本概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一些 概念。該概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在 用于幫助確定所要求保護的主題的范圍。一個方面涉及被配置為驗證到一網(wǎng)站的連接的計算機系統(tǒng)。該計算機 系統(tǒng)包括被編程為接收統(tǒng)一資源定位符和與該網(wǎng)站相關聯(lián)的呼號的用戶界 面。該計算機系統(tǒng)還包括被編程為基于統(tǒng)一資源定位符、與該網(wǎng)站相關聯(lián) 的公鑰和鹽來計算散列值的確認器模塊,且該確認器被編程為比較散列值 和呼號來驗證到該網(wǎng)站的連接。另一方面涉及用于驗證到一 web服務的連接的方法,該方法包括接 收呼號;接收與該web服務相關聯(lián)的公鑰和鹽;使用與該web服務相關聯(lián) 的統(tǒng)一資源定位符、公鑰和鹽來計算散列值;比較散列值和呼號;以及指 示散列值是否與呼號相匹配。又一方面涉及用于驗證到一 web服務的連接的方法,該方法包括從 用戶接收與該web服務相關聯(lián)的統(tǒng)一資源定位符;接收與該web服務相關 聯(lián)的公鑰和鹽;使用統(tǒng)一資源定位符、公鑰和鹽來計算散列值;從用戶接 收呼號的各個字符;指示散列值是否與呼號相匹配;以及基于從用戶收到 的呼號的字符指示密碼強度。
現(xiàn)在將對附圖做出參考,這些附圖不一定是按比例繪制的,并且其中 圖1示出其中計算機系統(tǒng)的一實施例被編程為驗證到達了所需網(wǎng)站的 示例計算環(huán)境;圖2示出圖1的示例計算機環(huán)境和網(wǎng)站;圖3示出圖1的計算機系統(tǒng)的示例圖形用戶界面;圖4示出圖3的圖形用戶界面的一部分;圖5示出圖1的計算機系統(tǒng)的另一示例圖形用戶界面;圖6示出圖5的圖形用戶界面的一部分;圖7示出圖5的圖形用戶界面的另一視圖;圖8示出圖7的圖形用戶界面的一部分;圖9示出其中富客戶端的一實施例被編程為驗證到達了所需web服務 的另一示例計算環(huán)境;圖IO示出使用呼號來驗證已到達所需網(wǎng)站的示例方法;以及 圖11示出使用呼號來驗證已到達所需網(wǎng)站的另一示例方法。詳細描述 現(xiàn)將參考附圖,在下文更詳細地描述各示例實施例。提供這些實施例 以使本公開內(nèi)容變得全面和完整。全文中,相同的參考標號表示相同的元 素。在此公開的各示例實施例一般涉及對客戶機己到達所需web服務的驗證。在各示例實施例中,在連接web服務以實現(xiàn)已到達所需web服務的一定級別 的確定性時使用了呼號(call sign)。在一些實施例中,所提供的呼號的長度 可取決于客戶機所需的確定性級別而變化。在各示例實施例中,呼號對客戶機 的用戶來說是可理解的。現(xiàn)在參考圖l,示例計算環(huán)境100包括計算機系統(tǒng)110的各實施例、諸如 因特網(wǎng)130等的網(wǎng)絡、以及諸如網(wǎng)站150等的web服務。示例計算機系統(tǒng)IIO 可由用戶控制以通過因特網(wǎng)130與網(wǎng)站150進行通信。示例計算機系統(tǒng)110可被配置為包括至少一個處理器和存儲器的個人計 算機。計算機系統(tǒng)IIO包括以任何方法或技術實現(xiàn)的用于存儲諸如計算機可讀 指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和 不可移動介質(zhì)。計算機系統(tǒng)110包括諸如來自于微軟公司的WINDOWS操作 系統(tǒng)等的操作系統(tǒng),以及存儲在計算機可讀介質(zhì)上的一個或多個程序。計算機系統(tǒng)IIO還包括允許用戶與計算機系統(tǒng)IIO進行通信,以及允許計 算機系統(tǒng)IIO與諸如因特網(wǎng)130和網(wǎng)站150等其它設備進行通信的一個或多個 輸入和輸出通信設備。示于圖1的一個示例輸出設備是顯示器112。計算機系 統(tǒng)110、因特網(wǎng)130和網(wǎng)站150之間的通信可使用有線和/或無線技術來實現(xiàn)。在各示例實施例中,系統(tǒng)100和網(wǎng)站150使用在部分地由微軟公司普及的 web服務尋址(WS尋址)規(guī)范中定義的傳輸機制進行通信。 一般地,WS尋 址定義允許諸如系統(tǒng)110和網(wǎng)站150等的各個服務互相通信的傳輸中立 (transport-neutral)機帝!j 。計算機系統(tǒng)110的用戶能夠使用諸如瀏覽器114等的在計算機系統(tǒng)110 上的程序來訪問網(wǎng)站150。瀏覽器的一個示例是由微軟公司提供的Internet Explorer瀏覽器。在一個實施例中,在計算機系統(tǒng)110上運行的瀏覽器114使 用超文本傳輸協(xié)議安全("HTTPS")協(xié)議來與一個或多個網(wǎng)站150進行通信, 然而也可使用其它協(xié)議。
現(xiàn)參考圖l-4,在用戶想與網(wǎng)站150通信時,用戶在瀏覽器114的地址窗 口 320中輸入與網(wǎng)站150相關聯(lián)的統(tǒng)一資源定位符("URL" ) 410 (例如, www.microsoft.com)。用戶還輸入與網(wǎng)站150相關聯(lián)的呼號420。呼號420用 "#"字符與URL410分開,但是也可使用其它字符和/或方法。如下進一步地 描述的,呼號420可以被用來驗證用戶已到達所需網(wǎng)站。一般地,呼號420是包括用戶可以理解的數(shù)字和/或字母數(shù)字字符的一串 字符。例如,在一些實施例中,呼號420長度上足夠短以使用戶可以記住呼號 420且很容易地將呼號420輸入到窗口 320中。例如,呼號420小于或等于社 會保險號碼(9字符)或電話號碼(IO字符)的長度。在其它實施例中,呼號 包括15個或更少的字符、7個或更少的字符、或5個或更少的字符。通常,呼 號420由用戶信任的一方給與用戶,如朋友、同事、公司、網(wǎng)站等等。呼號420的一個示例是"9516-1578"。在各示例實施例中,呼號420包 括眾多字符并使用密碼過程生成。在一實施例中,呼號420的每一字符都表示 5個二進制數(shù)字。例如,較長的二進制數(shù)字被斷成5比特的片段以編碼呼號410 的字符。呼號420的首字符編碼用來解碼呼號410的0的個數(shù)。呼號420的剩 余字符表示二進制數(shù)字的剩余部分。在所示示例中,呼號420通過取與網(wǎng)站150相關聯(lián)的公鑰"K"、包括網(wǎng) 站150的URL的前綴"P"和作為隨機數(shù)字的鹽值"S"來生成。使用密碼單 向函數(shù)來生成一個或多個散列值("H")來散列這三個值。散列是通過將數(shù) 學算法應用于任意量的數(shù)據(jù)上以產(chǎn)生固定大小的結果的密碼過程。該實施例中 所使用的散列函數(shù)的示例包括MD2、 MD4、 MD5和SHA-1。還可以使用其它 函數(shù)。散列值可如下生成<formula>formula see original document page 7</formula>鹽"S"變化一給定長度的時間和/或直到結果是以期望數(shù)量的0開始的一 個或多個散列值為止。呼號420隨后通過使用數(shù)字和/或字母數(shù)字字符編碼散列 值來計算。在所示示例中,呼號420在編碼期間被斷成5比特的片段。 關于呼號的另外的細節(jié)可在2004年6月30號提交的美國專利申請?zhí)?10/882,079中找到,其整體通過引用結合于此。再次參考圖l-4,在用戶輸入URL410和呼號420之后,系統(tǒng)110被編程 為發(fā)送尋址到關于網(wǎng)站150的URL 410的消息115。消息115可根據(jù)WS尋址 和web服務描述語言標準來格式化,如下進一步描述。消息115包括對與網(wǎng)站 150相關聯(lián)的公鑰和鹽的請求。響應于消息115,網(wǎng)站150向系統(tǒng)IIO發(fā)送包括與網(wǎng)站150相關聯(lián)的公鑰 和鹽的響應消息220。在一示例中,消息220是來自網(wǎng)站115的數(shù)字證書???以使用其它格式。在計算機系統(tǒng)110接收到消息220時,計算機系統(tǒng)110的確認模塊116 被編程來計算與網(wǎng)站150相關聯(lián)的URL410、公鑰和鹽的散列。確認模塊116 還被編程來比較所得散列值和呼號420的值以驗證散列值與呼號相匹配。以此 方式,確認模塊116驗證公鑰與網(wǎng)站150相關聯(lián),這向用戶提供用戶已到達所 需網(wǎng)站的一定等級的確定性。如果確認模塊116所計算的散列值與呼號420相匹配,則計算機系統(tǒng)110 則被編程來將該匹配通知給用戶。例如,窗口 310可被改變成第一種顏色(例 如,綠色)來指示匹配,可被改變成第二種顏色(例如,紅色)來指示散列值 與呼號420不匹配。在各另選實施例中,可以使用諸如文本或可聽指示符等的 其它形式的通知?,F(xiàn)參考圖5-8,在一些實施例中,瀏覽器114中包括了強度計量510。 一 般地,強度計量510提供地址窗口 320中使用的呼號520的相對強度的指示。 呼號520的強度通過估計"破譯"呼號520有多困難或必須用多長和多少資源 來標識導致相同的呼號520的另一公鑰來測量。在各示例實施例中,特定呼號的強度通過考慮破譯呼號所必需的時間和資 源的量來計算。假定需要花費特定量的時間來生成密鑰(例如,5秒)及特定 量的時間來生成具有給定數(shù)量"Z"(例如,24比特)的0的散列值"H", 則每一密鑰花費以下量的時間"T"來計算r(Z) = 5+ llx2z—24 假定攻擊者擁有平均價格(例如,$500)的計算機來執(zhí)行計算且有一年來進行計算(例如,31536000秒),則破譯特定長度"L"的呼號的成本可估計如下估計的成本=$500x 7TZJ x2 "1536000」變量"Q"表示說明潛在攻擊者致力于破譯對"Q"個可能的受害者的任 一個的呼號的可能性的因子。在一示例實施例中,如果前導的0的數(shù)量是25 比特且呼號的長度"L"為9字符,則破譯該呼號的估計的成本大約是150億 美元。計算機系統(tǒng)110的確認模塊116被編程來利用瀏覽器114的強度計量510 來向用戶提供呼號520的相對強度的可視指示。在所示示例中,強度計量510 在長度上增加以指示更強的呼號,且在長度上減少以指示更弱的呼號。在各另 選實施例中,可使用其它類型的指示符。在一些情況下,可能期望允許所用的密碼的強度的變化。例如,如果用戶 正聯(lián)系網(wǎng)站150以査閱晚上的電視時間表,則驗證用戶已到達所需網(wǎng)站對用戶 來說可能不太重要。然而,在用戶聯(lián)系網(wǎng)站150來進行財務交易時,用戶可能 想要更強的驗證。在一些實施例中,計算機系統(tǒng)UO被編程來允許用戶只輸入呼號520的一 部分。例如,假定完整的呼號520是"9516-1578",如圖5和6所示,如果 用戶只輸入呼號520的前四個字符(即,"9516"),則確認模塊116被編程 來比較該部分呼號和經(jīng)計算的散列值以驗證匹配以及在強度計量510中指示所 輸入字符的相對強度。在一些實施例中,如果用戶期望更大的強度,則如圖7和8所示,用戶可 以繼續(xù)輸入呼號520的字符(即"9516-1578")。確認模塊116驗證經(jīng)計算 的散列值和呼號520相匹配,且還增加計量510中的強度的指示。以此方式, 用戶可以取決于情況和所需的驗證等級來決定用戶想對呼號520輸入多少字 符。
例如,假定呼號包括斷成4個字符組的5比特字符,使得每一代碼組有20比特,且0的數(shù)目"Z"是25比特,則破譯該呼號的成本可以被估算為隨所輸入的每一字符組增加如下
一個字符組-$28的成本來破譯; 兩個字符組-3千萬美元的成本來破譯;以及 三字符組-30萬億美元的成本來破譯。該美元量或反映該美元量的比例可以在用戶輸入呼號的字符時顯示給用戶。
在各另選實施例中,可以使用不同的可視(例如,如紅/黃/綠等的顏色或 滑動比例)或可聽指示符。此外,在各另選實施例中,呼號520的強度的指示 可以在與瀏覽器114分開的用戶界面中提供。
在各另選實施例中,用戶可以在用戶界面中而不是在瀏覽器114中輸入呼 號。例如,在一另選實施例中,為用戶提供單獨的用戶界面來輸入呼號。在其 它實施例中,用戶可能根本不需要輸入呼號。相反,呼號可由另一可信計算機 系統(tǒng)110使用WS尋址協(xié)議轉發(fā)到計算機系統(tǒng)110,如下進一步描述的。
現(xiàn)參考圖9,示出了另一示例計算環(huán)境600。環(huán)境600包括富客戶端(rich client) 610、因特網(wǎng)630和web服務650。在各示例實施例中,富客戶端 610是通過因特網(wǎng)630與web服務650進行通信的應用程序。例如,在一 實施例中,富客戶端610是允許用戶通過與經(jīng)紀商的web服務650通信來 交易股票和管理證券投資的應用程序。在各示例實施例中,URL和呼號由富客戶端610信任的一方提供給富 客戶端610。例如,在所示實施例中,富客戶端610信任的另一富客戶端 620將URL和呼號轉發(fā)給富客戶端610。富客戶端610被編程來與web服務650進行通信以獲取與web服務650 相關聯(lián)的公鑰和鹽。例如,在所示實施例中,富客戶端610被編程來連接 到與web服務650相關聯(lián)的元數(shù)據(jù)端點以査詢根據(jù)WS尋址和web服務描 述語言("WSDL" ) 1.1協(xié)議提供的服務描述。響應于該來自富客戶端610的查詢,web服務650返回至少包括與web 服務650相關聯(lián)的公鑰和鹽的服務描述。例如,如下所示,web服務650 使用WS尋址所定義的協(xié)議向富客戶端610發(fā)送公鑰和鹽。<EndPointReference><Address> http:〃www.microsoft.com/ </Address> <Identity〉<CallSignData〉<CallSign> AAA陽BOl-BYZ </CallSign> <DistinguishedSalt>+PYbznDaB/dlhjIfqCQ458E72w A=</DistinguishedSalt> <KeyValue〉<RSAKeyValue><Modulus>+rrbznDaB/dlhjIfqCQ458E7 2wA=</Modulus><Exponent>+PYbzppP =</Exponent> <RSAKeyValue> <KeyValue> <CallSignData> <Identity> <EndPointReference>在如上提供的示例中,如下所述,web服務650還在向富應用程序610 的返回消息中包括呼號的另一副本用以驗證目的。一旦富客戶端610從web服務650接收到公鑰、鹽和呼號,富客戶端 610首先驗證來自web服務650的呼號與來自可信第三方(例如,富應用 程序620)的呼號相匹配。下一步,富客戶端610計算與web服務650相 關聯(lián)的公鑰、鹽和URL的散列值并將結果和呼號進行比較以驗證公鑰是所 需web服務650的公鑰?,F(xiàn)參考圖10,示出了計算機系統(tǒng)使用呼號來驗證已到達所需網(wǎng)站的示例 方法700。在操作710,計算機系統(tǒng)接收所需網(wǎng)站的URL和呼號。例如,用戶 可以在從可信方獲得呼號后,在計算機系統(tǒng)中輸入URL和呼號。下一步,在
操作720,計算機系統(tǒng)向網(wǎng)站請求公鑰??刂齐S后被傳到操作730,在此計算 機系統(tǒng)從網(wǎng)站接收公鑰和鹽。下一步,在操作740,計算機系統(tǒng)使用URL、公 鑰和鹽計算散列值??刂齐S后被轉到操作750,在此做出關于散列值和呼號是否匹配的判定。 如果散列值和呼號確實匹配,則控制被轉到操作760,且向用戶通知該匹配。 另選地,如果在操作750散列值和呼號不匹配,則控制被轉到操作770,且向 用戶通知該不匹配。現(xiàn)參考圖11,示出了計算機系統(tǒng)使用呼號來驗證已到達所需網(wǎng)站的另一 示例方法800。在操作810,計算機系統(tǒng)從用戶接收所需網(wǎng)站的URL。下一步, 在操作820,計算機系統(tǒng)向網(wǎng)站請求公鑰。控制隨后被傳到操作830,在此計 算機系統(tǒng)從網(wǎng)站接收公鑰和鹽。下一步,在操作840,計算機系統(tǒng)使用URL、 公鑰和鹽來計算散列值。控制隨后被轉到操作850,在此計算機系統(tǒng)從用戶接收呼號的字符的至少 一部分。下一步,在操作860,做出關于散列值與所輸入的呼號是否匹配的判 定。如果散列值和呼號不匹配,則控制被轉到操作870,且向用戶通知該不匹 配。另選地,如果在操作860散列值和部分呼號匹配,則控制被轉到操作880, 且計算機系統(tǒng)指示該匹配并基于所輸入的呼號的強度來更新強度計量。下一 步,在操作890,作出關于是否存在呼號的更多字符的判定。如果確實存在更 多字符,則控制被轉到操作850,且計算機系統(tǒng)等待從用戶接收呼號的下一字 符。如果用戶選擇,則用戶可以輸入呼號的另外的字符,且隨著更多字符的輸 入相應地更新強度計量。上述各實施例僅作為說明提供,并且不應被解釋為限制。本領域的技 術人員將容易地認識到可對上述各實施例做出的各種修改和改變,而不背 離本發(fā)明或所附權利要求的真實精神和范圍。
權利要求
1. 一種被配置為驗證到一網(wǎng)站的連接的計算機系統(tǒng),所述計算機系統(tǒng)包括被編程為接收與所述網(wǎng)站相關聯(lián)的統(tǒng)一資源定位符和呼號的用戶界面;以及被編程為基于所述統(tǒng)一資源定位符、與所述網(wǎng)站相關聯(lián)的公鑰和鹽來計算散列值的確認器模塊,且所述確認器被編程為比較所述散列值和所述呼號以驗證到所述網(wǎng)站的所述連接。
2. 如權利要求1所述的計算機系統(tǒng),其特征在于,所述呼號是一字符串。
3. 如權利要求2所述的計算機系統(tǒng),其特征在于,所述字符串對于所 述計算機系統(tǒng)的用戶是可理解的。
4. 如權利要求2所述的計算機系統(tǒng),其特征在于,所述呼號是從多比 特二進制數(shù)字中編碼的。
5. 如權利要求4所述的計算機系統(tǒng),其特征在于,所述二進制數(shù)字包 括多個拖尾的0,并且所述呼號的首字符編碼所述拖尾的0的個數(shù)。
6. 如權利要求1所述的計算機系統(tǒng),其特征在于,所述確認模塊被進 一步編程為在所述用戶界面中提供用戶輸入的呼號的強度的指示符。
7. 如權利要求6所述的計算機系統(tǒng),其特征在于,所述呼號的強度的 指示符表示對破譯所述呼號的成本的估計。
8. —種用于驗證到一 web服務的連接的方法,所述方法包括-接收呼號;接收與所述web服務相關聯(lián)的公鑰和鹽;使用與所述web服務相關聯(lián)的統(tǒng)一資源定位符、所述公鑰和所述鹽來 計算散列值;比較所述散列值和所述呼號;以及 指示所述散列值是否與所述呼號相匹配。
9. 如權利要求8所述的方法,其特征在于,所述呼號是從一可信方接 收的。
10. 如權利要求8所述的方法,其特征在于,所述公鑰和所述鹽是從所述web服務接收的。
11. 如權利要求8所述的方法,其特征在于,所述呼號是字符串。
12. 如權利要求11所述的方法,其特征在于,所述字符串對于所述 計算機系統(tǒng)的用戶是可理解的。
13. 如權利要求12所述的方法,其特征在于,所述字符串長度上小 于IO個字符。
14. 如權利要求8所述的方法,其特征在于,還包括指示所述呼號的 強度。
15. —種具有用于執(zhí)行如權利要求8所述的步驟的計算機可執(zhí)行指 令的計算機可讀介質(zhì)。
16. —種用于驗證到一web服務的連接的方法,所述方法包括.-從用戶接收與所述web服務相關聯(lián)的統(tǒng)一資源定位符; 接收與所述web服務相關聯(lián)的公鑰和鹽;使用所述統(tǒng)一資源定位符、所述公鑰和所述鹽來計算散列值; 從用戶接收呼號的各個字符; 指示所述散列值是否與所述呼號相匹配;以及 基于從所述用戶接收到的呼號的字符來指示密碼強度。
17. 如權利要求16所述的方法,其特征在于,還包括 從所述用戶接收所述呼號的另外的字符; 比較所述散列值和所輸入的呼號的字符; 指示所述散列值是否與所述呼號相匹配;以及 基于所輸入的呼號的字符來更新所述密碼強度的指示。
18. 如權利要求16所述的方法,其特征在于,所述呼號的密碼強度 的指示表示對破譯所述呼號的成本的估計。
19. 如權利要求16所述的方法,其特征在于,所述密碼強度的指示 包括生成計量來示出所述呼號的密碼強度。
20. —種具有用于執(zhí)行如權利要求16所述的步驟的計算機可執(zhí)行指 令的計算機可讀介質(zhì)。
全文摘要
一種計算機系統(tǒng)被配置為驗證到一網(wǎng)站的連接。該計算機系統(tǒng)包括被編程為接收與該網(wǎng)站相關聯(lián)的統(tǒng)一資源定位符和呼號的用戶界面。該計算機系統(tǒng)還包括被編程為基于統(tǒng)一資源定位符、與該網(wǎng)站相關聯(lián)的公鑰和鹽來計算散列值的確認器模塊,且該確認器模塊被編程為比較散列值和呼號以驗證到該網(wǎng)站的連接。
文檔編號G06F17/30GK101401094SQ200780009209
公開日2009年4月1日 申請日期2007年2月6日 優(yōu)先權日2006年3月15日
發(fā)明者A·K·納恩達, C·F·休特瑪, C·艾利森, K·卡梅倫 申請人:微軟公司