亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

軟件License授權(quán)原理(軟件license授權(quán)管理)

軟件License授權(quán)原理

你知道License是如何防止別人破解的嗎?本文將介紹License的生成原理,理解了License的授權(quán)原理你不但可以防止別人破解你的License,你甚至可以研究別人的License找到它們的漏洞。喜歡本文的朋友建議收藏 關(guān)注,方便以后復(fù)習(xí)查閱。

什么是License?

在我們向客戶銷售商業(yè)軟件的時(shí)候,常常需要對(duì)所發(fā)布的軟件實(shí)行一系列管控措施,諸如驗(yàn)證使用者身份、軟件是否到期,以及保存版權(quán)信息和開發(fā)商詳情等。考慮到諸多應(yīng)用場(chǎng)景可能處于離線環(huán)境,無法依賴網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)認(rèn)證,所以還需要考慮單機(jī)認(rèn)證時(shí)的防破解問題??傊?,License許可證利用HTTPS網(wǎng)站的證書和簽名技術(shù),一方面證明當(dāng)前使用者是申請(qǐng)License的本人,另一方面要防止惡意破解,并偽造篡改License達(dá)到白嫖的目的。

軟件License授權(quán)原理(軟件license授權(quán)管理)

為什么使用License授權(quán)?

License的作用是什么呢?收費(fèi)軟件的License其目的肯定是防止用戶白嫖啦,所以License還應(yīng)該具有以下一些功能:

  • 授權(quán)使用

明確用戶需要滿足的使用條件,如單用戶、多用戶、企業(yè)內(nèi)部使用、全球使用等,并且通常會(huì)限定可安裝和激活的設(shè)備數(shù)量。

  • 限制功能

根據(jù)不同等級(jí)的License,軟件可以提供不同等級(jí)的功能,例如基礎(chǔ)版、專業(yè)版、企業(yè)版等,License可以解鎖相應(yīng)版本的功能。

軟件License授權(quán)原理(軟件license授權(quán)管理)

  • 期限控制

規(guī)定軟件的使用期限,可能是永久授權(quán),也可能是訂閱式授權(quán),到期后用戶需要續(xù)費(fèi)才能繼續(xù)使用。

  • 版權(quán)保護(hù)

重申軟件的知識(shí)產(chǎn)權(quán)歸屬,禁止未經(jīng)授權(quán)的復(fù)制、分發(fā)、反編譯、篡改或逆向工程等侵犯版權(quán)的行為。

  • 法律保障

License作為法律合同,確立了軟件提供商和用戶之間的法律關(guān)系,明確了雙方的權(quán)利和責(zé)任,如果發(fā)生違反協(xié)議的情況,軟件提供商有權(quán)采取法律手段追究責(zé)任。

軟件License授權(quán)原理(軟件license授權(quán)管理)

  • 技術(shù)支持和升級(jí)服務(wù)

部分License中會(huì)規(guī)定用戶是否有權(quán)享有免費(fèi)的技術(shù)支持、軟件更新和維護(hù)服務(wù),以及這些服務(wù)的有效期限。

  • 合規(guī)性要求

對(duì)于特殊行業(yè)或特定地區(qū),License可能還涉及到滿足特定法規(guī)、標(biāo)準(zhǔn)或認(rèn)證的要求。

歸納起來,我們可以總結(jié)出License的作用是:

  • 控制軟件使用者的使用權(quán)限
  • 申明軟件所有者的版權(quán)
  • 規(guī)定軟件的使用規(guī)范

最后兩點(diǎn)主要是法律相關(guān)的,第一點(diǎn)才是本文的重點(diǎn),即如何生成License,以及如何通過License對(duì)軟件用戶進(jìn)行限制。

License分類

依據(jù)用途的不同,License可分為兩大類別:商用License非商用License。

非商用License主要服務(wù)于諸如展覽展示活動(dòng)、各類研發(fā)活動(dòng)等多種非直接盈利性的應(yīng)用場(chǎng)景;

商用License,則通常適用于那些開展商業(yè)運(yùn)營活動(dòng)的企業(yè)場(chǎng)所。

軟件License授權(quán)原理(軟件license授權(quán)管理)

基于使用的期限,License可以劃分為固定期限License和永久License兩類。

固定期限License在激活后的指定時(shí)間內(nèi)有效,過了預(yù)設(shè)的使用期限,用戶必須更新許可期限并通過重新激活才能繼續(xù)使用;

而永久License則是在激活后賦予用戶無時(shí)間限制的使用權(quán),一旦激活,無需擔(dān)憂許可失效的問題,可以無限期地持續(xù)使用軟件。

如何實(shí)現(xiàn)License授權(quán)?

要想生成一個(gè)安全性高的License,必須讓其滿足以下幾個(gè)特征:

  • 保密性
  • 防篡改
  • 時(shí)效性
  • 可找回

保密性是指License里攜帶的data信息具有一定的隱蔽性,這樣可以防止想要破解License的人尋找到生成License的規(guī)律,進(jìn)而偽造自己的License。

防篡改是指防止License里攜帶的重要信息被篡改,例如License有效時(shí)間如果被篡改,那么License就起不到限制用戶使用期限的作用了。

時(shí)效性是指License會(huì)記錄軟件可以使用的有效期,并在驗(yàn)證License的時(shí)候判斷其是否過期。

可找回是指用戶申請(qǐng)的License一旦丟失或者要續(xù)期,基于第一次申請(qǐng)License時(shí)創(chuàng)建的源文件,再一次生成新的License,新的License會(huì)攜帶用戶當(dāng)初申請(qǐng)時(shí)的信息。

由于License必須滿足以上特性,所以在介紹License實(shí)現(xiàn)原理之前,我們先來學(xué)習(xí)一下非對(duì)稱加密和簽名&驗(yàn)簽。

非對(duì)稱加密

有非對(duì)稱加密必然就會(huì)有對(duì)稱加密,對(duì)稱加密就是我們一般意義上的加密算法,這種算法在加密和解密時(shí)都使用同一個(gè)密鑰,所以對(duì)稱加密算法的密鑰又叫做共享密鑰。對(duì)稱加密算法一般使用AES(Advanced Encryption Standard)加密算法。

軟件License授權(quán)原理(軟件license授權(quán)管理)

非對(duì)稱加密有兩個(gè)密鑰,一個(gè)公鑰一個(gè)私鑰。公鑰是公開的,供多個(gè)人使用;私鑰是非公開的,僅一個(gè)人或者少數(shù)群體使用。當(dāng)非對(duì)稱加密算法用作加解密時(shí),公鑰用來對(duì)明文加密,私鑰用來給密文解密,這個(gè)順序不能顛倒。你可以這樣理解,密文是私密的東西,只有少數(shù)人才能解密,所以少數(shù)人手里的私鑰用來解密,多數(shù)人手里的公鑰不能解密只能加密。

軟件License授權(quán)原理(軟件license授權(quán)管理)

為什么要區(qū)分公鑰和私鑰呢?直接使用一個(gè)共享密鑰不行嗎?可以,但是前提是你能夠安全的將共享密鑰傳遞給對(duì)方。共享密鑰如何在線上安全的同步給對(duì)方是一個(gè)問題,畢竟在網(wǎng)絡(luò)上傳輸信息很容易暴露。如果使用非對(duì)稱密鑰就可以將公鑰同步給消息發(fā)送者,而消息接收者則保留私鑰用來解密消息,這樣即使公鑰被中間人盜取,他也只能用來做加密操作而不能解密密文。

簽名&驗(yàn)簽

雖然非對(duì)稱加密可以解決“密鑰分配問題”,但是它不能防止偽造消息的問題。既然公鑰可以公之于眾,大家都知道你的消息要怎么加密,假如A想給B發(fā)送消息,那么中間人X可不可以將A發(fā)送的消息攔截,并將自己的消息加密以后發(fā)送給B呢?當(dāng)然可以!

這就好比你買了一張周杰倫的演唱會(huì)的門票,我看到了之后自己偽造了一個(gè)一模一樣的,如此一來我也可以去看周杰倫的演唱會(huì)。這時(shí)官方組織者發(fā)現(xiàn)了這個(gè)漏洞以后,規(guī)定周杰倫的演唱會(huì)門票需要帶上官方印章才能進(jìn)場(chǎng),此時(shí)我就算把門票畫的再惟妙惟肖,少了官方印章,我的這張假門票依然是張廢紙。

如何解決這個(gè)問題呢?答案就是給你的消息“蓋章”,即簽名,簽名就是認(rèn)證你的身份。這里還是使用非對(duì)稱密鑰算法,只不過使用的順序和加密消息時(shí)恰好相反。簽名時(shí)是私鑰用來加密,公鑰用來解密。

軟件License授權(quán)原理(軟件license授權(quán)管理)

你可以這樣理解,給消息簽名就好比給文件蓋章,你會(huì)隨隨便便把你自己的印章交給別人來使用嗎?當(dāng)然不行!所以公鑰不適合用來簽名,私鑰用作簽名更加合理。需要注意的是簽名所使用的密鑰對(duì)由消息發(fā)送者生成并提供給消息接收者,這和給消息加密時(shí)正好相反,這樣說來消息加密和消息簽名這兩個(gè)使用場(chǎng)景就需要生成兩套密鑰對(duì)。

軟件License授權(quán)原理(軟件license授權(quán)管理)

出于性能方面的考慮,大多數(shù)情況下給消息加密還是使用的對(duì)稱加密算法,為了解決“密鑰分配問題”,只會(huì)在第一次發(fā)送共享密鑰的時(shí)候才會(huì)使用非對(duì)稱加密,一旦消息接收者得到了共享密鑰,通信雙方就能夠通過共享密鑰進(jìn)行通信了。

此外,使用非對(duì)稱密鑰對(duì)消息簽名也可以防止消息被人篡改,由于性能原因一般不會(huì)對(duì)消息原文進(jìn)行簽名,而是先通過哈希算法形成消息摘要,再對(duì)消息摘要簽名。消息接收者驗(yàn)簽時(shí)會(huì)將消息的明文進(jìn)行哈希,再將消息簽名解密,兩者比對(duì)如果一致則證明消息沒有被篡改過。

License結(jié)構(gòu)

前面鋪墊了一些生成License所必備的基礎(chǔ)知識(shí),我們學(xué)習(xí)了生成的License如果需要防止被人破解,那就需要具有保密性、防篡改和防偽造等特點(diǎn)。接下來要考慮的是License需要攜帶什么信息就能讓其既安全又能限制用戶的使用權(quán)限。

License文件理論上來說至少需要以下一些信息:

  • 軟件所有者信息
  • 申請(qǐng)授權(quán)時(shí)間
  • 授權(quán)截止時(shí)間
  • 軟件使用者信息

下圖是License文件流的結(jié)構(gòu)圖,主要字段有:

  • 魔數(shù)值
  • 分隔符
  • 申請(qǐng)時(shí)間
  • 到期時(shí)間
  • 公鑰的長度 & 公鑰
  • 攜帶信息的長度 & 攜帶信息

軟件License授權(quán)原理(軟件license授權(quán)管理)

魔數(shù)值:和Java Class文件頭的魔數(shù)CAFEBABE類似,License文件頭的魔數(shù)也是起到了快速識(shí)別的作用,也有格式驗(yàn)證的作用。

分隔符:用來區(qū)分各個(gè)字段,將字段之間用分隔符隔開便于結(jié)構(gòu)化管理。

申請(qǐng)時(shí)間:用戶申請(qǐng)License的日期。

到期時(shí)間:License的有效截止日期。

公鑰的長度 & 公鑰:公鑰長度用來記錄公鑰是多少字節(jié),依據(jù)公鑰長度就可以讀取相應(yīng)長度的公鑰數(shù)據(jù)了。

攜帶信息的長度 & 攜帶信息:攜帶信息長度用來記錄攜帶信息是多少字節(jié),依據(jù)攜帶信息長度就可以讀取相應(yīng)長度的攜帶信息了。攜帶信息里通常會(huì)包含軟件所有者、軟件使用者、License唯一ID以及設(shè)備MAC地址等信息。

想好了License文件的結(jié)構(gòu),我們就可以開始生成License啦。

生成License

申請(qǐng)License的總體流程如下圖所示。客戶在軟件服務(wù)商處申請(qǐng)License,軟件服務(wù)商生成License之后會(huì)返回給客戶License文件,自己保留一份License源文件,源文件用作以后找回License。客戶拿到License文件,在安裝、啟動(dòng)軟件之后激活License。

軟件License授權(quán)原理(軟件license授權(quán)管理)

生成License主要做了這樣幾個(gè)事情:

  • 對(duì)需要攜帶的信息加密成密文
  • 對(duì)密文簽名
  • 保存申請(qǐng)日期、有效截止日期和公鑰
  • 生成源文件

軟件License授權(quán)原理(軟件license授權(quán)管理)

私鑰1加密的作用是對(duì)License的安全加固。因?yàn)長icense實(shí)際上可以通過Base64解碼得到里面的數(shù)據(jù),包括公鑰信息,這樣客戶就能夠通過公鑰將攜帶的信息解析出來,倘若攜帶有敏感信息就會(huì)造成安全問題。所以這里對(duì)攜帶的信息做了先加密后簽名的處理。

另外需要強(qiáng)調(diào)的是,申請(qǐng)日期和有效截止日期也需要簽名但不需要加密。因?yàn)槿绻缓灻脑?,客戶可以將日期解析出來之后篡改成自己想要的任何日期?/p>

加載License

軟件License授權(quán)原理(軟件license授權(quán)管理)

客戶申請(qǐng)到License之后,就可以去軟件上面激活啦。激活License首先判斷License是否合法,檢查文件頭魔數(shù)和分隔符是否正確,檢查License是否過期等。然后就是提取License的授權(quán)信息進(jìn)行驗(yàn)簽比對(duì)。如果有必要,還可以檢查授權(quán)信息里攜帶的MAC地址是否與安裝設(shè)備的MAC地址匹配。如果一切正常就可以通過驗(yàn)證。

軟件License授權(quán)原理(軟件license授權(quán)管理)

找回License

軟件License授權(quán)原理(軟件license授權(quán)管理)

防破解

首先需要明確的一點(diǎn)就是,沒有萬無一失的防破解方案,所謂魔高一尺道高一丈,漏洞堵的再嚴(yán)實(shí)依然能找到破解的方法,唯一的區(qū)別就是破解的成本高不高而已

例如,具備一定逆向工程經(jīng)驗(yàn)的程序員都知道,應(yīng)用程序不僅能夠被調(diào)試,也能被修改。理論上講,只要深入探究程序的代碼,定位并替換其中嵌入的原始公鑰信息,改為自己的公鑰。隨后,使用個(gè)人持有的私鑰去創(chuàng)建一個(gè)新的授權(quán)文件,這樣一來,就實(shí)現(xiàn)了對(duì)軟件授權(quán)機(jī)制的破解。

更簡(jiǎn)單的方法是直接反編譯驗(yàn)證邏輯的代碼,當(dāng)驗(yàn)證的時(shí)候直接返回true,即可通過驗(yàn)證。

即使不能做到百分之百的安全性,我們還是應(yīng)該知道一些防破解的方法,增加用戶破解的難度。防破解主要有以下幾個(gè)方面的問題需要重點(diǎn)限制。

  • 如何解決java代碼反編譯之后,修改驗(yàn)證License的邏輯?

答:混淆代碼,增加反編譯的難度。

  • 如何防止客戶修改服務(wù)器時(shí)間以避免License過期?

答:分為離線和在線兩種情況。

在線情況下加載License信息時(shí),可以將License里保存的過期時(shí)間和線上標(biāo)準(zhǔn)時(shí)間做比較

離線情況下,需要滿足條件:申請(qǐng)時(shí)間 <= 系統(tǒng)時(shí)間 <= 截止時(shí)間

具體實(shí)現(xiàn)方案是,第一次加載License成功之后,將申請(qǐng)時(shí)間存到A處;

定時(shí)更新A處的時(shí)間,更新前比較當(dāng)前系統(tǒng)時(shí)間,如果系統(tǒng)時(shí)間 < 申請(qǐng)時(shí)間,說明系統(tǒng)時(shí)間被篡改過。否則,更新A處時(shí)間為當(dāng)前系統(tǒng)時(shí)間;

保存的時(shí)間是經(jīng)過加密的,但是有個(gè)問題是如果用戶備份了一開始的時(shí)間,過了一段時(shí)間之后用這個(gè)備份文件恢復(fù),再修改系統(tǒng)時(shí)間就可以永不過期,如何解決?

1. 可以將A處的時(shí)間信息保存到數(shù)據(jù)庫里,數(shù)據(jù)庫權(quán)限設(shè)置為只有開發(fā)人員可以修改,此外數(shù)據(jù)庫安裝的機(jī)器不能與軟件安裝的機(jī)器相同,否則用戶可以將二者統(tǒng)一安裝到某一個(gè)虛擬機(jī)里,快到期的時(shí)候再統(tǒng)一恢復(fù)到初始時(shí)間。

2. A處除了保存時(shí)間以外,還需要License的唯一id、使用License的機(jī)器mac地址,這些字段是為了保證License不被重復(fù)使用。

  • 如何防止客戶在多臺(tái)服務(wù)器上使用同一個(gè)License?

答:將服務(wù)器的ip或者mac地址與License做綁定關(guān)系。

軟件License授權(quán)原理(軟件license授權(quán)管理)

  • 如何防止用戶得到了源文件并獲取了私鑰,就可以自己偽造License?

答:避免將生成License的代碼安裝在用戶的機(jī)器環(huán)境下,最好在自己的機(jī)器環(huán)境下生成License。因?yàn)樯蒐icense之后得到的源文件一般會(huì)保存在代碼路徑下,如果用戶反編譯生成License的代碼,就能夠得到源文件信息。

最后整理了一張泳道圖,可以從整體觀察一下不限制、防止篡改系統(tǒng)時(shí)間和防止多設(shè)備共享License等問題的解決方案。

軟件License授權(quán)原理(軟件license授權(quán)管理)

#記錄我的2024#

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年4月29日 下午2:00
下一篇 2024年4月29日 下午2:11

相關(guān)推薦

  • 水中鉬的測(cè)定科研項(xiàng)目是

    水中鉬的測(cè)定科研項(xiàng)目 近年來,鉬作為一種重要的微量元素,受到越來越多的關(guān)注和研究。水中鉬的測(cè)定是其中一項(xiàng)非常重要的任務(wù)。隨著科學(xué)技術(shù)的不斷發(fā)展,水中鉬的測(cè)定科研項(xiàng)目也在不斷地進(jìn)行中…

    科研百科 2025年5月16日
    1
  • 村經(jīng)費(fèi)管理辦法

    村經(jīng)費(fèi)管理辦法 為加強(qiáng)農(nóng)村財(cái)務(wù)管理,提高財(cái)務(wù)透明度,確保村經(jīng)費(fèi)的使用合理、有效、安全,我村制定了一系列村經(jīng)費(fèi)管理辦法,現(xiàn)將具體情況向大家公布如下: 一、經(jīng)費(fèi)用途 村經(jīng)費(fèi)主要用于支持…

    科研百科 2024年8月20日
    21
  • 屠宰管理軟件+射頻識(shí)別(rfid)(屠宰行業(yè)管理軟件)

    活牛稱重 1、在二分體上掛rfid追溯卡→讀取追溯卡信息→達(dá)到穩(wěn)點(diǎn)讀取電子秤信息→選擇排酸間→作業(yè)完成; 2、二分體將按照屠宰順序自動(dòng)匹配毛牛,二分體追溯碼與毛牛耳號(hào)嚴(yán)格關(guān)聯(lián); 3…

    科研百科 2024年4月22日
    84
  • 2022監(jiān)理工程師《合同管理》沖刺卷(符合2022年新版教材)(2020監(jiān)理合同管理真題)

    一、單項(xiàng)選擇題(每題1分,共50題,共50分)下列每小題的四個(gè)選項(xiàng)中,只有一個(gè)符合題意的正確答案,多選、錯(cuò)選或不選均不得分。 1、合同管理貫穿于工程項(xiàng)目全過程,是工程項(xiàng)目管理的( …

    科研百科 2022年8月3日
    141
  • 尋找科研項(xiàng)目投資

    尋找科研項(xiàng)目投資 近年來,隨著科技的快速發(fā)展,科研項(xiàng)目投資已成為一個(gè)熱門話題。作為一名投資者,如何找到高質(zhì)量的科研項(xiàng)目是一項(xiàng)至關(guān)重要的任務(wù)。在本文中,我將分享一些尋找科研項(xiàng)目投資的…

    科研百科 2025年2月8日
    1
  • 培訓(xùn)費(fèi) 科研項(xiàng)目報(bào)銷

    培訓(xùn)費(fèi)與科研項(xiàng)目報(bào)銷是研究人員在開展研究過程中必須面對(duì)的兩個(gè)重要問題。在這篇文章中,我們將探討培訓(xùn)費(fèi)與科研項(xiàng)目報(bào)銷的重要性,以及如何有效地處理這些問題。 培訓(xùn)費(fèi)是指研究人員在參加外…

    科研百科 2025年5月6日
    2
  • 助理項(xiàng)目管理師報(bào)名時(shí)間

    助理項(xiàng)目管理師報(bào)名時(shí)間是多少? 助理項(xiàng)目管理師報(bào)名時(shí)間通常是在每年的5月至10月之間。具體報(bào)名時(shí)間可能會(huì)因地區(qū)、考試機(jī)構(gòu)或國家而異,因此建議在考試前查看當(dāng)?shù)乜荚嚈C(jī)構(gòu)的官方網(wǎng)站或咨詢…

    科研百科 2024年7月24日
    33
  • “燈塔-黨建在線”黨的十九大精神學(xué)習(xí)競(jìng)賽活動(dòng)即將開展(十九精神知識(shí)競(jìng)賽題及答案)

    你認(rèn)真學(xué)習(xí)我給你獎(jiǎng)勵(lì)! ??“燈塔?黨建在線”黨的十九大精神學(xué)習(xí)競(jìng)賽活動(dòng)即將開展 十九大的思想精髓和核心要義你領(lǐng)悟了多少?怎樣才能學(xué)以致用?現(xiàn)在機(jī)會(huì)來了,你可以換一種學(xué)習(xí)方式,登錄…

    科研百科 2024年6月22日
    37
  • 在線項(xiàng)目管理工具有哪些

    在線項(xiàng)目管理工具有哪些 隨著互聯(lián)網(wǎng)的發(fā)展,在線項(xiàng)目管理工具也越來越受歡迎。這些工具可以讓團(tuán)隊(duì)成員更方便地協(xié)作,更高效地完成項(xiàng)目。本文將介紹一些常見的在線項(xiàng)目管理工具。 1. Tre…

    科研百科 2024年5月24日
    75
  • 精細(xì)化管理項(xiàng)目軟件是什么(精細(xì)化管理項(xiàng)目軟件)

    精細(xì)化管理項(xiàng)目軟件 隨著企業(yè)競(jìng)爭(zhēng)的加劇,精細(xì)化管理已經(jīng)成為許多企業(yè)實(shí)現(xiàn)成功的關(guān)鍵。精細(xì)化管理是指在細(xì)致入微地控制和管理每一個(gè)方面,以確保項(xiàng)目的成功完成。為了實(shí)現(xiàn)這一目標(biāo),精細(xì)化管理…

    科研百科 2024年9月1日
    24