基于租戶的簽名驗證的制作方法
【專利摘要】提供了用于在多租戶環境中驗證簽名的方法和系統。作為分布式網絡的部分的服務器或其它計算設備可以請求來自所標識的租戶存儲的證書集合。所請求的證書集合可以加載到服務器或其它計算設備能訪問的虛擬存儲中。服務器或其它計算設備隨后可以訪問來自虛擬存儲的一個或多個證書以驗證簽名。
【專利說明】
基于租戶的簽名驗證
【背景技術】
[0001]分布于在線環境之中的服務器和服務的部署拓撲結構正在變得越來越復雜。應用要求安全訪問這些服務器和服務,而無論它們的部署特點或位置如何。公共密鑰基礎結構(PKI)操作經常與使用存儲在數據存儲內的內容關聯。例如,受信的根證書可以存儲在公司的服務器上,并用于證書驗證。基于該結構,多租戶環境中的租戶將他們的具體的PKI數據存儲在其它租戶能訪問的公共機器存儲中以執行證書驗證。
[0002]正是針對這些以及其它常見的考慮而進行了實施例。而且,雖然已經論述了相對具體的問題,應當理解實施例不應限于解決【背景技術】中所確定的具體問題。
【發明內容】
[0003]概括而言,本公開內容一般涉及在多租戶環境中驗證定制簽名。更特別地,本公開內容一般涉及用于分布式網絡上的服務器訪問以及根據需要虛擬地(virtually)存儲租戶證書集合的方法和系統。分布式網絡上的該服務器或其它計算設備被配置有訪問安全且隔離的租戶存儲以根據需要加載不同的租戶證書集合的能力。此外,分布式網絡上的服務器或其它計算設備被配置有在使用后刪除虛擬地存儲的租戶證書集合以釋放服務器上的存儲空間和/或維持所訪問的租戶證書集合的機密性的能力。
[0004]提供該概述以便以下文在詳述部分中進一步描述的簡化形式來引入構思的選擇。該概述不意在排他地確定權利要求主題的關鍵特征或主要特征,也不意在該概述用來限定權利要求主題的范圍。
【附圖說明】
[0005]參考以下附圖來描述非限制性的以及非窮盡的實施例,在附圖中:
[0006]圖1示出了根據示例性實施例的在多租戶環境中驗證定制簽名的分布式網絡的示例性的系統;
[0007]圖2示出了根據又一示例性實施例的用于在多租戶環境中驗證定制簽名的分布式網絡的示例性的系統;
[0008]圖3示出了根據示例性實施例的用于在多租戶環境中驗證定制簽名的分布式網絡的不例性的系統;
[0009]圖4示出了根據示例性實施例的用于在多租戶環境中驗證定制簽名的示例性的方法;
[0010]圖5示出了根據又一示例性實施例的用于在多租戶環境中驗證定制簽名的示例性的方法;
[0011]圖6是示出可實踐本公開內容的實施例的計算設備的示例的物理部件的框圖;
[0012]圖7A和7B是可實踐本公開內容的實施例的移動計算設備的簡化的框圖;以及
[0013]圖8是可以實踐本公開內容的實施例的分布式計算系統的簡化框圖。
【具體實施方式】
[0014]在下面的詳述中,參考了附圖,附圖構成說明的部分并且通過示例說明的方式示出了具體的實施例或示例。這些方面可以組合,可以使用其它方面,可以進行結構改變,而不偏離本公開內容的精神或保護范圍。因此,下面的詳述不應從限制的意義上考量,并且本公開內容的保護范圍由隨附的權利要求書及其等同內容來限定。
[0015]在該說明書全篇中,術語“平臺”可以是用于通過網絡在客戶端與服務器之間使用協議提供數據交換的軟件部件和硬件部件的組合。平臺的示例包括但不限于在多個服務器上實施的托管式服務、在單個計算設備上實施的應用以及類似的系統。術語“服務器”一般是指通常在網絡環境中實施一個或多個軟件程序的計算設備。然而,服務器還可以實現為在視作網絡上的服務器的一個或多個計算設備上實施的虛擬服務器(軟件程序)。關于這些技術和示例性的操作的更多細節可見于下文中。
[0016]如上文簡要描述的,本公開內容的實施例涉及到在多租戶環境中驗證簽名。在實施例中,簽名是屬于多租戶環境中的S/MME電子郵件的。當前,租戶的用戶使用他的私有密鑰(本文也稱為簽署證書)將諸如電子郵件的MME消息發送給客戶端。雖然論述涉及到電子郵件消息,本領域技術人員將理解,可以通過本文公開的實施例來實踐任何消息或其它類型的數據。本文所使用的“用戶”是指與租戶相關聯的任何個體或機器。本文所使用的“租戶”是指任何公司、組織或用戶群組。
[0017]客戶端可能希望校驗從用戶發送的電子郵件消息的簽名,或者換言之,校驗電子郵件發送自所列的發送者。為了校驗電子郵件的簽名,客戶端將簽名或簽署證書發回給與發送用戶電子郵件的發送者/租戶相關聯的服務器。租戶的服務器存儲了用于驗證用戶的簽名(本文還稱為證書、簽署證書、簽名、私有密鑰或定制簽名)的每個用戶的證書要求或證書的列表。租戶的每個用戶的證書要求或證書的列表在本文稱為證書集合。租戶服務器使用來自存儲的證書集合的所標識的用戶證書要求或證書來嘗試驗證接收到的證書。
[0018]為了安全的原因,限制證書集合的可用性。多數租戶更愿意租戶或租戶服務器之外的任何人不能訪問證書集合或者訪問在證書集合上列出的任何租戶的證書要求或證書。如果租戶服務器能夠使用所標識的用戶證書要求或證書來驗證自客戶端接收到的簽署證書,則服務器向客戶端發送通知,簽名有效,或者電子郵件發送自所標識的用戶。如果租戶服務器不能使用所標識的用戶的證書要求或證書來驗證從客戶端接收到的簽署證書,則月艮務器向客戶端發送通知,簽名無效或者電子郵件不是發送自所標識的用戶。如果簽名有效,則消息確實由消息中所標識的租戶或發送者發送。租戶服務器通過訪問和存儲來自每個用戶的證書要求或證書來生成證書集合。在一些示例中,如果在通往客戶端的途中消息被修改,如果用戶的簽署證書被撤銷,或者如果用戶的證書要求或證書不再存在(例如,當雇員離開公司時電子郵件地址被無效化),則會發現簽名或簽署證書是無效的。
[0019]在多租戶環境中,具有若干證書的多個租戶可由客戶端發送給分布式網絡中的服務器以便進行驗證。在當前使用的驗證過程下,服務器被配置為使用存儲的證書集合。然而,分布式網絡中的服務器來存儲網絡上每個租戶的證書集合是不可行的。首先,分布式網絡中的服務器是多個租戶可訪問的。因此,允許每個租戶訪問分布式網絡上的服務器有害于分布式網絡的安全。其次,分布式網絡中的服務器具有使用傳統存儲模型的有限的存儲容量,并且不能存儲每個租戶的證書集合。
[0020]為解決上述限制,本公開內容的實施例一般涉及用于分布式網絡上的服務器訪問來自分布式網絡上的私有租戶存儲的租戶證書集合以及根據需要虛擬地存儲租戶證書集合的方法和系統。在實施例中,關于分布式網絡上的具體的租戶存儲的信息不能由其它租戶訪問或者不能為公共使用。因此,租戶能夠將他們的證書集合上傳或導入且保存到分布式網絡上的他們的租戶存儲中,而不會有害于分布式網絡的安全性。相應地,本公開內容的實施例一般地涉及針對無須訪問本地租戶機器而具有租戶證書集合的副本的服務器的方法和系統。在實施例中,服務器可以訪問證書集合且將其加載為虛擬存儲。另外地,分布式網絡上的服務器可被配置為在使用后從服務器中刪除虛擬地存儲的租戶證書集合以釋放服務器上的存儲空間和/或維持所訪問的租戶證書集合的機密性。
[0021]圖1-3示出了根據示例性實施例用于在多租戶環境中驗證消息的簽名的分布式網絡104的示例性的系統100。在一些實施例中,圖1-3所示的簽名驗證可根據S/MHffi協議來執行;然而,其它校驗協議可用于本文公開的實施例。系統100包括客戶端102、分布式網絡104和租戶110。雖然圖1-3所示的系統100具有三個或四個不同的客戶端102a、102b、102c和102d以及四個或五個不同的租戶110a、110b、110c、I 1d和IlOe,但是圖示的客戶端102的數量以及租戶110的數量僅為示例性的。本領域技術人員可以意識到系統100可包括任意數量的客戶端102d和/或租戶110e。
[0022]本文所使用的客戶端102是指從分布式網絡上的服務器106接收簽名的消息的任何個體、用戶或機器。在實施例中,客戶端102不與租戶110相關聯。在一些實施例中,客戶端102與租戶110相關聯。如上文論述的租戶110是指任何公司、組織或用戶群組。如上論述的用戶是指與租戶110相關聯的任何個體或機器。
[0023]分布式網絡104可以包含通過網絡(例如,WAN、LAN、W1-Fi網絡、因特網等)連接的兩個或更多個服務器。分布式網絡104在本文還可稱為云或分布式服務器網絡。分布式網絡104包括服務器106和租戶存儲108。雖然圖1-3所示的分布式網絡104具有四個不同的服務器106a、106b、106c和106d以及四個或五個不同的存儲108a、108b、108c、108d和108e,但是圖示的服務器106和存儲108的數量僅為示例性的。本領域技術人員可以意識到分布式網絡104可以包括任意數量的服務器106c和/或存儲108e。
[0024]在客戶端102處執行的與分布式網絡104交互的示例的應用是一個或多個生產應用(例如,文字處理器、演示應用、電子表格應用等)以及一個或多個通信應用(例如,電子郵件應用、即時消息傳遞應用、視頻流應用、社交媒體應用、日歷應用、游戲等)或者任何需要客戶端設備和服務器在分布式網絡上通信的應用(例如,銀行業應用、公司內應用等等)。示例的客戶端設備102可以包括臺式計算機、膝上型計算機、平板設備、智能手表、可佩戴計算機、移動電話、智能手機、電子白板、和/或其它類似的客戶端設備。通信服務和生產服務還可以相結合地起作用以取回和交換電子郵件和/或其它數據。
[0025]示例的生產應用可被配置為提供對圍繞生產平臺構建的各種服務的訪問。在實施例中,服務執行于或寄存于遠程設備上,諸如分布式網絡中的服務器106。一些生產服務可包括但不限于,協作應用、企業管理應用、消息傳遞應用、文字處理應用、電子表格應用、數據庫應用、演示應用,等等。生產服務可通過例如從分布式網絡104上的遠程服務器106取回數據來提供對與寄存在遠程設備上的各種生產應用相關聯的數據的訪問。可以在網絡104上訪問服務器106,該網絡可以是有線網或無線網,或者云網絡,并且取回的數據可以加載和/或被操縱。示例性的網絡可包括但不限于,蜂窩數據網、工作域網(WAN)、局域網(LAN)、因特網等。
[0026]類似地,示例的通信應用可以是被配置為提供電子郵件、通訊錄管理和/或日歷服務的應用或服務。在實施例中,通信應用還可以提供一個或多個實時通信平臺,諸如即時消息傳遞、音頻/視頻會議以及存在檢測。例如,用戶可以使用在客戶端102上執行的并且從分布式網絡104接收的通信應用來接收、查看和回復電子郵件。
[0027]如圖1所示,來自分布式網絡104的服務器2106b用簽名發送來自第四租戶IlOd的用戶的第一客戶端102a數據。在一些實施例中,發送的數據是電子郵件消息。第一客戶端102a請求驗證從服務器2 106b接收到的簽署證書,其中客戶端102a從服務器2 106b接收數據。服務器2 106b識別與用于驗證的簽署證書有關或相關聯的租戶110。在圖1所示的實施例中,服務器2 106b識別簽署證書與第四租戶IlOd相關聯。
[0028]因此,服務器2106b訪問分布式網絡104上的第四租戶存儲1Sd上的證書集合。在一些實施例中,服務器2 106b通過請求訪問第四租戶存儲108d和/或訪問第四租戶存儲1Sd上的證書集合來訪問第四租戶存儲1Sd上的證書集合。在另外的實施例中,服務器2106b通過讀取第四租戶存儲108d和/或通過讀取第四租戶存儲108d上的證書集合來訪問第四租戶存儲1Sd上的證書集合。
[0029]如上所述,租戶存儲108位于分布式網絡104上且存儲租戶的組織數據和/或配置信息。租戶存儲108d上的信息與其它租戶存儲108a、108b和108c隔離且分離。因此,保存在每個租戶存儲108上的信息既不是公共可訪問,也不能由分布式網絡104上的其它租戶訪問。如上所述,證書集合是用于驗證由與租戶110相關聯的用戶發送的簽署的消息的簽名的列表證書。用于租戶110的證書集合由租戶管理員上傳或導入且保存到租戶存儲108中。在一些實施例中,租戶管理員使用用于租戶管理任務的遠程PoweShell或圖形用戶接口來導入且保存證書集合。如圖1-3中所示,每個租戶110a、110b、110c、I 1d和I 1e在分布式網絡104上具有專用的存儲空間,各個租戶能夠將他們的代表性的租戶存儲108a、108b、108c、108d、108e上的他們的證書集合導入且保存到該專用存儲空間中。
[0030]一旦服務器2 106b從第四租戶存儲1Sd訪問第四租戶IlOd的證書集合,服務器2106b將證書集合加載到服務器2 106b中。在一些實施例中,服務器2 106b將證書集合加載到服務器2 106b中,作為第四租戶虛擬存儲。服務器2 106b隨后利用虛擬存儲來驗證簽署的證書。在一些實施例中,在驗證期間,服務器2 106b嘗試將租戶IlOd的指定用戶的簽名針對來自證書集合的指定用戶的虛擬存儲中的證書或證書要求進行驗證。如果服務器2106b驗證簽署的證書,則服務器2 106b將關于簽署的證書有效的通知發送給第一客戶端。如果服務器2 106b不能驗證簽署的證書,則服務器2 106b向第一客戶端發送通知,簽署的證書無效。
[0031]替代地,在一些實施例中,分布式網絡上的服務器106可以將虛擬存儲發送給發送請求的客戶端,并且允許客戶端基于虛擬存儲中的發送的證書集合來判定簽署的證書是否有效。在替代的實施例中,服務器確定來自虛擬存儲的用戶的證書要求并且將用戶的證書要求或證書發送給發送請求的客戶端,且允許客戶端基于所發送的要求或證書來判定簽署的證書是否有效。
[0032]在一些實施例中,服務器2 106b上的虛擬存儲在使用后由服務器2106b立即刪除。在其它實施例中,虛擬存儲由服務器2 106b保存預定量的時間。例如,虛擬存儲可在使用后由服務器2 106b保存50暈秒、I秒、5秒、30秒、I分鐘、2分鐘、5分鐘、10分鐘、15分鐘、30分鐘、I小時、2小時、5小時、1小時、12小時或一天。該列表是示例性的,不是限制性的。本領域技術人員將意識到,在刪除虛擬存儲之前可以使用任何期望的預定量的時間。在替代的實施例中,虛擬存儲由服務器保存直至特定事件發生。例如,虛擬存儲可在使用后被保存直到服務器2 106b接收到驗證不同租戶的簽署證書的請求為止。在另一示例中,虛擬存儲在使用后被保存直至服務器2 106b達到預定量的存儲容量為止。
[0033]雖然圖1的論述涉及到具體的實施例,但是由第一客戶端102a執行的操作可通過系統100的任何客戶端102來執行。另外地,雖然圖1的論述涉及到具體的實施例,服務器2106b所執行的步驟可由分布式網絡104的任何服務器106響應于同時地、在交錯時間和/或在重疊時間來自任何客戶端102的、用于驗證任何租戶110的任何用戶的簽署證書的請求來執行。
[0034]圖2和圖3所示的示例性的系統顯示出,分布式網絡104上的各服務器106能夠接收來自若干客戶端102a、102b、102c和/或102d的、用于驗證來自不同租戶110a、110b、110c、IlOd和/或IlOe的多個用戶的簽署證書的請求。分布式網絡104的服務器106可以同時地、在交錯的時間或者在重疊的時間接收來自各客戶端102的驗證消息的請求。此外,分布式網絡104的一個或多個服務器106可以同時地、在交錯的時間或者在重疊的時間接收來自各客戶端102的對于簽署證書驗證的多個請求。
[0035]例如,圖2示出了第一客戶端102a請求驗證經由服務器3 106d從第三租戶IlOc的用戶接收到的簽署證書,同時第二客戶端102b請求驗證經由服務器2 106b從第二租戶IlOb的用戶接收到的簽署證書,同時第三客戶端102c請求驗證經由服務器2 106b從第一租戶IlOa的用戶接收到的簽署證書。如圖2所顯示的,接收到請求的每個服務器識別與簽署證書相關聯的租戶110并且訪問適合的租戶存儲108。例如,服務器3 106d訪問在第三租戶存儲108c上的第三租戶的證書集合,服務器2 106b訪問第二租戶存儲108b上的第二租戶的證書集合,并且服務器106a訪問第一租戶存儲108a上的第一租戶的證書集合。在訪問適合的租戶的證書集合之后,每個服務器106a、106b和106d將來自適合的存儲的證書集合加載作為虛擬存儲。一旦適合的租戶的證書集合被加載,每個服務器106a、106b和106d利用來自虛擬存儲的適合的用戶證書要求或證書來檢查他們接收到的消息或簽署證書的有效性。在確定了簽署證書的有效性之后,每個服務器106a、106b和106d將對所確定的簽署證書的有效性的通知發送給作出請求的客戶端102a、102b和102c。每個服務器106a、106b和106d可以同時地、在重疊的時間以及在交錯的時間執行對簽署證書的驗證。
[0036]在一些實施例中,客戶端102將用于驗證來自特定租戶110的用戶的簽署證書的請求發送給分布式網絡104上的服務器106,其中客戶端從服務器106接收到以該證書簽名的數據。在其它實施例中,客戶端可以將用于驗證來自特定租戶110的用戶的簽署證書的請求發送給分布式網絡上的不同的服務器106,客戶端從該不同的服務器106接收帶有簽署證書的數據。在一些實施例中,選擇將帶有簽署證書的數據發送給客戶端102的服務器106,因為服務器106具有分布式網絡104上的服務器106的最大可用的處理能力。在其它實施例中,將帶有簽署證書的數據發送給客戶端102的服務器106是基于位置、處理能力、負載平衡和/或可用存儲空間而選擇的。
[0037]多個服務器106可以接收來自相同或不同客戶端102的多個請求。例如,圖3示出了客戶端102a發送兩個用于驗證經由服務器106b和106c來自第四租戶IlOd的用戶的兩個不同的簽署證書的請求。圖3進一步示出第二客戶端102b從服務器2 106b接收到來自第二租戶IlOb的用戶的帶有簽署證書的數據并且請求驗證來自服務器I 106a的第二租戶的用戶的簽署證書。基于該來自第二客戶端102b的請求,服務器I 106a訪問第二租戶存儲108b上的證書集合,將證書集合加載到虛擬存儲中,確定從第二租戶存儲108b的用戶接收到的簽署證書的有效性,并且基于有效性確定將有效性通知發送給第二客戶端102b。在服務器I106a正在處理來自第二客戶端102b的請求的同時,服務器I 106a可以將來自第一租戶IlOa的用戶的帶有簽署證書的數據發送給第三客戶端102c。在一些實施例中,由客戶端接收的帶有簽署證書的數據是用于電子郵件應用、即時消息、日歷應用、通訊錄應用、社交媒體應用或游戲應用的數據。該列表僅是示例性的,不是限制。另外,圖2示出了系統100可利用任意數量的租戶存儲(第η個租戶存儲108e)或租戶(第η個租戶IlOe)。
[0038]已經通過具體的配置、應用和交互描述了圖1至圖3的實例的系統。然而,可構思的實施例不限于根據這些示例的系統。用于提供通信連接以在客戶端與服務器之間建立會話以及通過網絡交換數據的系統可以實現在采用更少或額外的部件且執行其它任務的配置中。此外,雖然本文已經描述了具體的協議,但是本領域技術人員將意識到本文所公開的實施例可采用其它的協議和/或接口。
[0039]現在參考圖4,示出了根據示例性實施例的用于驗證定制簽名的示范的方法。方法400可實現在能夠通過處理器來執行指令的計算設備或類似的電子設備上。在一些實施例中,計算設備可以是作為分布式服務器網絡的部分的一個或多個服務器。在方法400由多于一個的服務器實現的實例中,構成方法400的不同操作的實施可由作為分布式網絡的部分的不同服務器來執行。此外,執行根據實施例的方法400的分布式網絡上的服務器可被配置為響應于對于簽名驗證的客戶端請求來訪問分布式網絡中的租戶存儲上的證書集合。
[0040 ]方法400開始于接收操作40 2。作為分布式網絡的部分的服務器接收來自客戶端的對于驗證簽署證書(本文還稱為定制簽名、簽名或證書)的請求。客戶端可以響應于接收到來自用戶的消息或數據而將請求發送給服務器。在一些實施例中,由客戶端接收到的數據是電子郵件消息、即時消息或日歷邀請。在其它實施例中,客戶端接收到的數據可以是視頻、文檔、圖像、電子表格或任何其它類型的數據文件。在實施例中,客戶端接收到的數據包括表明該數據是從特定租戶的特定用戶發送給客戶端的的簽署證書或簽名。
[0041]在接收到請求后,流程繼續到標識操作404。在標識操作404中,租戶從與分布式網絡相關聯的多個租戶中被標識。所標識的租戶可以與被表明為消息或數據的發送者的用戶相關聯。在一些實施例中,多個租戶可以包括每個與分布式網絡相關聯的租戶或者與分布式網絡相關聯的租戶子集。服務器可以使用租戶標識符、用戶標識符或與客戶端發送的請求或者客戶端接收到的消息/數據相關聯的任何其它類型的標識符來標識租戶。
[0042]接著,流程繼續到訪問操作406。在訪問操作406中,訪問來自分布式網絡上的標識租戶的租戶存儲中的租戶證書集合。在一些實施例中,訪問操作406包括請求訪問證書集合和/或標識的租戶存儲。在其它實施例中,訪問操作406可以包括直接從標識的租戶存儲讀取證書集合。在一些實施例中,證書集合是保存在租戶存儲上的文件。在實施例中,租戶存儲可以是作為分布式網絡的部分的隔離的數據存儲。在這樣的實施例中,數據存儲被隔離,從而使得僅租戶具有對數據存儲的讀和/或寫訪問權。在實施例中,證書集合可以通過租戶管理員上傳且保存到租戶存儲中。租戶存儲可用于存儲租戶數據和租戶配置信息。如上所述,保存在分布式網絡上的租戶存儲上的信息是與其它租戶隔離且分開的。包含證書集合的租戶存儲上的信息不能由分布式網絡上的其它租戶、用戶和/或客戶端訪問,從而保持分布式系統的安全性。在一些實施例中,包括證書集合的租戶存儲上的信息可能不是公共可用的。
[0043]流程繼續到加載操作408。在加載操作408中,證書集合被加載到虛擬存儲中。虛擬存儲可以位于執行方法400的設備能夠訪問的存儲器中。在一些實施例中,證書集合被加載為虛擬存儲(本文還稱為文件或虛擬文件)。在一些實施例中,虛擬存儲在虛擬存儲使用后被刪除。在其它實施例中,在虛擬存儲使用后,預定量的時間后或者特定事件發生之后,刪除虛擬存儲。
[0044]流程繼續到驗證決策操作410。在驗證決策操作410中,對是使用來自虛擬存儲的證書要求還是證書來驗證簽署證書作出判定。在一些實施例中,在標識出租戶的特定用戶(例如,使用標識符)之后,服務器從虛擬存儲上的證書集合訪問用戶的對應的證書或要求。在這些實施例中,通過使用作為虛擬存儲保存在服務器上的證書集合內列出的用戶的證書要求或證書,作出來自用戶的簽署證書是否有效的判定。在一些實施例中,簽署證書與證書要求進行比較以判定簽署證書是否有效。如果簽署證書滿足證書要求,則簽署證書有效。如果簽署證書不滿足證書要求,則簽署證書無效。在其它實施例中,簽署證書與來自證書集合的用戶證書進行比較。在這些實施例中,如果簽署證書與來自證書集合的用戶證書相同,則簽署證書有效。在這些實施例中,如果簽署證書與來自證書集合的用戶證書不同,則簽署證書無效。如果在操作410期間作出簽署證書無效的判定,則流程進入“否”分支到操作412。如果在操作410期間作出簽署證書有效的判定,則流程進入“是”分支到操作414。
[0045]在發送無效通知操作412時,向客戶端發送通知,來自租戶的用戶的簽署證書無效。基于該通知,客戶端被告知,以簽署證書接收到的數據不是從標識的發送者(租戶的用戶)發送的。如果消息在通往客戶端的途中被修改或者如果針對用戶的證書要求不再存在,則會發現簽名或簽署證書是無效的(例如,當雇員離開公司時電子郵件地址被無效)。在又一實施例中,證書撤銷列表(CRL)可表明證書是無效的。本領域技術人員理解,存在若干其它會發現簽署證書無效的原因。
[0046]在發送有效通知操作414時,向客戶端發送通知,來自租戶的用戶的簽署證書是有效的。因此,客戶端被告知,以簽署證書接收到的數據是從標識的發送者(租戶的用戶)發送的。
[0047]在替代的實施例中,執行方法400的設備在方法400期間不執行操作410、412和414,而是標識來自虛擬存儲上的標識租戶的證書集合的、與標識租戶的用戶對應的證書要求或證書,并且將用戶的要求或證書發送給請求驗證的客戶端。在該實施例中,客戶端使用要求或證書來判定簽署證書是否有效。在一些實施例中,如果用戶的證書要求或證書能夠用于驗證用戶的簽署證書,則客戶端判定來自標識租戶的用戶的簽署證書是有效的,而如果用戶的證書或證書要求不能驗證用戶的簽署證書,則判定來自標識租戶的用戶的簽署證書是無效的。
[0048]在替代實施例中,執行方法400的設備在方法400期間不執行操作410、412和414,而是將包含標識租戶的證書集合的虛擬存儲發送給請求驗證的客戶端。在這些實施例期間,客戶端使用來自虛擬存儲的證書集合來判定簽署證書是否有效。客戶端可以標識來自證書集合中的證書要求列表的用戶證書要求,并且使用用戶的證書要求來判定用戶的簽署證書是否有效。在一些實施例中,如果用戶的簽署證書滿足用戶的證書要求,則客戶端判定來自標識租戶的用戶的簽署證書是有效的,而如果用戶的簽署證書不滿足用戶的證書要求,則判定來自標識租戶的用戶的簽署證書是無效的。
[0049]雖然方法400針對從第一租戶接收單個簽署證書,但是方法400可以用來同時地、在重疊時間或者在交錯的時間處理針對多個不同租戶(例如,第一租戶、第二租戶、第三租戶、第四租戶、第五租戶,…以及第η租戶)的多個不同客戶端(例如,第一客戶端、第二客戶端、第三客戶端、第四客戶端、第五客戶端,…以及第η客戶端)的多個不同的簽署簽名,每個租戶具有他們自己的租戶存儲(第一租戶存儲、第二租戶存儲、第三租戶存儲、第四租戶存儲、第五租戶存儲,…以及第η租戶存儲)。此外,方法400可同時地、在重疊時間或者在交錯的時間由分布式網絡內的多個設備(第一服務器、第二服務器、第三服務器、第四服務器、第五服務器,…以及第η服務器)針對一個或多個客戶端來執行。
[0050]現在參考圖5,示出根據示例性實施例的用于驗證簽名的示例性的方法。方法500可實現在能夠通過處理器來執行指令的計算設備或類似的電子設備上。在一些實施例中,計算設備可以是作為分布式服務器網絡的部分的一個或多個服務器。在方法500由多于一個服務器實現的實例中,構成方法400的不同操作的執行可通過作為分布式網絡的部分的不同服務器來執行。此外,根據實施例執行方法500的分布式網絡上的服務器可被配置為響應于驗證數據的客戶端請求或者簽名驗證的客戶端請求而訪問分布式網絡中的租戶存儲上的證書集合。在另外的實施例中,方法500可根據S/MHffi協議來執行;然而,本領域技術人員將理解,方法500可采用其它協議。除了方法500與接收針對兩個不同簽署證書的兩個單獨的驗證請求有關之外,方法500類似于方法400。
[0051 ]方法500開始于接收操作502。接收操作502類似于方法400的接收操作402。在接收操作502中,從客戶端接收對驗證第一簽署證書(本文還稱為定制簽名、簽名、或證書)的請求。客戶端可以響應于從用戶接收到消息或數據而發送請求給服務器。在一些實施例中,由客戶端接收到的數據是電子郵件消息、即時消息或日歷邀請。在其它實施例中,由客戶端接收到的數據可以是視頻、文檔、圖像、電子表格或任何其它類型的數據文件。在實施例中,由客戶端接收到的數據包括表明該數據是從特定租戶的特定用戶發送給客戶端的的第一簽署證書或第一簽名。
[0052]在接收到請求之后,流程繼續到標識操作504。操作502類似于方法400的操作404。在標識操作504中,從與分布式網絡相關聯的多個租戶中標識出租戶。標識的租戶可與表明作為消息或數據的發送者的用戶相關聯。在一些實施例中,多個租戶可包括每個與分布式網絡相關聯的租戶或者與分布式網絡相關聯的租戶子集。服務器可以使用租戶標識符、用戶標識符或與客戶端發送的請求或者客戶端接收到的消息/數據相關聯的任何其它類型的標識符來標識租戶。
[0053]接著,流程繼續到訪問操作506ο操作506類似于方法400的操作406。在訪問操作506中,訪問來自分布式網絡上的標識租戶的租戶存儲中的租戶證書集合。在一些實施例中,訪問操作506包括請求訪問證書集合和/或標識租戶存儲。在其它實施例中,訪問操作506可包括直接地從標識租戶存儲讀取證書集合。在實施例中,租戶存儲可以是作為分布式網絡的部分的隔離的數據存儲。在這樣的實施例中,數據存儲被隔離,從而使得僅租戶具有對數據存儲讀和/或寫訪問權。在實施例中,證書集合可以通過租戶管理員上傳和保存到租戶存儲中。租戶存儲可用來存儲租戶組織數據和租戶配置信息。如上所述,保存在分布式網絡上的租戶存儲上的信息是與其它租戶隔離和分開的。包括證書集合的租戶存儲上的信息不能被分布式網絡上的其它租戶、用戶和/或客戶端訪問,從而維護分布式系統的安全性。在一些實施例中,包括證書集合的租戶存儲上的信息可能不是公共可用的或者可以是公共可用的。
[0054]流程繼續到加載操作508。操作508類似于方法400的操作408。在加載操作508中,證書集合加載到虛擬存儲中。虛擬存儲可以位于執行方法500的設備具有訪問權的存儲器中。在一些實施例中,虛擬存儲在使用后刪除虛擬存儲。在其它實施例中,在虛擬存儲使用后,預定量的時間后或者特定事件發生之后,刪除虛擬存儲。例如,在一些實施例中,當在虛擬存儲使用后,接收到針對第二簽署證書進行驗證的請求時,刪除虛擬存儲。在另一示例中,在一些實施例中,在虛擬存儲使用后30毫秒、2秒、3秒、42秒、1.5分鐘、4分鐘、6分鐘、12分鐘、40分鐘、45分鐘、1.5小時、3小時、4小時、6小時、9小時或2天,刪除虛擬存儲。
[0055]流程繼續到驗證操作510。操作510類似于方法400的驗證決策操作410。在驗證操作510中,利用來自標識租戶虛擬存儲的證書要求或證書來驗證第一簽署證書。在一些實施例中,在標識租戶的特定用戶(例如,使用標識符)之后,服務器訪問來自虛擬存儲上的證書集合的用戶對應的證書要求或證書。在這些實施例中,通過使用在保存于服務器上的證書集合內列出的用戶的證書要求或證書作為虛擬存儲,作出來自用戶的第一簽署證書是否有效的判定。在一些實施例中,第一簽署證書與證書要求進行比較以判定第一簽署證書是否有效。如果第一簽署證書滿足證書要求,則第一簽署證書有效。如果第一簽署證書不滿足證書要求,則第一簽署證書無效。在替代的實施例中,第一簽署證書與來自證書集合的用戶證書進行比較。在這些實施例中,如果第一簽署證書與來自證書集合的用戶證書相同,則第一簽署證書有效。在這些實施例中,如果第一簽署證書與來自證書集合的用戶證書不同,則簽署證書無效。如果在操作510期間作出第一簽署證書無效的判定,則對無效的第一簽署證書的通知被發送給客戶端。如果在操作510期間作出第一簽署證書有效的判定,則對有效的第一簽署證書的通知被發送給客戶端。
[0056]在替代的實施例中,分布式網絡上的服務器不在方法500的操作510期間判定第一簽署證書的有效性,而是在操作510期間標識與來自虛擬存儲上的標識租戶的證書集合的標識租戶的用戶對應的證書要求或證書,并且將來自虛擬存儲的用戶要求或證書發送給請求驗證的客戶端。在該實施例中,客戶端使用要求或證書來判定第一簽署證書是否有效。在一些實施例中,如果第一簽署證書滿足證書要求,則客戶端判定來自標識租戶的用戶的第一簽署證書是有效的,而如果用戶的簽署證書不滿足用戶的證書要求,則判定來自標識租戶的用戶的第一簽署證書無效。
[0057]在另一實施例中,分布式網絡上的服務器在方法500的操作510中不判定第一簽署證書的有效性,而是在操作510期間將包含標識租戶的證書集合的虛擬存儲發送給請求驗證的客戶端。在這些實施例期間,客戶端使用證書集合來判定第一簽署證書是否有效。客戶端可以標識來自證書集合中的證書或要求的列表的用戶證書要求或證書,并且使用該用戶的要求或證書來判定用戶的簽署證書是否有效。在一些實施例中,如果用戶的簽署證書滿足用戶的證書要求,則客戶端判定來自標識租戶的用戶的第一簽署證書有效,而如果簽署證書不滿足用戶的證書要求,則判定來自標識租戶的用戶的第一簽署證書是無效的。
[°°58]流程繼續到第二接收操作52。第二接收操作512類似于接收操作502,因為,在操作512期間,接收用于驗證第二簽署證書的第二請求。第二請求可由作出第一請求的同一客戶端作出或者可由不同于作出第一請求的客戶端的客戶端來作出。在一些實施例中,由客戶端以第二簽署證書接收到的數據是電子郵件消息、即時消息或日歷邀請。在其它實施例中,由客戶端接收到的數據可以視頻、文檔、圖像、電子表格或任何類型的數據文件。此列舉僅是示例性的,而不是限制性的。在實施例中,由客戶端接收到的數據包括表明數據是從特定租戶的特定用戶發送給客戶端的的第二簽署證書。
[0059]在接收到請求之后,流程繼續到標識操作514。操作514類似于操作504。在標識操作5 O 4中,從與分布式網絡相關聯的多個租戶中標識出租戶。標識的租戶可以與被表明為消息或數據的發送者的用戶相關聯。服務器可以通過使用租戶標識符、用戶標識符或者與客戶端發送的請求或者客戶端接收到的消息/數據相關聯的任何其它類型的標識符來標識租戶。
[0060]流程繼續到比較判定操作516。在比較判定操作516中,作出針對第二簽署證書的標識租戶是否與針對第一簽署證書的標識租戶相同的判定。在比較判定操作516中,通過將兩個租戶相互比較來作出用于第一和第二簽署證書的租戶是否相同的判定。如果作出租戶相同的判定,則流程進入“是”分支到操作524。如果在操作516期間作出針對第一簽署證書的標識租戶不同于針對第二簽署證書的標識租戶,且是新的租戶的判定,則流程進入“否”分支到操作516。
[0061]在存儲判定操作524中,作出用于標識租戶的虛擬存儲是否仍存儲在服務器上的判定。在存儲判定操作524中,作出用于標識租戶的虛擬存儲在存儲器中是否仍可訪問的判定。如果作出虛擬存儲仍存儲或以其它方式可訪問的判定,則流程進入“是”分支到操作510且流程從那繼續。如果在操作524期間作出虛擬存儲仍未存儲或不可訪問的判定,則流程進入“否”分支到操作506且流程從那繼續。
[0062]在新的訪問操作518中,訪問來自新租戶的租戶存儲的新租戶的證書集合。新的租戶是不同于在操作506中標識的租戶的在操作514中標識的租戶。在一些實施例中,新的訪問操作518包括請求訪問證書集合和/或新的租戶存儲。在其它實施例中,訪問操作506可以包括直接從新的租戶存儲讀取證書集合。在一些實施例中,證書集合是存儲在新的租戶存儲上的文件。在實施例中,新的租戶存儲可以是作為分布式網絡的部分的隔離數據存儲。在這樣的實施例中,數據存儲被隔離,從而使得僅租戶對數據存儲具有讀和/或寫訪問權。在實施例中,證書集合可以通過由新租戶管理員上傳且保存到新租戶存儲。新租戶存儲可用于存儲新租戶數據和新租戶配置信息。如上所述,保存在分布式網絡上的新租戶存儲上的信息與其它租戶隔離且分開。包括證書集合的新租戶存儲上的信息不能被分布式網絡上的其它租戶、用戶和/或客戶端訪問,從而保持分布式系統的安全性。在一些實施例中,包括證書集合的新租戶存儲上的信息可不是公共可用的。
[0063]流程繼續到新的加載操作520。操作520類似于操作508。在新的加載操作520中,新的證書集合加載到虛擬存儲中。在一些實施例中,服務器將新證書作為新的虛擬存儲加載。虛擬存儲可位于執行方法500的設備能夠訪問的存儲器中。在一些實施例中,在服務器使用虛擬存儲后,服務器刪除新的虛擬存儲。在其它實施例中,在新虛擬存儲使用后預定量時間后或者在新虛擬存儲使用后特定事件發生后,刪除新的虛擬存儲。例如,在一些實施例中,當在虛擬存儲使用后接收到針對第三簽署證書的驗證請求時,刪除新的虛擬存儲。在另一示例中,在一些實施例中,在虛擬存儲使用后的10毫秒、8秒、9秒、12秒、3分鐘、8分鐘、9分鐘、35分鐘、50分鐘、55分鐘、7小時、8小時、11小時、12小時、16小時或3天刪除第二虛擬存儲。
[0064]流程繼續到新的驗證操作522。操作522類似于驗證操作510。在新的驗證操作522中,利用來自虛擬存儲的證書要求或證書來作出第二簽署證書是否有效的判定。在一些實施例中,在標識租戶的特定用戶(例如,使用標識符)之后,訪問來自新的虛擬存儲上的證書集合的用戶的對應的證書或證書要求。在這些實施例中,通過使用在保存在服務器上作為新的虛擬存儲的新的證書集合內列出的用戶的證書要求或證書,作出來自用戶的第二簽署證書是否有效的判定。在這些實施例中,服務器使用來自新的證書集合的用戶的證書要求或證書來驗證第二簽署證書。如果在操作522期間作出第二簽署證書無效的判定,則對無效的第二簽署證書的通知被發送給發送了第二簽名證書驗證請求的客戶端。如果在操作522期間作出第二簽署證書有效的判定,則對有效的第二簽署證書的通知被發送給發送了第二簽名證書驗證請求的客戶端。
[0065]在可選實施例中,執行方法500的設備不在方法500的操作522期間判定第二簽署證書的有效性,而是在操作522期間標識與來自虛擬存儲上的新租戶的證書集合中的的新租戶的用戶對應的證書要求或證書,并且將用戶的證書要求或證書發送給請求驗證第二簽署證書的客戶端。在該實施例中,客戶端使用接收到的證書要求或證書來判定第二簽署證書是否有效。在一些實施例中,如果用戶的證書與用戶的第二簽署證書相同,則客戶端判定來自新租戶的用戶的第二簽署證書是有效的,而如果用戶的證書與用戶的第二簽署證書不同,則判定來自新租戶的用戶的簽署證書無效。
[0066]在替代的實施例中,執行方法500的設備在方法500的操作522期間不判定第二簽署證書的有效性,而是在操作522期間將包含新租戶證書集合的虛擬存儲發送給請求驗證的客戶端。在這些實施例中,客戶端使用從虛擬存儲接收到的新證書集合來判定第二簽署證書是否有效。客戶端可以標識來自證書集合中的列表的用戶證書要求或證書,并且使用用戶的證書要求或證書來判定用戶的簽署證書是否有效。在一些實施例中,如果用戶的簽署證書滿足用戶的證書要求,則客戶端判定來自新租戶的用戶的第二簽署證書是有效的,而如果用戶的簽署證書不滿足用戶的證書要求,則判定來自新租戶的用戶的第二簽署證書無效。
[0067]雖然方法500針對接收兩個簽署證書,但是方法500可用于同時地、在重疊的時間和/或在交錯的時間處理多個設備(例如,第一租戶、第二租戶、第三租戶、第四租戶、第五租戶,…第η租戶)的多個不同的客戶端(例如,第一客戶端、第二客戶端、第三客戶端、第四客戶端、第五客戶端,…第η客戶端)的多個不同的簽署的簽名。此外,方法500可同時地、在重疊的時間和/或在交錯的時間由分布式網絡內的多個不同的服務器(第一服務器、第二服務器、第三服務器、第四服務器、第五服務器,…第η服務器)針對一個或多個客戶端的來執行。
[0068]圖6-9以及相關的說明提供了可實踐本公開內容實施例的各種操作環境的論述。然而,參考圖6-9所示出和論述的設備和系統是為了示例和說明的目的,不是限制可用于實踐本文所述的公開內容的實施例的眾多計算設備配置。
[0069]圖6是示出可實踐本公開實施例的計算設備600的物理部件(例如,硬件)的框圖。下文描述的計算設備部件可以是用于例如客戶端的電子郵件應用613的計算機可執行指令和/或用于例如服務器的驗證模塊611的計算機可執行指令,這些計算機可執行指令能夠被執行以采用本文所公開的方法400和500。在基本配置中,計算設備600可以包括至少一個處理單元602以及系統存儲器604。根據計算設備的配置和類型,系統存儲器604可包括但不限于易失性存儲(例如,隨機存取存儲器)、非易失性存儲器(例如,只讀存儲器)、閃速存儲器或這些存儲器的任意組合。系統存儲器604可包括操作系統605以及適合于運行軟件應用620的一個或多個程序模塊606,諸如結合圖2-3在整個斷開連接時間段維持會話,以及尤其是電子郵件應用613或驗證模塊611。操作系統605例如可以適合于控制計算設備600的操作。此外,公開內容的實施例可與圖形庫、其它操作系統或任何其它應用程序相結合來實現,而不限于任何特定的應用或系統。該基本配置由虛線608內的那些部件圖示在圖6中。計算設備600可具有額外的特征或功能。例如,計算設備600還可以包括附加的數據存儲設備(可移除的和/或非可移除的),諸如例如磁盤、光盤或磁帶。該額外的存儲通過可移除存儲設備609和非可移除存儲設備610圖不在圖6中。
[0070]如上所述,多個程序模塊和數據文件可存儲在系統存儲器604內。在處理單元602上執行的同時,程序模塊606(例如,驗證模塊611或電子郵件應用)可以執行處理,包括但不限于如本文所述的實施例。根據本公開內容的實施例可使用的以及尤其是用來生成屏幕內容的其它程序模塊可包括電子郵件和通訊錄應用,文字處理應用,電子表格應用,數據庫應用,幻燈片演示應用,繪圖,消息傳遞應用,和/或計算機輔助應用程序,等等。
[0071]此外,本公開內容的實施例可以實現于包括離散電子元件的電路、包含邏輯門的封裝或集成電子芯片、使用微處理器的電路或包含電子元件或微處理器的單個芯片上。例如,公開的實施例可以經由片上系統(SOC)來實現,其中圖6所示的每一個或多個部件可以集成到單個集成電路上。上述SOC設備可包括一個或多個處理單元、圖形單元、通信單元、系統虛擬化單元和各種應用功能,全部都集成(或者“燒”)到芯片基板上作為單個集成電路。當經由SOC操作時,本文所述的關于客戶端轉換協議的能力的功能可經由與單個集成電路(芯片)上的計算設備600的其它部件集成的專用邏輯單元來操作。本公開內容的實施例還可以利用其它能夠執行諸如例如與(AND)、或(OR)和非(NOT)的邏輯運算的技術來實現,包括但不限于機械、光學、流體和量子技術。另外,本公開內容的實施例可在通用計算機或任何其它電路或系統內實現。
[0072]計算設備600還可以具有一個或多個輸入設備612,諸如鍵盤、鼠標、筆、聲音或語音輸入設備、觸摸或擺動輸入設備等。可包含諸如顯示器、揚聲器、打印機等的輸出設備614。上述設備是示例,可以使用其它設備。計算設備600可包括允許與其它計算設備618通信的一個或多個通信連接616。適合的通信連接616的示例包括但不限于RF發射器、接收器和/或收發機電路系統、通用串行總線(USB)、并行和/或串行端口。
[0073]本文所使用的術語計算機可讀介質可以包括計算機存儲介質。計算機存儲介質可包括易失性和非易失性的、可移除的和非可移除的介質,它們以用于存儲諸如計算機可讀指令、數據結構或程序模塊的信息的任何方法或技術來實現。系統存儲器604、可移除存儲設備609以及非可移除存儲設備610都是計算機存儲介質示例(例如,存儲器存儲)。計算機存儲介質可包括RAM、ROM、電可擦除只讀存儲器(EEPROM)、閃速存儲器或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光學存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設備、或者任何其它能夠用來存儲信息且能夠由計算設備600訪問的制品。任何這樣的計算機存儲介質可以是計算設備600的部分。計算機存儲介質不包括載波或其它傳播或調制的數據信號。
[0074]通信介質可通過計算機可讀指令、數據結構、程序模塊或者調制數據信號中的其它數據如載波或其它傳輸機制來代表,并且包括任何信息輸送介質。術語“調制數據信號”可以描述使其一個或多個特點以將信息編碼在信號中的方式進行設定或改變的信號。通過示例的方式而不是限制,通信介質可包括諸如有線網或直接接線連接的有線介質以及諸如聲波、射頻(RF)、紅外和其它無線介質的無線介質。
[0075]圖7A和7B示出了可實踐本公開內容的實施例的移動計算設備700,例如,移動電話、智能手機、可佩戴計算機(諸如智能手表)、平板式個人計算機、膝上型計算機等。在一些實施例中,客戶端可以是移動計算設備。參考圖7A,示出了用于實現實施例的移動計算設備700的一個實施例。在基本配置中,移動計算設備700是具有輸入元件和輸出元件的手持式計算機。移動計算設備700通常包括顯示器705以及一個或多個輸入按鈕710,允許用戶將信息輸入到移動計算設備700中。移動計算設備700的顯示器705還可以用作輸入設備(例如,觸摸屏顯示器)。如果包含,可選的側面輸入元件715允許進一步的用戶輸入。側面輸入元件715可以是旋轉式開關、按鈕或任何其它類型的手動輸入元件。在替代的實施例中,移動計算設備700可并入更多或更少的輸入元件。例如,顯示器705在一些實施例中可以不是觸摸屏。在又另外的可選實施例中,移動計算設備700是便攜式電話系統,諸如蜂窩電話。移動計算設備700還可以包括可選的鍵區735。可選的鍵區735可以是物理鍵區或在觸摸屏顯示器上生成的“軟”鍵區。在各個實施例中,輸出元件包括用于顯示圖形用戶界面(GUI)的顯示器705、視覺指示器720(例如,發光二極管)、和/或音頻換能器725(例如,揚聲器)。在一些實施例中,移動計算設備700并入振動換能器,用于為用戶提供觸覺反饋。在又一實施例中,移動計算設備700包含輸入和/或輸出端口,諸如音頻輸入(例如,麥克風插口)、音頻輸出(例如,耳機插口)以及視頻輸出(例如,HDMI端口),用于將信號發送給外部設備或者從外部設備接收信號。
[0076]圖7B是示出移動計算設備的一個實施例的架構的框圖。也即,移動計算設備700可以包含實現一些實施例的系統(例如,架構)702。在一個實施例中,系統702被實現為能夠運行一個或多個應用(例如,瀏覽器、電子郵件、日歷、通訊錄管理器、消息傳遞客戶端、游戲和媒體客戶端/播放器)的“智能手機”。在一些實施例中,系統702集成為計算設備,諸如集成個人數字助理(PDA)和無線手機。
[0077]—個或多個應用程序766可以加載到存儲器762中且運行于操作系統764上或者與操作系統764相關聯。應用程序的示例包括電話撥號程序、電子郵件程序、個人信息管理(PM)程序、文字處理程序、電子表格程序、因特網瀏覽器程序、消息傳遞程序等。系統702還包括在存儲器762內的非易失性存儲區768。非易失性存儲區768可以用于存儲如果系統702掉電也不應丟失的持久信息。應用程序766可使用非易失性存儲器768中的信息,以及將信息存儲在非易失性存儲器768中,例如電子郵件或由電子郵件應用使用的其它消息,等等。同步應用(未示出)也位于系統702上且被編程為與位于主機計算機上的對應的同步應用交互以保持存儲在非易失性存儲區768中的信息與存儲在主機計算機中的對應信息同步。應當理解,其它應用可加載到存儲器762內且運行于移動計算設備700上,包括如本文所述的在多租戶環境中驗證簽署證書的指令(例如,和/或可選驗證模塊611)。
[0078]系統702具有電源770,其可以實現為一個或多個電池。電源770可還包括外部電源,諸如AC適配器或為電池補電或再充電的電力對接托架。
[0079]系統702還可以包括執行發送和接收射頻通信功能的無線單元772。無線單元772利于系統702與“外界”之間經由通信運營商或服務提供商的無線連接。去往和來自無線單元772的傳輸是在操作系統764的控制下進行的。換言之,由無線單元772接收到的通信可經由操作系統764傳播給應用程序766,反之亦然。
[0080]視覺指示器720可用于提供視覺通知,和/或音頻接口774可用于經由音頻換能器725產生可聽的通知。在圖示的實施例中,視覺指示器720是發光二極管(LED),音頻換能器725是揚聲器。這些設備可直接與電源77耦合,使得當被激活時,即使處理器760和其它部件可能被關閉而節約電池電量,這些設備仍在通知機制所規定的持續時間內保持加電。LED可被編程以無限地保持接通,直到用戶采取措施來表明設備的加電狀況。音頻接口 774用于提供可聽信號給用戶以及從用戶接收可聽信號。例如,除了與音頻換能器725耦合之外,音頻接口 774還可以與麥克風耦合以接收可聽輸入,諸如利于電話對話。根據本公開內容的實施例,麥克風還可以作為促進對通知的控制的音頻傳感器,如下文將要說明的。系統702可還包括視頻接口 776,其使得板上照相機730的操作能夠記錄靜像、視頻流等。
[0081]實現系統702的移動計算設備700可具有額外的特征或功能。例如,移動計算設備700還可以包括額外的數據存儲設備(可移除和/或非可移除),諸如例如磁盤、光盤或磁帶。這樣的額外的存儲由非易失性存儲區768圖示在圖7B中。
[0082]由移動計算設備700生成或捕獲以及經由系統702存儲的數據/信息可本地地存儲在移動計算設備700上,如上所述,或者數據可以存儲在可通過設備經由無線單元772訪問或者經由移動計算設備700與關聯移動計算設備700的例如諸如因特網的分布式計算網絡中的服務器計算機的單獨的計算設備之間的有線連接范圍的任意數量的存儲介質上。應當理解,這樣的數據/信息可經由移動計算設備700通過無線單元772或者經由分布式計算網絡來訪問。類似地,這樣的數據/信息可根據公知的數據/信息傳遞和存儲手段,包括電子郵件和協作數據/信息共享系統,容易地在計算設備之間傳遞以用于存儲和使用。
[0083]圖8示出了用于處理在諸如如上所述的計算設備804、平板設備806或移動設備808的計算系統從遠程源接收到的數據的系統的架構的一個實施例。顯示在服務器設備802上的內容可存儲在不同的通信信道或其它存儲類型中。例如,各種文檔可以使用目錄服務822、網絡門戶824、郵箱服務826、即時消息傳遞存儲828或社交網站830來存儲。電子郵件應用613(或生產應用等)可由發送驗證簽署證書的請求到服務器802的客戶端來采用。服務器802可以采用驗證模塊611來執行方法400和/或500,如上所述。在服務器802執行方法400和/或500的過程中,服務器可以訪問存儲在存儲816內的證書集合832。通過示例的方式,客戶端計算設備可以具體實施在個人計算機804、平板計算設備806和/或移動計算設備808(例如,智能手機)中。除了接收能夠用于在圖形源始系統處預處理的或者在接收計算系統中后處理的圖形數據之外,計算設備的這些實施例中的任意實施例可以從存儲816獲得內容。
[0084]例如本公開內容的實施例在上文是參考根據本公開實施例的方法、系統和計算機程序產品的框圖和/或操作示例來描述的。在框中剃刀的功能/動作可以不按任何流程圖中所示的順序而發生。例如,連續顯示的兩個框實際上可以基本同時執行,或者有時框可以相反的順序來執行,取決于所涉及到的功能/動作。
[0085]在本申請中提供的一個或多個實施例的說明和圖示不意在以任何方式限制或限定如權利要求的本公開的范圍。在本申請中提供的實施例、示例和細節被認為足以傳達占有且使得其它人能夠實現和使用權利要求公開的最佳方式。權利要求的公開內容不應解釋為局限于本申請中提供的任何實施例、示例或細節。無論在組合地還是單獨地顯示和描述,各特征(結構以及方法的)意在選擇性地被包含或省略以產生具有特定特征集合的實施例。已經提供了本申請的描述和圖示,本領域技術人員可構思落入本申請中具體體現的總的發明構思的較寬方面的精神內而沒有偏離權利要求公開內容的較寬范圍的變型例、修改和替代的實施例。
【主權項】
1.一種用于驗證定制簽名的方法,所述方法包括: 在分布式網絡中的第一服務器處,接收來自第一客戶端的、對于驗證第一簽署證書的第一請求; 從多個租戶中標識與所述第一簽署證書有關的第一租戶; 從所述分布式網絡上的第一租戶存儲中訪問第一租戶證書集合; 在所述第一服務器上,將所述第一租戶證書集合作為第一租戶虛擬存儲來加載;以及 使用所述第一租戶虛擬存儲來執行對所述第一簽署證書的驗證。2.如權利要求1所述的方法,其中,所述使用所述第一租戶虛擬存儲來執行對所述第一簽署證書的驗證還包括: 確定所述第一簽署證書是有效的;以及 將對所述第一簽署證書的驗證發送給所述第一客戶端。3.如權利要求1所述的方法,其中,所述使用所述第一租戶虛擬存儲來執行對所述第一簽署證書的驗證還包括: 確定所述第一簽署證書是無效的;以及 向所述第一客戶端發送所述第一簽署證書無效的通知。4.如權利要求1所述的方法,還包括: 在所述分布式網絡中的所述第一服務器處,接收來自第二客戶端的、對于驗證第二簽署證書的第二請求; 從所述多個租戶中標識與所述第二簽署證書有關的第二租戶; 從所述分布式網絡上的第二租戶存儲中訪問第二租戶證書集合; 在所述第一服務器上,將所述第二租戶證書集合作為第二租戶虛擬存儲來加載;以及 使用所述第二租戶虛擬存儲來執行對所述第二簽署證書的驗證。5.如權利要求4所述的方法,其中,所述第一租戶虛擬存儲和所述第二租戶虛擬存儲是同時加載到所述第一服務器上的,并且其中,當所述第一服務器接收到來自所述第二客戶端的、對于驗證所述第二簽署證書的所述第二請求時,所述第一租戶虛擬存儲被刪除。6.如權利要求4所述的方法,其中,所述第一服務器同時接收來自所述第一客戶端的、對于驗證所述第一簽署證書的所述第一請求以及來自所述第二客戶端的、對于驗證所述第二簽署證書的所述第二請求。7.如權利要求1所述的方法,其中,所述第一簽署證書來自所述第一租戶的第一用戶, 其中,使用所述第一租戶虛擬存儲來執行對所述第一簽署證書的驗證還包括: 標識所述第一租戶的所述第一用戶; 標識在所述第一租戶虛擬存儲上的所述第一租戶證書集合內列出的所標識的第一用戶的證書要求; 確定所述第一簽署證書是否滿足所述第一用戶的所述證書要求。8.如權利要求1所述的方法,其中所述第一客戶端包括以下各項中的至少一項: 移動電話; 智能手機; 平板設備; 智能手表; 可穿戴計算機; 個人計算機; 臺式計算機;以及 膝上型計算機。9.如權利要求1所述的方法,其中,所述分布式網絡與所述第一客戶端通信,以將數據提供給以下各項中的至少一項: 電子郵件應用; 社交網絡應用; 協作式應用; 企業管理應用; 消息傳遞應用; 文字處理應用; 電子表格應用; 數據庫應用; 演示應用; 通訊錄應用;以及 日歷應用。10.—種系統,包括: 分布式服務器網絡,用于與至少部分地由計算設備執行的客戶端進行數據交換,所述計算設備包括: 至少一個處理器; 存儲器,其用于包含計算機可執行指令,當所述計算機可執行指令由所述至少一個處理器執行時,使服務器執行一種方法,所述方法包括: 接收對于驗證第一簽署證書的第一請求; 從多個租戶中標識與所述第一簽署證書有關的第一租戶; 請求對存儲在第一租戶存儲中的第一租戶證書集合的訪問; 加載所述第一租戶證書集合;以及 使用所述第一租戶證書集合來執行對所述第一簽署證書的驗證。11.如權利要求10所述的系統,其中執行對所述第一簽署證書的驗證還包括: 標識所述第一租戶的第一用戶; 標識在所述第一租戶證書集合內列出的所標識的第一用戶的證書; 確定所述第一簽署證書是否與來自所述第一租戶證書集合的所述證書相同。12.如權利要求10所述的系統,其中,所述方法還包括: 接收對于驗證第二簽署證書的第二請求; 從所述多個租戶中標識與所述第二簽署證書有關的第二租戶; 請求對存儲在第二租戶存儲中的第二租戶證書集合的訪問; 加載所述第二租戶證書集合; 使用所述第二租戶證書集合來執行對所述第二簽署證書的驗證; 接收對于驗證第三簽署證書的第三請求; 從所述多個租戶中標識與所述第三簽署證書有關的第三租戶; 請求對存儲在第三租戶存儲中的第三租戶證書集合的訪問; 加載所述第三租戶證書集合;以及 使用所述第三租戶證書集合來執行對所述第三簽署證書的驗證。13.如權利要求12所述的系統,其中,所述第一租戶存儲、所述第二租戶存儲和所述第三租戶存儲單獨地存儲在所述分布式服務器網絡上且彼此隔離。14.如權利要求10所述的系統,其中,所述方法是根據s/mime協議來執行的。15.如權利要求10所述的系統,其中,所述分布式網絡上的所述第一租戶存儲接收來自第一租戶管理員的一組證書,以形成所述第一租戶證書集合。
【文檔編號】H04L29/06GK105940657SQ201580006455
【公開日】2016年9月14日
【申請日】2015年1月28日
【發明人】T·謝里夫, Y·王, J·陳
【申請人】微軟技術許可有限責任公司