热门问题
时间线
聊天
视角
產品金鑰
防盜版机制 来自维基百科,自由的百科全书
Remove ads
產品金鑰,常稱為序列號或金鑰,是一種製造商用來保護著作權的防盜版措施。例如Microsoft Windows等的一些商業軟件需要經過製造商的網絡驗證,防止用戶以同一組產品金鑰啟用多套軟件,一些軟件廠商也提供電話等方式供無法聯網的用戶啟用軟件。大部分共享軟體都有產品金鑰,製造商也可以選擇使用其他方式來保護自己的產品著作權。
![]() |

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
常見破解方式
參見
![]() | 這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads