转载:软件加密方式
軟件加密方式 加密一詞來源已久,自從人們希望對自己私人的信息得到保護開始,就有了加密這個概念。軟件行業的加密是軟件廠商為了保護軟件開發的利潤 而采取的一種軟件保護方式,加密 的好壞直接影響到軟件的銷售,從 Apple II 的年代開始,加密與解密的斗爭就一直沒有停 止過。時至今日 ,軟件加密的方案已經多種多樣,在這里我將介紹一下各種加密方案的特點 和優劣,當然這只是一家之見,持不同觀點者可一笑置之。 當前軟件加密方法多種多樣,已經不可能找出一種分類方法來把各種加密方案很好的區分開來。 基本上來說可以分為依賴特定硬件的加密方案 和不依賴硬件的加密方案。 一、我們首先說說依賴硬件的加密方案: 1、軟盤加密 這是在計算機上最為古老的一種加密方案,它的原理是在軟盤的特殊位置寫入一些信息,軟件在運行時要檢驗這些信息。這種軟盤就好像一把鑰 匙。軟件開發商只需一次投資購買一套加密工具就可以自己制作多張鑰匙盤。此方法加密簡單,成本低,在軟件發展的不同時期 都能看到其閃 光點。像中文之星 2.97還在延用這種方式。但用戶在執行軟件時必須要插入此軟盤。因為軟驅是慢速設備,多次檢查軟盤上的加密點會大大拖 慢程序的運行速度,所以 一般加密軟件只在軟件運行開始的時候檢查一次,這樣不能避免用戶用一張加密盤啟動多份軟件。而且由于軟盤是一 種易損載體,加密軟件對軟盤加密點的反復讀寫很容易造成軟盤的損壞。而這張加密盤又不能備份,軟件公司要不斷應付用戶更換加密盤的請求 。另外由于這種加密技術出現的較早,硬解密的技術相對比較成熟,像雙星公司的 King-Copy 軟件能拷貝大多數的加密軟盤,連加密點一起復 制,復制后的軟盤還是加密的。 2、卡加密 在 90 年代初,各種各樣的漢卡涌現出來,而隨之而來的卡加密技術也開始風行。卡加密的好處是由于加密卡上面不僅僅可以存放數據,而且可 以用硬件實現簡單的算法,而且在軟件的執行過程中可以隨時訪問加密卡,不會對軟件運行的速度帶來太多的影響,而且由于加密卡是與計算機 的總線交換數據,數據通訊協議完全由卡的廠家制定,沒有統一的標準接 口,讓軟件解密者有無從下手的感覺。像北大方正早期的印刷軟件都 是采用這種方法來加密 的。但這種加密方案需要打開計算機的機箱,占用擴展槽,一般還需要專門的人員來安裝。 另外,由于加密卡設計上的 某些問題,還很容易同現有的硬件發生沖突。考慮到成本,加密 卡必須要批量生產,廠商一般不會對低價值的軟件一下投入這么大的資金。由 于種種問題, 這種加密技術現在已經難得一見了。 3、軟件鎖加密 軟件鎖加密是在國外首先出現的,它是一個插在計算機打印口上火柴盒大小的設備, 國內俗稱為加密狗。在加密鎖內部存有一定的數據和算法 ,計算機可以與之通訊來獲得其中的數據,或通過加密鎖進行某種計算。軟件無法離開加密鎖而運行。由于它不像卡加密那樣 需要打開計算機 的機箱來安裝,但又像加密卡那樣可以隨時訪問,而且訪問速度很快,所以一推出就受到軟件開發者們的青睞,很快成為當今世界上主流的加密 方案。目前,所有的加 密鎖都提供了可編程的接口。用戶可以控制加密鎖中的內容,在程序中通過加密鎖的接口任 意訪問加密鎖。國外加密鎖 一般僅提供若干種算法,但好的加密鎖不但可以向客戶提供加密算 法,也容許客戶根據自己的意愿自定義加密算法,容許客戶自定義用戶ID號… …比如:北京 飛天誠信科技公司推出的ROCKEY-IV鎖就是一種加密強度很高產品。但加密鎖也是有一定缺欠的,由于加密鎖利用的是計算機的打 印口,而打印口原來是為打印機而設計的,軟件鎖一方面要保證用戶加密操作的正確,同時也要保證打印機工作的正常。但由于打印機驅動程序 設計上千差萬別,沒有任何一家的加密鎖能夠完全做到這一點。 但這一問題隨著技術的進步有希望得到徹底的解決,那就是 USB 接口的加密鎖 。USB 是 Microsoft、Intel、Compaq、NEC 聯合開發的一種全新的硬件接口標準,能夠同時支持 128 個 不同的外部設備,而且互相之間沒有 沖突,在新的 PII 計算機主版上大多都可以看見兩個小小的長方形接口,那就是 USB 接口。USB 接口的加密鎖不但擁有并口加密鎖的所有優點 ,而 且沒有打印上的問題,其前景十分看好。但美中不足的是只有 Windows 98 和 Windows 2000 目前能夠支持 USB 設備。在國內市場上,有 幾種國外USB加密鎖,但售價很高。北京飛天誠 信科技公司推出的一款ROCKEY-USB加密鎖是國內目前唯一的民族品牌。其安全性優于國外產品的 同時,售價還不足100元,僅是國外產品的一半。 4、光盤加密 隨著光盤的普及,光盤幾乎成了軟盤的替代產品。即然有軟盤加密成功在先,為什么不能有光盤加密呢?有很多人在思考這個問題。但實際操作 上確實是有一些問題的,因為光盤有 ISO9660 標準協議規定,其可控制性比軟盤還要嚴格,想找出一種只能運行而不能復制的方式確實很困難 。但現在確實已經有幾家這樣的產品出來了,而且加密方法也不盡相同。 其主要原理是利用特殊的光盤母盤上的某些特征信息是不可再現的, 而且這些特征信息大多 是光盤上非數據性的內容,光盤復制的時候復制不到的地方。因為投入是一次性的,對于大規模的生產這種加密方案可 以將成本降得很低。而且軟件數據和加密在同一載體上,對用戶無疑是很方便的。但這是一種較新的加密方案,很多方面還需進一步驗證。而且 由于加密方式所限,不可能在用戶自己刻錄的光盤上實現這種加密,必須是生產線上生產的光盤才能夠實現。這對于一些小規模的軟件生產廠商 還是有一定困難的,而且由于光盤的只讀性,一旦 加密有錯是無法修復的。 二、我們再談談不依賴硬件的加密方案: 所有的帶有附加硬件設備的加密方案都有一定的加密成本在里面,對于那些價格高昂的軟件當然無所謂,但對于那些共享軟件或價格本身就很低 的軟件來說,硬件加密成本可能比 軟件本身的售價還高,當然不會被考慮了。但不加密,往往就變成了免費軟件,所以近年來 產生了很多軟加 密方案。 1、密碼表加密 在軟件運行的開始要求用戶跟據屏幕的提示信息輸入特定的答案,答案往往在用戶手冊上的一份防復印的密碼表中。用戶只有輸入密碼正確后才 能夠繼續運行。這種加密方案實現 簡單,不需要太多的成本。但用戶每次運行軟件都要查找密碼,不免使用戶感到十分的不便。 像臺灣的游戲 大多采用此加密方式。而且往往有一些有耐心者把整個密碼表輸入到計算機中 存成一個文件,同軟件的盜版一同公布出來,讓加密者無可奈何 。基本上是一種防君子不防小人的加密方式。 2、序列號加密 這種加密方式從某種角度來講不是一套完整的加密方案,現今很多Shareware( 共享軟 件 )大多采用這種加密方式,用戶在軟件的試用期是不需 要交費的,一旦試用期滿還希望繼續試用這個軟件,就必須到軟件公司進行注冊,然后軟件公司會根據你提交的信息(一般是用 戶的名字)來生 成一個序列號,當你收到這個序列號以后,并在軟件運行的時候輸入進去,軟 件會驗證你的名字與序列號之間的關系是否正確,如果正確說明 你已經購買了這個軟件,也 就沒有日期的限制了。這種加密方案實現簡單,而且購買過程也完全在 Internet 上實現, 無論是開發者和購買者 都覺得很方便。不過有心的人可能已經注意到軟件的名字與序列號之 間的驗證是在你的計算機上完成的,很多黑客利用這個漏洞找出了名字和 序列號之間的換算 關系,編寫出一種叫 KeyMaker 的程序,你只要輸入你的名字,這個程序會幫助你計算出序列號,你再用你的名字和這個序 列號輸入進軟件中就變成正版軟件了。而且也沒有什么更好 的方法來阻止用戶擴散他注冊后得到的序列號。 3、許可證加密 這種方式在某種角度上說可以是序列號加密的一個變種,你從網上下載的或購買過來的 軟件并不能直接使用,軟件在安裝時或運行時會對你的 計算機進行一番檢測,并根據檢測結 果生成一個你的計算機的特定指紋,這個指紋可以是一個小文件,也可以是一串誰也看不懂 的數,你需要 把這個指紋數據通過 Internet、Email、電話、傳真等方式發送到開發商那里, 開發商再根據這個指紋給你一個注冊碼或注冊文件,你得到這 個注冊碼或注冊文件并按軟件 要求的步驟在你的計算機上完成注冊后方能使用。這個方法的買賣也是完全通過網絡來進行 的,而且用戶購買的 軟件被限制了只能在他自己的計算機上面運行,換到其它的計算機上, 這個注冊碼或注冊文件可能不再有效。但用戶更換某些硬件設備也可能 造成注冊碼的失效, 而且用戶得到軟件后在完成注冊工作前會有一段時間無法使用。對于軟件開發商來說服務與 管理的工作量無疑也是非常巨 大的。網絡上有個 ZIP Download 公司專門替軟件開發商來完 成這種加密與服務工作。將來 PIII 處理器內部有了特定的序列號,將會對減少 這種加密方案的硬件依賴性,但估計普及起來還有很長的一段時間。
總結
- 上一篇: STM32单片机裸机程序-高级实现实时性
- 下一篇: 你做的网页在哪些浏览器测试过,这些浏览器