CN105940657A - 基于租户的签名验证 - Google Patents

基于租户的签名验证 Download PDF

Info

Publication number
CN105940657A
CN105940657A CN201580006455.7A CN201580006455A CN105940657A CN 105940657 A CN105940657 A CN 105940657A CN 201580006455 A CN201580006455 A CN 201580006455A CN 105940657 A CN105940657 A CN 105940657A
Authority
CN
China
Prior art keywords
tenant
self
certificate
signing certificate
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580006455.7A
Other languages
English (en)
Other versions
CN105940657B (zh
Inventor
T·谢里夫
Y·王
J·陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201910405736.XA priority Critical patent/CN110266643B/zh
Publication of CN105940657A publication Critical patent/CN105940657A/zh
Application granted granted Critical
Publication of CN105940657B publication Critical patent/CN105940657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

提供了用于在多租户环境中验证签名的方法和系统。作为分布式网络的部分的服务器或其它计算设备可以请求来自所标识的租户存储的证书集合。所请求的证书集合可以加载到服务器或其它计算设备能访问的虚拟存储中。服务器或其它计算设备随后可以访问来自虚拟存储的一个或多个证书以验证签名。

Description

基于租户的签名验证
背景技术
分布于在线环境之中的服务器和服务的部署拓扑结构正在变得越来越复杂。应用要求安全访问这些服务器和服务,而无论它们的部署特点或位置如何。公共密钥基础结构(PKI)操作经常与使用存储在数据存储内的内容关联。例如,受信的根证书可以存储在公司的服务器上,并用于证书验证。基于该结构,多租户环境中的租户将他们的具体的PKI数据存储在其它租户能访问的公共机器存储中以执行证书验证。
正是针对这些以及其它常见的考虑而进行了实施例。而且,虽然已经论述了相对具体的问题,应当理解实施例不应限于解决背景技术中所确定的具体问题。
发明内容
概括而言,本公开内容一般涉及在多租户环境中验证定制签名。更特别地,本公开内容一般涉及用于分布式网络上的服务器访问以及根据需要虚拟地(virtually)存储租户证书集合的方法和系统。分布式网络上的该服务器或其它计算设备被配置有访问安全且隔离的租户存储以根据需要加载不同的租户证书集合的能力。此外,分布式网络上的服务器或其它计算设备被配置有在使用后删除虚拟地存储的租户证书集合以释放服务器上的存储空间和/或维持所访问的租户证书集合的机密性的能力。
提供该概述以便以下文在详述部分中进一步描述的简化形式来引入构思的选择。该概述不意在排他地确定权利要求主题的关键特征或主要特征,也不意在该概述用来限定权利要求主题的范围。
附图说明
参考以下附图来描述非限制性的以及非穷尽的实施例,在附图中:
图1示出了根据示例性实施例的在多租户环境中验证定制签名的分布式网络的示例性的系统;
图2示出了根据又一示例性实施例的用于在多租户环境中验证定制签名的分布式网络的示例性的系统;
图3示出了根据示例性实施例的用于在多租户环境中验证定制签名的分布式网络的示例性的系统;
图4示出了根据示例性实施例的用于在多租户环境中验证定制签名的示例性的方法;
图5示出了根据又一示例性实施例的用于在多租户环境中验证定制签名的示例性的方法;
图6是示出可实践本公开内容的实施例的计算设备的示例的物理部件的框图;
图7A和7B是可实践本公开内容的实施例的移动计算设备的简化的框图;以及
图8是可以实践本公开内容的实施例的分布式计算系统的简化框图。
具体实施方式
在下面的详述中,参考了附图,附图构成说明的部分并且通过示例说明的方式示出了具体的实施例或示例。这些方面可以组合,可以使用其它方面,可以进行结构改变,而不偏离本公开内容的精神或保护范围。因此,下面的详述不应从限制的意义上考量,并且本公开内容的保护范围由随附的权利要求书及其等同内容来限定。
在该说明书全篇中,术语“平台”可以是用于通过网络在客户端与服务器之间使用协议提供数据交换的软件部件和硬件部件的组合。平台的示例包括但不限于在多个服务器上实施的托管式服务、在单个计算设备上实施的应用以及类似的系统。术语“服务器”一般是指通常在网络环境中实施一个或多个软件程序的计算设备。然而,服务器还可以实现为在视作网络上的服务器的一个或多个计算设备上实施的虚拟服务器(软件程序)。关于这些技术和示例性的操作的更多细节可见于下文中。
如上文简要描述的,本公开内容的实施例涉及到在多租户环境中验证签名。在实施例中,签名是属于多租户环境中的S/MIME电子邮件的。当前,租户的用户使用他的私有密钥(本文也称为签署证书)将诸如电子邮件的MIME消息发送给客户端。虽然论述涉及到电子邮件消息,本领域技术人员将理解,可以通过本文公开的实施例来实践任何消息或其它类型的数据。本文所使用的“用户”是指与租户相关联的任何个体或机器。本文所使用的“租户”是指任何公司、组织或用户群组。
客户端可能希望校验从用户发送的电子邮件消息的签名,或者换言之,校验电子邮件发送自所列的发送者。为了校验电子邮件的签名,客户端将签名或签署证书发回给与发送用户电子邮件的发送者/租户相关联的服务器。租户的服务器存储了用于验证用户的签名(本文还称为证书、签署证书、签名、私有密钥或定制签名)的每个用户的证书要求或证书的列表。租户的每个用户的证书要求或证书的列表在本文称为证书集合。租户服务器使用来自存储的证书集合的所标识的用户证书要求或证书来尝试验证接收到的证书。
为了安全的原因,限制证书集合的可用性。多数租户更愿意租户或租户服务器之外的任何人不能访问证书集合或者访问在证书集合上列出的任何租户的证书要求或证书。如果租户服务器能够使用所标识的用户证书要求或证书来验证自客户端接收到的签署证书,则服务器向客户端发送通知,签名有效,或者电子邮件发送自所标识的用户。如果租户服务器不能使用所标识的用户的证书要求或证书来验证从客户端接收到的签署证书,则服务器向客户端发送通知,签名无效或者电子邮件不是发送自所标识的用户。如果签名有效,则消息确实由消息中所标识的租户或发送者发送。租户服务器通过访问和存储来自每个用户的证书要求或证书来生成证书集合。在一些示例中,如果在通往客户端的途中消息被修改,如果用户的签署证书被撤销,或者如果用户的证书要求或证书不再存在(例如,当雇员离开公司时电子邮件地址被无效化),则会发现签名或签署证书是无效的。
在多租户环境中,具有若干证书的多个租户可由客户端发送给分布式网络中的服务器以便进行验证。在当前使用的验证过程下,服务器被配置为使用存储的证书集合。然而,分布式网络中的服务器来存储网络上每个租户的证书集合是不可行的。首先,分布式网络中的服务器是多个租户可访问的。因此,允许每个租户访问分布式网络上的服务器有害于分布式网络的安全。其次,分布式网络中的服务器具有使用传统存储模型的有限的存储容量,并且不能存储每个租户的证书集合。
为解决上述限制,本公开内容的实施例一般涉及用于分布式网络上的服务器访问来自分布式网络上的私有租户存储的租户证书集合以及根据需要虚拟地存储租户证书集合的方法和系统。在实施例中,关于分布式网络上的具体的租户存储的信息不能由其它租户访问或者不能为公共使用。因此,租户能够将他们的证书集合上传或导入且保存到分布式网络上的他们的租户存储中,而不会有害于分布式网络的安全性。相应地,本公开内容的实施例一般地涉及针对无须访问本地租户机器而具有租户证书集合的副本的服务器的方法和系统。在实施例中,服务器可以访问证书集合且将其加载为虚拟存储。另外地,分布式网络上的服务器可被配置为在使用后从服务器中删除虚拟地存储的租户证书集合以释放服务器上的存储空间和/或维持所访问的租户证书集合的机密性。
图1-3示出了根据示例性实施例用于在多租户环境中验证消息的签名的分布式网络104的示例性的系统100。在一些实施例中,图1-3所示的签名验证可根据S/MIME协议来执行;然而,其它校验协议可用于本文公开的实施例。系统100包括客户端102、分布式网络104和租户110。虽然图1-3所示的系统100具有三个或四个不同的客户端102a、102b、102c和102d以及四个或五个不同的租户110a、110b、110c、110d和110e,但是图示的客户端102的数量以及租户110的数量仅为示例性的。本领域技术人员可以意识到系统100可包括任意数量的客户端102d和/或租户110e。
本文所使用的客户端102是指从分布式网络上的服务器106接收签名的消息的任何个体、用户或机器。在实施例中,客户端102不与租户110相关联。在一些实施例中,客户端102与租户110相关联。如上文论述的租户110是指任何公司、组织或用户群组。如上论述的用户是指与租户110相关联的任何个体或机器。
分布式网络104可以包含通过网络(例如,WAN、LAN、Wi-Fi网络、因特网等)连接的两个或更多个服务器。分布式网络104在本文还可称为云或分布式服务器网络。分布式网络104包括服务器106和租户存储108。虽然图1-3所示的分布式网络104具有四个不同的服务器106a、106b、106c和106d以及四个或五个不同的存储108a、108b、108c、108d和108e,但是图示的服务器106和存储108的数量仅为示例性的。本领域技术人员可以意识到分布式网络104可以包括任意数量的服务器106c和/或存储108e。
在客户端102处执行的与分布式网络104交互的示例的应用是一个或多个生产应用(例如,文字处理器、演示应用、电子表格应用等)以及一个或多个通信应用(例如,电子邮件应用、即时消息传递应用、视频流应用、社交媒体应用、日历应用、游戏等)或者任何需要客户端设备和服务器在分布式网络上通信的应用(例如,银行业应用、公司内应用等等)。示例的客户端设备102可以包括台式计算机、膝上型计算机、平板设备、智能手表、可佩戴计算机、移动电话、智能手机、电子白板、和/或其它类似的客户端设备。通信服务和生产服务还可以相结合地起作用以取回和交换电子邮件和/或其它数据。
示例的生产应用可被配置为提供对围绕生产平台构建的各种服务的访问。在实施例中,服务执行于或寄存于远程设备上,诸如分布式网络中的服务器106。一些生产服务可包括但不限于,协作应用、企业管理应用、消息传递应用、文字处理应用、电子表格应用、数据库应用、演示应用,等等。生产服务可通过例如从分布式网络104上的远程服务器106取回数据来提供对与寄存在远程设备上的各种生产应用相关联的数据的访问。可以在网络104上访问服务器106,该网络可以是有线网或无线网,或者云网络,并且取回的数据可以加载和/或被操纵。示例性的网络可包括但不限于,蜂窝数据网、工作域网(WAN)、局域网(LAN)、因特网等。
类似地,示例的通信应用可以是被配置为提供电子邮件、通讯录管理和/或日历服务的应用或服务。在实施例中,通信应用还可以提供一个或多个实时通信平台,诸如即时消息传递、音频/视频会议以及存在检测。例如,用户可以使用在客户端102上执行的并且从分布式网络104接收的通信应用来接收、查看和回复电子邮件。
如图1所示,来自分布式网络104的服务器2 106b用签名发送来自第四租户110d的用户的第一客户端102a数据。在一些实施例中,发送的数据是电子邮件消息。第一客户端102a请求验证从服务器2 106b接收到的签署证书,其中客户端102a从服务器2 106b接收数据。服务器2 106b识别与用于验证的签署证书有关或相关联的租户110。在图1所示的实施例中,服务器2 106b识别签署证书与第四租户110d相关联。
因此,服务器2 106b访问分布式网络104上的第四租户存储108d上的证书集合。在一些实施例中,服务器2 106b通过请求访问第四租户存储108d和/或访问第四租户存储108d上的证书集合来访问第四租户存储108d上的证书集合。在另外的实施例中,服务器2 106b通过读取第四租户存储108d和/或通过读取第四租户存储108d上的证书集合来访问第四租户存储108d上的证书集合。
如上所述,租户存储108位于分布式网络104上且存储租户的组织数据和/或配置信息。租户存储108d上的信息与其它租户存储108a、108b和108c隔离且分离。因此,保存在每个租户存储108上的信息既不是公共可访问,也不能由分布式网络104上的其它租户访问。如上所述,证书集合是用于验证由与租户110相关联的用户发送的签署的消息的签名的列表证书。用于租户110的证书集合由租户管理员上传或导入且保存到租户存储108中。在一些实施例中,租户管理员使用用于租户管理任务的远程PoweShell或图形用户接口来导入且保存证书集合。如图1-3中所示,每个租户110a、110b、110c、110d和110e在分布式网络104上具有专用的存储空间,各个租户能够将他们的代表性的租户存储108a、108b、108c、108d、108e上的他们的证书集合导入且保存到该专用存储空间中。
一旦服务器2 106b从第四租户存储108d访问第四租户110d的证书集合,服务器2 106b将证书集合加载到服务器2 106b中。在一些实施例中,服务器2 106b将证书集合加载到服务器2 106b中,作为第四租户虚拟存储。服务器2 106b随后利用虚拟存储来验证签署的证书。在一些实施例中,在验证期间,服务器2 106b尝试将租户110d的指定用户的签名针对来自证书集合的指定用户的虚拟存储中的证书或证书要求进行验证。如果服务器2106b验证签署的证书,则服务器2 106b将关于签署的证书有效的通知发送给第一客户端。如果服务器2 106b不能验证签署的证书,则服务器2 106b向第一客户端发送通知,签署的证书无效。
替代地,在一些实施例中,分布式网络上的服务器106可以将虚拟存储发送给发送请求的客户端,并且允许客户端基于虚拟存储中的发送的证书集合来判定签署的证书是否有效。在替代的实施例中,服务器确定来自虚拟存储的用户的证书要求并且将用户的证书要求或证书发送给发送请求的客户端,且允许客户端基于所发送的要求或证书来判定签署的证书是否有效。
在一些实施例中,服务器2 106b上的虚拟存储在使用后由服务器2106b立即删除。在其它实施例中,虚拟存储由服务器2 106b保存预定量的时间。例如,虚拟存储可在使用后由服务器2 106b保存50毫秒、1秒、5秒、30秒、1分钟、2分钟、5分钟、10分钟、15分钟、30分钟、1小时、2小时、5小时、10小时、12小时或一天。该列表是示例性的,不是限制性的。本领域技术人员将意识到,在删除虚拟存储之前可以使用任何期望的预定量的时间。在替代的实施例中,虚拟存储由服务器保存直至特定事件发生。例如,虚拟存储可在使用后被保存直到服务器2 106b接收到验证不同租户的签署证书的请求为止。在另一示例中,虚拟存储在使用后被保存直至服务器2 106b达到预定量的存储容量为止。
虽然图1的论述涉及到具体的实施例,但是由第一客户端102a执行的操作可通过系统100的任何客户端102来执行。另外地,虽然图1的论述涉及到具体的实施例,服务器2 106b所执行的步骤可由分布式网络104的任何服务器106响应于同时地、在交错时间和/或在重叠时间来自任何客户端102的、用于验证任何租户110的任何用户的签署证书的请求来执行。
图2和图3所示的示例性的系统显示出,分布式网络104上的各服务器106能够接收来自若干客户端102a、102b、102c和/或102d的、用于验证来自不同租户110a、110b、110c、110d和/或110e的多个用户的签署证书的请求。分布式网络104的服务器106可以同时地、在交错的时间或者在重叠的时间接收来自各客户端102的验证消息的请求。此外,分布式网络104的一个或多个服务器106可以同时地、在交错的时间或者在重叠的时间接收来自各客户端102的对于签署证书验证的多个请求。
例如,图2示出了第一客户端102a请求验证经由服务器3 106d从第三租户110c的用户接收到的签署证书,同时第二客户端102b请求验证经由服务器2 106b从第二租户110b的用户接收到的签署证书,同时第三客户端102c请求验证经由服务器2 106b从第一租户110a的用户接收到的签署证书。如图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可以同时地、在重叠的时间以及在交错的时间执行对签署证书的验证。
在一些实施例中,客户端102将用于验证来自特定租户110的用户的签署证书的请求发送给分布式网络104上的服务器106,其中客户端从服务器106接收到以该证书签名的数据。在其它实施例中,客户端可以将用于验证来自特定租户110的用户的签署证书的请求发送给分布式网络上的不同的服务器106,客户端从该不同的服务器106接收带有签署证书的数据。在一些实施例中,选择将带有签署证书的数据发送给客户端102的服务器106,因为服务器106具有分布式网络104上的服务器106的最大可用的处理能力。在其它实施例中,将带有签署证书的数据发送给客户端102的服务器106是基于位置、处理能力、负载平衡和/或可用存储空间而选择的。
多个服务器106可以接收来自相同或不同客户端102的多个请求。例如,图3示出了客户端102a发送两个用于验证经由服务器106b和106c来自第四租户110d的用户的两个不同的签署证书的请求。图3进一步示出第二客户端102b从服务器2 106b接收到来自第二租户110b的用户的带有签署证书的数据并且请求验证来自服务器1 106a的第二租户的用户的签署证书。基于该来自第二客户端102b的请求,服务器1 106a访问第二租户存储108b上的证书集合,将证书集合加载到虚拟存储中,确定从第二租户存储108b的用户接收到的签署证书的有效性,并且基于有效性确定将有效性通知发送给第二客户端102b。在服务器1 106a正在处理来自第二客户端102b的请求的同时,服务器1 106a可以将来自第一租户110a的用户的带有签署证书的数据发送给第三客户端102c。在一些实施例中,由客户端接收的带有签署证书的数据是用于电子邮件应用、即时消息、日历应用、通讯录应用、社交媒体应用或游戏应用的数据。该列表仅是示例性的,不是限制。另外,图2示出了系统100可利用任意数量的租户存储(第n个租户存储108e)或租户(第n个租户110e)。
已经通过具体的配置、应用和交互描述了图1至图3的实例的系统。然而,可构思的实施例不限于根据这些示例的系统。用于提供通信连接以在客户端与服务器之间建立会话以及通过网络交换数据的系统可以实现在采用更少或额外的部件且执行其它任务的配置中。此外,虽然本文已经描述了具体的协议,但是本领域技术人员将意识到本文所公开的实施例可采用其它的协议和/或接口。
现在参考图4,示出了根据示例性实施例的用于验证定制签名的示范的方法。方法400可实现在能够通过处理器来执行指令的计算设备或类似的电子设备上。在一些实施例中,计算设备可以是作为分布式服务器网络的部分的一个或多个服务器。在方法400由多于一个的服务器实现的实例中,构成方法400的不同操作的实施可由作为分布式网络的部分的不同服务器来执行。此外,执行根据实施例的方法400的分布式网络上的服务器可被配置为响应于对于签名验证的客户端请求来访问分布式网络中的租户存储上的证书集合。
方法400开始于接收操作402。作为分布式网络的部分的服务器接收来自客户端的对于验证签署证书(本文还称为定制签名、签名或证书)的请求。客户端可以响应于接收到来自用户的消息或数据而将请求发送给服务器。在一些实施例中,由客户端接收到的数据是电子邮件消息、即时消息或日历邀请。在其它实施例中,客户端接收到的数据可以是视频、文档、图像、电子表格或任何其它类型的数据文件。在实施例中,客户端接收到的数据包括表明该数据是从特定租户的特定用户发送给客户端的的签署证书或签名。
在接收到请求后,流程继续到标识操作404。在标识操作404中,租户从与分布式网络相关联的多个租户中被标识。所标识的租户可以与被表明为消息或数据的发送者的用户相关联。在一些实施例中,多个租户可以包括每个与分布式网络相关联的租户或者与分布式网络相关联的租户子集。服务器可以使用租户标识符、用户标识符或与客户端发送的请求或者客户端接收到的消息/数据相关联的任何其它类型的标识符来标识租户。
接着,流程继续到访问操作406。在访问操作406中,访问来自分布式网络上的标识租户的租户存储中的租户证书集合。在一些实施例中,访问操作406包括请求访问证书集合和/或标识的租户存储。在其它实施例中,访问操作406可以包括直接从标识的租户存储读取证书集合。在一些实施例中,证书集合是保存在租户存储上的文件。在实施例中,租户存储可以是作为分布式网络的部分的隔离的数据存储。在这样的实施例中,数据存储被隔离,从而使得仅租户具有对数据存储的读和/或写访问权。在实施例中,证书集合可以通过租户管理员上传且保存到租户存储中。租户存储可用于存储租户数据和租户配置信息。如上所述,保存在分布式网络上的租户存储上的信息是与其它租户隔离且分开的。包含证书集合的租户存储上的信息不能由分布式网络上的其它租户、用户和/或客户端访问,从而保持分布式系统的安全性。在一些实施例中,包括证书集合的租户存储上的信息可能不是公共可用的。
流程继续到加载操作408。在加载操作408中,证书集合被加载到虚拟存储中。虚拟存储可以位于执行方法400的设备能够访问的存储器中。在一些实施例中,证书集合被加载为虚拟存储(本文还称为文件或虚拟文件)。在一些实施例中,虚拟存储在虚拟存储使用后被删除。在其它实施例中,在虚拟存储使用后,预定量的时间后或者特定事件发生之后,删除虚拟存储。
流程继续到验证决策操作410。在验证决策操作410中,对是使用来自虚拟存储的证书要求还是证书来验证签署证书作出判定。在一些实施例中,在标识出租户的特定用户(例如,使用标识符)之后,服务器从虚拟存储上的证书集合访问用户的对应的证书或要求。在这些实施例中,通过使用作为虚拟存储保存在服务器上的证书集合内列出的用户的证书要求或证书,作出来自用户的签署证书是否有效的判定。在一些实施例中,签署证书与证书要求进行比较以判定签署证书是否有效。如果签署证书满足证书要求,则签署证书有效。如果签署证书不满足证书要求,则签署证书无效。在其它实施例中,签署证书与来自证书集合的用户证书进行比较。在这些实施例中,如果签署证书与来自证书集合的用户证书相同,则签署证书有效。在这些实施例中,如果签署证书与来自证书集合的用户证书不同,则签署证书无效。如果在操作410期间作出签署证书无效的判定,则流程进入“否”分支到操作412。如果在操作410期间作出签署证书有效的判定,则流程进入“是”分支到操作414。
在发送无效通知操作412时,向客户端发送通知,来自租户的用户的签署证书无效。基于该通知,客户端被告知,以签署证书接收到的数据不是从标识的发送者(租户的用户)发送的。如果消息在通往客户端的途中被修改或者如果针对用户的证书要求不再存在,则会发现签名或签署证书是无效的(例如,当雇员离开公司时电子邮件地址被无效)。在又一实施例中,证书撤销列表(CRL)可表明证书是无效的。本领域技术人员理解,存在若干其它会发现签署证书无效的原因。
在发送有效通知操作414时,向客户端发送通知,来自租户的用户的签署证书是有效的。因此,客户端被告知,以签署证书接收到的数据是从标识的发送者(租户的用户)发送的。
在替代的实施例中,执行方法400的设备在方法400期间不执行操作410、412和414,而是标识来自虚拟存储上的标识租户的证书集合的、与标识租户的用户对应的证书要求或证书,并且将用户的要求或证书发送给请求验证的客户端。在该实施例中,客户端使用要求或证书来判定签署证书是否有效。在一些实施例中,如果用户的证书要求或证书能够用于验证用户的签署证书,则客户端判定来自标识租户的用户的签署证书是有效的,而如果用户的证书或证书要求不能验证用户的签署证书,则判定来自标识租户的用户的签署证书是无效的。
在替代实施例中,执行方法400的设备在方法400期间不执行操作410、412和414,而是将包含标识租户的证书集合的虚拟存储发送给请求验证的客户端。在这些实施例期间,客户端使用来自虚拟存储的证书集合来判定签署证书是否有效。客户端可以标识来自证书集合中的证书要求列表的用户证书要求,并且使用用户的证书要求来判定用户的签署证书是否有效。在一些实施例中,如果用户的签署证书满足用户的证书要求,则客户端判定来自标识租户的用户的签署证书是有效的,而如果用户的签署证书不满足用户的证书要求,则判定来自标识租户的用户的签署证书是无效的。
虽然方法400针对从第一租户接收单个签署证书,但是方法400可以用来同时地、在重叠时间或者在交错的时间处理针对多个不同租户(例如,第一租户、第二租户、第三租户、第四租户、第五租户,…以及第n租户)的多个不同客户端(例如,第一客户端、第二客户端、第三客户端、第四客户端、第五客户端,…以及第n客户端)的多个不同的签署签名,每个租户具有他们自己的租户存储(第一租户存储、第二租户存储、第三租户存储、第四租户存储、第五租户存储,…以及第n租户存储)。此外,方法400可同时地、在重叠时间或者在交错的时间由分布式网络内的多个设备(第一服务器、第二服务器、第三服务器、第四服务器、第五服务器,…以及第n服务器)针对一个或多个客户端来执行。
现在参考图5,示出根据示例性实施例的用于验证签名的示例性的方法。方法500可实现在能够通过处理器来执行指令的计算设备或类似的电子设备上。在一些实施例中,计算设备可以是作为分布式服务器网络的部分的一个或多个服务器。在方法500由多于一个服务器实现的实例中,构成方法400的不同操作的执行可通过作为分布式网络的部分的不同服务器来执行。此外,根据实施例执行方法500的分布式网络上的服务器可被配置为响应于验证数据的客户端请求或者签名验证的客户端请求而访问分布式网络中的租户存储上的证书集合。在另外的实施例中,方法500可根据S/MIME协议来执行;然而,本领域技术人员将理解,方法500可采用其它协议。除了方法500与接收针对两个不同签署证书的两个单独的验证请求有关之外,方法500类似于方法400。
方法500开始于接收操作502。接收操作502类似于方法400的接收操作402。在接收操作502中,从客户端接收对验证第一签署证书(本文还称为定制签名、签名、或证书)的请求。客户端可以响应于从用户接收到消息或数据而发送请求给服务器。在一些实施例中,由客户端接收到的数据是电子邮件消息、即时消息或日历邀请。在其它实施例中,由客户端接收到的数据可以是视频、文档、图像、电子表格或任何其它类型的数据文件。在实施例中,由客户端接收到的数据包括表明该数据是从特定租户的特定用户发送给客户端的的第一签署证书或第一签名。
在接收到请求之后,流程继续到标识操作504。操作502类似于方法400的操作404。在标识操作504中,从与分布式网络相关联的多个租户中标识出租户。标识的租户可与表明作为消息或数据的发送者的用户相关联。在一些实施例中,多个租户可包括每个与分布式网络相关联的租户或者与分布式网络相关联的租户子集。服务器可以使用租户标识符、用户标识符或与客户端发送的请求或者客户端接收到的消息/数据相关联的任何其它类型的标识符来标识租户。
接着,流程继续到访问操作506。操作506类似于方法400的操作406。在访问操作506中,访问来自分布式网络上的标识租户的租户存储中的租户证书集合。在一些实施例中,访问操作506包括请求访问证书集合和/或标识租户存储。在其它实施例中,访问操作506可包括直接地从标识租户存储读取证书集合。在实施例中,租户存储可以是作为分布式网络的部分的隔离的数据存储。在这样的实施例中,数据存储被隔离,从而使得仅租户具有对数据存储读和/或写访问权。在实施例中,证书集合可以通过租户管理员上传和保存到租户存储中。租户存储可用来存储租户组织数据和租户配置信息。如上所述,保存在分布式网络上的租户存储上的信息是与其它租户隔离和分开的。包括证书集合的租户存储上的信息不能被分布式网络上的其它租户、用户和/或客户端访问,从而维护分布式系统的安全性。在一些实施例中,包括证书集合的租户存储上的信息可能不是公共可用的或者可以是公共可用的。
流程继续到加载操作508。操作508类似于方法400的操作408。在加载操作508中,证书集合加载到虚拟存储中。虚拟存储可以位于执行方法500的设备具有访问权的存储器中。在一些实施例中,虚拟存储在使用后删除虚拟存储。在其它实施例中,在虚拟存储使用后,预定量的时间后或者特定事件发生之后,删除虚拟存储。例如,在一些实施例中,当在虚拟存储使用后,接收到针对第二签署证书进行验证的请求时,删除虚拟存储。在另一示例中,在一些实施例中,在虚拟存储使用后30毫秒、2秒、3秒、42秒、1.5分钟、4分钟、6分钟、12分钟、40分钟、45分钟、1.5小时、3小时、4小时、6小时、9小时或2天,删除虚拟存储。
流程继续到验证操作510。操作510类似于方法400的验证决策操作410。在验证操作510中,利用来自标识租户虚拟存储的证书要求或证书来验证第一签署证书。在一些实施例中,在标识租户的特定用户(例如,使用标识符)之后,服务器访问来自虚拟存储上的证书集合的用户对应的证书要求或证书。在这些实施例中,通过使用在保存于服务器上的证书集合内列出的用户的证书要求或证书作为虚拟存储,作出来自用户的第一签署证书是否有效的判定。在一些实施例中,第一签署证书与证书要求进行比较以判定第一签署证书是否有效。如果第一签署证书满足证书要求,则第一签署证书有效。如果第一签署证书不满足证书要求,则第一签署证书无效。在替代的实施例中,第一签署证书与来自证书集合的用户证书进行比较。在这些实施例中,如果第一签署证书与来自证书集合的用户证书相同,则第一签署证书有效。在这些实施例中,如果第一签署证书与来自证书集合的用户证书不同,则签署证书无效。如果在操作510期间作出第一签署证书无效的判定,则对无效的第一签署证书的通知被发送给客户端。如果在操作510期间作出第一签署证书有效的判定,则对有效的第一签署证书的通知被发送给客户端。
在替代的实施例中,分布式网络上的服务器不在方法500的操作510期间判定第一签署证书的有效性,而是在操作510期间标识与来自虚拟存储上的标识租户的证书集合的标识租户的用户对应的证书要求或证书,并且将来自虚拟存储的用户要求或证书发送给请求验证的客户端。在该实施例中,客户端使用要求或证书来判定第一签署证书是否有效。在一些实施例中,如果第一签署证书满足证书要求,则客户端判定来自标识租户的用户的第一签署证书是有效的,而如果用户的签署证书不满足用户的证书要求,则判定来自标识租户的用户的第一签署证书无效。
在另一实施例中,分布式网络上的服务器在方法500的操作510中不判定第一签署证书的有效性,而是在操作510期间将包含标识租户的证书集合的虚拟存储发送给请求验证的客户端。在这些实施例期间,客户端使用证书集合来判定第一签署证书是否有效。客户端可以标识来自证书集合中的证书或要求的列表的用户证书要求或证书,并且使用该用户的要求或证书来判定用户的签署证书是否有效。在一些实施例中,如果用户的签署证书满足用户的证书要求,则客户端判定来自标识租户的用户的第一签署证书有效,而如果签署证书不满足用户的证书要求,则判定来自标识租户的用户的第一签署证书是无效的。
流程继续到第二接收操作52。第二接收操作512类似于接收操作502,因为,在操作512期间,接收用于验证第二签署证书的第二请求。第二请求可由作出第一请求的同一客户端作出或者可由不同于作出第一请求的客户端的客户端来作出。在一些实施例中,由客户端以第二签署证书接收到的数据是电子邮件消息、即时消息或日历邀请。在其它实施例中,由客户端接收到的数据可以视频、文档、图像、电子表格或任何类型的数据文件。此列举仅是示例性的,而不是限制性的。在实施例中,由客户端接收到的数据包括表明数据是从特定租户的特定用户发送给客户端的的第二签署证书。
在接收到请求之后,流程继续到标识操作514。操作514类似于操作504。在标识操作504中,从与分布式网络相关联的多个租户中标识出租户。标识的租户可以与被表明为消息或数据的发送者的用户相关联。服务器可以通过使用租户标识符、用户标识符或者与客户端发送的请求或者客户端接收到的消息/数据相关联的任何其它类型的标识符来标识租户。
流程继续到比较判定操作516。在比较判定操作516中,作出针对第二签署证书的标识租户是否与针对第一签署证书的标识租户相同的判定。在比较判定操作516中,通过将两个租户相互比较来作出用于第一和第二签署证书的租户是否相同的判定。如果作出租户相同的判定,则流程进入“是”分支到操作524。如果在操作516期间作出针对第一签署证书的标识租户不同于针对第二签署证书的标识租户,且是新的租户的判定,则流程进入“否”分支到操作516。
在存储判定操作524中,作出用于标识租户的虚拟存储是否仍存储在服务器上的判定。在存储判定操作524中,作出用于标识租户的虚拟存储在存储器中是否仍可访问的判定。如果作出虚拟存储仍存储或以其它方式可访问的判定,则流程进入“是”分支到操作510且流程从那继续。如果在操作524期间作出虚拟存储仍未存储或不可访问的判定,则流程进入“否”分支到操作506且流程从那继续。
在新的访问操作518中,访问来自新租户的租户存储的新租户的证书集合。新的租户是不同于在操作506中标识的租户的在操作514中标识的租户。在一些实施例中,新的访问操作518包括请求访问证书集合和/或新的租户存储。在其它实施例中,访问操作506可以包括直接从新的租户存储读取证书集合。在一些实施例中,证书集合是存储在新的租户存储上的文件。在实施例中,新的租户存储可以是作为分布式网络的部分的隔离数据存储。在这样的实施例中,数据存储被隔离,从而使得仅租户对数据存储具有读和/或写访问权。在实施例中,证书集合可以通过由新租户管理员上传且保存到新租户存储。新租户存储可用于存储新租户数据和新租户配置信息。如上所述,保存在分布式网络上的新租户存储上的信息与其它租户隔离且分开。包括证书集合的新租户存储上的信息不能被分布式网络上的其它租户、用户和/或客户端访问,从而保持分布式系统的安全性。在一些实施例中,包括证书集合的新租户存储上的信息可不是公共可用的。
流程继续到新的加载操作520。操作520类似于操作508。在新的加载操作520中,新的证书集合加载到虚拟存储中。在一些实施例中,服务器将新证书作为新的虚拟存储加载。虚拟存储可位于执行方法500的设备能够访问的存储器中。在一些实施例中,在服务器使用虚拟存储后,服务器删除新的虚拟存储。在其它实施例中,在新虚拟存储使用后预定量时间后或者在新虚拟存储使用后特定事件发生后,删除新的虚拟存储。例如,在一些实施例中,当在虚拟存储使用后接收到针对第三签署证书的验证请求时,删除新的虚拟存储。在另一示例中,在一些实施例中,在虚拟存储使用后的10毫秒、8秒、9秒、12秒、3分钟、8分钟、9分钟、35分钟、50分钟、55分钟、7小时、8小时、11小时、12小时、16小时或3天删除第二虚拟存储。
流程继续到新的验证操作522。操作522类似于验证操作510。在新的验证操作522中,利用来自虚拟存储的证书要求或证书来作出第二签署证书是否有效的判定。在一些实施例中,在标识租户的特定用户(例如,使用标识符)之后,访问来自新的虚拟存储上的证书集合的用户的对应的证书或证书要求。在这些实施例中,通过使用在保存在服务器上作为新的虚拟存储的新的证书集合内列出的用户的证书要求或证书,作出来自用户的第二签署证书是否有效的判定。在这些实施例中,服务器使用来自新的证书集合的用户的证书要求或证书来验证第二签署证书。如果在操作522期间作出第二签署证书无效的判定,则对无效的第二签署证书的通知被发送给发送了第二签名证书验证请求的客户端。如果在操作522期间作出第二签署证书有效的判定,则对有效的第二签署证书的通知被发送给发送了第二签名证书验证请求的客户端。
在可选实施例中,执行方法500的设备不在方法500的操作522期间判定第二签署证书的有效性,而是在操作522期间标识与来自虚拟存储上的新租户的证书集合中的的新租户的用户对应的证书要求或证书,并且将用户的证书要求或证书发送给请求验证第二签署证书的客户端。在该实施例中,客户端使用接收到的证书要求或证书来判定第二签署证书是否有效。在一些实施例中,如果用户的证书与用户的第二签署证书相同,则客户端判定来自新租户的用户的第二签署证书是有效的,而如果用户的证书与用户的第二签署证书不同,则判定来自新租户的用户的签署证书无效。
在替代的实施例中,执行方法500的设备在方法500的操作522期间不判定第二签署证书的有效性,而是在操作522期间将包含新租户证书集合的虚拟存储发送给请求验证的客户端。在这些实施例中,客户端使用从虚拟存储接收到的新证书集合来判定第二签署证书是否有效。客户端可以标识来自证书集合中的列表的用户证书要求或证书,并且使用用户的证书要求或证书来判定用户的签署证书是否有效。在一些实施例中,如果用户的签署证书满足用户的证书要求,则客户端判定来自新租户的用户的第二签署证书是有效的,而如果用户的签署证书不满足用户的证书要求,则判定来自新租户的用户的第二签署证书无效。
虽然方法500针对接收两个签署证书,但是方法500可用于同时地、在重叠的时间和/或在交错的时间处理多个设备(例如,第一租户、第二租户、第三租户、第四租户、第五租户,…第n租户)的多个不同的客户端(例如,第一客户端、第二客户端、第三客户端、第四客户端、第五客户端,…第n客户端)的多个不同的签署的签名。此外,方法500可同时地、在重叠的时间和/或在交错的时间由分布式网络内的多个不同的服务器(第一服务器、第二服务器、第三服务器、第四服务器、第五服务器,…第n服务器)针对一个或多个客户端的来执行。
图6-9以及相关的说明提供了可实践本公开内容实施例的各种操作环境的论述。然而,参考图6-9所示出和论述的设备和系统是为了示例和说明的目的,不是限制可用于实践本文所述的公开内容的实施例的众多计算设备配置。
图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中。
如上所述,多个程序模块和数据文件可存储在系统存储器604内。在处理单元602上执行的同时,程序模块606(例如,验证模块611或电子邮件应用)可以执行处理,包括但不限于如本文所述的实施例。根据本公开内容的实施例可使用的以及尤其是用来生成屏幕内容的其它程序模块可包括电子邮件和通讯录应用,文字处理应用,电子表格应用,数据库应用,幻灯片演示应用,绘图,消息传递应用,和/或计算机辅助应用程序,等等。
此外,本公开内容的实施例可以实现于包括离散电子元件的电路、包含逻辑门的封装或集成电子芯片、使用微处理器的电路或包含电子元件或微处理器的单个芯片上。例如,公开的实施例可以经由片上系统(SOC)来实现,其中图6所示的每一个或多个部件可以集成到单个集成电路上。上述SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,全部都集成(或者“烧”)到芯片基板上作为单个集成电路。当经由SOC操作时,本文所述的关于客户端转换协议的能力的功能可经由与单个集成电路(芯片)上的计算设备600的其它部件集成的专用逻辑单元来操作。本公开内容的实施例还可以利用其它能够执行诸如例如与(AND)、或(OR)和非(NOT)的逻辑运算的技术来实现,包括但不限于机械、光学、流体和量子技术。另外,本公开内容的实施例可在通用计算机或任何其它电路或系统内实现。
计算设备600还可以具有一个或多个输入设备612,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或摆动输入设备等。可包含诸如显示器、扬声器、打印机等的输出设备614。上述设备是示例,可以使用其它设备。计算设备600可包括允许与其它计算设备618通信的一个或多个通信连接616。适合的通信连接616的示例包括但不限于RF发射器、接收器和/或收发机电路系统、通用串行总线(USB)、并行和/或串行端口。
本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括易失性和非易失性的、可移除的和非可移除的介质,它们以用于存储诸如计算机可读指令、数据结构或程序模块的信息的任何方法或技术来实现。系统存储器604、可移除存储设备609以及非可移除存储设备610都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁盒、磁带、磁盘存储或其它磁存储设备、或者任何其它能够用来存储信息且能够由计算设备600访问的制品。任何这样的计算机存储介质可以是计算设备600的部分。计算机存储介质不包括载波或其它传播或调制的数据信号。
通信介质可通过计算机可读指令、数据结构、程序模块或者调制数据信号中的其它数据如载波或其它传输机制来代表,并且包括任何信息输送介质。术语“调制数据信号”可以描述使其一个或多个特点以将信息编码在信号中的方式进行设定或改变的信号。通过示例的方式而不是限制,通信介质可包括诸如有线网或直接接线连接的有线介质以及诸如声波、射频(RF)、红外和其它无线介质的无线介质。
图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端口),用于将信号发送给外部设备或者从外部设备接收信号。
图7B是示出移动计算设备的一个实施例的架构的框图。也即,移动计算设备700可以包含实现一些实施例的系统(例如,架构)702。在一个实施例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、通讯录管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能手机”。在一些实施例中,系统702集成为计算设备,诸如集成个人数字助理(PDA)和无线手机。
一个或多个应用程序766可以加载到存储器762中且运行于操作系统764上或者与操作系统764相关联。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息传递程序等。系统702还包括在存储器762内的非易失性存储区768。非易失性存储区768可以用于存储如果系统702掉电也不应丢失的持久信息。应用程序766可使用非易失性存储器768中的信息,以及将信息存储在非易失性存储器768中,例如电子邮件或由电子邮件应用使用的其它消息,等等。同步应用(未示出)也位于系统702上且被编程为与位于主机计算机上的对应的同步应用交互以保持存储在非易失性存储区768中的信息与存储在主机计算机中的对应信息同步。应当理解,其它应用可加载到存储器762内且运行于移动计算设备700上,包括如本文所述的在多租户环境中验证签署证书的指令(例如,和/或可选验证模块611)。
系统702具有电源770,其可以实现为一个或多个电池。电源770可还包括外部电源,诸如AC适配器或为电池补电或再充电的电力对接托架。
系统702还可以包括执行发送和接收射频通信功能的无线单元772。无线单元772利于系统702与“外界”之间经由通信运营商或服务提供商的无线连接。去往和来自无线单元772的传输是在操作系统764的控制下进行的。换言之,由无线单元772接收到的通信可经由操作系统764传播给应用程序766,反之亦然。
视觉指示器720可用于提供视觉通知,和/或音频接口774可用于经由音频换能器725产生可听的通知。在图示的实施例中,视觉指示器720是发光二极管(LED),音频换能器725是扬声器。这些设备可直接与电源77耦合,使得当被激活时,即使处理器760和其它部件可能被关闭而节约电池电量,这些设备仍在通知机制所规定的持续时间内保持加电。LED可被编程以无限地保持接通,直到用户采取措施来表明设备的加电状况。音频接口774用于提供可听信号给用户以及从用户接收可听信号。例如,除了与音频换能器725耦合之外,音频接口774还可以与麦克风耦合以接收可听输入,诸如利于电话对话。根据本公开内容的实施例,麦克风还可以作为促进对通知的控制的音频传感器,如下文将要说明的。系统702可还包括视频接口776,其使得板上照相机730的操作能够记录静像、视频流等。
实现系统702的移动计算设备700可具有额外的特征或功能。例如,移动计算设备700还可以包括额外的数据存储设备(可移除和/或非可移除),诸如例如磁盘、光盘或磁带。这样的额外的存储由非易失性存储区768图示在图7B中。
由移动计算设备700生成或捕获以及经由系统702存储的数据/信息可本地地存储在移动计算设备700上,如上所述,或者数据可以存储在可通过设备经由无线单元772访问或者经由移动计算设备700与关联移动计算设备700的例如诸如因特网的分布式计算网络中的服务器计算机的单独的计算设备之间的有线连接范围的任意数量的存储介质上。应当理解,这样的数据/信息可经由移动计算设备700通过无线单元772或者经由分布式计算网络来访问。类似地,这样的数据/信息可根据公知的数据/信息传递和存储手段,包括电子邮件和协作数据/信息共享系统,容易地在计算设备之间传递以用于存储和使用。
图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获得内容。
例如本公开内容的实施例在上文是参考根据本公开实施例的方法、系统和计算机程序产品的框图和/或操作示例来描述的。在框中剃刀的功能/动作可以不按任何流程图中所示的顺序而发生。例如,连续显示的两个框实际上可以基本同时执行,或者有时框可以相反的顺序来执行,取决于所涉及到的功能/动作。
在本申请中提供的一个或多个实施例的说明和图示不意在以任何方式限制或限定如权利要求的本公开的范围。在本申请中提供的实施例、示例和细节被认为足以传达占有且使得其它人能够实现和使用权利要求公开的最佳方式。权利要求的公开内容不应解释为局限于本申请中提供的任何实施例、示例或细节。无论在组合地还是单独地显示和描述,各特征(结构以及方法的)意在选择性地被包含或省略以产生具有特定特征集合的实施例。已经提供了本申请的描述和图示,本领域技术人员可构思落入本申请中具体体现的总的发明构思的较宽方面的精神内而没有偏离权利要求公开内容的较宽范围的变型例、修改和替代的实施例。

Claims (15)

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所述的系统,其中,所述分布式网络上的所述第一租户存储接收来自第一租户管理员的一组证书,以形成所述第一租户证书集合。
CN201580006455.7A 2014-01-31 2015-01-28 基于租户的签名验证 Active CN105940657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910405736.XA CN110266643B (zh) 2014-01-31 2015-01-28 基于租户的签名验证

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461934490P 2014-01-31 2014-01-31
US61/934,490 2014-01-31
US14/491,051 US9565198B2 (en) 2014-01-31 2014-09-19 Tenant based signature validation
US14/491,051 2014-09-19
PCT/US2015/013159 WO2015116609A1 (en) 2014-01-31 2015-01-28 Tenant based signature validation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910405736.XA Division CN110266643B (zh) 2014-01-31 2015-01-28 基于租户的签名验证

Publications (2)

Publication Number Publication Date
CN105940657A true CN105940657A (zh) 2016-09-14
CN105940657B CN105940657B (zh) 2019-06-11

Family

ID=53755817

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910405736.XA Active CN110266643B (zh) 2014-01-31 2015-01-28 基于租户的签名验证
CN201580006455.7A Active CN105940657B (zh) 2014-01-31 2015-01-28 基于租户的签名验证

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910405736.XA Active CN110266643B (zh) 2014-01-31 2015-01-28 基于租户的签名验证

Country Status (4)

Country Link
US (1) US9565198B2 (zh)
EP (1) EP3100431B1 (zh)
CN (2) CN110266643B (zh)
WO (1) WO2015116609A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110299997A (zh) * 2018-03-23 2019-10-01 众议科技股份有限公司 具有证明的凭证的发行方法与系统
CN111131207A (zh) * 2019-12-13 2020-05-08 新华三大数据技术有限公司 分布式任务中的证书校验方法、装置及服务器

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT2632096T (pt) * 2012-02-21 2017-06-07 Lleidanetworks Serveis Telemàtics S A Método de certificação da entrega de mensagens eletrónicas
US10524122B2 (en) 2014-01-31 2019-12-31 Microsoft Technology Licensing, Llc Tenant based signature validation
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US10749854B2 (en) * 2015-11-12 2020-08-18 Microsoft Technology Licensing, Llc Single sign-on identity management between local and remote systems
JP6728706B2 (ja) * 2016-01-21 2020-07-22 富士ゼロックス株式会社 情報処理システム、情報処理装置及び情報処理プログラム
US10565664B2 (en) * 2016-06-07 2020-02-18 International Business Machines Corporation Controlling access to a vault server in a multitenant environment
US10554418B2 (en) 2016-06-24 2020-02-04 General Electric Company Routing cloud messages using digital certificates
US10320572B2 (en) * 2016-08-04 2019-06-11 Microsoft Technology Licensing, Llc Scope-based certificate deployment
CN107959689B (zh) * 2018-01-10 2020-09-25 北京工业大学 一种云平台租户网络隔离测试方法
US10848323B2 (en) * 2018-05-24 2020-11-24 Microsoft Technology Licensing, Llc Efficient certificate revocation list validation in multi-tenant cloud services
US11044337B2 (en) * 2018-09-12 2021-06-22 International Business Machines Corporation Runtime localized messages for cloud services
US20220237097A1 (en) * 2021-01-22 2022-07-28 Vmware, Inc. Providing user experience data to tenants
US20230283593A1 (en) * 2022-03-02 2023-09-07 Venafi, Inc. Systems and methods for providing access to applications and services running on a private network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265579A (zh) * 2009-01-05 2011-11-30 国际商业机器公司 不进行密码共享情况下的安全系统访问
US20120224690A1 (en) * 2011-03-02 2012-09-06 Ibm Corporation Cross Enterprise Communication
US20130198511A1 (en) * 2012-01-27 2013-08-01 Microsoft Corporation Implicit ssl certificate management without server name indication (sni)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127741B2 (en) * 1998-11-03 2006-10-24 Tumbleweed Communications Corp. Method and system for e-mail message transmission
US8336089B1 (en) 2007-12-21 2012-12-18 Emc Corporation Method and apparatus for providing authentication and encryption services by a software as a service platform
US8539234B2 (en) * 2010-03-30 2013-09-17 Salesforce.Com, Inc. Secure client-side communication between multiple domains
CN102236762A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 用于处理对多租户应用的文件访问的方法和文件代理装置
US8707420B2 (en) 2010-05-21 2014-04-22 Microsoft Corporation Trusted e-mail communication in a multi-tenant environment
US9965613B2 (en) * 2010-12-03 2018-05-08 Salesforce.Com, Inc. Method and system for user session discovery
US20120144501A1 (en) * 2010-12-03 2012-06-07 Salesforce.Com, Inc. Regulating access to protected data resources using upgraded access tokens
US8903884B2 (en) 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
US9660810B2 (en) * 2011-04-15 2017-05-23 Nokia Technologies Oy Method and apparatus for providing secret delegation
US8819801B2 (en) 2011-10-31 2014-08-26 Microsoft Corporation Secure machine enrollment in multi-tenant subscription environment
US8924723B2 (en) 2011-11-04 2014-12-30 International Business Machines Corporation Managing security for computer services
US8819210B2 (en) * 2011-12-06 2014-08-26 Sap Portals Israel Ltd Multi-tenant infrastructure
US8584215B2 (en) * 2012-02-07 2013-11-12 Cisco Technology, Inc. System and method for securing distributed exporting models in a network environment
US20140052877A1 (en) * 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9369456B2 (en) * 2012-09-21 2016-06-14 Intuit Inc. Single sign-on in multi-tenant environments
US8875166B2 (en) * 2012-11-08 2014-10-28 Sharp Laboratories Of America, Inc. Method and cloud security framework for implementing tenant license verification
US9154488B2 (en) * 2013-05-03 2015-10-06 Citrix Systems, Inc. Secured access to resources using a proxy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265579A (zh) * 2009-01-05 2011-11-30 国际商业机器公司 不进行密码共享情况下的安全系统访问
US20120224690A1 (en) * 2011-03-02 2012-09-06 Ibm Corporation Cross Enterprise Communication
US20130198511A1 (en) * 2012-01-27 2013-08-01 Microsoft Corporation Implicit ssl certificate management without server name indication (sni)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110299997A (zh) * 2018-03-23 2019-10-01 众议科技股份有限公司 具有证明的凭证的发行方法与系统
CN111131207A (zh) * 2019-12-13 2020-05-08 新华三大数据技术有限公司 分布式任务中的证书校验方法、装置及服务器
CN111131207B (zh) * 2019-12-13 2021-12-07 新华三大数据技术有限公司 分布式任务中的证书校验方法、装置及服务器

Also Published As

Publication number Publication date
CN105940657B (zh) 2019-06-11
CN110266643B (zh) 2021-11-23
US9565198B2 (en) 2017-02-07
EP3100431B1 (en) 2018-02-28
EP3100431A1 (en) 2016-12-07
CN110266643A (zh) 2019-09-20
WO2015116609A1 (en) 2015-08-06
US20150222643A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
CN105940657A (zh) 基于租户的签名验证
CN104915835B (zh) 信用账户创建装置、系统和方法
CN110169009A (zh) 隔离的集合中的密码操作
US20190386940A1 (en) Method for providing recording and verification service for data received and transmitted by messenger service, and server using method
CN108293045A (zh) 本地和远程系统之间的单点登录身份管理
US9947236B2 (en) Apparatus, system, and method for a virtual instruction cloud
CN109831456A (zh) 消息推送方法、装置、设备及存储介质
CN102132286B (zh) 使用身份上下文信息,对文档进行数字签名
CN104917796B (zh) 信用账户创建装置、系统和方法
US20180089451A1 (en) Tokenized links with granular permissions
US9516009B2 (en) Authenticating redirection service
CN109635572A (zh) 一种基于区块链的合约签订方法、装置及终端设备
JP2008225527A (ja) 「家、家庭」を参加単位とするコミュニケーションおよびワークフローを実現するための、システム管理者に権限が集中しない、汎用的で安全なホーム・コンピューティング・プラットフォーム
CN108763967A (zh) 获取设备证书的系统、方法、装置及存储介质
CN102902934B (zh) 主机不可知集成和互操作系统
CN110140325A (zh) 在成员更改时经由密钥对对话进行部分加密
US20200412561A1 (en) Web conference replay association upon meeting completion
Ermoshina et al. “Standardising by running code”: the Signal protocol and de facto standardisation in end-to-end encrypted messaging
Bella et al. Service security and privacy as a socio-technical problem
US20220116203A1 (en) Ultrasound split key transmission for enhanced security
CN110168554A (zh) 云托管系统中的强资源身份
CN105052105A (zh) 为不同服务器间的单一登录使用x.509验证
US20210135876A1 (en) Blockchain-enabled contact center
US20210135856A1 (en) Blockchain-enabled contact center
CN106233287B (zh) 对大型数据集的数据库查询的管理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant