CN102077213B - 用于确保通信的认证和完整性的技术 - Google Patents

用于确保通信的认证和完整性的技术 Download PDF

Info

Publication number
CN102077213B
CN102077213B CN200980125617.3A CN200980125617A CN102077213B CN 102077213 B CN102077213 B CN 102077213B CN 200980125617 A CN200980125617 A CN 200980125617A CN 102077213 B CN102077213 B CN 102077213B
Authority
CN
China
Prior art keywords
module
key
verify data
response
shared secret
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.)
Active
Application number
CN200980125617.3A
Other languages
English (en)
Other versions
CN102077213A (zh
Inventor
W-P·S·苏
T·苏拉米
M·扎戈尔斯基
M·张
B·帕尔曼
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 Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41445167&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN102077213(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102077213A publication Critical patent/CN102077213A/zh
Application granted granted Critical
Publication of CN102077213B publication Critical patent/CN102077213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • 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
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/16Automatic or semi-automatic exchanges with lock-out or secrecy provision in party-line systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明描述了用于确保接收到的消息的数据完整性和认证的技术。一种技术包括从第一模块向第二模块发送请求,其中请求包括作为用公钥加密的共享密钥的第一部分,由该第二模块从诸如许可证信息存储的包括关于该第一模块的许可证信息或其他应用程序专用的信息的安全且可信的信息存储中获取私钥,使用该私钥来解密该第一部分并且获取共享的秘密,从该第二模块向该第一模块发送响应,其中所述响应包括认证数据和至少一个数据项,该数据项与该共享的秘密一起用于确定该认证数据,以及由该第一模块执行验证处理以验证包括在该响应中的认证数据。

Description

用于确保通信的认证和完整性的技术
背景
消息可以在客户机即发起请求的实体、和服务器即响应请求的实体之间传递。客户机可以将请求消息发送给服务器,而服务器可以将响应消息发送给客户机。客户机和服务器可以是例如两台计算机或同一台计算机***上的两个模块等。存在有关在客户机和服务器之间交换消息的数据完整性和真实性的问题。客户机和服务器之一或两者可能会关心所交换的信息的数据完整性和真实性。数据完整性可以涉及消息内容和确保接收到的消息不是原始消息的经修改的版本。真实性可以涉及对发送者的认证,因为接收到的消息可能是由除了期望的发送者之外的实体生成的。结合客户机接收到的响应,攻击者可以截取和修改原本从服务器发送的响应。由此,客户机接收具有已经被修改的内容的响应。攻击者也可以引入意在成为生成响应的服务器的另一实体,而非截取原本由服务器发送的响应。后者可例如在攻击者引入代替服务器发送和接收消息的模块的情况下发生。相似地,结合服务器接收到的请求,攻击者可以截取并修改原始的请求,或者攻击者可以用其他方式引入代替请求者发送和接收消息的模块。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
描述了用于确保第一模块从第二模块接收到的通信的真实性和数据完整性的技术。依照本发明的一方面,第一模块使用非对称密钥对的公钥来加密共享的秘密,并且将经加密的共享的秘密发送给第二模块。第二模块从诸如许可证信息存储的安全和可信的信息存储中检索非对称密钥对的私钥,并且使用该私钥来获取共享的秘密以便为从第二模块发送到第一模块的消息生成认证数据。第一模块使用共享的秘密来执行验证处理。依照本发明的另一方面,第二模块使用从许可证信息存储或其他安全且可信的信息存储获取的非对称密钥对的私钥来为从第二模块发送到第一模块的消息生成数字签名。第一模块使用非对称密钥对的公钥执行验证处理。
附图简述
结合附图阅读以下对本发明的示例性实施例的详细描述,本发明的特征和优点将变得更加显而易见,其中:
图1是结合本文所述的技术可以在实施例中使用的环境的示例;
图2是可以包括在实施例中并且可以结合执行本文中的技术使用的组件的示例;
图3是可以在执行本文的技术的实施例中使用的请求的示例性表示;
图4是响应和如何在使用本文的技术的实施例中确定响应中包括的认证数据的示例性表示;
图5和6是可以在使用本文的技术的实施例中执行的处理步骤的流程图;
图7是可以在执行本文的技术的实施例中使用的另一请求的示例性表示;
图8是另一响应和如何在使用本文的技术的实施例中确定响应中包括的认证数据的示例性表示;
图9和10是可以在使用本文的技术的另一实施例中执行的处理步骤的流程图。
详细描述
参考图1,所示的是其中可以实现使用本文中所述的技术的实施例的合适的计算环境的示例。图1中示出的计算环境仅是合适的计算环境的一个示例,并不旨在对本文中描述的技术的使用范围或功能提出任何限制。本领域的技术人员可以理解本文描述的技术适用于与其他通用或专用计算环境和配置一起使用。公知的计算***、环境、和/或配置的示例包括但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器***、基于多处理器的***、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括任何以上***或设备的分布式计算环境等等。
本文中所述的技术可在由一个或多个计算机或其他设备执行的诸如程序模块的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以按照各实施例所需的结合或分布。
包括在图1中的是计算机12、网络14和服务器16。计算机12可以包括可用于执行一个或多个程序模块的标准的、市场上可购买的计算机或专用计算机。在以下各节和各附图中更详细描述的是可以结合使用本文描述的技术确保接收到的通信的完整性和认证的由计算机12执行的程序模块。计算机12可以在网络化环境中运作并且与诸如服务器16以及在图1中未示出的其它计算机通信。
本领域的技术人员会理解虽然计算机12在示例中被示为在网络化环境中通信,但是计算机12可以使用不同的通信介质与其它组件通信。例如,计算机12可以使用网络连接和/或包括但不限于因特网、内联网或其它无线和/或硬连线连接的本领域公知的其它类型的链接与一个或多个组件通信。
如在图1中所示,计算机12可以包括一个或多个处理单元20、存储器22、存储30和用于便于在计算机12的组件以及图1未示出的其它组件之间的通信的***总线32。
根据计算机12的配置和类型,存储器22可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或两者的某种组合。此外,计算机12也可以具有附加存储(可移动的和/或不可移动的),包括但不限于USB设备、磁盘或光盘或磁带。这种附加的存储在图1中用存储30示出。存储30可以包括具有可以由计算机12使用的相关联的计算机可读介质的一个或多个可移动或不可移动存储设备。一个实施例中的存储30可以包括硬盘和/或CD-ROM驱动器。作为示例而非限制,存储器22和存储30是计算机可读介质的示例。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机12访问的任何其它介质。以上介质通常包含计算机可读指令、数据结构、程序模块或其它数据。
在如本文所描述的一个实施例中,计算机12可以在如图1所示通过网络使用到诸如服务器16的远程计算机的逻辑连接在网络化环境中运作。一个或多个软件模块和/或数据文件可以包括在计算机12的存储30中。在计算机12的操作期间,包括在存储30中的这些模块的一个或多个也可以驻留在诸如例如RAM的存储器22的一部分中,用于控制计算机12的操作。
服务器16可以表示连接到网络14的服务器计算机***。服务器计算机***可以包括用于服务请求的软件模块和类似于本文中关于计算机12描述的一个或多个处理器、存储器、存储等。本文中描述的技术可以用在其中计算机12和服务器16可以在网络14上通信的实施例中。计算机12和服务器16可以结合处理在两者之间交换的通信来执行操作。例如,计算机12可以将请求发送给服务器16,而服务器16可以提供响应。本文中的技术可用于确保诸如由计算机12从服务器16接收到的响应或诸如由服务器16从计算机12接收到的请求的接收到的通信的完整性和真实性。数据完整性可以涉及通信内容和确保接收到的通信不是原始通信的经修改的版本。真实性可以涉及对发送者的认证,因为接收到的通信可能是由除了期望的发送者之外的实体生成的。
本文的技术也可用在结合在诸如计算机12上的两个模块的同一计算机上的两个模块之间交换的通信的实施例中。更一般地,本文的技术可以结合确保从发送者接收到的消息的认证和完整性来使用。本文的技术可以结合诸如从服务器16到计算机12的一个方向上传输的通信,以及结合诸如从服务器16到计算机12以及也从计算机12到服务器16的两个方向上传输的通信来使用。
出于说明的目的,以下更详细地阐述示例性实施例,其中使用本文的技术来执行处理以确保第一模块从第二模块接收到的响应的完整性和认证,其中第一和第二模块可以位于诸如计算机12的同一计算机上。然而,如本领域的技术人员可理解的并且也如本文中别处更一般地描述的,技术可以结合在不同的计算机***而非相同的计算机***上的实体之间传输的通信、由第一和第二模块而非仅仅由第一模块接收到的那些通信等使用。
参考图2,所示的是可以包括在图1的计算机12上的以结合本文的技术使用的模块的示例100。示例100包括应用程序102、软件保护服务(SPS)104和许可证信息存储106。应用程序102可以是在计算机12上安装的程序。许可证信息存储106可以包括关于被许可在计算机上使用的一个或多个软件的许可信息。存储106可以是包括许可信息的多种不同的数据存储实体中的任何一个。例如,存储106可以是文件、数据库或其它数据容器。元素108示出了可以包括在许可证信息存储106中的关于应用程序102的许可证信息的逻辑表示。108的信息可以例如指定到期日期、标识被许可执行应用程序102的计算机、标识许可证授予的权限等。存储106也可以包括与在许可证中授予的各个权限相关联的信息。例如,如将在以下各节中更详细描述的,许可证可以授予“运行”应用程序102的权限。许可证信息存储106也可以将信息与运行的权限相关联。作为一个示例,非对称密钥对的私钥可以被加密并存储在106中。私钥可以与关于应用程序102的许可证的“运行”权限和其他权限相关联。应该注意许可证信息存储106可以包括结合先前以多种不同的方式中的任何一种执行的软件安装和激活而获取的许可证数据。
如本领域中公知的,非对称密钥对是结合不同的非对称密码技术使用的,其中为加密和解密使用不同的密钥,诸如使用具有PKI(公钥基础结构)的公/私钥对。除非接收者拥有相应的私钥,否则使用公钥加密的消息不能被解密。在以下各节中更详细地描述在执行本文的技术的各实施例中对非对称密钥对的使用。
SPS 104可以管理计算机***上关于诸如应用程序102的一个或多个软件产品的许可证。SPS 104可以执行涉及许可证的使用的功能并且通过API展示功能。SPS可以执行诸如获取许可证、存储和管理许可证、保护许可证不被篡改、评估许可证的有效性、评估许可证是否被正确地绑定到机器上(例如许可证指示软件产品可以在该机器上执行)、评估许可证是否授予关于软件产品的特定的权限等功能。应用程序102可以使用API来将请求110发送给SPS 104。响应于接收请求110,SPS 104可以将响应112发送给应用程序102。应用程序102可以发出请求110以获取关于有关应用程序102的许可证的信息。例如,用户可以发出运行应用程序102的请求。“运行”可以是与应用程序相关联的、指示用户具有运行应用程序的权限的权限。请求110可以被发送给SPS 104以确定许可证是否指示在计算机上存在授予运行应用程序102的权限的现有的且有效的许可证。响应于接收请求,SPS 104可以关于有关应用程序102的许可证和所请求的权限执行许可证确认和验证处理。例如,SPS 104可以从许可证信息存储106检索有关应用程序102的许可证信息,并且执行处理以确定是否有用于应用程序102的有效的许可证、许可证是否指示应用程序102被正确地绑定到计算机12上以及许可证是否指示指定的权限是按照许可证授予的。从SPS 104返回的响应112可以指示关于授予所请求的权限(例如在该示例中为“运行”应用程序的权限)的当前有效的许可证的先前的确认和验证处理是否成功。
诸如用可以存储在许可证信息库106中的电子形式或文档表示的许可证指定了软件产品中的权限。诸如应用程序102的调用者可以使用API来调用“消费”方法,以便“消费”有关诸如应用程序102的软件产品的权限。在成功地消费了有关软件产品的权限之后,可以从许可证信息存储106检索与权限相关联的附加数据。参考如上所述的元素108,在成功地消费了运行权限之后,可以从许可证信息存储106检索与运行权限相关联的私钥。消费关于关键产品的权限可以被表征为执行以验证和确认上述有关软件产品的许可证和权限的处理步骤。诸如被表示为包括在许可证信息存储106中的电子文档的许可证可以包括结合消费处理使用的信息。消费处理可以包括例如检查是否许可软件产品在软件在其上运行的机器上执行、检查诸如许可证是否过期的许可证的有效性等。对于软件应用程序,许可证也可以指定允许结合应用程序执行的不同的权限。例如,如上所述,“运行”可以是指示用户具有运行软件产品的权限的权限。可以调用消费权限API来确定当前是否存在带有运行软件产品的权限的有效的许可证。如果是,那么许可证和权限被成功地消费。作为成功消费处理之后的后续步骤,可以从包括在许可证信息存储106中有关应用程序102的许可证检索与所消费的权限相关联的诸如私钥的附加信息。通过引用结合于此的由Gunyakti等人于2003年10月24日提交的题为PROGRAMMINGINTERFACE FOR LICENSING(用于许可的编程接口)的美国专利公开2005/0091168A1(‘168公开)、美国专利申请No.10/692,868描述了允许其他模块使用公共服务的许可证管理功能的示例性软件许可服务和API。上述‘168公开中的许可管理设备和API类似于刚结合SPS 104描述的工具。
如将在以下各节中描述的,在成功地消费特定权限时从许可证信息存储106检索出的私钥可以结合本文的技术使用,以确保应用程序102从SPS 104接收到的响应112的数据完整性和真实性。
结合一个实施例,应用程序102可以在应用程序104发出请求110之前通过在应用程序102和SPS 104之间交换其他通信来建立与SPS 104的会话。结合建立会话,应用程序102可以指示应用程序102将结合关于会话的后续通信使用的非对称密钥对的特定公钥。应用程序102也可以生成表征为每个会话唯一的标识符的会话密钥。会话密钥可以与在应用程序102和SPS 104之间交换的关于相关联的会话的通信相关联。会话密钥可以使用多种不同技术中的任何一种生成,其确保了关于每个会话的足够程度的唯一性。例如,会话可以具有16到64字节范围内的大小,并且可以基于公钥、当前的时间等随机数生成。会话密钥在本文中可以更一般地涉及表示具有关于每个会话的不同的值的标识符的一种类型的共享的秘密。
应用程序102使用在建立与SPS 104的会话时指定的非对称密钥对的公钥来加密共享秘密。应用程序102构建包括经加密的共享秘密和关于特定请求的任何其他数据的请求110。这种其他数据可以例如标识为其发出请求110的权限。如上所述,请求110可以是关于在指示允许在计算机12上执行应用程序102的有效的许可证中是否授予包括在请求中的诸如“运行”权限的权限的查询。
应该注意共享秘密可以关于应用程序102“共享”并且以加密的形式传送给SPS 104。
参考图3,所示的是可以从应用程序102发送到SPS 104的请求110的示例性表示。请求602包括请求数据604、经加密的共享秘密606以及可选地关于请求的其他信息608。请求数据604可以例如标识要由SPS 104执行的特定操作、标识一种或多种权限、标识应用程序102等。元素606可以表示使用诸如RSA的多种不同的非对成加密技术中任何一种、使用与当前会话相关联的公钥加密的共享秘密。
SPS 104接收请求110并且执行处理以消费请求中有关应用程序102的许可证的指定的权限。如上所述,权限的消费可以包括基于包括在许可证信息存储106中的信息对于有关应用程序102的许可证和指定权限执行确认和验证处理。例如SPS 104可以从存储106检索关于应用程序102的许可证信息以确定许可证是否过期、许可证是否指示应用程序102被授权在特定的计算机12上执行、是否在许可证中授予在请求中指定的权限等。如果处理确定结合用于计算机12上的有效的许可证授予指定的权限,那么成功地消费权限。在成功地消费权限后,可随后从许可证信息存储106检索与该权限相关联的附加信息。结合依照本文的技术的实施例,私钥可以与指定的消费权限相关联并且可以从存储106检索。私钥可以对应于应用程序102用于加密共享秘密的非对称私/公钥对的公钥。在成功地消费关于请求110的指定权限之后,SPS 104从许可证信息存储106检索私钥,并且解密包括在来自应用程序102的请求中的经加密的共享秘密606。SPS也可以结合请求执行其他处理。
应该注意SPS 104可以执行处理以确定从许可证信息存储106检索出的私钥是否是用于在建立会话时指定的公钥的成对的非对称密钥。例如,许可证信息存储106可以包括非对称对的私钥和对应的公钥并且两者都可以从106检索。SPS 104可以确定从存储106检索的公钥是否匹配建立会话时指定的公钥。如果公钥不匹配,那么SPS 104可以采取适当的步骤,诸如终止处理并且在响应中返回适当的状况。同样,在成功地消费时可能检索到多个私钥,并且SPS可以通过匹配公钥来选择适当的私钥以执行处理。
参考图4,所示的是示出可以执行以确定包括在要发送到应用程序102的响应112中的数据的处理的示例。响应704可以包括版本号702a、可选响应数据702b、可选现时值702c和认证数据702d。如下文所述,版本号702a和可选的响应数据702b和/或现时值702c可以用作对生成认证数据702d的处理的输入。现时值可以被称为“一次使用的编号”,如下文结合元素702更详细描述地,它随每条认证的消息改变。
版本号702a可以是与SPS 104相关联的版本号。版本号702a可以由SPS 104用各种不同的方式获取。例如,版本号可以在模块SPS 104内编码、从许可证信息存储106或计算机12上其他预定的位置检索。实施例可以为版本号702a选择适当的大小。例如,一实施例可以使用最大为4字节的版本号702a。响应数据702b可以是可选的,例如如果特定的请求110没有返回给调用者的任何信息。现时值702c可以被表征为对于每个响应通信唯一的数字或其他标志。例如,现时值702c可以是由SPS 104生成的随机或伪随机数。现时值702c可以在实施例中用于协助防止重放攻击。重放攻击可以被表征为其中可以截取有效的数据传输并接着重复或转发的攻击。可以防止这种重放攻击,因为在每个响应中包括不同的现时值702c,由此使得消息数据702和生成的认证数据702d也是关于每次响应改变的。
如所示的,要认证的消息数据702可以包括702a,并且也可以包括702b和/或702c。消息数据702可以通过串接702a和可选的702b和/或702c来形成。消息数据702首先被输入到信封函数(envelope function)712中,后者使用共享的秘密710来确定认证数据702d。在一个实施例中,信封函数712可以是执行以确定HMAC(键入的散列消息认证代码)值作为认证数据702d的处理。可以使用密码散列函数结合密钥来计算HMAC的值,在该示例中密钥是共享的秘密710。如上所述,共享的秘密710可以通过使用从许可证存储106获取的私钥解密请求的一部分来获取。HMAC值可以被用作认证数据702d,以验证用于生成HMAC值的消息数据702的数据完整性和认证两者。HMAC可以被定义为:
HMACKEY(M)=h((KEY XOR opad‖h((KEY XOR ipad)‖m)) 等式1
其中h是所选的密码散列函数,KEY是密钥,诸如通过解密请求的一部分获取的共享的秘密,其中为散列函数h特定的块大小向KEY填充额外的零,而M是要认证的消息702。应该注意“‖”表示串接,XOR表示逻辑异或操作,而外部填充“opad”是十六进制常数0x 5c5c5c…5c5c,而内部填充“ipad”也是十六进制常数0x363636…3636。在该示例中,M可以被表示为作为串接版本号702a以及可选的响应数据702b和/或现时值702c的结果形成的702。诸如SHA-1或MD-5的多种不同的密码散列函数中的任何一种可以被用作以上参考的对HMAC的表示中的散列函数h。HMAC值的密码强度可以取决于底层的散列函数、密钥的大小和质量以及按比特的散列输出长度大小。
结合HMAC,KEY被用于形成散列算法h散列的内容。作为替换,实施例可以使用诸如AES(高级加密标准)的使用共享的秘密作为对称密钥的对称密码技术作为信封函数,而非使用等式1(HMAC)作为信封函数来确定认证数据。换而言之,实施例可以替换地使用诸如AES的基于对称密码技术的键入的散列算法来作为信封函数712来生成认证数据702d,而非使用基于散列函数的键入的散列算法的信封函数712来生成HMAC值作为认证数据。结合诸如AES的对称密码技术,密钥被用作第一输入,而形成消息的内容是第二输入。应该注意对称密码技术为加密和解密操作使用相同的密钥。
本领域的技术人员可以理解信封函数可以更一般地是基于包括消息和密钥的输入生成认证数据的任何算法。如本文中所述的HMAC算法和对称密码技术是可以在实施例中使用的信封函数的示例。
现时值702c可以用各种不同的方式确定并且用多种不同的方式使得它为应用程序102和SPS 104所知。例如,SPS 104可以使用基于时间的值、随机数生成器等来生成用作现时值的值。从SPS发送给应用程序的响应112可以包括该现时值或应用程序可从中确定/得出现时值的值。作为另一示例,应用程序可以确定现时值或用于得出现时值的值,并且可以将此包括在发送给SPS的请求中。SPS接着可以使用该现时值形成用于确定HMAC值的消息702。更一般地,使用现时值702c的实施例可以以SPS和应用程序理解的任何方式生成现时值。
一旦确定了认证数据702d,那么SPS 104如所示地构建响应704并且将响应704传输给应用程序102。应该注意,在实施例中可以可选地加密响应数据702b和响应的其他部分。例如如果响应数据702b包括有价值的内容或者SPS 104不希望以可读的形式传输的内容,实施例可以选择加密响应数据702b。
在接收到响应后,例如如果SPS 104加密了响应数据702b,那么应用程序102执行任何必要的解密。应用程序102接着执行验证处理。更具体地,应用程序102以与SPS 104计算包括在响应中的认证数据相同的方式计算其自身的认证数据的副本。应用程序102使用应用程序102已知的共享的秘密以及包括在接收到的响应中的版本号702a和响应数据702b和/或现时值702c(如果有的话)来计算其自身的认证数据的副本。应用程序102执行处理以确定HMAC值或可以在实施例中用于确定认证数据的其他信封函数。应用程序102将其自己计算的认证数据的副本与包括在响应中的认证数据702d作比较。如果两者匹配,那么验证处理是成功的。否则,验证处理失败。
应该注意实施例也可以结合验证处理执行附加步骤。例如,应用程序102也可以结合在响应中接收到的版本号702a来执行附加检查。应用程序102可以检索版本号的期望值并且将期望值与包括在响应中的版本号702a作比较。应用程序102可以用各种不同的方式获取期望的版本号,诸如在本文中的别处结合SPS 104描述的那些方式。
结合刚描述的是示例性实施例,应用程序希望确保接收到响应是由SPS 104而非声称是SPS 104的另一实体发送的。应用程序102也希望确保接收到的响应是未经修改的。为了确保接收到的响应的真实性和数据完整性,应用程序102生成是共享秘密的质询,使用公钥加密质询,并且将经加密的质询发送给SPS 104。SPS 104接着执行处理以证明它拥有结合关于应用程序102的许可证信息存储的私钥。SPS104通过解密质询(例如共享的秘密)和使用经解密的值形成认证数据来证明它拥有私钥。应用程序102通过计算期望的认证数据并且将在响应中接收到的认证数据与期望的认证数据作比较来验证响应。
参考图5和6,所示的是可以依照本文的技术在实施例中执行的处理步骤的流程图。图5和6的步骤概述了上文中刚描述的处理。在步骤302处,应用程序建立与SPS的会话,并且指示要在会话期间使用的公钥。SPS会使用该公钥来确定要在后续的处理中从存储的许可证中检索的匹配的非对称私钥。如上所述,可以例如用在应用程序和SPS之间交换的一个或多个通信来建立会话。在步骤304处,应用程序生成共享的密钥,并且使用在步骤302中与会话相关联的公钥来加密共享的秘密。在步骤306处,应用程序将经加密的共享秘密发送给SPS作为请求的一部分。在步骤308处,SPS接收请求。在步骤310处,SPS执行处理以消费可能在请求中关于有关应用程序的许可证指示的指定权限。在步骤312处,作出关于消费处理是否成功的判定。如果否,那么控制前进到步骤314,其中可以执行与失败的消费处理相关联的步骤。步骤314可以包括SPS返回指示步骤310的处理的状态的代码。如果步骤312评估为是,那么控制前进到步骤316,其中SPS获取关于步骤302的公钥的非对称密钥对的私钥。步骤316可包括SPS从包含应用程序的许可证信息的许可证信息存储中检索私钥。控制从图5的步骤316前进到图6的步骤402,其中SPS使用私钥来解密请求的数据并且获取共享的秘密。在步骤404处,SPS使用版本号、现时值(可选的)和响应数据(可选的)来形成使用共享秘密作为密钥来为其确定认证数据的消息。SPS构建包括版本号、现时值(可选的)、响应数据(可选的)和认证数据的响应。SPS的实施例也可以可选地加密响应数据和/或包括在响应中的其他信息。在步骤406处,SPS将响应发送给应用程序。应用程序解密响应(如有必要)并且计算认证数据。应用程序通过将计算出的认证数据与在响应中接收到的认证数据作比较来执行验证处理。实施例也可以结合验证处理执行其他比较,诸如例如将在响应中接收到的版本号与期望的版本号作比较。在步骤408处,作出关于步骤406的认证数据值是否匹配的判定。步骤408也可以包括确定诸如期望和接收到的版本号的其他数据值之间的比较是否指示匹配。如果步骤408评估为是,那么应用程序确定验证处理是成功的。否则,如果步骤408评估为否,那么应用程序确定验证处理失败。成功的验证处理向应用程序确保关于接收到的响应的真实性和完整性。
现在将描述的是使用本文的技术的另一实施例,其中SPS使用从许可证信息存储检索到的私钥以便用诸如RSA的非对称密码技术来生成作为数字签名的认证数据。从许可证检索出的私钥可用于形成数字签名。应用程序可接收包括认证数据(数字签名)的响应,并接着结合执行验证处理使用公钥。结合验证处理,应用程序接收作为数字签名的经加密的散列值,计算应用程序形成的新生成的散列值并且使用公钥来相对于数字签名验证新生成的散列值。在该实施例中,SPS用来生成接着使用私钥加密(由SPS用作为“签名”)的散列值的“消息”可以包括将以下串接在一起:模块版本号、响应数据(如果有的话)和/或现时值(如果有的话)。可以用类似于上述方式的多种不同的方式来确定现时值并且使其为SPS和应用程序所知。结合使用数字签名的该后一的实施例,请求无需包括共享的秘密。相反,当最初建立会话时,应用程序可以指定要使用的公钥。SPS可以检索对应于该公钥的私钥,它使用其形成响应中的数字签名。应用程序接着在接受响应是有效的之前可以使用公钥执行验证处理。
现在将更详细描述的是请求和响应的表示以及可以使用上文中刚描述的数字签名在实施例中使用的处理步骤的流程图。
参考图7,所示的是可以在实施例中使用的请求的示例,其中认证数据是数字签名。请求1002包括请求数据1004以及可选地其他信息1006。与图3的请求形成对比,在该后一实施例中,从请求省略经加密的共享的秘密。请求的其他部分类似于以上结合图3所描述的。
参考图8,所示的是可以执行以确定包括在发送到应用程序102的响应1130中的数据的处理的示例。响应1130可以包括版本号1102a、可选响应数据1102b、可选现时值1102c和认证数据1102d。元素1102a、1102b和1102c可以是如以上结合图4所描述的。响应1130也包括认证数据1102d,但是在该实施例中认证数据1102d是与图4的认证数据702d形成对比的数字签名。在示例1100中,消息数据1102可以被输入到生成散列值1106的密码散列函数1104中,接着使用私钥1112用加密处理1110来加密该散列值1106以获取数字签名1102d作为认证数据1102d。结合该实施例,包括在1120中的组件可以形成以上一般地描述和例如图4中示出的信封函数执行的处理。
参考图9和10,所示的是可以使用本文的技术结合另一实施例执行的处理步骤的流程图。图9和10概述刚在其中认证数据是数字签名的实施例中描述的处理。结合图9和10的步骤,可以理解一些处理步骤类似于结合图5和6描述的步骤。在步骤802处,应用程序建立与SPS的会话并且指示要在会话期间使用的公钥。步骤802类似于图5的步骤302。在步骤804中,应用程序形成请求并将其发送给SPS。这种请求的示例在图7中示出。在步骤806中,SPS接收请求并且在步骤808中执行消费处理。在步骤810中,作出关于消费处理是否成功的判定。如果否,控制前进到步骤812。如果是,控制前进到步骤814,其中SPS从许可证信息库检索私钥。步骤808、810、812和814分别类似于图5的步骤310、312、314和316。
在步骤902中,SPS将数字签名确定为认证数据。版本号和可选的响应数据和/或现时值被用于形成为其确定散列值的消息数据。接着使用私钥加密散列值,而所得的经加密的数据是包括在响应中作为认证数据的数字签名。在步骤904中,SPS构建包括版本号、响应数据(可选的)、现时值(可选的)和认证数据的响应。响应中的响应数据和/或其他信息可以被可选地结合图6的步骤404所述地加密。在步骤906中,响应被发送给应用程序并且由应用程序接收。应用程序按需解密响应数据或响应的其他部分。在步骤908中,应用程序通过计算消息的散列值并且使用公钥相对于数字签名验证计算出的散列值来验证数字签名。在步骤910处,作出关于验证处理是否成功的判定。如果是,那么验证处理成功,而控制前进到步骤912。否则,验证处理失败,而控制前进到步骤914。如结合图6的步骤406所述,步骤908也可以包括比较诸如接收到的和期望的版本号的其他值,作为验证处理的一部分。在这种情况下,步骤910可以包括确定版本号是否匹配。可以依照认证数据验证、版本号比较和可以在实施例中执行的其他比较来确定成功的验证处理。
如上所述,诸如结合使用数字签名作为认证数据的实施例,可以首先使用散列函数生成密码散列值来为消息内容确定散列值以数字地签署消息。散列函数是以标准长度的“散列值”或“散列结果”的形式创建数字表示或“指纹”的算法。当使用相同的散列函数时,对于消息内容的任何改变产生不同的散列结果。接着加密为关于消息内容计算的散列值。作为签署的一部分,发送给另一方的消息可以包括消息内容和经加密的散列值。经加密的散列值也可以被称为数字签名。可以在实施例中使用各种不同的散列函数和本领域公知的加密技术中的任何一种。消息的接收者接着可以使用与发送者相同的散列算法为接收到的消息内容计算新的散列值,并且使用公钥相对于数字签名执行对新的散列值的验证处理。
本文中描述的示例性实施例可以结合防止软件盗版来使用。作为一个示例,可以安装应用程序102的未经授权的版本以供在计算机上使用。当用户试图运行应用程序的未经授权的版本时,攻击者可以例如用另一模块代替应用程序102如本文所述与之通信的SPS 104。攻击者也可以截取和修改SPS 104发送的响应。实施例可以使用本文的技术,这样使得应用程序102可以与SPS通信以确定许可证是否有效并且授予必要的权限以执行所请求的操作。本文的技术可用于确保应用程序102接收到的响应的完整性和真实性,这样使得应用程序102可以检测诸如上述攻击者损害的接收到的通信。
结合本文中描述的示例性实施例,可以结合与特定的软件应用程序相关联的许可证信息存储私钥。例如,如上所述,可以包括私钥作为与应用程序相关联的许可证信息的一部分包括,并且许可证信息可以被包括在许可证信息存储中。本领域的技术人员可以理解有关应用程序的许可证信息是一种特定类型的应用程序专用信息。使用本文的技术的其他实施例可以存储私钥并且结合除了许可证信息之外的其他类型的应用程序专用信息来关联私钥。此外,私钥和与应用程序相关联的应用程序专用信息可以被存储在除了许可证信息存储之外的其他类型的存储库或数据存储中。更一般地,包括私钥的应用程序专用信息可以被存储在任何类型的安全且可信的信息存储中。安全且可信的信息存储可以是用于存储包括私钥的一种或多种不同类型的应用程序专用信息的数据存储。同样,如本文中结合许可证信息所述,可能不会检索私钥,除非有成功的消费处理,其中消费处理包括例如确定存在有关应用程序的有效的许可证以及许可证授予指定的权限。由此,许可证信息存储结合私钥提供安全性和访问控制,因为不能获取私钥除非消费处理成功。在其中使用除了许可证信息存储之外的不同类型的安全且可信的信息存储的实施例中,在提供对私钥的访问之前,可能需要成功地执行除了消费处理之外的其他验证和/或确认处理。这种验证和/或确认处理可以随着实施例而改变,并且可以包括例如验证所需的数据是由应用程序或试图获取私钥的其他模块提供的、对包括在应用程序专用信息中的其他数据的验证和/或确认、诸如例如应用程序在使用特定的操作***的特定的计算机***上执行的关于硬件和/或软件信息的验证等等。
以上描述的仅是示出使用本文的技术的两个示例。本领域的技术人员可以理解本文的技术可以更一般地结合从任何发送者传输给相同或不同计算机***上的任何接收者的通信来使用。此外,这些技术可以结合在一个方向上发送的关于两个模块或其他实体的通信或结合在两个方向上发送的通信使用。关于本文的示例,这些技术是结合从SPS 104到应用程序102的一个方向上发送的通信来示出的。然而,本文的技术也可以结合单独地从应用程序102发送到SPS 104的通信或与结合使用本文的技术从SPS发送到应用程序的通信组合使用。
虽然已经用对结构特征和/或方法动作专用的语言描述了本主题,但是所附权利要求中定义的主题不必限于上述的具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。

Claims (15)

1.一种计算机实现的通信方法,包括:
从第一模块向第二模块发送请求,所述请求包括作为使用非对称密钥对的公钥加密的共享的秘密的第一部分以及标识与所述请求相关联的权限的第二部分,所述共享的秘密包括与所述第一模块和第二模块之间的通信会话相关联的会话密钥,所述会话密钥是基于所述公钥和当前时间生成的;
由所述第二模块从包括关于所述第一模块的应用程序专用信息的安全且可信的信息存储中获取所述非对称密钥对的私钥;
由所述第二模块使用所述私钥解密所述第一部分以获取所述共享的秘密;
从所述第二模块向所述第一模块发送响应,所述响应包括认证数据、对每个响应通信唯一的数字或其他标志、和具有不大于阈值大小的大小的版本号,所述认证数据已至少部分地基于所述共享的秘密和所述对每个响应通信唯一的数字或其他标志而被确定,所述阈值大小对应于特定字节数;以及
由所述第一模块使用共享的秘密执行验证处理以验证包括在所述响应中的所述认证数据。
2.如权利要求1所述的方法,其特征在于,所述特定字节数包括4字节。
3.如权利要求1所述的方法,其特征在于,还包括:
由所述第二模块执行验证处理,以确定是否提供包含在关于所述第一模块的应用程序专用信息中的私钥,仅在成功执行关于该私钥的所述验证处理之后,才从安全且可信任的信息存储中检索该私钥并提供给所述第二模块。
4.如权利要求1所述的方法,其特征在于,所述第二模块使用包含版本号的消息来执行处理以确定所述认证数据。
5.如权利要求4所述的方法,其特征在于,所述消息包含响应数据或所述对每个响应通信唯一的数字或其他标志中的至少一个。
6.如权利要求5所述的方法,其特征在于,所述响应包含用于形成所述消息的数据项。
7.如权利要求1所述的方法,其特征在于,所述验证处理包括所述第一模块计算第一认证数据并将所述第一认证数据与包含在所述响应中的认证数据相比较。
8.如权利要求7所述的方法,其特征在于,所述第一认证数据是使用包含在所述响应中的版本号来计算的。
9.如权利要求1所述的方法,其特征在于,所述认证数据是使用信封函数来确定的,所述信封函数使用所述共享的秘密作为密钥。
10.如权利要求9所述的方法,其特征在于,所述认证数据是使用基于散列函数且所述共享的秘密作为密钥的键入的散列算法来确定的。
11.如权利要求9所述的方法,其特征在于,所述认证数据是使用采用所述共享的秘密作为对称密钥的对称加密技术来确定的。
12.一种用于确保从第二模块向第一模块发送的通信的真实性和数据完整性的方法,所述方法包括:
由第二模块从第一模块接收第一通信,所述第一通信包括作为用非对称密钥对的公钥加密的共享的秘密的第一部分以及标识与所述第一通信相关联的权限的第二部分,所述共享的秘密包括与所述第一模块和第二模块之间的通信会话相关联的会话密钥,所述会话密钥是基于所述公钥和当前时间生成的;
由所述第二模块依照许可证和指定的权限执行消费处理;
在成功地执行消费处理之后,由所述第二模块从包括关于所述第一模块的许可证信息的许可证信息存储中检索所述非对称密钥对的私钥;
由所述第二模块使用所述私钥解密所述第一部分以获取所述共享的秘密;
由所述第二模块使用所述共享的秘密和具有不大于阈值大小的大小的版本号确定认证数据,所述阈值大小对应于特定字节数;以及
从所述第二模块向所述第一模块发送第二通信,所述第二通信包括所述认证数据和版本号,所述认证数据已至少部分地基于对每个响应通信唯一的数字或其他标志而被确定。
13.如权利要求12所述的方法,其特征在于,还包括:
由所述第一模块使用所述共享的秘密执行验证处理,以对包含在所述第二通信中的所述认证数据进行验证。
14.如权利要求13所述的方法,其特征在于,并且所述验证处理包括将所述第二通信的版本号与期望的版本号相比较,并且其中所述消费处理包括确定是否存在对于所述第一模块的有效许可证以及所指定的权限是否在所述有效许可证中被授予,仅在成功确定有效许可证并且所指定的权限在所述有效许可证中被授予之后,才从许可证信息存储中检索所述私钥。
15.如权利要求12所述的方法,其特征在于,所述认证数据是使用采用所述共享的秘密作为对称密钥的对称加密技术来确定的,或者是使用基于散列函数且所述共享的秘密作为密钥的键入的散列算法来确定的。
CN200980125617.3A 2008-06-26 2009-05-21 用于确保通信的认证和完整性的技术 Active CN102077213B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/146,520 2008-06-26
US12/146,520 US8935528B2 (en) 2008-06-26 2008-06-26 Techniques for ensuring authentication and integrity of communications
PCT/US2009/044780 WO2009158086A2 (en) 2008-06-26 2009-05-21 Techniques for ensuring authentication and integrity of communications

Publications (2)

Publication Number Publication Date
CN102077213A CN102077213A (zh) 2011-05-25
CN102077213B true CN102077213B (zh) 2014-12-17

Family

ID=41445167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980125617.3A Active CN102077213B (zh) 2008-06-26 2009-05-21 用于确保通信的认证和完整性的技术

Country Status (5)

Country Link
US (2) US8935528B2 (zh)
EP (1) EP2291787B1 (zh)
CN (1) CN102077213B (zh)
TW (1) TWI454111B (zh)
WO (1) WO2009158086A2 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4687703B2 (ja) * 2007-10-02 2011-05-25 ソニー株式会社 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
US8935528B2 (en) 2008-06-26 2015-01-13 Microsoft Corporation Techniques for ensuring authentication and integrity of communications
US8732460B2 (en) 2010-01-28 2014-05-20 At&T Intellectual Property I, L.P. System and method for providing a one-time key for identification
DE102010011022A1 (de) * 2010-03-11 2012-02-16 Siemens Aktiengesellschaft Verfahren zur sicheren unidirektionalen Übertragung von Signalen
WO2012149717A1 (zh) * 2011-08-31 2012-11-08 华为技术有限公司 基于tcm或tpm的license动态管理方法、装置及***
KR101311287B1 (ko) * 2012-02-21 2013-09-25 주식회사 파수닷컴 전자책 생성 장치 및 방법, 그리고 전자책 무결성 검증 장치 및 방법
US9706399B2 (en) * 2012-10-26 2017-07-11 Nokia Technologies Oy Methods and apparatus for anonymous key management in mobile ad hoc networks
US20140185796A1 (en) * 2012-12-28 2014-07-03 Ziyad S. ALSalloum Geographical Passwords
GB2514428B (en) * 2013-08-19 2016-01-13 Visa Europe Ltd Enabling access to data
CN106664206B (zh) * 2014-06-18 2020-05-12 维萨国际服务协会 用于已认证的通信的高效方法
US11533297B2 (en) 2014-10-24 2022-12-20 Netflix, Inc. Secure communication channel with token renewal mechanism
US11399019B2 (en) * 2014-10-24 2022-07-26 Netflix, Inc. Failure recovery mechanism to re-establish secured communications
US9893887B2 (en) 2015-01-30 2018-02-13 Ciena Corporation Dynamic licensing for applications and plugin framework for virtual network systems
US10057224B2 (en) * 2015-08-04 2018-08-21 Rubicon Labs, Inc. System and method for initializing a shared secret system
US10038552B2 (en) * 2015-11-30 2018-07-31 Honeywell International Inc. Embedded security architecture for process control systems
US10608817B2 (en) * 2016-07-06 2020-03-31 Masimo Corporation Secure and zero knowledge data sharing for cloud applications
CN106375306A (zh) * 2016-08-31 2017-02-01 武汉钢铁工程技术集团通信有限责任公司 手机应用数据传输加密方法及***
WO2018081093A1 (en) * 2016-10-24 2018-05-03 Clark Carl M Software algorithm security
CN106533662A (zh) * 2016-11-03 2017-03-22 北京奇虎科技有限公司 一种传输网络安全密钥的方法与装置
CN109218773B (zh) * 2017-06-30 2021-07-30 武汉斗鱼网络科技有限公司 一种视频流地址的鉴权方法及装置
EP3506558A1 (en) * 2017-12-28 2019-07-03 Koninklijke Philips N.V. Whitebox computation of keyed message authentication codes
KR102530441B1 (ko) * 2018-01-29 2023-05-09 삼성전자주식회사 전자 장치와 외부 전자 장치 및 이를 포함하는 시스템
CN108199838B (zh) * 2018-01-31 2020-05-05 北京深思数盾科技股份有限公司 一种数据保护方法及装置
US10797868B2 (en) * 2018-05-31 2020-10-06 Irdeto B.V. Shared secret establishment
WO2020000173A1 (en) * 2018-06-26 2020-01-02 Nokia Technologies Oy Method and apparatus for attestation
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
US12041039B2 (en) * 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator
DE102020114199A1 (de) * 2020-05-27 2021-12-02 Basler Aktiengesellschaft Absicherung von Computersystemen gegen Manipulationen und Funktionsanomalien
CN114880630A (zh) * 2022-05-16 2022-08-09 北京百度网讯科技有限公司 软件使用权限的获取方法与装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
CN1545295A (zh) * 2003-11-17 2004-11-10 中国科学院计算技术研究所 一种面向用户的网络文件***远程访问控制方法
CN1700634A (zh) * 2004-05-20 2005-11-23 国际商业机器公司 在两计算机间传输数据的***和方法

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US7177839B1 (en) * 1996-12-13 2007-02-13 Certco, Inc. Reliance manager for electronic transaction system
US6292896B1 (en) * 1997-01-22 2001-09-18 International Business Machines Corporation Method and apparatus for entity authentication and session key generation
US6317832B1 (en) * 1997-02-21 2001-11-13 Mondex International Limited Secure multiple application card system and process
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US7171662B1 (en) * 1998-03-18 2007-01-30 Microsoft Corporation System and method for software licensing
US6385725B1 (en) * 1998-08-24 2002-05-07 Entrust Technologies Limited System and method for providing commitment security among users in a computer network
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
AU776027C (en) * 1999-03-08 2005-04-07 Spyrus, Inc. Method and system for enforcing access to a computing resource using a licensing attribute certificate
US7409557B2 (en) * 1999-07-02 2008-08-05 Time Certain, Llc System and method for distributing trusted time
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7636843B1 (en) * 1999-08-20 2009-12-22 Sony Corporation Information transmission system and method, drive device and access method, information recording medium, device and method for producing recording medium
US7103185B1 (en) * 1999-12-22 2006-09-05 Cisco Technology, Inc. Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
US6978367B1 (en) * 1999-10-21 2005-12-20 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a client proxy
FI20000760A0 (fi) * 2000-03-31 2000-03-31 Nokia Corp Autentikointi pakettidataverkossa
US6990470B2 (en) * 2000-04-11 2006-01-24 Mastercard International Incorporated Method and system for conducting secure payments over a computer network
US7152047B1 (en) * 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
AUPQ865700A0 (en) * 2000-07-07 2000-08-03 Toneguzzo Group Pty Limited, The Content filtering and management
AU2001287164B2 (en) * 2000-08-04 2008-06-26 First Data Corporation Method and system for using electronic communications for an electronic contact
US7234636B1 (en) * 2000-09-27 2007-06-26 Diebold Self-Service Systems, Division Of Diebold, Incorporated Cash dispensing automated banking machine software authorization system and method
US7039615B1 (en) * 2000-09-28 2006-05-02 Microsoft Corporation Retail transactions involving digital content in a digital rights management (DRM) system
CN1470112A (zh) 2000-10-20 2004-01-21 ά��ϵͳ��˾ 加密数据安全保护***和方法
US7178030B2 (en) * 2000-10-25 2007-02-13 Tecsec, Inc. Electronically signing a document
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
US6865681B2 (en) * 2000-12-29 2005-03-08 Nokia Mobile Phones Ltd. VoIP terminal security module, SIP stack with security manager, system and security methods
AU1547402A (en) * 2001-02-09 2002-08-15 Sony Corporation Information processing method/apparatus and program
EP1398902A4 (en) * 2001-06-04 2007-02-28 Matsushita Electric Ind Co Ltd DEVICE AND METHOD FOR A FLEXIBLE AND COMMON IPMP SYSTEM FOR PROVIDING AND PROTECTING CONTENTS
JP4301482B2 (ja) * 2001-06-26 2009-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ、情報処理装置及びそのアクセス制御システム並びにその方法
US6948073B2 (en) * 2001-06-27 2005-09-20 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US7203966B2 (en) * 2001-06-27 2007-04-10 Microsoft Corporation Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices
GB2404126B (en) * 2002-01-17 2005-04-06 Toshiba Res Europ Ltd Data transmission links
US7747531B2 (en) * 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7272858B2 (en) * 2002-04-16 2007-09-18 Microsoft Corporation Digital rights management (DRM) encryption and data-protection for content on a relatively simple device
US6971017B2 (en) * 2002-04-16 2005-11-29 Xerox Corporation Ad hoc secure access to documents and services
JP2003316913A (ja) * 2002-04-23 2003-11-07 Canon Inc サービス提供方法、情報処理システム、その制御プログラム及び記憶媒体
US20030217275A1 (en) * 2002-05-06 2003-11-20 Bentley Systems, Inc. Method and system for digital rights management and digital signatures
EP1383265A1 (en) * 2002-07-16 2004-01-21 Nokia Corporation Method for generating proxy signatures
US7512782B2 (en) * 2002-08-15 2009-03-31 Microsoft Corporation Method and system for using a web service license
US8064508B1 (en) * 2002-09-19 2011-11-22 Silicon Image, Inc. Equalizer with controllably weighted parallel high pass and low pass filters and receiver including such an equalizer
US20040109567A1 (en) * 2002-12-05 2004-06-10 Canon Kabushiki Kaisha Encryption key generation in embedded devices
US20060168580A1 (en) * 2003-02-21 2006-07-27 Shunji Harada Software-management system, recording medium, and information-processing device
BRPI0411286B1 (pt) * 2003-06-10 2016-12-20 Mastercard International Inc sistema para autenticar a transação comercial efetuada pelo proprietário de um cartão junto a um comerciante em uma rede eletrônica; estrutura de dados para transportar informações e método para a autenticação da transação comercial
US20050005114A1 (en) * 2003-07-05 2005-01-06 General Instrument Corporation Ticket-based secure time delivery in digital networks
US20050010780A1 (en) * 2003-07-09 2005-01-13 Kane John Richard Method and apparatus for providing access to personal information
JP4617763B2 (ja) * 2003-09-03 2011-01-26 ソニー株式会社 機器認証システム、機器認証サーバ、端末機器、機器認証方法、および機器認証プログラム
US10437964B2 (en) * 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US7568098B2 (en) * 2003-12-02 2009-07-28 Microsoft Corporation Systems and methods for enhancing security of communication over a public network
US8700533B2 (en) * 2003-12-04 2014-04-15 Black Duck Software, Inc. Authenticating licenses for legally-protectable content based on license profiles and content identifiers
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7376972B2 (en) * 2004-04-14 2008-05-20 Microsoft Corporation Session key exchange key
US8037309B2 (en) * 2004-04-26 2011-10-11 Trek 2000 International Ltd. Portable data storage device with encryption system
US7484094B1 (en) * 2004-05-14 2009-01-27 Symantec Corporation Opening computer files quickly and safely over a network
US20050273780A1 (en) * 2004-05-14 2005-12-08 Nokia Corporation System, device, method and computer code product for partially sharing digital media
US20050283826A1 (en) 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for performing secure communications between an authorized computing platform and a hardware component
TWI282231B (en) * 2004-09-02 2007-06-01 Research In Motion Ltd System and method for searching and retrieving certificates
JP4562464B2 (ja) * 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
US8312526B2 (en) * 2004-11-30 2012-11-13 Sap Aktiengesellschaft Method and system for delegating authority with restricted access right in an online collaborative environment
US7475247B2 (en) * 2004-12-16 2009-01-06 International Business Machines Corporation Method for using a portable computing device as a smart key device
KR20070096023A (ko) * 2005-01-18 2007-10-01 코닌클리케 필립스 일렉트로닉스 엔.브이. 보안 호스트 인터페이스
FR2881596A1 (fr) * 2005-01-28 2006-08-04 Thomson Licensing Sa Procede de protection de contenus numeriques audio et/ou video et dispositifs electroniques mettant en oeuvre ce procede
JP2006246272A (ja) * 2005-03-07 2006-09-14 Fuji Xerox Co Ltd 証明書取得システム
US7747533B2 (en) * 2005-07-14 2010-06-29 Microsoft Corporation Digital application operating according to aggregation of plurality of licenses
CN100344208C (zh) 2005-07-15 2007-10-17 华为技术有限公司 一种防止重放攻击的认证方法
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
US8452966B1 (en) * 2005-10-26 2013-05-28 Adobe Systems Incorporated Methods and apparatus for verifying a purported user identity
US20070234058A1 (en) * 2005-11-04 2007-10-04 White Charles A System and method for authenticating products
WO2007055104A1 (ja) * 2005-11-08 2007-05-18 Matsushita Electric Industrial Co., Ltd. 認証システム、署名生成装置、署名検証装置
WO2007117131A1 (en) * 2006-04-10 2007-10-18 Trust Integration Services B.V. Arrangement of and method for secure data transmission.
WO2007149154A2 (en) * 2006-05-09 2007-12-27 Interdigital Technology Corporation Secure time functionality for a wireless device
US20070277038A1 (en) * 2006-05-25 2007-11-29 General Dynamics C4 Systems, Inc. Method for authentication of software within a product
US7318759B2 (en) * 2006-06-07 2008-01-15 Honeywell International, Inc. Preload system for bearings in a waterjet propulsion apparatus
KR100860404B1 (ko) * 2006-06-29 2008-09-26 한국전자통신연구원 다중 도메인 홈네트워크 환경에서의 디바이스 인증 방법 및장치
US20080034440A1 (en) * 2006-07-07 2008-02-07 Michael Holtzman Content Control System Using Versatile Control Structure
US7971017B1 (en) * 2006-08-21 2011-06-28 Rockwell Automation Technologies, Inc. Memory card with embedded identifier
US20080077791A1 (en) * 2006-09-27 2008-03-27 Craig Lund System and method for secured network access
US20080091613A1 (en) * 2006-09-28 2008-04-17 Microsoft Corporation Rights management in a cloud
US8015409B2 (en) * 2006-09-29 2011-09-06 Rockwell Automation Technologies, Inc. Authentication for licensing in an embedded system
JP2008090771A (ja) * 2006-10-05 2008-04-17 Hitachi Ltd デジタルコンテンツ版管理システム
US8761393B2 (en) * 2006-10-13 2014-06-24 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
EP1926278B1 (en) 2006-11-22 2009-04-01 Research In Motion Limited System and method for secure record protocol using shared knowledge of mobile user credentials
US20080162589A1 (en) * 2006-12-29 2008-07-03 Microsoft Corporation Weakly-consistent distributed collection compromised replica recovery
US20080192818A1 (en) * 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US8566247B1 (en) * 2007-02-19 2013-10-22 Robert H. Nagel System and method for secure communications involving an intermediary
US8341616B2 (en) * 2007-03-28 2012-12-25 International Business Machines Corporation Updating digitally signed active content elements without losing attributes associated with an original signing user
US20080301672A1 (en) * 2007-05-30 2008-12-04 Google Inc. Installation of a Software Product on a Device with Minimal User Interaction
US8046585B2 (en) * 2007-05-31 2011-10-25 Red Hat, Inc. Verifying authenticity of an attribute value signature
US8160966B2 (en) * 2007-08-17 2012-04-17 King Fahd University Of Petroleum And Minerals Token based new digital cash protocols
US7958363B2 (en) * 2007-10-26 2011-06-07 Yahoo! Inc. Toolbar signature
US20090129597A1 (en) * 2007-11-21 2009-05-21 Zimmer Vincent J Remote provisioning utilizing device identifier
US8935528B2 (en) * 2008-06-26 2015-01-13 Microsoft Corporation Techniques for ensuring authentication and integrity of communications
US8313996B2 (en) * 2010-09-22 2012-11-20 Micron Technology, Inc. Reactive metal implated oxide based memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
CN1545295A (zh) * 2003-11-17 2004-11-10 中国科学院计算技术研究所 一种面向用户的网络文件***远程访问控制方法
CN1700634A (zh) * 2004-05-20 2005-11-23 国际商业机器公司 在两计算机间传输数据的***和方法

Also Published As

Publication number Publication date
US8935528B2 (en) 2015-01-13
US9847880B2 (en) 2017-12-19
CN102077213A (zh) 2011-05-25
EP2291787B1 (en) 2016-09-21
EP2291787A2 (en) 2011-03-09
US20090327737A1 (en) 2009-12-31
WO2009158086A3 (en) 2010-02-25
EP2291787A4 (en) 2015-05-20
WO2009158086A2 (en) 2009-12-30
US20150163058A1 (en) 2015-06-11
TWI454111B (zh) 2014-09-21
TW201002012A (en) 2010-01-01

Similar Documents

Publication Publication Date Title
CN102077213B (zh) 用于确保通信的认证和完整性的技术
RU2718689C2 (ru) Управление конфиденциальной связью
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
JP4366037B2 (ja) 暗号化された媒体へのアクセス権を制御・行使するシステム及び方法
EP3761203A1 (en) Information processing method, blockchain node, and electronic apparatus
US7653713B2 (en) Method of measuring round trip time and proximity checking method using the same
EP3036664B1 (en) Enabling access to data
CN112702318A (zh) 一种通讯加密方法、解密方法、客户端及服务端
US9178881B2 (en) Proof of device genuineness
CN110611670A (zh) 一种api请求的加密方法及装置
CN112699353B (zh) 一种金融信息传输方法以及金融信息传输***
CN111294203A (zh) 信息传输方法
CN114553416A (zh) 一种对应用程序接口做签名验签的数据加密处理方法
CN114547648A (zh) 一种数据匿踪查询方法及***
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
CN115242553A (zh) 一种支持安全多方计算的数据交换方法及***
CN114844632A (zh) 数据传输方法、装置和电子设备
CN108933766B (zh) 一种提高设备id安全性的方法和客户端
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
CN114785527B (zh) 数据传输方法、装置、设备及存储介质
CN111431846B (zh) 数据传输的方法、装置和***
KR20150101896A (ko) 인터클라우드 환경에서의 데이터 공유 시스템 및 공유 방법
CN114760111B (zh) 基于区块链的文件保密方法及文件保密装置
CN115941278A (zh) 数据传输方法、装置、电子设备和计算机可读介质
CN116663036A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.