訪問控制的制作方法
【專利摘要】一種通信訪問控制系統(tǒng)(100)包括被實現(xiàn)在計算實體上的至少一個訪問控制單元(160),用于基于系統(tǒng)用戶(105)的請求來計算隨機輸入地址(205)和隨機輸出地址(210)。輸入和輸出地址是基于與至少一個訪問控制單元(160)關聯(lián)的服務設施(115)所持有的加密密鑰(165)。
【專利說明】訪問控制
【背景技術】
[0001]分布式計算是其中任務被分成相對較小的子任務的計算方法,所述相對較小的子任務然后分布在計算設備的網(wǎng)絡中以供同時處理。分布式計算已經(jīng)被用于無數(shù)應用和系統(tǒng)中,諸如例如社交網(wǎng)絡、在線數(shù)字地圖、視頻共享網(wǎng)站、和高級協(xié)同軟件。
[0002]然而,通常缺少確保通過分布式計算系統(tǒng)被處理的數(shù)據(jù)安全和完整性的內置(built-1n)安全機制。例如,通常與分布式計算應用聯(lián)合使用的統(tǒng)一資源標識符(URI)技術可以提供允許用戶創(chuàng)建、共享和消滅諸如各種類型的文本、圖像、多媒體對象和規(guī)格之類的數(shù)據(jù)對象的命名和訪問機制。然而,在這些數(shù)據(jù)對象散布于分布式計算系統(tǒng)內的情況下,問題是如何防止對數(shù)據(jù)對象的未授權或不期望的訪問、改變或刪除。
【專利附圖】
【附圖說明】
[0003]附圖圖示本文所述的原理的各種示例并且是說明書的部分。圖示僅是示例并不限制權利要求的范圍。
[0004]圖1是根據(jù)本文所述的原理的一個示例的用于分布式計算環(huán)境的安全訪問控制的系統(tǒng)的示圖。
[0005]圖2是根據(jù)本文所述的原理的一個示例的訪問控制單元的示圖。
[0006]圖3是根據(jù)本文所述的原理的一個示例被實現(xiàn)成經(jīng)由計算設備向用戶提供給予另一個用戶給該用戶發(fā)送或寫入消息的能力的能力的訪問控制單元的示圖。
[0007]圖4是示出根據(jù)本文所述原理的一個示例被示出被實現(xiàn)成經(jīng)由計算設備向用戶提供給予另一個用戶從該用戶接收或讀取消息的能力的能力的訪問控制單元的示圖。
[0008]圖5是根據(jù)本文所述原理的另一個示例被實現(xiàn)成經(jīng)由計算設備向用戶提供給予另一個用戶給該用戶發(fā)送或寫入消息的能力的能力的訪問控制單元的示圖。
[0009]圖6是根據(jù)本文所述原理的另一個示例被實現(xiàn)成經(jīng)由計算設備向用戶提供給予另一個用戶從該用戶接收或讀取消息的能力的能力的訪問控制單元的示圖。
[0010]圖7是示出根據(jù)本文所述的原理的一個示例用于操作分布式消息傳遞系統(tǒng)的方法的流程圖。
[0011]附圖由始至終,相同的附圖標記指定類似的但不一定是相同的元素。
【具體實施方式】
[0012]如上所述,由于云計算、Web 2.0和軟件即服務應用的出現(xiàn),分布式計算系統(tǒng)的使用最近越來越多。分布式計算使用分布式的資源、對象和服務以允許最終用戶創(chuàng)建、共享和消滅諸如各種類型的文本、圖像、多媒體和規(guī)格之類的信息資源。結果是,共享和同時使用分布式對象和資源持續(xù)增長。然而,其中實現(xiàn)分布式計算的應用仍然通常使用統(tǒng)一資源標識符(URI)來提供用于萬維網(wǎng)的命名和訪問機制。然而如上所述,統(tǒng)一資源標識符(URI)機制不包括可以允許諸如例如因特網(wǎng)之類的網(wǎng)絡中的用戶安全地命名、訪問和保護其系統(tǒng)上的對象的任何內置安全機制。[0013]為了克服該安全問題,系統(tǒng)可以使用訪問控制列表(ACL)。訪問控制列表(ACL)是包括經(jīng)授權的實體或用戶的列表以及系統(tǒng)中每個對象的列表的存儲的信息列表。訪問控制監(jiān)視器然后可以查閱訪問控制列表(ACL)來確定例如能夠允許還是拒絕實體對對象進行訪問的請求。為了實現(xiàn)該目的,訪問控制監(jiān)視器將驗證發(fā)送所述訪問請求的實體所聲稱的身份。因此在允許實體訪問和以其他方式操作討論中的對象之前,實體的認證是先決條件。
[0014]然而,當被實現(xiàn)在分布式計算系統(tǒng)中時,基于訪問控制列表的控制監(jiān)視系統(tǒng)不是沒有其缺陷。例如,被訪問控制監(jiān)視器所使用的訪問控制列表隨著涉及的用戶和對象的數(shù)量的增長而在大小上指數(shù)地增長。存儲此類大量數(shù)據(jù)可以證明是艱巨的任務,并且因需要購買附加硬件而可能包括對系統(tǒng)的附加成本。
[0015]此外,隨著用戶數(shù)量的增長,訪問請求的數(shù)量也會增長,這可能使系統(tǒng)超載。此外,如上所述,對于對系統(tǒng)的訪問,單獨的用戶需要被認證。隨著用戶數(shù)量的增長,用于認證嘗試對訪問控制列表上的對象進行訪問的每個用戶所需的計算資源也是如此。在用戶導航通過所述系統(tǒng)時,系統(tǒng)可能由于這些訪問和認證請求而超載。最終,可能存在如此多的請求,以致可能產(chǎn)生訪問請求的積壓,從而導致對用戶的緩慢服務。
[0016]在某一時刻,對用戶的服務質量可能變得足夠緩慢以致阻礙用戶使用該應用或系統(tǒng)。例如,在分布式計算系統(tǒng)或應用是在線服務或網(wǎng)站的情況下,這可能導致業(yè)務和收入的損失。
[0017]本說明書因此描述用于在分布式計算環(huán)境中為了實現(xiàn)有效而安全的訪問控制而使用的用于安全、基于能力的命名、訪問、和保護機制的密碼系統(tǒng)和訪問控制原語(primitive)集。所述系統(tǒng)包括作為用于多個客戶端之間的分布式消息傳遞系統(tǒng)的安全微內核的可信中央設施。中央設施可以擁有可以在例如經(jīng)由合適的服務器而連接到因特網(wǎng)的一件可信硬件中存儲和使用的秘密加密密鑰。
[0018]中央設施包括當需要時基于多個密碼規(guī)則而動態(tài)創(chuàng)建的多個單元。這些單元可以接收來自輸入地址(IA)的數(shù)據(jù)并發(fā)送來自輸出地址(OA)的數(shù)據(jù),兩個地址都是隨機化的密碼數(shù)字。所述單元表示由元組(tuple) (ΙΑ、0A)描述的通信能力,以使得在不擁有上述秘密加密密鑰的情況下知道輸入地址不能計算輸出地址,反之亦然。
[0019]擁有輸入地址(IA)的用戶或實體能夠向所述單元發(fā)送或寫入消息,并且擁有輸出地址(OA)的實體能夠從所述單元接收或讀取消息。然而,擁有輸入地址(IA)的實體不能在沒有輸出地址(OA)的情況下從所述單元接收或讀取消息,并且擁有輸出地址(OA)的實體不能在沒有輸入地址(IA)的情況下向所述單元發(fā)送或寫入消息。
[0020]密碼地生成的輸入和輸出地址的這種概念能夠被用于多個不同的情境中。
[0021]第一,在分布式計算環(huán)境中,能夠向將具有對特定數(shù)據(jù)對象的訪問權的用戶提供用于該數(shù)據(jù)的位置的輸入和/或輸出地址。因此,關于由該用戶發(fā)送的該數(shù)據(jù)的消息或命令不需要被訪問控制列表所認證或處理。而是,擁有用于被指示的操作的正確的輸入/輸出地址被視為授權以執(zhí)行該操作。并且,如本文所述,實體只有通過擁有正確的輸入/輸出地址才能夠實際獲得對數(shù)據(jù)對象的訪問權以在該數(shù)據(jù)對象上執(zhí)行任何操作。
[0022]第二,在同樣作為分布式計算環(huán)境的社交網(wǎng)絡和消息傳遞應用中,用戶可能期望控制誰能夠向他們發(fā)送消息以及誰能夠接收他們發(fā)送的消息。密碼地生成的輸入和輸出地址的構想能夠被用于該情境中,以允許第一用戶選擇哪些其他用戶能夠向第一用戶發(fā)送消息以及哪些其他消息能夠從第一用戶接收消息。不具有針對第一用戶的輸入地址的用戶不能向第一用戶發(fā)送消息。同樣地,不具有第一用戶的輸出地址的用戶不能從第一用戶接收消息。
[0023]為了簡單,下述詳細描述將主要描述該第二場景,即使用密碼地生成的輸入和輸出地址來控制何時其他用戶能夠向第一用戶發(fā)送消息或從第一用戶接收消息。然而,應該理解的是,術語“消息”也可以指代用于訪問、編輯或刪除在分布式計算環(huán)境中被處理的數(shù)據(jù)的操作命令,并且所指的“用戶”可以是在分布式計算環(huán)境中的計算實體或數(shù)據(jù)位置。
[0024]因而,盡管下述描述具體涉及“用戶”之間消息的受控傳輸,但所述原理同樣適用于在處理多個數(shù)據(jù)對象作為被并行運行的多個實體所執(zhí)行的特定任務的部分的分布式計算環(huán)境中控制在人類用戶之間發(fā)送的消息和認證在計算實體或人類用戶之間發(fā)送的操作命令消息。
[0025]在下述描述中,為了解釋的目的,闡述了多個特定細節(jié)以便提供本系統(tǒng)和方法的透徹理解。然而,對本領域技術人員顯而易見的是,本裝置、系統(tǒng)和方法可以在沒有這些特定細節(jié)的情況下實施。本說明書中對“示例”或類似語言的引用意為與所述示例結合描述的特定特征、結構或特性如所描述的被包含,而可能未被包含在其他示例中。
[0026]如上所述,本說明書和權利要求中所使用的術語“消息”可以指代在人類用戶之間交換的消息或者去往計算實體的操作命令。本說明書和權利要求中所使用的術語“用戶”可以指代操作計算設備的人類用戶或者指代在分布式計算環(huán)境中可以根據(jù)編程而自動操作的計算實體。
[0027]現(xiàn)轉向圖1,示出根據(jù)本文所述的原理的一個示例用于分布式計算環(huán)境的安全訪問控制的系統(tǒng)(100)的示圖。在本示例中,為了說明簡單的目的,用戶(105)可以通過使用用戶計算設備(110)經(jīng)由網(wǎng)絡(120)獲得對被稱作組消息web (網(wǎng)絡)服務(GMWS)設施(115)的可信中央設施的訪問權。然而,在本說明書中闡述的原理同樣擴展到任何可替代配置,其中計算設備(110 )可以獲得對組消息web服務(GMWS )設施(115 )的訪問權。在一個示例中,計算設備(110)可以包括組消息web服務(GMWS)設施(115)并從而允許用戶在不通過網(wǎng)絡來訪問組消息web服務(GMWS)設施(115)的情況下通過計算設備(110)來直接訪問組消息web服務(GMWS )設施(115)。
[0028]此外,盡管圖1圖示了單個用戶(105),這僅僅是為了說明簡單。應該理解的是,任何數(shù)量的用戶也可以對組消息web服務(GMWS)設施(115)的訪問權。在該示例中,每個用戶可以獲得對組消息web服務(GMWS)設施(115)的訪問權以便安全地讀取和寫入消息并識別其他用戶以及由其他用戶發(fā)送的消息。
[0029]又進一步,盡管圖1圖示基于web或云計算的場景,本文所述的原理可以同樣擴展到其中單個單元被用于在計算設備之間安全地傳遞數(shù)據(jù)的其他應用。然而,為了說明簡單的目的,本說明書將在萬維網(wǎng)上的分布式計算場景的情境下進行描述,而不失一般性。
[0030]如上所述,系統(tǒng)(100)可以包括計算設備(110)和用戶(105)可以通過其來獲得對組消息web服務(GMWS )設施(115 )的訪問權的網(wǎng)絡(120 )。計算設備(110 )可以是實現(xiàn)至少向組消息web服務(GMWS )設施(115 )發(fā)送數(shù)據(jù)和從組消息web服務(GMWS )設施(115 )接收數(shù)據(jù)的期望功能的任何設備。為了實現(xiàn)其期望的功能,計算設備(110)包括各種硬件組件。在這些硬件組件之中可以是處理器(125)、數(shù)據(jù)存儲設備(130)、外圍設備適配器(135)、網(wǎng)絡適配器(140)、輸出設備(145)和輸入設備(150)。這些硬件組件可以通過使用多個總線和或網(wǎng)絡連接進行互連。在一個示例中,處理器(125)、數(shù)據(jù)存儲設備(130)、外圍設備適配器(135)、和網(wǎng)絡適配器(140)可以經(jīng)由總線(155)通信地耦合。
[0031 ] 處理器(125)可以包括用于從數(shù)據(jù)存儲設備(135)中檢索可執(zhí)行代碼并運行所述可執(zhí)行代碼的硬件架構。當被處理器(125)所運行時,可執(zhí)行代碼可以使處理器(125)實現(xiàn)至少下述功能:向組消息web服務(GMWS)設施(115)發(fā)送數(shù)據(jù)和從組消息web服務(GMWS)設施(115)接收數(shù)據(jù)。在運行代碼的過程中,處理器(125)可以從多個剩余的硬件單元接收輸入并向多個剩余的硬件單元提供輸出。
[0032]在一個示例中,計算設備(110)(具體是處理器(125))可以向組消息web服務(GMWS )設施(115 )發(fā)送查詢以獲得隨機訪問控制單元(160 ),并且當適用時,與系統(tǒng)(100 )的其他用戶共享輸入地址、輸出地址或二者。處理器(125)還可以在訪問控制單元(160)已經(jīng)從另一個用戶接收到消息并且機械地計算并轉發(fā)該消息給用戶(105)之后從訪問控制單元(160)接收消息。
[0033]數(shù)據(jù)存儲設備(130)可以存儲諸如訪問控制單元(160)之類的數(shù)據(jù)。盡管圖1描繪了作為組消息web服務(GMWS)設施(115)的部分的訪問控制單元(160),訪問控制單元(160)還可以被存儲在每個用戶(105)的計算設備(110)的數(shù)據(jù)存儲設備(130)上。當然,數(shù)據(jù)存儲設備(130 )可以存儲多個訪問控制單元(160 )并且可以進一步將它們保存成數(shù)據(jù)庫的形式以供當用戶(105)再次訪問所述訪問控制單元(160)時容易檢索。
[0034]數(shù)據(jù)存儲設備(130)可以包括各種類型的存儲模塊,所述存儲模塊包括易失性和非易失性存儲器。例如,本示例的數(shù)據(jù)存儲設備(130)包括隨機存取存儲器(RAM)、只讀存儲器(ROM)和硬盤驅動器(HDD)存儲器。許多其他類型的存儲器在本領域中可用,并且本說明書預期在數(shù)據(jù)存儲設備(130)中多種不同類型的存儲器(130)的使用作為可以適合特定應用。在某些示例中,數(shù)據(jù)存儲設備(130)中不同類型的存儲器可以被用于不同的數(shù)據(jù)存儲需要。例如,處理器(125)可以從只讀存儲器(ROM)中啟動,維護硬盤驅動器(HDD)存儲器中的非易失性存儲、并運行存儲在隨機存取存儲器(RAM)中的程序代碼。
[0035]數(shù)據(jù)存儲設備(130)通??梢园ㄓ嬎銠C可讀存儲介質。例如,數(shù)據(jù)存儲設備
(130)可以是但不限于電子、磁性、光學、電磁、紅外或半導體系統(tǒng)、裝置或設備或者前述的任何合適的組合。計算機可讀存儲介質的更特別的示例可以包括例如下述組件:便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM或閃存)、便攜式光盤只讀存儲器(CD-ROM)、光學存儲設備、磁性存儲設備或前述的任何合適的組合。在本文檔的上下文中,計算機可讀存儲介質可以是能夠包含或存儲訪問控制單元(160)的任何有形介質。
[0036]外圍設備適配器(135)可以給輸入(150)和輸出(145)設備提供接口以創(chuàng)建用戶接口和/或訪問存儲器存儲裝置的外部源。如下所述,輸出設備(150)可以被提供以允許用戶與組消息web服務(GMWS )設施(115 )進行交互。外圍設備適配器(135 )還可以創(chuàng)建處理器(125)和打印機、顯示設備、或其他輸出設備之間的接口。
[0037]網(wǎng)絡適配器(140)可以附加地給網(wǎng)絡(120)提供接口,從而實現(xiàn)向組消息web服務(GMWS)設施(115)發(fā)送數(shù)據(jù)和從組消息web服務(GMWS)設施(115)接收數(shù)據(jù)。具體地,網(wǎng)絡適配器(140 )可以實現(xiàn)計算設備(110)和組消息web服務(GMWS)設施(115 )之間的訪問控制單元(160)的傳輸。
[0038]組消息web服務(GMWS)設施(115)邏輯上包括多個訪問控制單元(160)和多個加密密鑰。組消息web服務(GMWS)設施(115)還可以包括與上述計算設備(110)內的處理器和數(shù)據(jù)存儲設備類似的處理器(170)和數(shù)據(jù)存儲設備(175)。如后文所述,處理器(170)可以被用于當適當?shù)臅r候計算輸入地址和輸出地址。此外,數(shù)據(jù)存儲設備(175)被用于存儲秘密加密密鑰和訪問控制單元(160) 二者。
[0039]在一個示例中,秘密加密密鑰被稱為在說明書內的一些方程中由字母“K”所表示的系統(tǒng)主密鑰(165)。組消息web服務(GMWS)設施(115)可以利用系統(tǒng)主密鑰(165)來生成包括輸入地址(IA)和輸出地址(0A)的多個訪問控制單元(160)。使用該系統(tǒng)主密鑰(165)而密碼地生成這些地址。利用輸入地址(IA)或輸出地址(0A),用戶可以有權給另一個用戶寫入消息或從另一個用戶讀取消息。此外,為了允許與其他用戶進行交互,用戶(105)需要僅向另一個用戶發(fā)送訪問控制單元(106)的輸入地址(IA)或輸出地址(0A)。下文將結合圖3和4描述關于這可以如何實現(xiàn)的更多細節(jié)。
[0040]在另一個示例中,代替秘密加密密鑰,用戶(105)可以發(fā)送公共密鑰,在本說明書內的一些方程中用字母“Y”表示。利用公共密鑰,訪問控制單元(160)可以使用基于該公共密鑰Y的哈希函數(shù)來計算輸入地址(IA)和輸出地址(OA)。因此,用戶(105)可以與用戶(105)可能希望與之交互的那些用戶共享公共密鑰而不是單元地址。在下文結合圖5和6將討論關于這可以如何實現(xiàn)的更多細節(jié)。在三種不同類型(圖3和4中的第一類型,和圖5和6中的另外兩個類型)的單元中的每一個,主密鑰可以不相同。為了提高的安全性,密鑰可以是獨立的。
[0041]圖2是根據(jù)本文所述的原理的一個示例的訪問控制單元(160)的示圖。訪問控制單元(160)從系統(tǒng)(圖1,100)的各個用戶接收輸入地址(205)并且給系統(tǒng)(圖1,100)的各個用戶提供輸出地址(210)。如本文結合圖3-7更詳細描述的,輸入地址(205)和輸出地址(210)是可以為256位長的密碼數(shù)字。輸入地址(205)和輸出地址(210)通過諸如在系統(tǒng)主密鑰(圖1,165)影響下由對稱密鑰加密算法定義的安全置換而相關。
[0042]在一個示例中,輸入地址(205)可以被下述方程所定義:
Al ^ E{K,OA)方程(I)。
[0043]在上述方程(方程(I))中,由項“0A”表示的輸出地址(210)從密碼安全偽隨機比
特比特發(fā)生器(PRBG)所得出,并且E是諸如例如AES25613之類的對稱加密方法。訪問控制
單元(160)因此表示由元組(IA,0A)描述的通信能力,以使得在沒有系統(tǒng)主密鑰K的情況下OA不能從IA計算得出,反之亦然。結果是,只有擁有輸入地址(205)的那些用戶能夠發(fā)送或寫入消息到訪問控制單元(160)并且只有擁有輸出地址(210)的那些用戶能夠從訪問控制單元(210)接收或讀取消息。
[0044]如上文簡述的,訪問控制單元(160 )可以被存儲在諸如例如組消息web服務(GMWS)設施(圖1,115)之類的中央設施處或者在每個用戶的計算設備(110)上。因此,每個用戶的計算設備(110)可以存儲多個訪問控制單元(160)??梢允褂脽o數(shù)不同類型的計算設備(110)。示例可以包括但不限于能夠連接到網(wǎng)絡的臺式計算機、膝上型計算機、筆記本計算機、平板計算機、蜂窩電話、智能電話、個人數(shù)字助手(PDA)以及其他計算設備。[0045]圖3示出根據(jù)本文所述的原理的一個示例被實現(xiàn)成經(jīng)由計算設備(110)向用戶(105)提供給予另一個用戶(305)給該用戶(105)發(fā)送或寫入消息的能力的能力的訪問控制單元(160)。如上所述,多個用戶可以具有對組消息web服務(GMWS)設施(115)的訪問權。然而,許多非系統(tǒng)用戶(305)可能不具有對系統(tǒng)用戶(105)進行寫入的訪問權或權利。為了允許非系統(tǒng)用戶(305 )向組消息web服務(GMWS )設施(115 )的用戶(105 )寫入消息,用戶(105)可以執(zhí)行圖3中所示的計算協(xié)議。特別地,用戶(105)可以發(fā)送獲取單元查詢消息(315 )到組消息web服務(GMWS )設施(115 )。該獲取單元查詢消息(315 )可以例如以HTTP消息或能夠保證消息保持機密的機密切安全消息傳遞系統(tǒng)的形式被發(fā)送。
[0046]當發(fā)送獲取單元查詢消息(315)到組消息web服務(GMWS)設施(115)時,用戶(105)可以獲得輸入地址(205)和輸出地址(210),同樣在圖3中分別表示為IA和0A。特別地,當用戶(105)發(fā)送獲取單元查詢消息(315)到組消息web服務(GMWS)設施(115)時,組消息web服務(GMWS )設施(115)生成包含隨機化輸入地址(205 )和輸出地址(210 )的隨機訪問控制單元(160)。訪問控制單元(160)使用多個方程來生成輸入地址(205)和輸出地址(210)。在一個示例中,輸入地址(205)可以使用諸如例如具有256位的密鑰大小的美
國國家標準和技術協(xié)會的高級加密標準之類的對稱加密方法(AES25613)來生成。此外,在
一個示例中,訪問控制單元(160)可以通過使用系統(tǒng)主密鑰(165)(同樣在圖3中表示為K)來對隨機生成的輸入地址(205)進行加密來生成輸出地址(210)。
[0047]一旦用戶(105)已經(jīng)獲得隨機化的輸入地址(205)和輸出地址(210)并為了允許非系統(tǒng)用戶(305)能夠向用戶(105)發(fā)送消息,用戶(105)可以發(fā)送輸入地址(205)到非系統(tǒng)用戶(305)。在知道輸入地址(205)的情況下,非系統(tǒng)用戶(305)可以通過適當?shù)挠嬎阍O備(310 )來發(fā)送包含輸入地址(205 )的消息到訪問控制單元(160 )。訪問控制單元(160 )然后可以通過所附的輸入地址(205)而知道消息的發(fā)送者(在圖3中表示為“m”)被授權將消息轉發(fā)到用戶(105)。通過這種方法,組消息web服務(GMWS)設施(115)保證被發(fā)送到隨機訪問控制單元(160)的消息在還沒有被轉發(fā)或讀取的情況下被丟棄。
[0048]由于非系統(tǒng)用戶(305)將消息連同輸入地址(205) —起發(fā)送到訪問控制單元(160),訪問控制單元(160)通過使用系統(tǒng)主密鑰(165)(即,OA=Dk(IA).)來解密所附的輸入地址(205)而機械地計算輸出地址(210)。因此,系統(tǒng)主密鑰(165)被組消息web服務(GMWS)設施(I 15)保持秘密并且任何非系統(tǒng)用戶(305)或系統(tǒng)用戶(105)決不會擁有系統(tǒng)主密鑰(165)。
[0049]在另一個示例中,組消息web服務(GMWS)設施(115)可以包含多個系統(tǒng)主密鑰(165)。使用多個系統(tǒng)主密鑰(165)可以進一步使組消息web服務(GMWS)設施(115)能夠通過不時地調整系統(tǒng)主密鑰(165)值而提供更高的安全性。
[0050]在訪問控制單元(160)已經(jīng)使用系統(tǒng)主密鑰(165)將輸入地址(205)轉換成輸出地址(210)之后,訪問控制單元(160)然后可以允許消息被轉發(fā)到用戶(105)。因此,監(jiān)聽包含特定輸出地址(210)的消息的用戶(105)將接收并能夠讀取由非系統(tǒng)用戶(305)所發(fā)送的消息。以這種方式,用戶(105)通過與他或她希望從之接收消息的那些用戶共享他或她的輸入地址(205)可以以安全的方式接收那些消息。用戶(105)因此可以與他或她希望從之接收消息的系統(tǒng)(圖1,100)的多個用戶或非用戶共享輸入地址(205),從而創(chuàng)建發(fā)送者的邏輯組。
[0051]用戶(105)可以附加地被給予以下能力:在不阻止來自剩余的批準的發(fā)送者的消息的情況下撤銷(revoke)從所選的個體發(fā)送消息的能力。特別地,用戶(105)可以引導系統(tǒng)(圖1,100)停止轉發(fā)具有與先前共享的輸入地址(205)對應的特定輸出地址(210)的消息。因此,可以通過用戶發(fā)送獲取單元查詢消息(315)來創(chuàng)建多個訪問控制單元(160),每個單元(160)包含不同的輸入地址(205)和對應的輸出地址(210)。
[0052]現(xiàn)轉向圖4,示出根據(jù)本文所述的原理的一個示例被實現(xiàn)成經(jīng)由計算設備(110)向用戶(105)提供給予另一個用戶(305)從該用戶(105)接收或讀取消息的能力的能力的訪問控制單元(160)。同樣地,為了允許非系統(tǒng)用戶(305)從組消息web服務(GMWS)設施(115)的用戶(105)接收消息,用戶(105)可以執(zhí)行圖4中所示的計算協(xié)議。特別地,用戶(105)可以發(fā)送獲取單元查詢消息(315)到組消息web服務(GMWS)設施(115)。該獲取單元查詢消息(315)可以例如以HTTP消息或能夠保證消息保持機密的機密且安全消息傳遞系統(tǒng)的形式被發(fā)送。
[0053]當發(fā)送獲取單元查詢消息(315)到組消息web服務(GMWS)設施(115)時,用戶(105)可以獲得輸入地址(205)和輸出地址(210),同樣在圖4中分別表示為IA和0A。特別地,當用戶(105)發(fā)送獲取單元查詢消息(315)到組消息web服務(GMWS)設施(115)時,組消息web服務(GMWS )設施(115)生成包含隨機化輸入地址(205 )和輸出地址(210 )的隨機訪問控制單元(160)。訪問控制單元(160)使用多個方程來生成輸入地址(205)和輸出地址(210)。以與圖3所述的類似的方式,輸入地址(205)可以使用諸如例如具有256位的密
鑰大小的美國國家標準和技術協(xié)會的高級加密標準之類的對稱加密方法(AES3Si13)來生
成。此外,訪問控制單元(160)可以通過使用系統(tǒng)主密鑰(165)(同樣如圖4中表示為“K”)來對隨機生成的輸入地址(205)進行加密來生成輸出地址(210)。
[0054]一旦用戶(105)已經(jīng)獲得隨機化的輸入地址(205)和輸出地址(210)并為了允許非系統(tǒng)用戶(305)能夠從用戶(105)接收消息,則用戶(105)可以發(fā)送輸出地址(205)到非系統(tǒng)用戶(305)。在知道輸出地址(210)的情況下,非系統(tǒng)用戶(305)可以通過適當?shù)挠嬎阍O備(310)來接收包含去往訪問控制單元(160)的輸入地址(205)的消息。訪問控制單元(160)然后可以通過所附的輸入地址(205)而知道消息的接收者(在圖4中表示為“m”)被授權通過用戶(105)將消息轉發(fā)到它們。通過這種方法,組消息web服務(GMWS)設施(115)保證被發(fā)送到隨機訪問控制單元(160)的消息不被轉發(fā)到錯誤的接收者。
[0055]由于非系統(tǒng)用戶(305)連同輸入地址(205) —起從訪問控制單元(160)接收消息,
訪問控制單元(160)通過使用系統(tǒng)主密鑰(165)(即,OA=Dk(IA).)來解密所附的輸入地址(205)而機械地計算輸出地址(210)。因此,系統(tǒng)主密鑰(165)被訪問控制單元(160)保持秘密并且任何非系統(tǒng)用戶(305)決不會知道系統(tǒng)主密鑰(165)。
[0056]在訪問控制單元(160)已經(jīng)使用系統(tǒng)主密鑰(165)將輸入地址(205)轉換成輸出地址(210)之后,訪問控制單元(160)然后可以允許消息被轉發(fā)到非系統(tǒng)用戶(305)。因此,監(jiān)聽包含特定輸出地址(210)的消息的非系統(tǒng)用戶(305)將接收并能夠讀取由用戶(105)所發(fā)送的消息。當然,以這種方式,用戶(105)通過僅與他或她希望向其發(fā)送消息的那些用戶共享輸出地址(210)可以以安全的方式發(fā)送那些消息。用戶(105)因此可以與他或她希望接收消息的系統(tǒng)(圖1,100)的多個用戶或非用戶共享輸出地址(205),從而創(chuàng)建接收者的邏輯組。
[0057]用戶(105)可以附加地被給予以下能力:在不影響其他用戶接收用戶(105)的消息的能力的情況下撤銷非系統(tǒng)用戶(305)從用戶(105)接收消息的能力。特別地,用戶(105)可以引導系統(tǒng)(圖1,100)停止轉發(fā)具有與特定共享輸入地址(205)對應的特定輸出地址(210)的消息。因此,可以通過用戶發(fā)送獲取單元查詢消息(315)來創(chuàng)建多個訪問控制單元(160),每個單元(160)包含不同的輸入地址(205)和對應的輸出地址(210)。
[0058]圖5是示出根據(jù)本文所述的原理的另一個示例被實現(xiàn)成經(jīng)由計算設備(110)向用戶(105)提供給予另一個用戶(305)給該用戶(105)發(fā)送或寫入消息的能力的能力的訪問控制單元(160)。與圖3中所述的組消息web服務(GMWS)設施(115)類似,用戶(105)可以具有選擇誰能夠和不能向他或她發(fā)送消息的能力(在附圖中用“m”表示)。然而,與圖3不同,圖5描繪了基于識別的訪問控制單元(160)。因為,一些用戶可能不具有先前與用戶(105)的任何其他交互并因此將不具有用于發(fā)送或接收消息的信息(即,輸入地址(圖3和4,205)或輸出地址(圖3和4,210)),該系統(tǒng)可以被實現(xiàn)以便允許其他用戶發(fā)送或接收消肩、O
[0059]在圖5所呈現(xiàn)的場景中,用戶(105)可以發(fā)送他或她的公共密鑰(在附圖中用“y”表示)給組消息web服務(GMWS)設施(115)以獲取與用戶(105)的公共密鑰對應的輸入地址(205)或輸出地址(210)。特別地,用戶(105)可以發(fā)送獲取地址查詢消息(415)給組消息web服務(GMWS )設施(115 )。在圖5描述的場景中,獲取地址查詢消息(515 )是用于基于用戶(105)的公共密鑰y接收輸出地址(210)的查詢。在一個示例中,公共密鑰可以是提供給系統(tǒng)(圖1,100)的用戶(105)的某個隨機值。在另一個示例中,公共密鑰可以由用戶(105)選擇并可以在組消息web服務(GMWS)設施(115)和用戶(105)之間以及在用戶(105)和他或她希望與之交互的那些其他用戶之間保持機密。此外,獲取地址查詢消息(515)可以例如以HTTP消息或能夠保證消息保持機密的機密且安全消息傳遞系統(tǒng)的形式被發(fā)送。
[0060]一旦已經(jīng)發(fā)送獲取地址查詢消息(515),訪問控制單元(160)可以被生成并且各個地址將被計算并發(fā)回到用戶(105)。在圖5所述的場景中,用戶(105)已經(jīng)請求接收輸出地址(210)。因此,訪問控制單元(160)可以首先通過將公共密鑰應用于哈希函數(shù)來計算輸入地址(205)。該哈希函數(shù)可以是任何哈希函數(shù)并可以是例如具有256位輸出的SHA3??梢允褂酶郊拥墓:瘮?shù),例如也輸出具有256位地址大小的值的哈希函數(shù)。
[0061]因此,用戶(105)將公共密鑰y發(fā)送到他或她希望與之交互的用戶(305)。單獨的用戶(305)然后能夠計算輸入地址(205)或輸出地址(210)作為哈希函數(shù)的輸出并且使用用戶(105)的提供的公共密鑰作為哈希函數(shù)的輸入來計算輸入地址(205)或輸出地址(210)。這樣,在不預先與用戶(105)進行交互的情況下,用戶(305)能夠發(fā)送消息到用戶(105)或者從用戶(105)接收消息。
[0062]在該場景中,如果用戶希望改變其他用戶發(fā)送或接收消息的先前能力,則用戶可以僅僅采用新公共密鑰。在另一個示例中,公共密鑰可以被附加計數(shù)器,以使得用戶(105)能夠在不是必須改變公共密鑰的情況下從訪問控制單元(160)撤銷能力。
[0063]現(xiàn)轉到圖6,示出被實現(xiàn)成經(jīng)由計算設備(110)向用戶(105)提供給予另一個用戶(305)從用戶(105)接收或讀取消息的能力的能力的訪問控制單元(160)。在圖6所示的示例中,獲取地址查詢消息(615)是基于用戶(105)的公共密鑰Y接收輸入地址(210)的查詢。同樣地,在一個示例中,公共密鑰可以是由系統(tǒng)(圖1,100)提供給用戶(105)的某個隨機值。在另一個示例中,公共密鑰可以由用戶(105)選擇并可以在組消息web服務(GMWS)設施(115)和用戶(105)之間以及在用戶(105)和他或她希望與之交互的那些其他用戶之間保持機密。此外,獲取地址查詢消息(615)可以例如以HTTP消息或能夠保證消息保持機密的機密且安全消息傳遞系統(tǒng)的形式被發(fā)送。
[0064]一旦已經(jīng)發(fā)送獲取地址查詢消息(615),訪問控制單元(160)可以被生成并且各個地址將被計算并發(fā)回到用戶(105)。在圖6所述的場景中,用戶(105)已經(jīng)請求接收輸入地址(205)。因此,訪問控制單元(160)可以首先通過將公共密鑰應用于哈希函數(shù)來計算輸入地址(205)。該哈希函數(shù)可以是任何哈希函數(shù)并可以是例如具有256位輸出的SHA3。可以使用附加的哈希函數(shù),例如輸出具有256位地址大小的值的哈希函數(shù)。
[0065]因此,用戶(105)將公共密鑰y發(fā)送到他或她希望與之交互的用戶(305)。單獨的用戶(305)然后能夠計算輸入地址(205)或輸出地址(210)作為哈希函數(shù)的輸出并且使用用戶(105)的提供的公共密鑰作為哈希函數(shù)的輸入來計算輸入地址(205)或輸出地址(210)。這樣,在不預先與用戶(105)進行交互的情況下,用戶(305)能夠發(fā)送消息到用戶
(105)或者從用戶(105)接收消息。
[0066]同樣地,為了撤銷對應的訪問控制單元(160),如果用戶(105)希望新近(freshly)幫助訪問控制單元(160)的服務,則他或她將必須停止發(fā)送消息到訪問控制單元(160)或從訪問控制單元(160)接收消息并且使用另一個公共密鑰值。在一個示例中,公共密鑰可以被附加以計數(shù)器,以使得用戶(105)能夠在不必須改變公共密鑰的情況下從訪問控制單兀(160)撤銷能力。
[0067]圖7是示出用于根據(jù)本文所述的原理的一個示例來操作分布式消息傳遞系統(tǒng)的方法的流程圖。過程開始于組消息web服務(GMWS)設施(115)從用戶(圖1,105)接收(塊705)獲取單元查詢(圖3和4,315)或獲取輸出地址/輸入地址查詢(圖5,515和圖6,615)。同樣地,如前所述,獲取單元查詢(圖3和4,315)或獲取輸出地址/輸入地址查詢(圖5,515和圖6,615)可以通過諸如例如安全超文本傳輸協(xié)議(HTTP)之類的安全信道進行發(fā)送。
[0068]一旦組消息web服務(GMWS)設施(圖1、3、4、5和6,115)已經(jīng)接收(塊705)獲取單元查詢(圖3和4,315)或獲取輸出地址/輸入地址查詢(圖5,515和圖6,615),其生成(塊710)用戶(圖1,105)可以傳遞到其他用戶(圖3、4、5和6 ;305)以供它們能夠發(fā)送和接收來自用戶(圖1,105)的消息的信息。如上所述,所述信息可以包括多個生成的訪問控制單元(圖1、2、3、4、5和6,160)以及安全且隨機化的輸入地址(圖3和4,205)或輸出地址(圖3和4,210 )。該信息然后由組消息web服務(GMWS )設施(圖1、3、4、5和6,115 )提供(塊715 )到用戶(圖1,105)。
[0069]用戶(圖1,105)然后能夠根據(jù)情況自由發(fā)送生成的輸入地址(圖2、3和4,205)、輸出地址(圖2、3和4,205)、或公共密鑰到如上所述的非系統(tǒng)用戶(圖3、4、5和6,305)。一旦非系統(tǒng)用戶(圖3、4、5和6,305)已經(jīng)接收到該信息,他或她將能夠向用戶(圖1、3、4、5、6,105)發(fā)送消息或從用戶(圖1、3、4、5、6,105)接收消息(塊720)。例如,當生成的訪問控制單元(圖1、2、3、4、5和6,160)從非系統(tǒng)用戶(圖3、4、5和6,305)接收消息時(塊720),所述消息可以包含輸入地址(圖2、3和4,205)。當訪問控制單元(圖1、2、3、4、5和6,160)接收該消息時,其機械地計算(塊725)輸出地址(圖2、3和4,205)。
[0070]在訪問控制單元(圖1、2、3、4、5和6,160)機械地計算(塊725)輸出地址(圖2、3和4,205)之后,訪問控制單元(圖1、2、3、4、5和6,160)將該消息路由(塊730)到適當?shù)慕邮照摺?br>
[0071]上述方法可以通過包括其中包含計算機可用程序代碼的計算機可讀存儲介質的計算機程序產(chǎn)品來實現(xiàn),當所述計算機可用程序代碼被運行時執(zhí)行上述方法。特別地,當被處理器(圖1,125)所運行時,計算機可用程序代碼使處理器(圖1,125)發(fā)送獲取單元查詢(圖3和4,315)或獲取輸出地址/輸入地址查詢(圖5,515和圖6,615)到組消息web服務(GMWS)設施(圖1、3、4、5和6,115)。當被處理器所運行時,計算機可用程序代碼還可以使組消息web服務(GMWS)設施(圖1、3、4、5和6,115)機械地計算輸出地址(圖2、3和4,205)和輸入地址(圖2、3、和4,205)并發(fā)送輸出地址(圖2、3和4,205)和輸入地址(圖2、3、和4,205)到系統(tǒng)(圖1,100)的用戶。又進一步,當被處理器所運行時,計算機可用程序代碼可以使訪問控制單元(圖1、2、3、4、5和6,160)機械地將與發(fā)送的消息關聯(lián)的輸出地址(圖2、3和4,205)或輸入地址(圖2、3、和4,205)轉換成相互的(reciprocal)輸入地址(圖2、3和4,205)或輸出地址(圖2、3、和4,205)。
[0072]本說明書和附圖描述通信訪問控制系統(tǒng)。所述系統(tǒng)保證被發(fā)送到隨機訪問控制單元的消息在還沒被讀取的情況下而被丟棄。所述系統(tǒng)進一步向用戶提供高度集中的訪問策略決策和集中式訪問策略執(zhí)行。因此,用戶可以使用來自包括蜂窩電話、膝上型計算機和臺式計算機的無數(shù)類型的計算設備的組消息web服務設施。此外,因為系統(tǒng)是安全的及服務器輔助的多點到點和點到多點的通信路徑可用,一組用戶可以以實時且安全的方式彼此交互。
[0073]前述描述已經(jīng)被呈現(xiàn)以僅說明和描述所述原理的示例。該描述非意在是窮盡的或將這些原理限制成公開的任何精確形式。根據(jù)上述教導許多修改和變形是可能的。
【權利要求】
1.一種通信訪問控制系統(tǒng)(100),包括: 實現(xiàn)在計算實體上的至少一個訪問控制單元(160),用于基于系統(tǒng)用戶(105)的請求來計算隨機輸入地址(205)和隨機輸出地址(210); 其中所述輸入和輸出地址是基于與所述至少一個訪問控制單元(160)關聯(lián)的服務設施(115)所持有的加密密鑰(165)。
2.根據(jù)權利要求1所述的系統(tǒng)(100),其中所述服務設施(115)基于系統(tǒng)用戶(105)的請求而動態(tài)創(chuàng)建訪問控制單元(160 )。
3.根據(jù)權利要求1所述的系統(tǒng)(100),其中訪問控制單元(160)從第一用戶(305)接收包含輸入地址(205 )的消息,并在使用加密密鑰(165 )將輸入地址(205 )轉換成對應的輸出地址(210)之后將該消息路由到第二用戶(105)。
4.根據(jù)權利要求3所述的系統(tǒng)(100),其中消息是從一個人類用戶到另一個的通信。
5.根據(jù)權利要求3所述的系統(tǒng)(100),其中消息是去往分布式計算環(huán)境中的計算實體的操作命令。
6.根據(jù)權利要求1所述的系統(tǒng),其中至少一個訪問控制單元(160)被存儲在用戶(105)的計算設備(110)上以控制對用戶的計算設備(110)的訪問。
7.根據(jù)權利要求1所述的系統(tǒng),進一步包括多個訪問控制單元(160),每個駐留在分布式計算環(huán)境內不同的計算實體上。
8.一種用于操作分布式消息傳遞系統(tǒng)(100)的方法,包括,利用編程的處理器(125)來: 在組消息web服務(GMWS )設施(115)處從用戶(105 )接收(塊705 )用于接收輸入地址(205)和輸出地址(210)的查詢(315,515,615); 生成(710)隨機輸入地址(205)和隨機輸出地址(210); 向用戶(105)提供(715)輸入地址(205)和輸出地址(210); 接收(塊720)包含輸入地址(205)的消息; 使用加密密鑰來計算(塊725 )輸出地址(210 ); 基于計算的輸出地址來路由(塊730)所述消息。
9.根據(jù)權利要求8所述的方法,進一步包括動態(tài)創(chuàng)建與組消息web服務(GMWS)設施(115)關聯(lián)的訪問控制單元(160),所述訪問控制單元基于系統(tǒng)用戶(105)的請求來計算隨機輸入地址(205 )和隨機輸出地址(210)。
10.根據(jù)權利要求9所述的方法,其中訪問控制單元(160)被存儲在用戶(105)的計算設備(110)上。
11.根據(jù)權利要求8所述的方法,其中加密密鑰(165)不是系統(tǒng)(100)的用戶(105,305)可訪問的。
12.根據(jù)權利要求8所述的方法,其中系統(tǒng)(100)被實現(xiàn)在分布式計算環(huán)境上。
13.根據(jù)權利要求8所述的方法,其中隨機輸入地址(205)和隨機輸出地址(210)是256位密碼數(shù)字。
14.一種包括其中包含計算機可用程序代碼的非臨時計算機可讀存儲介質的計算機程序產(chǎn)品,當被組消息web設施的處理器所運行時,所述計算機可用程序代碼使所述處理器: 接收包含輸入地址(205)的消息;使用加密密鑰來計算輸出地址(210); 基于計算的輸出地址來路由所述消息。
15.根據(jù)權利要求14所述的計算機程序產(chǎn)品,進一步包括計算機可用程序代碼,當被組消息web設施的處理器所運行時,使該處理器將輸入地址(205)和輸出地址(210)存儲在用戶(105)的計算設備(110·)上。
【文檔編號】H04W12/00GK103597864SQ201180071714
【公開日】2014年2月19日 申請日期:2011年4月18日 優(yōu)先權日:2011年4月18日
【發(fā)明者】K.維斯瓦納桑, A.薩克塞納 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)