CN101601045B - 安全序列号 - Google Patents

安全序列号 Download PDF

Info

Publication number
CN101601045B
CN101601045B CN2008800039409A CN200880003940A CN101601045B CN 101601045 B CN101601045 B CN 101601045B CN 2008800039409 A CN2008800039409 A CN 2008800039409A CN 200880003940 A CN200880003940 A CN 200880003940A CN 101601045 B CN101601045 B CN 101601045B
Authority
CN
China
Prior art keywords
value
authenticator
sequence number
key
authentication
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.)
Expired - Fee Related
Application number
CN2008800039409A
Other languages
English (en)
Other versions
CN101601045A (zh
Inventor
A·T·休斯
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101601045A publication Critical patent/CN101601045A/zh
Application granted granted Critical
Publication of CN101601045B publication Critical patent/CN101601045B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • 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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • 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
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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
    • H04L9/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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

Landscapes

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

Abstract

使用认证器值来保护软件产品的序列号。远程认证服务器整个地对认证器值和序列号求值,使得在其上安装该软件产品的本地计算机上不发生密码认证。对离线认证使用该认证器值的缩短部分。

Description

安全序列号
背景
现代商业盒装软件产品通常作为包含软件代码和字母数字的产品密钥的物理介质来交付。软件供应商在对特定用户和/或计算机启用与该软件相关联的完全权限之前要求其产品完成“激活”过程是常见的。
激活过程通常涉及将产品密钥以及标识用户和/或计算机的某些信息传送给激活交换所(通常是软件供应商,但其可以是第三方)。软件供应商使用允许访问与该软件相关联的权限的授权码来响应。接着该软件得到许可。
当软件价值很高时,生产假冒产品密钥的诱惑力很大。由于软件的特性,标识并禁止假冒会是有挑战性的。在努力实现这个的过程中,近年来应用于产品密钥的技术得到了进步,以包括试图证明序列号合法的短数字签名。
然而,产品密钥的有效性仅可以按照用已知系统知识伪造假冒密钥所需的时间来测量。CPU处理能力的进步越来越呈现出当前技术的无效性,因为存在能够基于现有技术在几小时或甚至几分钟内创建假冒密钥的“密钥生成”工具。
直到现在,对该问题的适当的解决方案仍然难倒了本领域技术人员。
概述
本发明一般针对用于确认软件产品的安全序列号。在一个实施例中,安全序列号将认证功能从本地计算机(其上安装软件产品)移走,并移动到远程认证服务器。在另一实施例中,安全序列号包括基于单次试图确认过程所需的时间来确定大小的认证值。
附图简述
在结合此处简要描述的附图参考以下详细描述时,将更容易领会并更好地理解本发明的许多附加优点。
图1是其中可以实现本发明的各实施例的计算环境的图示。
图2是根据一个实施例的包括安全序列号的产品密钥的图形表示。
图3是创建安全产品密钥的软件供应商的图形描绘。
图4是认证产品密钥的本地计算机和认证器的图形描绘。
图5是可用于实现本发明的一个或多个实施例的示例性计算设备的功能框图。
图6是根据一个实施例的概括地示出用于创建产品密钥的过程的操作流程图。
图7是根据一个实施例的概括地示出用于认证产品密钥的过程的操作流程图。
现在将参考这些附图详细地描述本发明的各实施例,全部附图中相同的标号指示相同的元素。
附图详细描述
以下将参考形成本发明的一部分并示出了用于实施各实施例的具体示例性实现的附图来更全面地描述各实施例。然而,其它实施例可以用许多不同形式来实现,并且不应被解释为限于此处所述的实施例;相反,提供这些实施例以使本公开内容彻底且完整。各实施例可被实施为方法、系统或设备。因此,各实施例可以采用硬件实现、完全软件实现或组合了软件和硬件方面的实现的形式。因此,以下详细描述不在限制的意义上考虑。
各实施例的逻辑操作被实现为(1)在计算系统上运行的计算机实现的步骤的序列,和/或(2)计算系统内的互连机器模块。实现是取决于实现该实施例的计算系统的性能要求的选择问题。因此,构成此处所描述的实施例的逻辑操作被替换地称为操作、步骤或模块。
说明性系统
首先将参考实现本发明的某些实施例的示例系统来描述原理和概念。可以使用根据本发明的教导编程的常规或专用计算设备来实现该示例系统。
图1是在其中实现本发明的各实施例的计算环境100的图示。计算环境100可以使用根据本发明的教导配置的诸如图5中示出和以下描述的计算设备等任何常规计算设备来实现。图1中示出的每个组件所执行的特定操作将结合附图2-5来详细地描述。然而,作为概述,这些组件所执行的一般操作将结合图1来描述。
计算环境100包括开发并销售或许可软件的软件供应商101。此外,软件供应商101包括根据一个实施例的创建安全产品密钥的组件。更具体地,软件供应商101被配置成为软件产品的每一实例生成序列号。此外,软件供应商101被配置成基于序列号生成认证值。序列号和认证值作为产品密钥102与软件产品103的副本一起交付。产品密钥102无需在物理上结合软件产品103一起交付。例如,产品密钥102可以通过电子消息等来交付。产品密钥102的一个具体示例在图2中示出并在下文中描述。
包括了认证器110来执行认证产品密钥102的任务。认证器102包括足以认证由软件供应商102创建的认证值的信息。此外,认证器110被配置成为成功认证的每一产品密钥生成激活码。激活码(未示出)允许在没有限制的情况下执行软件产品103。仅为了方便起见,认证器110被示为分开的实体。另选地,认证器110可以被实现为软件供应商101的一部分或其组件。
本地计算机105可以是任何常规计算系统,诸如图5中示出并下文中描述的计算系统。本地计算机105可以能够或不能够在线访问诸如认证器110等其它计算系统。在本地计算机105不能在线访问时,用户113可以通过与离线认证器115进行通信来执行离线认证。离线认证器115可以是在线认证器110的代理(例如人或自动电话操作员)。
在操作中,软件供应商101将软件产品103和产品密钥102交付给用户113,该用户接着将软件产品103安装在本地计算机105上。作为激活过程的一部分,软件产品103提示用户113输入产品密钥102。如果本地计算机105能够在线访问,则软件产品103将产品密钥的至少一部分发送给在线认证器110以供认证。如果本地计算机105不能在线访问,则软件产品103可以提示用户113调用离线认证器115并提供产品密钥102的至少另一部分提供给离线认证器115。出处讨论的目的,术语“离线”意指除在其上输入产品密钥的计算机(例如,本地计算机105)和执行认证的计算机(例如,认证器110)之间的在线电子交互之外的任何形式的认证。
安全产品密钥102是花费极其长的时间来“破解”的产品密钥,其中术语“破解”是指猜测与有效产品密钥相关联的一连串数字的系统或蛮力方法。进行产品密钥激活的常规技术在安装过程期间在本地计算机105上执行认证。然而,计算技术如此进步以至于在本地计算机105上破解产品密钥102可以在相对短的时间内实现。发明人确定,从本地计算机105移除认证功能使得认证器110能够控制认证过程并且相应地控制需要多久来猜测一个有效的产品密钥。因此,在该实施例中,产品密钥认证功能从本地计算机105移除,并且被移动到认证器110。这样,可以更紧密地控制整个认证过程,这避免了认证过程受到发生在本地计算机105上的蛮力密钥生成攻击的阻挠的可能性。
现在参考图2,示出了根据一个实施例的示例产品密钥202。在该具体实现中,产品密钥202包括三个部分:序列号211、认证器值212、以及校验和213。应该注意,此处所描述的产品密钥202仅仅是可能的许多实现中的一个实现,并且本发明的教导将同样适用于各种体现和构造的其它产品密钥。
序列号211可以是用于标识软件产品的各个实例的任何唯一数字。因此,序列号211可以是一系列线性递增的值中的一个数字。另选地,序列号211可以是从一组可能的值中随机选择的数字。简而言之,序列号可以是使用用于选号的任何可接受的准则来选择的任何数字。在一个具体示例中,序列号211是长度大约为40位的值,虽然其它长度值也同样适用。
认证器值212是基于序列号211和诸如密钥等秘密的值。在一个示例中,认证器值212可以是散列变量,诸如基于SHA1散列算法的散列值等。所得散列值可以被截短成适当的长度。在另一示例中,认证器值212可以是加密变量,诸如结合密钥对序列号211使用RC4流密码算法所生成的值,其同样被截短成适当的长度。在又一示例中,认证器值212可以仅仅是通过诸如远程数据库等分开的关联而仅与序列号211相关联的完全随机的唯一数字。一般而言,认证器值212是以只有远程认证器知道的方式来与序列号211相关的唯一值。在一个具体示例中,认证器值212是长度大约为48位的值,虽然其它长度值也同样适用。
在大量的工作之后,发明人确定破解产品密钥202的时间长度依赖于认证是在线还是离线执行的。例如,单次尝试在线确认产品密钥202可能仅花费一会儿的时间,这将允许可能一天数万次尝试。相反,单次尝试诸如通过用电话进行人类对话等离线认证产品密钥202可能花费若干分钟,从而在一天内允许少的多的尝试。
有了这一确定,用于在线认证的可接受认证器值212可能比用于离线认证的可接受认证器值212要复杂地多。而相反地,相比在线认证,离线认证可以使用简单得多的认证器值212。但是为了避免创建多个认证器值,发明人确定可以在产品密钥202中使用一个认证器值212,但是仅应该将其一部分(离线认证器217)用于离线认证,而应该将整个认证器值212用于在线认证(在线认证器)219。在一个具体示例中,离线认证器217是长度大约为15位的值,虽然其它长度值也同样适用。
该特征缩短了执行离线认证的用户在通话期间(诸如通过电话呼叫)必须陈述的数字。这减少了可能导致无效认证的人为错误。此外,如上所述,用户通过电话执行离线认证所必须花费的时间长度有效地防止了猜测有效产品密钥的蛮力尝试。
在该具体实现中,认证器值212的初始的若干字符被用作离线认证器217。在其它实现中,可以使用认证值212的任何其它部分,诸如认证值212的中间或结尾处的部分。应该注意,只要用于生成认证器值212的技术导致平均分布在整个认证器值212上的随机性,则从认证器值212选择一系列连续字符而非离散的字符选择将没有不相称的随机性丢失。
在该实现中,校验和值213被包括在产品密钥202中。校验和值213可以作为序列号211和认证器值212的校验和来计算。这样,在执行实际认证之前,本地进程可以计算校验和以检测用户是否错误地输入了产品密钥202。这将避免由于不正确地输入产品密钥的认证失败,这对用户来说会是非常沮丧的。在一个具体示例中,校验和值213是长度大约为32位的值,虽然其它长度值也同样适用。
图3是创建安全产品密钥305的软件供应商301的图形描绘。图3示出了可以具体化为驻留在软件供应商计算硬件上的计算机可执行指令的某些功能组件。应该理解,可以存在与该实施例无关的许多其它组件。可以实现附加组件以执行此处所描述的功能以外的附加功能,而不背离本实施例的精神。
在图3中示出的是包括散列函数305和校验和算法317的软件供应商301。散列函数305表示用于以在不知道被编码的数据的至少一部分的情况下数据不能被容易地解码或求值的方式来编码数据的许多不同的机制之一。在该具体实施例中,散列函数305将序列号307与密钥309一起编码以得到认证器值311。一般而言,密钥是控制密码算法的操作的信息片。在该具体实施例中,密钥309可以是只有软件供应商301知道的任何唯一值。密钥309越长或越复杂,解码经编码的数据就变得越困难。因此,密钥309的长度应被选择为向试图破解认证器值311的那些人提供合理的难度。四千位(4096位)密钥309应该提供可接受的强度,虽然密钥309的长度可能受到所使用的特定散列算法(诸如此类)和其它因素的影响。在其它情况下,更短或更长的密钥可能是适当的。
软件供应商301可以另外使用校验和算法317(诸如此类)来生成序列号307和认证器值311的循环冗余校验(CRC)值319。校验和算法317表示用于计算可用于检测在另一值中是否存在错误的值的许多函数中的任何一个。虽然在技术上,校验和算法317是散列函数,因为散列函数305被用于创建认证器值311,但是校验和算法317对于创建不能被容易地破解的值还不足够复杂,并且因此对于用于保护序列号307是无效的。然而,校验和算法317对于检测诸如错误地键入产品密钥等简单的错误是非常有帮助的。
最终的结果是是包括三个组成的产品密钥320:序列号307、认证器值311、以及CRC值319。接着可以将产品密钥320与软件产品(未示出)的副本结合在一起来交付。应该理解,产品密钥320不必和软件产品在物理上一起交付,而是可以分开交付,诸如通过邮件、电子邮件、电话、其它电子通信等。
还应该理解,可以为软件产品的每个唯一的认证副本使用不同的产品密钥320,或者不这样做。换而言之,软件供应商301可以选择向多至给定数目的软件产品分配特定序列号,诸如在其中消费者购买了用于软件产品的大量安装副本的大站点许可证的情况下。相似地,不同的产品密钥320可以与软件产品的不同版本相关联。
图4是认证产品密钥402的本地计算机401和认证器430的图形描绘。在该具体实施例中,本地计算机401表示其上安装软件产品的计算系统的各组件。在该实施例中,本地计算机401包括足以执行判定在数据序列中是否存在错误的普通数学运算的校验和算法407。校验和算法407是可选的,并且在其它实施例中可以被省略。
作为激活过程的一部分,请求用户输入(例如键入)产品密钥402。产品密钥402包括序列号410、认证器值412、以及CRC值414。如以上详细描述的,序列号410是与软件产品相关联的任何数字,认证器值412是以只有认证器430知道的方式与序列号410相对应的唯一值,而CRC值414是用于错误检测的序列号410和认证器值412的简单的校验和。在其它实施例中可以省略CRC值414。
本地计算机401与认证器430通信。在一些实现中,本地计算机401和认证器430进行在线电子通信,诸如通过如因特网等网络。在其它实现中,本地计算机401和认证器430之间的通信通过诸如人等离线中介发生。在一个示例中,用户可以通过电话与认证器430的代理(人或自动)通信。
作为认证过程的一部分,本地计算机401将序列号410和认证器值412传递给认证器430。应该理解,在某些情况下,诸如在离线认证期间,可以将少于整个认证器值412传递给认证器430。整个认证器值412可用于在线认证。
认证器430包括至少一个表示用于解码以在不知道被编码的数据的至少一部分的情况下不能被容易地解码或求值的方式来编码的数据的许多不同的机制之一的散列函数432。在该具体实现中,密钥434表示用于编码认证器值412的秘密数据,而这是对认证器值412进行求值所必须的。
散列函数432使用密钥434和序列号410来计算有效的认证器值,并将其输出到比较器436,比较器436可以是用于比较两组数据的任何函数。来自本地计算机401的认证器值412也被提供给比较器436,比较器436将其与散列函数432的输出作比较。认证器430基于散列函数432输出与认证器值412的比较将适当的指示返回给本地计算机401。例如,如果比较是肯定的,则认证器430可返回本地计算机401用于指示软件产品是被许可的并被授权无限制使用的授权码(未示出)。如果比较是否定的,则认证器430可向本地计算机401返回失败,这将禁用软件产品或允许其在执行限的时间,或者具有有限的功能,或两者。
图5是可用于实现本发明的一个或多个实施例的示例性计算设备500的功能框图。在一个基本配置中,计算设备500包括至少一个处理器502和存储器504。根据计算设备的确切配置和类型,存储器504可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或两者的组合。该基本配置在图5中用虚线506示出。
此外,设备500还可以具有其它特征和功能。例如,设备500还可以包括附加存储(可移动和/或不可移动),包括但不限于磁盘或光盘或磁带。这些附加存储在图5中由可移动存储508和不可移动存储510示出。计算机存储介质包括使用用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。存储器504、可移动存储508和不可移动存储510都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可用于存储所需信并可由设备500访问的任何其它介质。任何这种计算机存储介质可以是设备500的一部分。
计算设备500包括允许计算设备500与一个或多个计算机和/或应用程序513通信的一个或多个通信连接514。设备500也可以具有诸如键盘、鼠标、数字化仪或其它触摸输入设备、语音输入设备等输入设备512。也可以包括诸如监视器、扬声器、打印机、PDA、移动电话以及其它类型的数字显示设备等输出设备511。这些设备在本领域中是公知的并且无需在此敖述。
说明性过程
现在将参考在某些实施例中可以用诸如图5中示出的计算设备等计算设备实现的示例过程来描述本发明的原理和概念。这些过程可以用软件或固件中的计算机可执行指令来实现,但也可以用诸如可编程逻辑、电子电路等其它方式来实现。在一些替换实施例中,某些操作甚至可与有限的人工干预一起执行。此外,这些过程不应被解释为排他实施例,而仅是说明性地提供的。
图6是根据一个实施例的概括地示出用于创建产品密钥的过程600的操作流程图。所创建的产品密钥可用于确认或授权软件产品。所创建的产品密钥可采用多种物理形式中的任何一种或多种,诸如打印在卡片或纸张上的数字、存储在数据库中的值等。
在框601处,为软件产品的唯一实例创建序列号。该唯一实例可以是软件产品的一个特定副本,它可以是相关的实例组,它可以是软件产品的一系列标识的实例等。序列号可以采用任何所需形式,诸如一系列数字中的一个数字、随机数字、或可以与诸如软件产品等产品相关联的任何其它值。
在框603处,基于序列号和秘密来创建认证器值。可以使用用于基于一个值来结合秘密生成另一个值的任何适当的技术来创建认证器值。在一个具体实现中,可以使用散列函数结合密钥来生成认证器值。诸如加密算法等其它示例也是可能的。
在框605处,可任选地,可以对序列号和认证器值计算校验和值(例如CRC值)。CRC值可用于标识认证器值和序列号中的错误。
在框607处,将各组成部分(例如序列号、认证器值和校验和值)的每一个组合成产品密钥。此时,可以组合或结合新软件产品来交付产品密钥。
图7是根据一个实施例的概括地示出用于认证产品密钥的过程700的操作流程图。可以在其上安装软件产品的本地计算机系统上实现过程700。过程700可以作为软件产品的认证或确认过程的一部分来执行。
在框701处,接收产品密钥。产品密钥可以响应于诸如激活过程呈现的对话框等对产品密钥的提示来接收。在另一实现中,可以在程序上提供产品密钥,诸如通过电子消息传送或通信手段。
在框703处,可以将产品密钥解析成其组成部分。在一个实现中,组成部分包括至少一个序列号和认证器值。序列号是与所安装的软件产品相关联的唯一值。认证器值是以在不知道秘密的情况下不能被容易地求值的方式来编码的值。产品密钥可以另外地或另选地包括CRC值,CRC值是序列号和认证器值的校验和。
在框705处,如果产品密钥包括CRC值,则对序列号和认证器值求CTC值,以判定在任一值的输入中是否有错误。例如,如果用户手动地将产品密钥键入到对话框输入域,则人为错误的可能性是很大的。因此,如果存在,则CRC值将启用简单校验以避免这些错误。如果产品密钥不包括这种CRC值,则可以省略该操作。
在框707处,确定确认产品密钥要使用的认证技术。在该具体实施例中,可以在线地或离线地执行认证。在线是指发生在通过网络耦合的两个计算系统之间的使用电子通信的认证过程。离线是指非在线的任何认证过程。如果认证技术是在线认证,则过程700前进到框709处。如果认证技术是离线认证,则过程700前进到框711处。
在框709处,将序列号和认证器值发送给远程认证服务器。远程认证服务器是使用必要的元件来配置的,以便根据序列号来求认证器值。在一个示例中,远程认证服务器可以包括适当的算法和密钥,以基于序列号来判定认证器值是否有效。在该具体实现中,整个认证器值被发送给远程认证服务器。整个认证器值可以是即使使用自动技术也极度难以破解的冗长的位流。
在框711处,显示离线认证器值以供离线认证。在该实施例中,应该理解,即使使用比用于在线认证的认证器值短得多的认证器值,破解认证器值的过程在时间上仍然是极其长的。因此,在框711处显示的离线认证器值可以是整个认证器值的缩短或截短的版本。离线认证器值的长度可以基于单次尝试使用离线认证技术来认证该认证器值的估计时间长度来选择。将离线认证器值而非整个认证器值用于离线认证减少了例如消费者试图向电话认证代理读冗长的密码数字时的受挫感。
在框713处,接收认证器值(取决于情况,其是在线认证器或者是离线认证器)是否有效的通知。通知可以采用许多形式中的任何一种,诸如所返回的结合软件产品存储的验证有效性和激活的认证码。如果通知是肯定的,则在框705处,授权对软件产品的适当的访问。另选地,如果通知是否定的,则在框717处,拒绝或诸如在时间或功能上限制对软件产品的访问。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (17)

1.一种用于激活软件产品的计算机实现的方法,包括:
接收产品密钥,该产品密钥的组成部分包括序列号和认证器值,所述序列号是与所述软件产品相关联的唯一值,所述认证器值是基于所述序列号的、以在不知道秘密的情况下不能被容易地求值的方式来编码的值,其中所述认证器值包括适于离线认证的离线部分;
提示是否在线激活所述软件产品;
响应于对所述提示的肯定指示,将所述序列号和所述认证器值发送给远程认证服务器以供认证;以及
响应于对所述提示的否定指示,显示所述认证器值的离线部分以供离线认证。
2.如权利要求1所述的方法,其特征在于,所述认证器值包括基于所述序列号和密钥的散列值。
3.如权利要求1所述的方法,其特征在于,所述认证器值包括从应用于所述序列号和密钥的加密算法所导出的值。
4.如权利要求1所述的方法,其特征在于,所述产品密钥的组成部分还包括基于所述序列号和所述认证器值的校验和值。
5.如权利要求4所述的方法,其特征在于,所述方法还包括对所述校验和值求值以判定在所述序列号和/或所述认证器值中是否存在错误。
6.如权利要求1所述的方法,其特征在于,所述认证器值包括第一值,所述第一值的长度足以使得在线破解所述认证器值的尝试将花费极其长的时间,并且其中所述认证器值的离线部分包括所述认证器值的子集,所述子集包括第二值,所述第二值的长度足以使得离线破解所述第二值的尝试将花费极其长的时间。
7.一种用于激活软件产品的方法,所述方法包括:
在本地计算机上接收产品密钥;
将所述产品密钥解析成组成部分,该组成部分包括序列号和认证器值,所述序列号是唯一地标识所述软件产品的值,所述认证器值是确认所述序列号的经编码的值,所述经编码的值是基于密钥的,所述认证器值包括适于离线认证的离线部分;
响应于在线激活所述软件产品的指示,将所述序列号和所述认证器值发送给远程认证服务器以供认证,而无需在所述本地计算机上认证所述认证器值;以及
响应于离线认证所述软件产品的指示,显示所述认证器值的离线部分以供离 线认证。
8.如权利要求7所述的方法,其特征在于,所述认证器值的离线部分包括组成所述认证器值的数字的子集。
9.如权利要求7所述的方法,其特征在于,所述经编码的值是以在不知道密钥的情况下不能被求值的方式来编码的。
10.如权利要求9所述的方法,其特征在于,所述经编码的值是使用散列函数和所述密钥来编码的。
11.如权利要求9所述的方法,其特征在于,所述经编码的值是使用应用于所述序列号和密钥的加密算法来编码的。
12.如权利要求7所述的方法,其特征在于,所述产品密钥的组成部分还包括用于测试在所述序列号和/或所述认证器值中是否存在错误的校验和值。
13.如权利要求12所述的方法,其特征在于,所述校验和值是使用循环冗余校验算法来计算的。
14.如权利要求7所述的方法,其特征在于,所述经编码的值是基于所述密钥和所述序列号的。
15.如权利要求13所述的方法,其特征在于,还包括:使用所述校验和值和所述循环冗余校验算法来判定在所述序列号和/或所述认证器值中是否存在错误。
16.如权利要求7所述的方法,其特征在于,所述序列号和所述认证器值被在线发送给所述远程认证服务器,而无需预先认证所述序列号。
17.一种用于激活软件产品的计算机实现的系统,所述系统包括:
第一装置,用于在本地计算机上接收产品密钥;
第二装置,用于将所述产品密钥解析成组成部分,该组成部分包括序列号和认证器值,所述序列号是唯一地标识所述软件产品的值,所述认证器值是确认所述序列号的经编码的值,所述经编码的值是基于密钥的,所述认证器值包括适于离线认证的离线部分;
第三装置,用于响应于在线激活所述软件产品的指示,将所述序列号和所述认证器值发送给远程认证服务器以供认证,而无需在所述本地计算机上认证所述认证器值;以及
第四装置,用于响应于离线认证所述软件产品的指示,显示所述认证器值的离线部分以供离线认证。 
CN2008800039409A 2007-02-01 2008-02-01 安全序列号 Expired - Fee Related CN101601045B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/701,232 2007-02-01
US11/701,232 US8001383B2 (en) 2007-02-01 2007-02-01 Secure serial number
PCT/US2008/052864 WO2008095193A1 (en) 2007-02-01 2008-02-01 Secure serial number

Publications (2)

Publication Number Publication Date
CN101601045A CN101601045A (zh) 2009-12-09
CN101601045B true CN101601045B (zh) 2013-07-24

Family

ID=39674522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800039409A Expired - Fee Related CN101601045B (zh) 2007-02-01 2008-02-01 安全序列号

Country Status (5)

Country Link
US (3) US8001383B2 (zh)
EP (1) EP2115659B1 (zh)
CN (1) CN101601045B (zh)
TW (2) TWI444895B (zh)
WO (1) WO2008095193A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001383B2 (en) 2007-02-01 2011-08-16 Microsoft Corporation Secure serial number
GB2463396A (en) * 2007-04-25 2010-03-17 Fireid Method and system for installing a software application on a mobile computing device
US8528109B2 (en) * 2007-10-09 2013-09-03 Microsoft Corporation Optimizing amount of data passed during software license activation
US8347109B2 (en) * 2008-02-28 2013-01-01 Red Hat, Inc. Secure serial number generation
WO2009122558A1 (ja) * 2008-03-31 2009-10-08 Iwase Ikuro 物品製造方法、物品製造システム、および物品
US20090313171A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Electronic transaction verification
US8281143B1 (en) * 2008-09-29 2012-10-02 Symantec Operating Corporation Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US20100107124A1 (en) * 2008-10-24 2010-04-29 Sp Annotated Network, Ltd. System and methods for establishing a communication link between network end users
US10476883B2 (en) 2012-03-02 2019-11-12 Inside Secure Signaling conditional access system switching and key derivation
US10691860B2 (en) 2009-02-24 2020-06-23 Rambus Inc. Secure logic locking and configuration with camouflaged programmable micro netlists
US8479304B1 (en) 2009-03-31 2013-07-02 Symantec Corporation Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
CA2767189C (en) * 2009-09-29 2015-02-10 Silverbrook Research Pty Ltd Communication system, method and device with limited encryption key retrieval
EP2325773B1 (en) * 2009-10-30 2018-06-06 Nxp B.V. System and method for obtaining an authorization key to use a product
US8788842B2 (en) * 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US8510552B2 (en) 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
US8984293B2 (en) * 2010-11-19 2015-03-17 Microsoft Corporation Secure software product identifier for product validation and activation
US8775797B2 (en) 2010-11-19 2014-07-08 Microsoft Corporation Reliable software product validation and activation with redundant security
US8776190B1 (en) * 2010-11-29 2014-07-08 Amazon Technologies, Inc. Multifactor authentication for programmatic interfaces
US8683579B2 (en) 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
DE102011010627A1 (de) * 2011-02-08 2012-08-09 Giesecke & Devrient Gmbh Verfahren zur Programmierung eines Mobilendgeräte-Chips
CN102298679B (zh) * 2011-08-12 2015-05-13 无锡城市云计算中心有限公司 一种基于USB key的BIOS认证方法
US8726378B2 (en) * 2011-10-27 2014-05-13 Sap Ag Enforcing input validation through aspect oriented programming
CN102497374A (zh) * 2011-12-13 2012-06-13 方正国际软件有限公司 基于云计算可离线的软件许可集中安全认证系统及其方法
US9800405B2 (en) * 2012-03-02 2017-10-24 Syphermedia International, Inc. Blackbox security provider programming system permitting multiple customer use and in field conditional access switching
US9426132B1 (en) 2012-09-12 2016-08-23 Emc Corporation Methods and apparatus for rules-based multi-factor verification
US9280645B1 (en) 2012-11-15 2016-03-08 Emc Corporation Local and remote verification
US10146824B2 (en) * 2013-11-25 2018-12-04 Sap Se Database job description and scheduling
US9705676B2 (en) * 2013-12-12 2017-07-11 International Business Machines Corporation Continuous monitoring of fingerprint signature on a mobile touchscreen for identity management
US9842231B2 (en) * 2014-01-06 2017-12-12 Avery Dennison Retail Information Services, Llc System method and apparatus for anti counterfeiting serialization
CN104680041A (zh) * 2015-02-06 2015-06-03 浪潮集团有限公司 一种离线软件授权有效性验证方法
CN106570384B (zh) * 2015-10-08 2019-09-20 阿里巴巴集团控股有限公司 一种身份核实方法及装置
TWI621964B (zh) * 2016-04-11 2018-04-21 群暉科技股份有限公司 透過行動裝置所執行的授權碼認證方法及相關的電腦程式產品
US10657239B2 (en) * 2017-05-25 2020-05-19 Oracle International Corporation Limiting access to application features in cloud applications
US10693662B2 (en) 2018-02-22 2020-06-23 Idlogiq Inc. Methods for secure serialization of supply chain product units
CN109271757B (zh) * 2018-08-10 2022-03-18 神州网信技术有限公司 一种软件的离线激活方法及系统
CN109190332A (zh) * 2018-08-15 2019-01-11 杭州安恒信息技术股份有限公司 一种产品的许可验证方法、系统及相关设备
JP7196485B2 (ja) * 2018-09-18 2022-12-27 富士フイルムビジネスイノベーション株式会社 情報処理装置及びライセンス認証システム
JP7187351B2 (ja) * 2019-02-27 2022-12-12 キヤノン株式会社 デバイス管理サーバー、その制御方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088516A (en) * 1995-03-30 2000-07-11 Kreisel; Glenn M. Method for cloning a source application with assignment of unique identifier to clone application

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934841A (ja) * 1995-07-21 1997-02-07 Fujitsu Ltd 記憶媒体のオンライン暗号解除システムおよび方法
US5905860A (en) 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5864620A (en) 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
JP3924342B2 (ja) 1997-02-14 2007-06-06 富士通株式会社 ソフトウェアライセンス管理システムおよびソフトウェアライセンス管理装置
JP3671611B2 (ja) 1997-08-05 2005-07-13 富士ゼロックス株式会社 アクセス資格認証装置および方法
US20040107368A1 (en) * 1998-06-04 2004-06-03 Z4 Technologies, Inc. Method for digital rights management including self activating/self authentication software
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6513121B1 (en) 1999-07-20 2003-01-28 Avaya Technology Corp. Securing feature activation in a telecommunication system
WO2001011843A1 (en) * 1999-08-06 2001-02-15 Sudia Frank W Blocked tree authorization and status systems
US6386894B2 (en) * 2000-04-28 2002-05-14 Texas Instruments Incorporated Versatile interconnection scheme for beverage quality and control sensors
KR20000053933A (ko) * 2000-05-10 2000-09-05 류종렬 소프트웨어의 정품인증시스템 및 그 방법
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7384339B2 (en) * 2000-10-11 2008-06-10 Igt Frame capture of actual game play
EP1356622B1 (en) 2000-11-10 2012-04-04 AOL MusicNow LLC Digital content distribution and subscription system
US7236958B2 (en) * 2001-01-05 2007-06-26 Microsoft Corporation Electronic software license with software product installer identifier
US20020120726A1 (en) 2001-02-23 2002-08-29 Microsoft Corporation Method and system for providing a software license via the telephone
US6993664B2 (en) * 2001-03-27 2006-01-31 Microsoft Corporation Method and system for licensing a software product
KR100408593B1 (ko) 2001-04-23 2003-12-06 주식회사 인터넷시큐리티 인증키를 이용한 프로그램 설치방법
US6966837B1 (en) * 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
EP1419438A2 (en) * 2001-07-02 2004-05-19 BRITISH TELECOMMUNICATIONS public limited company Program installation process
KR100391168B1 (ko) 2001-11-09 2003-07-12 임민상 소프트웨어 불법복제 방지 시스템 및 방법
US7747531B2 (en) 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7742992B2 (en) * 2002-02-05 2010-06-22 Pace Anti-Piracy Delivery of a secure software license for a software product and a toolset for creating the software product
US20030212639A1 (en) * 2002-05-06 2003-11-13 Cronce Paul A. Method and system for providing secure authoring services for protected software
US7124445B2 (en) * 2002-06-21 2006-10-17 Pace Anti-Piracy, Inc. Protecting software from unauthorized use by converting source code modules to byte codes
JP2004046708A (ja) 2002-07-15 2004-02-12 Sony Corp ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム
US20040039705A1 (en) * 2002-08-26 2004-02-26 Microsoft Corporation Distributing a software product activation key
US20040054920A1 (en) 2002-08-30 2004-03-18 Wilson Mei L. Live digital rights management
US7895443B2 (en) * 2002-11-05 2011-02-22 Safenet, Inc. Secure authentication using hardware token and computer fingerprint
JP2004206435A (ja) * 2002-12-25 2004-07-22 Victor Co Of Japan Ltd ライセンス管理方法、およびライセンス管理システム
US20040143746A1 (en) * 2003-01-16 2004-07-22 Jean-Alfred Ligeti Software license compliance system and method
US11063766B2 (en) * 2003-06-13 2021-07-13 Ward Participations B.V. Method and system for performing a transaction and for performing a verification of legitimate access to, or use of digital data
US6961852B2 (en) 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US20050028001A1 (en) * 2003-07-29 2005-02-03 Jian Huang Secured software patching and upgrade method for densely deployed networks having spanning-tree topology
US20050049976A1 (en) 2003-08-26 2005-03-03 Yang Harold (Haoran) Remotely licensing configurable network diagnostic modules
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
US20050114265A1 (en) * 2003-11-26 2005-05-26 Lingan Satkunanathan Real-time license enforcement system and method
KR100664110B1 (ko) * 2004-02-04 2007-01-04 엘지전자 주식회사 이동 통신 단말기의 사용제한 설정 방법
US7657885B2 (en) * 2004-04-16 2010-02-02 Gateway, Inc. System and method for downloading software and services
JP4559794B2 (ja) * 2004-06-24 2010-10-13 株式会社東芝 マイクロプロセッサ
US20050289072A1 (en) 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
JP2006101284A (ja) 2004-09-30 2006-04-13 Sanyo Electric Co Ltd 認証方法、被認証機器、認証機器及びプログラム
US7987356B2 (en) * 2004-11-29 2011-07-26 Broadcom Corporation Programmable security platform
US20060129502A1 (en) * 2004-12-15 2006-06-15 Microsoft Corporation Generation, distribution and verification of tokens using a secure hash algorithm
US20060212649A1 (en) * 2005-02-14 2006-09-21 Roberts Henry A Jr License table for software protection
US7725929B2 (en) * 2005-02-22 2010-05-25 Microsoft Corporation Systems and methods for free demonstration of online premium content prior to purchase
KR20070104939A (ko) * 2005-02-25 2007-10-29 콸콤 인코포레이티드 인증을 위한 작은 공개-키 기반 디지털 서명
JP4232767B2 (ja) * 2005-03-14 2009-03-04 セイコーエプソン株式会社 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
US8538888B2 (en) 2005-03-31 2013-09-17 Sony Pictures Entertainment Inc. Method for generating a secure copy of media data
US8051291B2 (en) * 2005-07-15 2011-11-01 Microsoft Corporation Unique block header patterns for media verification
US8761400B2 (en) * 2005-07-15 2014-06-24 Microsoft Corporation Hardware linked product key
US20070043677A1 (en) * 2005-08-17 2007-02-22 Idt Corporation Point of sale product authorization
WO2007030931A1 (en) * 2005-09-14 2007-03-22 Tetraglyph Technologies Inc. System and method for preventing unauthorized use of digital works
TW200713115A (en) * 2005-09-16 2007-04-01 Rong-Bang Wang Authorized code encoding method and authority identification and management system
US20070110235A1 (en) * 2005-11-17 2007-05-17 Kirk Pruitt Method and system for authenticating appraisal reports
US7835821B2 (en) * 2005-11-17 2010-11-16 Electronics And Telecommunications Research Institute Robot server for controlling robot, system having the same for providing content, and method thereof
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
US20070150299A1 (en) * 2005-12-22 2007-06-28 Flory Clive F Method, system, and apparatus for the management of the electronic files
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US8660964B2 (en) * 2006-06-30 2014-02-25 Hewlett-Packard Development Company, L.P. Secure device licensing
KR100786551B1 (ko) * 2006-09-15 2007-12-21 이니텍(주) 복수 개의 방식에 의한 일회용 비밀번호의 사용자 등록,인증 방법 및 그러한 방법을 수행하는 프로그램이 기록된컴퓨터 판독 가능 기록 매체
US20080104710A1 (en) * 2006-09-29 2008-05-01 Microsoft Corporation Software utilization grace period
WO2008105944A2 (en) * 2006-09-29 2008-09-04 Linx Technologies, Inc. Encoder and decoder apparatus and methods
US20080162362A1 (en) * 2006-12-28 2008-07-03 Microsoft Corporation Increasing transaction authenticity with product license keys
US8001383B2 (en) 2007-02-01 2011-08-16 Microsoft Corporation Secure serial number
US20080244754A1 (en) * 2007-04-02 2008-10-02 Edward Curren System and Method for Software License Management for Concurrent License Management and Issuance
US7877784B2 (en) * 2007-06-07 2011-01-25 Alcatel Lucent Verifying authenticity of webpages
US8272067B2 (en) * 2007-11-27 2012-09-18 Cisco Technology, Inc. Protecting commercials within encoded video content
US8140852B2 (en) * 2008-06-16 2012-03-20 International Business Machines Corporation Authenticating serialized commodities
EP2325773B1 (en) * 2009-10-30 2018-06-06 Nxp B.V. System and method for obtaining an authorization key to use a product
KR101385429B1 (ko) * 2011-09-07 2014-04-15 주식회사 팬택 Nfc를 이용하는 전자 계약의 개인 인증 방법, 이를 수행하기 위한 인증 서버 및 단말기
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088516A (en) * 1995-03-30 2000-07-11 Kreisel; Glenn M. Method for cloning a source application with assignment of unique identifier to clone application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Rand Morimoto et al..Licensing and Activating Windows Server 2003.《Microsoft Windows Server 2003 Insider Solution》.2003,235-238. *

Also Published As

Publication number Publication date
US20110296532A1 (en) 2011-12-01
US20080189549A1 (en) 2008-08-07
WO2008095193A1 (en) 2008-08-07
TWI501154B (zh) 2015-09-21
US9292665B2 (en) 2016-03-22
US20140337987A1 (en) 2014-11-13
CN101601045A (zh) 2009-12-09
EP2115659B1 (en) 2017-11-08
US8001383B2 (en) 2011-08-16
EP2115659A4 (en) 2015-01-14
TW201419154A (zh) 2014-05-16
EP2115659A1 (en) 2009-11-11
TW200841247A (en) 2008-10-16
US8732844B2 (en) 2014-05-20
TWI444895B (zh) 2014-07-11

Similar Documents

Publication Publication Date Title
CN101601045B (zh) 安全序列号
WO2021012552A1 (zh) 一种登录处理方法及相关设备
CN102419804B (zh) 具有冗余安全性的可靠的软件产品验证和激活
CA2591968C (en) Authentication device and/or method
AU2005318933B2 (en) Authentication device and/or method
CN102426640A (zh) 用于产品验证和激活的安全软件产品标识符
US8566952B1 (en) System and method for encrypting data and providing controlled access to encrypted data with limited additional access
KR100951094B1 (ko) 프라이버시 보존 방법 및 시스템, 컴퓨터 판독가능 저장 매체
CN101924734A (zh) 一种基于Web表单的身份认证方法及认证装置
JP5568696B1 (ja) パスワード管理システム及びパスワード管理システム用プログラム
US9177123B1 (en) Detecting illegitimate code generators
CN111143808B (zh) 系统安全认证方法、装置及计算设备、存储介质
KR101676846B1 (ko) 상호 검증 시스템 및 이의 실행 방법
US20090028338A1 (en) Software product authentication
CN111949952A (zh) 验证码请求处理方法及计算机可读存储介质
KR101501508B1 (ko) 데이터 암호화를 통한 인증방법 및 시스템
CN109120642B (zh) 一种山寨设备的检测、验证方法、装置及系统
CN108140076B (zh) 用于安全产品标识符的具有容错的验证
CN114598478B (zh) 数据加密的方法、装置、电子设备和存储介质
CN116912985B (zh) 基于动态口令的门锁控制方法、装置、系统、设备及介质
CN112737790B (zh) 数据传输方法、装置及服务器、客户终端
CN105162767A (zh) 基于指纹的认证方法及系统
CN108183789B (zh) 电子编码的生成和认证方法
CN117313165A (zh) 一种软件机器码的生成方法
CN113742693A (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: 20150519

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

Effective date of registration: 20150519

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130724

Termination date: 20220201

CF01 Termination of patent right due to non-payment of annual fee