专利名称:为获取解密密钥而请求密钥获取的安全电子消息系统的制作方法
为获取解密密钥而请求密钥获取的安全电子消息系统
相关申请的交叉参考 本申请请求于2007年3月20日提交的美国临时申请No. 60/918, 902的优先权,其全部内容通过引用合并于此。
背景技术:
加密(用于防止窃听)和客户端认证(用于验证发送方和接收方的身份)的组合可以减少,但不能消除,与互联网通信有关的安全问题。用于进行上述的一种技术称作公共密钥设施或PKI。但是,PKI没有很好地扩展到大型机构。管理加密密钥的另一个技术是使客户端管理加密密钥。然而,随着消息接收方数目的增长,客户端保持跟踪所需的加密密钥的破解号码是有时间困难的。
结合附图,参照以下详细描述,公开主题的上述方面和许多附带优点将更变得容易认识也更好理解,其中 图1A是示出了根据本发明各个实施例的用于发送和接收安全电子邮件的示例客户端设备的框图; 图1B是示出了根据本发明各个实施例的用于认证客户端和管理加密密钥的示例密钥服务器的框图; 图2是示出了根据本发明各个实施例的用于安全交换加密密钥以及发送和接收安全电子邮件的示例网络通信系统的框图;以及 图3A-3H示出了根据本发明各个实施例的用于管理加密密钥以发送并接收安全电子邮件的示例方法的处理图。
具体实施例方式
图1A示出了适合于发送和接收安全电子邮件的客户端设备100。客户端设备100可以采用多种不同的形式。例如,客户端设备100的一种适合的形式可以是通用桌上型计算机,而客户端设备100的其他适和的形式可以是移动电话、膝上型计算机、PDA、视频游戏机等。 客户端设备100包括电子邮件客户端102。电子邮件客户端102可以是适合于发送互联网电子邮件的任何电子邮件客户端程序,例如OUTLOOK⑧E邓ress 。本发明的实施例中,电子邮件客户端102是大众市场电子邮件客户端程序,例如允许用户发送安全电子邮件,而无需额外的培训并不需要实质软件开发工作。在一个实施例中,电子邮件客户端102被定制用于发送和接收安全电子邮件。 客户端设备100还包括安全邮件系统104。安全邮件系统104包括客户端加密器/解密器106。客户端加密器/解密器106对客户端设备100和密钥服务器110之间的通信进行加密和解密,以及对发送到其他客户端设备的电子邮件进行加密和解密。安全邮件系统104的一个实施例中也包括安全邮件驱动器108。安全邮件驱动器108请求和接收来自密钥服务器110的加密密钥,并以其他方式管理发送安全电子邮件的过程。
图IB示出了密钥服务器110。密钥服务器110对客户端设备100进行注册、对客户端设备100进行认证、以及响应于来自包括已注册、认证的客户端设备100在内的任何客户端设备的密钥请求。密钥服务器110以通信的方式耦合至密钥数据库122,其中密钥服务器110在密钥数据库122中为每个已注册的客户端设备100存储识别信息。该识别信息可包括公共加密密钥,该公共加密密钥与客户端设备100相关联,并用于客户端设备100与密钥服务器110之间的安全通信。本领域的技术人员将认识到密钥数据库122可以驻留在与密钥服务器110相同的硬件上,或与密钥服务器110不同的硬件上。 密钥服务器110还包括客户端注册器112。客户端注册器112通过接收客户端设备100的公共加密密钥并将其存储在密钥数据库122中,来对每个客户端设备100进行注册。该注册还可以包括将与客户端设备100相关的用户证书(例如用户姓名和密码)以及客户端设备100的公共加密密钥存储在密钥数据库122中。 密钥服务器110还包括密钥请求处理器116。密钥请求处理器116对由客户端设备100提交的随机共享密钥请求进行处理。密钥服务器110还包括对客户端设备100的身份进行验证的客户端验证器118。换言之,客户端验证器118确定客户端设备100是否事实上是与随机共享密钥的给定请求相关的客户端设备100。 密钥服务器110还包括适合于处理安全通信的组件。这些组件包括服务器加密器/解密器114和随机数据发生器120。服务器加密器/解密器114对密钥服务器110与客户端设备100之间的通信进行加密和解密。随机数据发生器120,响应于对来自客户端设备100的请求的接收,产生用作消息ID的随机数据。随机数据发生器120还响应于来自客户端设备100的针对这样密钥的请求,产生加密密钥,包括针对密钥服务器110的一对公共和私有密钥以及随机共享密钥。 图2示出了用于管理加密密钥以及发送和接收安全电子邮件的示例系统200。发送方202和接收方214是客户端设备,例如客户端设备100。在一个实施方式中,发送方202和接收方214在发送或接收安全邮件之前,向密钥服务器110注册。在该注册过程中,每个客户端设备100产生密钥对,包括公共密钥和私有密钥,并将公共密钥发送到密钥服务器110。密钥服务器110存储注册客户端设备100的该公共密钥,并将密钥服务器110的公共密钥发送给注册客户端设备100。 —旦注册完成,为了发送一件受保护的电子邮件,发送方202向密钥服务器110请求随机共享密钥。密钥服务器110首先基于诸如授权给特定发送方202的许可、消息的预期收件方的状态等因素,确定是否允许发送方202发送安全电子邮件。如果允许发送方202向预期接收方发送安全电子邮件,则密钥服务器IIO产生消息ID和随机共享密钥204。密钥服务器110安全地将消息ID和随机共享密钥204发送到发送方202。发送方202使用随机共享密钥对消息进行加密、将消息ID添加至已加密的消息、以及将受保护电子邮件206发送到发送邮件服务器208。发送邮件服务器208可以是能够发送互联网电子邮件的任何适合类型的服务器,例如SMTP服务器。发送邮件服务器208经由网络(例如,互联网210)将受保护的电子邮件206传送到接收邮件服务器212。接收邮件服务器212可以是能够接收互联网电子邮件并将互联网电子邮件分发到接收客户端的任何适合类型的服务器,例如IMAP服务器或P0P3服务器。 本领域技术人员公认发送邮件服务器208和接收邮件服务器212可以是相同的服
务器。本领域的技术人员还公认发送邮件服务器208和接收邮件服务器212可以是位于相
同局域网的分离的服务器,因此无需通过互联网210发送受保护的电子邮件206。 在系统200的一个实施例中,发送方202不对传递受保护的电子邮件206所需的
报头进行加密。因此,发送邮件服务器208和接收邮件服务器212不需要参与到系统200
中的任何特殊知识或配置,而是可以用与任何其他电子邮件相同的方式路由和分发受保护
的电子邮件206。 接收方214从接收邮件服务器212接收受保护的电子邮件206。接收方214从受 保护的电子邮件206中提取消息ID,并使用消息ID向密钥服务器110请求随机共享密钥 204。如果密钥服务器110验证接收方214是受保护电子邮件206的预期接收方,则密钥服 务器110用对消息进行加密的随机共享密钥204来响应。接收方214然后使用该随机共享 密钥204对受保护电子邮件206的内容进行解密。 在本系统200的实施例中,受保护电子邮件206的内容是由发送方202加密的。在 实施例中,密钥服务器110避免持有受保护电子邮件206的内容,但持有随机共享密钥204 和预期接收方的列表。因此,如果恶意第三方要接入到密钥服务器IIO,则恶意第三方将无 法获得受保护电子邮件206的内容。本系统200也是灵活的。虽然这里主要关于发送和接 收受保护电子邮件206进行了描述,但是系统200的其他实施例可以用于交换其他形式的 电子通信,例如即时消息,文本消息等。 图3A-3H示出了用于为发送和接收安全电子邮件而对加密密钥进行管理的方法 300。从开始框开始,方法300接续至在继续端点("端点A")和输出端点("端点B")之 间定义的方法步骤集合304。方法步骤集合304描述了向密钥服务器110注册客户端设备 100的方法。从端点A(图3B),方法300前进至方框312,在方框312中,在客户端设备100 上安装安全邮件系统104。接着,在方框314,安全邮件系统104向客户端设备100分配登 陆名和密码。在一个实施例中,安全邮件系统104提示客户端设备100的用户输入登陆名 和/或密码。在另一实施例中,无需用户参与,安全邮件系统104自动向客户端设备100分 配登陆名和密码。在又一实施例中,安全邮件系统104从单独的设备接收登陆名和密码。
方法300然后前进至方框316,在方框316中,安全邮件系统104产生客户端公共 密钥和客户端私有密钥。在一个实施例中,然后客户端设备ioo存储客户端私有密钥用于 以后使用。接着,在方框318,安全邮件系统104产生包含客户端公共密钥的注册请求,在方 框320,安全邮件系统104将注册请求发送至客户端注册器112。 随后,在方框322,客户端注册器112产生服务器公共密钥和服务器私有密钥,并 将服务器公共密钥、服务器私有密钥和客户端公共密钥存储在密钥数据库122中。在一个 实施例中,如果已经为密钥服务器110产生了服务器公共密钥和服务器私有密钥,则客户 端注册器112不产生服务器公共密钥和服务器私有密钥。在另一实施例中,为向客户端注 册器112注册的每个客户端设备100产生新的服务器公共密钥和新的服务器私有密钥。在 产生并存储了这些密钥后,方法300继续至方框324,在方框324中,客户端注册器112向客 户端设备100发送服务器公共密钥,然后继续至端点B。 从端点B (图3A),方法300前进至在继续端点("端点C")和输出端点("端点D")之间定义的方法步骤集合306。方法步骤集合306描述了对保护电子邮件进行加密和 发送的方法。 从端点C(图3C),方法300前进至方框326,在方框326中,发送方202上的安全 邮件驱动器108通过认证登陆名和密码来对客户端设备100进行认证。方法300然后前进 行至方框328,在方框328中,电子邮件客户端102接收发送消息的命令,并将消息传递至 安全邮件系统104。接着,在方框330,客户端加密器/解密器106从消息中提取预期接收 方的列表和发送方202的身份。方法300然后前进至方框332,在方框332中,安全邮件驱 动器108产生用于消息ID和随机共享密钥的请求,该请求包括预期接收方的列表和发送方 202的身份。方法300然后将该请求发送至密钥服务器110。 在一个实施例中,由安全邮件驱动器108产生的请求以安全的方式发送到密钥服 务器IIO。为此,安全邮件驱动器108使用密钥服务器110的公共密钥对请求进行加密。密 钥服务器IIO,一旦接收到请求,就使用密钥服务器110的私有密钥对请求进行解密。在另 一实施例中,不同的加密协议用于保护安全邮件驱动器108和密钥服务器110之间的通信。
方法300随后进行方框334,在方框334中,客户端验证器118对发送方202的身 份进行认证。对发送方202身份的验证可以通过多种适合的技术来实现。 一种适合的技术 包括RSA验证程序,但是可以使用其他适合的验证程序。 方法300然后前进至方框336,在方框336中,密钥请求处理器116将预期接收方 列表分成安全接收方列表和不安全接收方列表。在一个实施例中,密钥请求处理器116基 于接收方是否向密钥服务器IIO注册,或在密钥数据库122中是否找到与预期接收方相关 的信息,来确定哪些接收方是安全接收方,哪些接收方是不安全接收方。在另一实施例中, 发送方202负责确定哪些接收方是安全接收方,哪些接收方是不安全接收方。方法300然 后前进至另一继续端点("端点C1")。 从端点Cl开始(图3D),方法300前进至判定框338,在判定框338中,执行测试 以确定不安全接收方列表是否为空。如果在判定框338的测试结果为是,则方法前进至方 框338,在方框338中,认为接收列表是经过验证的。由于存在安全接收方,并不存在不安 全接收方,认为接收列表是经过验证的,方法300最终将消息的加密版本发送至所有预期 接收方。方法300然后前进至另一继续端点("端点C3")。否则,如果在判定框338的测 试结果为否,则方法300前进至判定框340,在判定框340中,执行测试以确定安全列表是 否为空。如果在判定框340的测试结果为是,则方法300然后前进至方框342,在方框342 中,密钥请求处理器116选择性地验证接收方列表。在这时,方法300已确定将消息发送给 不安全接收方并不发送给安全接收方。方法300基于安全策略判定是否允许发送方202将 未加密消息发送给不安全接收方。方法300,假设安全策略允许发送消息,然后前进至端点 C3。否则,如果在判定框340的测试的答案为否,则方法300前进至另一继续端点("端点 C2")。 从端点C2 (图3E),方法300继续至判定框344,在判定框344中,执行测试以确 定消息是否需要加密。如果在判定框344的测试的结果为是,则方法300前进至方框346。 在方框346,由于消息的接收方包括安全和不安全接收方,密钥请求处理器116拒绝消息发 送;因此,由于消息是要安全发送的,不能够将消息发送到不安全的接收方。方法300然后 继续至端点F并结束。否则,如果在判定框344的测试的结果为否,则方法300前进至方框348。密钥请求处理器116至少实质上确保将消息的加密副本发送至安全列表接收方,将未 加密版本的消息发送至不安全列表接收方。方法300然后前进至端点C3。
从端点C3,方法300前进至方框350,在方框350中,密钥请求处理器116检查发送 方202允许产生随机共享密钥。这样,密钥服务器110的系统管理员能够至少实质上确保 授权用户能够发送加密消息,而未授权用户不能够发送加密消息。这还允许系统管理员至 少实质上确保,例如,授权如此进行的发送方发送代表公司CEO的保护电子邮件。接着,方 法300前进至方框352,,在方框352中,如果发送方202具有许可,则密钥请求处理器116 从随机数据发生器120获得消息ID和随机共享密钥,并将其连同接收者列表存储在密钥数 据库122中。方法300然后前进至另一继续端点("端点C4")。 从端点C4开始(图3F)方法300前进至方框354,在方框345中,服务器加密器 /解密器114使用已存储的发送客户端公共密钥对消息ID和随机共享密钥进行加密,并且 密钥请求处理器116将其发送给发送方202。使用已存储的发送客户端公共密钥对消息ID 和随机共享密钥204的加密还至少实质上确保消息ID和随机共享密钥204的安全。方法 300然后前进至方框356,在方框356中,客户端加密器/解密器106使用发送客户端私有 密钥对消息ID和随机共享密钥204进行解密,并使用已解密的共享密钥对消息进行加密。 从那开始,方法300前进至方框358,在方框358中,安全邮件驱动器108将消息ID添加至 加密消息的未加密报头,并将受保护电子邮件206发送到用于传送的发送邮件服务器208。 这样,除了消息ID(被接收方214请求以从密钥服务器110获得随机共享密钥)以外,对消 息的内容进行加密并防止未授权第三方查看。方法300然后前进至另一继续端点("端点 D")。 从端点D开始(图3A),方法300前进至在端点E和端点F之间定义的方法步骤 集合308。方法步骤集合308描述了,方法300获得随机共享密钥并对所接收的受保护电 子邮件进行解密。从端点E开始(图3G),方法300继续至方框360,在方框360中,接收方 214的电子邮件客户端102从接收邮件服务器212接收受保护电子邮件206并将其转发至 安全邮件系统104以进行解密。方法300前进至方框362,在方框362中,接收方214的安 全邮件驱动器108建立与密钥服务器110的连接。在一个实施例中,接收方214联系的密 钥服务器110与发送方202联系的密钥服务器是相同的密钥服务器。在另一实施例中,接 收方214联系的密钥服务器110与发送方202联系的密钥服务器是不同的,但是两个密钥 服务器共享密钥数据库122。 方法300接着前进至方框364,在方框364,接收方214的安全邮件驱动器108向 密钥服务器110发送密钥请求,密钥请求包括消息ID。接收方214的安全邮件驱动器108 从受保护电子邮件206中提取针对该密钥请求的消息ID。方法300然后前进至方框366, 在方框366中,客户端验证器118对接收方214的身份进行验证。如上所述,这可以通过多 种验证程序中的任何一种来进行。 方法300然后前进至方框368,在方框368中,密钥请求处理器116使用消息ID确 定接收方214是否是受保护电子邮件206的预期接收方。如果接收方214不是受保护电子 邮件206的预期接收方,则方法300结束,并且接收方214将不能对保护电子邮件206进行 解密。如果接收方214是保护电子邮件206的预期接收方,则方法300进行至另一继续端 点("端点E1")。
从端点El开始(图3H),方法300前进至方框370,在方框370中,密钥请求处理 器116从密钥数据库122获取与消息ID相对应的随机共享密钥。方法300然后前进至方 框372,在方框370中,服务器加密器/解密器114从密钥数据库122获取接收方214的客 户端公共密钥,并使用接收方214的客户端公共密钥对随机共享密钥进行加密。和发送方 202与密钥服务器110之间的通信一样,这允许密钥服务器110与接收方214之间的通信 是安全的。方法300然后前进至方框374,在方框374中,密钥请求处理器116将加密的随 机共享密钥204发送给接收方214。接着,方法300前进至方框376,在方框376中,客户端 加密器/解密器106使用接收方214的客户端私有密钥对随机共享密钥进行解密,并使用 解密的随机共享密钥对受保护电子邮件206进行解密。接着,在方框378,安全邮件驱动器 108将解密的消息返回给电子邮件客户端102。从方框378开始,方法300前进至端点F并 结束。 虽然示意并描述了示意性实施例,但可以认识到,在不背离权利要求主旨的精神 和范围的前提下,可以进行各种改变。
权利要求
一种系统,包括被配置为在计算机上执行的密钥服务器,所述密钥服务器被配置为,如果发送方已向密钥服务器注册,则通过产生与要进行通信的消息有关的消息标识符和用于对发送方的消息进行加密的随机共享密钥,编程响应于发送方请求,密钥服务器还被配置为,如果接收方已向密钥服务器注册,则通过提取用于对消息进行解密的随机共享密钥,来编程响应于接收方,接收方向密钥服务器提供消息标识符,并且接收方是消息的预期接收方。
2. 根据权利要求1所述的系统,其中,密钥服务器包括被配置为在计算机上执行的客 户端注册器,所述客户端注册器被配置为,通过存储发送方标识符、接收方标识符、与发送 方相关联的公共密钥以及与接收方相关联的公共密钥来注册发送方和接收方。
3. 根据权利要求1所述的系统,其中,密钥服务器还包括被配置为在计算机上执行的 密钥请求处理器,所述密钥请求处理器被配置为,将消息的预期接收方列表分成安全接收 方列表和不安全接收方列表,如果存在至少一个不安全接收方,则所述密钥请求处理器选 择性地处理发送方请求。
4. 根据权利要求1所述的系统,其中,密钥服务器还包括被配置为对发送方身份或接 收方身份进行验证的客户端验证器。
5. 根据权利要求1所述的系统,其中,密钥服务器还包括被配置为产生适合用作消息 标识符或随机共享密钥的数据的随机数据发生器。
6. 根据权利要求1所述的系统,其中,密钥服务器还包括被配置为对来自发送方或接 收方的通信进行解密并对去往接收方或发送方的通信进行加密的服务器加密器/解密器。
7. 根据权利要求6所述的系统,其中,密钥服务器还包括被配置为存储发送方标识符、 接收方标识符以及与发送方和接收方相关联的公共密钥的密钥数据库,其中,服务器加密 器/解密器被配置为,使用在密钥数据库中存储的信息对来自和去往发送方或接收方的通 信进行加密和解密。
8. 根据权利要求1所述的系统,还包括发送方或接收方在其上执行的客户端设备,所 述客户端设备包括用于发送或接收消息的电子邮件客户端。
9. 根据权利要求8所述的系统,其中,客户端设备还包括被配置为响应于发送方发送消息的命令以建立与密钥服务器的连接的安全邮件驱动器,所述安全邮件驱动器向密钥服 务器发送对消息标识符和随机共享密钥的请求。
10. 根据权利要求9所述的系统,其中,客户端设备还包括被配置为使用发送方的私有 密钥或接收方的私有密钥对随机共享密钥进行解密的客户端加密器/解密器,所述客户端 加密器/解密器还被配置为,在向接收方发送消息之前,使用随机共享密钥对消息进行加 密。
11. 一种用于分发密钥的由计算机执行的方法,包括响应于已注册的发送客户端设备的请求,产生并发送随机共享密钥和消息标识符;以及响应于已注册的接收客户端设备的请求,发送随机共享密钥,所述已注册的接收客户 端设备的请求包括消息标识符。
12. 根据权利要求11所述的方法,还包括确定已注册发送客户端设备是否被正确授 权以发送请求,如果为否,则拒绝响应于已注册的发送客户端设备的请求发送随机共享密钥和消息标识符。
13. 根据权利要求11所述的方法,还包括接收并存储来自已注册的发送客户端设备 的预期接收方列表。
14. 根据权利要求11所述的方法,还包括确定已注册的接收客户端设备是否与预期 接收方列表相关联,如果为否,则拒绝响应于已注册的接收客户端设备的请求发送随机共 享密钥。
15. 根据权利要求11所述的方法,还包括在将随机共享密钥和消息标识符发送给已 注册的发送客户端设备之前,对随机共享密钥和消息标识符进行加密。
16. 根据权利要求11所述的方法,还包括在将随机共享密钥发送给已注册的接收客 户端设备之前,对随机共享密钥进行加密。
17. —种计算机可读介质,其上存储有计算机可执行指令,用于实现分发密钥的计算机 可实现方法,所述方法包括对发送客户端设备和接收客户端设备进行注册,响应于发送客户端设备的请求,产生并发送随机共享密钥和消息标识符;以及 响应于接收客户端设备的请求,发送随机共享密钥,所述接收客户端设备的请求包括 消息标识符。
18. 根据权利要求15所述的计算机可读介质,所述方法还包括确定发送客户端是否 被正确授权以发送请求,如果为否,则拒绝响应于发送客户端设备的请求来发送随机共享 密钥和消息标识符。
19. 根据权利要求15所述的的计算机可读介质,所述方法还包括接收并存储来自发 送客户端设备的预期接收方列表。
20. 根据权利要求15所述的的计算机可读介质,所述方法还包括确定接收客户端设 备是否与预期接收方列表相关联,如果为否,则拒绝响应于接收客户端设备的请求发送随 机共享密钥。
全文摘要
本发明提供了一种被配置为在计算机上执行的密钥服务器。密钥服务器还被配置为,如果发送方已向密钥服务器注册,则通过产生与将要进行通信的消息有关的消息标识符和用于对发送方的消息进行加密的随机共享密钥,编程响应发送方的请求。密钥服务器还被配置为,如果接收方已向密钥服务器注册,则通过提取用于对消息进行解密的随机共享密钥,编程响应接收方,接收方向密钥服务器提供消息标识符,并且接收方是该消息的预期接收方。
文档编号H04L9/08GK101715638SQ200880008815
公开日2010年5月26日 申请日期2008年3月20日 优先权日2007年3月20日
发明者弗拉基米尔·爱德华多维奇·什马科夫, 德米特里·弗拉季斯拉沃维奇·丘普罗夫 申请人:迪姆威奇软件有限责任公司