热门问题
时间线
聊天
视角

产品密钥

防盜版机制 来自维基百科,自由的百科全书

产品密钥
Remove ads

产品密钥,常称为序列号密钥,是一种制造商用来保护著作权的防盗版措施。例如Microsoft Windows等的一些商业软件需要经过制造商的网络验证,防止用户以同一组产品密钥激活多套软件,一些软件厂商也提供电话等方式供无法联网的用户激活软件。大部分共享软件都有产品密钥,制造商也可以选择使用其他方式来保护自己的产品著作权

Thumb
某产品的序列号(一般产品的序列号都会写在其背面)
Remove ads

有效性

传统的密钥生成方式(即依靠数学方法生成产品密钥)无法彻底遏制软件著作权侵犯行为,因为这些密钥可能会被轻易分享。此外,随着互联网的普及及通信技术的飞速发展,密钥面临越来越多复杂的攻击方式,例如无须使用密钥进行破解或者利用产品密钥生成器。

因此,软件开发公司采取了额外的产品激活措施,以确保密钥的有效性与安全性。一种方法是基于购买者计算机硬件的唯一区别来分配产品密钥,因其特征依赖于用户的具体硬件,因此不易被仿造。另一种方法则是要求通过互联网服务器进行一次性或周期性的密钥验证(例如,某些需要在线功能的游戏每次用户登录时都进行身份验证)。服务器能够停用使用无效或已泄露的密钥的客户端软件。虽然经过修改的客户端可能伪装过这些验证措施,但服务器仍能拒绝接收这些客户端的数据或信息交流。

示例

Windows 95零售密钥格式为XXX-XXXXXXX。验证时需满足:

  • 前三位不能为333、444、555、666、777、888或999;
  • 后七位全部为0到8之间的数字,且其各位数字之和须能被7整除;
  • 第四位不参与检查。
  • 满足这些条件的密钥(例如 000-0000000)即为有效。

Windows 95 OEM密钥格式为 XXXXX-OEM-XXXXXXX-XXXXX。要求:

  • 开头的3位数字在0到366范围内;
  • 接下来的2位数字介于04到93之间;
  • 随后的3个字符必须为“OEM”;
  • 紧跟的7位数字之和必须是7的倍数;其它部分不做校验。

Windows XP零售密钥激活时需要使用安装 ID、产品 ID 和产品密钥。

安装 ID

  • 为50位十进制数字,格式为多个6位数字组及最后2位数字(例如:XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX)。
  • 每次运行 msoobe.exe 时都会重新生成。

校验位

  • 每组最后一位为校验码,由同组前5位相加、偶数位求和后再累加,最后取和除以7的余数得到。

解码与解密

去除校验位后,得到一个 41 位十进制编码的 136 位整数,以小端字节序存储为字节数组。安装 ID 中低16个字节经过加密(高1字节明文保存),使用专有的四轮 Feistel 密码加密,轮函数基于 SHA-1,密钥为4字节。一轮解密过程为:   

L′ = R XOR First-8(SHA-1(L + Key))   

R′ = L

最终,解密结果是16个明文字节,加上第17个未加密的字节(该字节随后按四字节小端格式解释为双字,后跟一个单字节)。

Remove ads

常见破解方式

  • 注册机:为一种用于破解商业软件注册程序的程序,大多用户只要输入注册内容即可获得可以成功注册的密钥。其利用部分商业软件可离线启动的特性(如Autodesk旗下软件),使用脱壳软件、存储器查看软件等软件,进行逆向工程来达到破解之目的。

参见

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads