『壹』 大學生宿舍筆記本電腦防盜的問題
「小天使·筆記本防盜軟體」系列產品簡介:
擎天軟體公司生產的「小天使-筆記本電腦防盜軟體」系列產品已經獲得兩大政府權威機構立項支持,累計投資金額近100萬:
1、國家科學技術部科技型中小企業技術創新基金管理中心立項,立項代碼:09C26226115691
2、西安市科技計劃項目(企業技術創新工程-青年科技人才創業項目中被列入2010年度青年科技人才創業計劃,項目編號 CY1004。(西安市科學技術局、西安市財政局 、高新區管委會)
「小天使」防盜軟體作為電腦防盜的首創品牌和領軍品牌,已經為國內數百家企業廣泛使用,擁有自主知識產權,已獲多項國家專利授權。公司產品「防盜報警軟體」核心技術均採用國防級加密演算法,延續數十年的核心代碼技術,質量穩定,性能可靠。公司倡導的"從消防到預防"的 安防理念已經得到愈來愈多的用戶認可,並廣泛在警方、企業、校園、筆記本生產企業等領域投入應用,為開創、建立中國的筆記本防盜行業而兢兢業業。 我們正在創造一個行業! 我們的目標,我們的使命是:讓電腦成為人類歷史上第一個永遠不會丟失的物品。
產品三大特點:(給您的電腦,三層保護)
一、第一層保護——小天使·報警器
觸發式高頻聲音報警器(讓你的電腦會大叫救命)
當別人動你的電腦時(觸發報警動作),你的筆記本就會自動報警(通過喇叭和音響以最高的音量發出防盜報警的聲音,而且無論你的
系統聲音選項是否是靜音還是處於最小音量狀態,小天使都會以最大音量發出報警聲。
考慮細節特點,貼心周全:
1、如果報警時您的電腦音量不夠大,沒關系,報警前小天使筆記本防盜軟體會自動調整Windows系統音量到最大。
2、萬一您忘記了把電腦的聲音關閉了,也沒關系,小天使會自動關閉靜音狀態,然後發出警報。
3、電腦內置的PC喇叭會同時進行鳴叫,即便音響系統故障了、被破壞了,仍然可發出高頻的警報笛聲。
4、觸發報警的條件考慮全面,包括:①有人拔出你的筆記本電腦A/C電源、②企圖注銷系統或關機、③拔出USB滑鼠(或任意USB設備)、
④移動滑鼠、 ⑤或者在XX分鍾沒有滑鼠或鍵盤動作,則自動進入保護狀態,也就是進入可隨時觸發報警器的敏感狀態。
5、小天使報警器有自我防禦功能,可以避免被別有用心的人惡意破壞。(含進程保護等技術)
2、第二層保護——小天使·定位追蹤器
雖然有了電腦報警器,但是我們在一些情況下,還是有可能丟失電腦,那麼萬一丟失了,怎麼才能找回來呢?
那就要用到「小天使·定位追蹤器」了。
「小天使·定位追蹤器」一旦啟動,就相當於給您的電腦安裝上了一個「定位追蹤裝置」,筆記本電腦被偷走後,「小天使」
便能自動向擎天公司的追蹤伺服器中心提供該筆記本的IP地址、電話號碼、QQ聊天記錄等信息,這樣便可協助警方找回筆記本。
「小天使」會以一種無法被察覺的方式不時的向中心伺服器報道筆記本所在的位置。
「小天使」可以說是「史上最匪夷所思的筆記本防盜軟體」因為不論是盜竊者重新安裝Windows還是格式化整個系統,都無法
破壞本軟體。只要他一上網,仍然逃脫不了我們的監視追蹤!必要的時候,它還可以在你的控制下,遠程遙控攝像頭,進行拍照,
以便獲得犯罪嫌疑人照片。
3、第三層保護——小天使·數據保險箱
本軟體還可自動對硬碟的內容進行加密或銷毀處理,即使筆記本被偷您也不用擔心信息泄露。
總結:這三層防護一起為您構築起了一道鋼鐵防線
——首先,我們不讓電腦丟; 萬一丟了,我們能追蹤回來; 萬一找不回來,我們的重要文件數據也是安全的。
「小天使防盜跟蹤軟體」是一套集合目前國內外幾乎所有電腦防盜技術之大成的綜合性電腦防盜產品。其覆蓋包括:聲音報警+遠程追蹤
+保險公司+攝像頭+聊天記錄+數據保險箱,等等一應俱全,是中國第一款由國人完全自主研發的電腦防盜軟體在警方刑偵破案、
校園、企業等等不同領域獲應用,並且取得一定反響。已通過公安部檢測,而且有保險公司承擔第三方保險。
『貳』 學習網路安全的大學生,畢業考試會不會直接實戰
網路安全學習起來比較的枯燥,導致許多的學生在平時的時候沒能完全的掌握老師所傳達的知識。馬上又要面臨畢業,心裡就會產生懷疑如果畢業考試比較深入,但自己又學習的不夠深入,會不會沒發通過考試,導致自己畢不了業。筆者在這里可以明確的告訴你,你平時所學的知識肯定會用到,但至於需要用到多少,這個在於你取決的方向。
所以,並不是學習網路安全,在畢業考試的時候就只能夠做關於網路安全的畢業設計,你有很多的選擇。但是呢不管選擇做什麼,畢業考試的時候都是需要自己動手的,自己查資料然後完成畢業設計,指導老師只會給出建議和提出要求,剩下的都需要學生自己去完成。
我覺得我們的同學也不用太過擔心,我原來也是,感覺自己學的不扎實,害怕自己完成不了畢業考試,但是萬事總是開頭難,當你鼓起勇氣動手去做的時候,可能剛開始會有點慢,一段時間以後進步就會非常大,通過畢業考試也不在話下。
『叄』 自學信息安全!!!
天津市高等教育自學考試課程考試大綱
課程名稱:
信息安全
課程代碼:7172
第一部分
課程性質與目標
一、課程性質與特點
《信息安全》是高等教育自學考試軟體工程專業的一門專業課程。通過本課程的學習,使學生對信息安全的重要性和與信息安全有關的基本概念、方法和技術有一個全面的了解並將其運用到實踐中去。
本課程主要講述信息安全的理論及應用,包括密碼學的基本理論及應用、網路攻擊及防護、WEB安全威脅及防範、計算機病毒的防範以及電子商務的安全。
本大綱是根據高等教育自學考試軟體工程專業(獨立本科段)的指導思想和培養目標編寫的,立足於培養將信息安全技術應用於本領域、本行業的復合型應用人才。大綱內容盡可能簡明實用,便於教師操作和學生掌握。
二、課程目標與基本要求
通過本課程的學習和考試,使學生對信息安全方面的知識有全面的了解,並能將信息安全方面的知識和技術運用於實踐中。課程的基本要求包括:
1、了解計算機安全的基本概念以及相關的標准;
2、掌握計算機病毒的基本結構和防治的基本辦法;
3、了解密碼學的基本概念及古典密碼學的加密與分析方法、shannon密碼學理論和序列密碼的基本概念;
4、掌握現代加密方法,包括DES、Rijndael、RSA等演算法;
5、掌握密碼技術在信息安全中的應用;
6、掌握網路安全技術、網路系統安全策略與設計、網路操作系統安全、資料庫安全、虛擬專用網安全及防火牆技術等;
7、了解Web面臨的安全威脅和防範技術及電子商務安全等。
三、與本專業其他課程的關系
信息安全涉及多學科知識,在學習本課程之前應先行學習本專業的計算機網路技術,並應有一定的計算機操作系統、高等數學方面的知識。
第二部分 考核內容與考核目標
第一章
緒論
一、學習目的與要求
通過本章學習,了解信息安全的基本概念及網路信息安全的標准,對信息安全的重要性及研究內容有一個初步了解。
二、考核知識點與考核目標
(一)信息安全基本概念(重點)
識記:信息安全基本概念、信息安全面臨的威脅、網路信息安全特徵與保護技術、網路信息安全與保密學。
(二)網路信息安全(重點)
識記:網路信息安全體系結構框架、網路信息安全機制及安全標准。
第二章 計算機病毒概述
一、學習目的與要求
通過本章的學習,對計算機病毒的概念、特點及反病毒技術有一個了解,掌握計算機病毒的檢測與防範方法。
二、考核知識點與考核目標
(一)計算機病毒的發生和發展(一般)
識記:計算機病毒的起源與發展歷史。
(二)計算機病毒產生的原因(次重點)
識記:計算機病毒產生的原因、典型病毒及特點、防治病毒的基本技術。
(三)計算機病毒的檢測與消除(重點)
識記:計算機病毒的檢測類型及檢測方法。
應用:計算機病毒消除方法。
第三章 密碼學概論
一、學習目的與要求
通過本章的學習,掌握信息加密的基本概念和傳統密碼學的加密方法與分析方法,了解shannon密碼學理論和序列密碼、Hill密碼、一次一密方案的基本概念。
二、考核知識點與考核目標
(一)信息加密的基本概念(重點)
識記:信息加密的基本概念。
(二)傳統密碼學(重點)
識記:單表代換密碼、多表代換密碼、多字母代換密碼、一次一密方案的概念。
應用:單表代換密碼、多表代換密碼、多字母代換密碼的加密方法與分析方法。
(三)shannon理論(一般)
識記:信息量和熵的定義及有關定理,完善保密性與實際保密性的概念。
(四)序列密碼(一般)
識記:序列密碼的概念和分類、密鑰流概念。
(五)仿射密碼(重點)
識記:Hill密碼概念、加法密碼、乘法密碼、仿射密碼。
理解:Hill密碼體制。
應用:Hill加密與解密。
第四章 加密演算法
一、學習目的與要求
通過本章學習,了解對稱密碼演算法和公開密鑰密碼演算法、數據加密標准DES演算法和Rijndael演算法,以及RSA等加密演算法。
二、考核知識點與考核目標
(一)分組密碼(次重點)
識記:分組密碼概念及設計原則,分組密碼中常用函數與S盒設計。
理解:分組密碼的工作方式。
(二)DES與Rijndael演算法(重點)
識記:DES與Rijndael等演算法的特點。
理解:DES演算法和Rijndael演算法的加密與解密的實現。
(三)密碼攻擊方法(次重點)
識記:密碼攻擊的概念。
理解:密碼攻擊形式、統計分析破譯法、已知明文攻擊破譯法。
(四)雙鑰密碼體制(重點)
識記:雙鑰密碼體制的基本概念與特點、公鑰密碼背景。
理解:RSA密碼體制與EIGamal密碼體制。
第五章 密碼應用
一、學習目的與要求
通過本章學習,了解密碼技術在信息安全中的應用,掌握密碼與安全協議概念、數字簽名和身份認證方法以及CA與公鑰密碼基礎實施的相關概念及應用。
二、考核知識點與考核目標
(一)數字簽名體制(重點)
識記:RSA簽名的概念,幾種特殊的數字簽名,常規密碼安全協議與高級安全密碼協議。
理解:RSA簽名體制與數字簽名標准,不可否認數字簽名方案。
(二)hash函數(一般)
識記:生日攻擊概念。
理解:MD與SHA演算法。
(三)身份識別協議(重點)
識記:身份識別的概念和作用。
理解:schnonr身份識別方案及信息隱藏技術。
(四)CA與數字證書(重點)
識記:CA的基本概念、申請與撤消證書的流程。
(五)公開密鑰基礎設施(次重點)
識記:證書的類型和證書內容,CA、證書主體、證書用戶之間的關系、強身份認證與不可否認的概念、X.509證書系統概念及內容。
第六章 計算機網路系統集成安全技術
一、學習目的與要求
通過本章學習,掌握網路安全策略與設計以及防火牆和入侵檢測技術,了解網路操作系統安全、資料庫安全。
二、考核知識點與考核目標
(一)網路系統安全策略與設計(重點)
識記:網路的安全體系與安全設計。
理解:網路系統實體安全與網路安全措施、PPDR-A模型。
(二)網路操作系統安全(重點)
識記:網路操作系統的安全問題及安全訪問控制、安全操作系統設計與實施、資料庫安全防護、PKI技術內容。
理解:Windows
NT安全、UNIX安全、Linux安全、VPN安全技術、PKI工程。
(三)防火牆技術(重點)
識記:黑客攻擊特徵與防範技術、防火牆概念及作用,防火牆的局限性,網路測試工具。
理解:防火牆的體系結構及組合形式、幾種主要的防火牆技術。
(四)入侵檢測(重點)
識記:入侵檢測的概念,入侵檢測系統的分類。
應用:入侵檢測的過程與技術,入侵檢測系統的選擇和評價。
(五)網路安全防護(重點)
應用:多層次網路安全防護及網路安全策略。
第七章 網路通信安全保密技術
一、學習目的與要求
通過本章學習,了解網路通信保密技術類型、保密通信技術要求及類型、網路通信加密安全措施、網路通信訪問與接入控制、電子郵件安全、IP安全、Web安全。
二、考核知識點與考核目標
(一)網路通信保密技術(次重點)
識記:保密通信基本要求、網路通信信息流控制與通信保密技術。
(二)Web安全(次重點)
識記:Web安全基本問題。
理解:SSL安全技術、HTTP/SHTTP的安全性。
(三)網路通信加密安全措施(次重點)
識記:加密密鑰的分配管理、鏈路加密、端—端加密概念。
理解:網路通信加密形式、鏈路加密和端—端加密原理及特點。
(四)網路通信訪問與接入控制(次重點)
識記:通信訪問安全機制、接入訪問安全控制。
(五)電子郵件安全(一般)
識記:PGP加密方案、PGP公鑰管理。
(六)電子商務安全(次重點)
識記:電子商務安全問題、典型電子交易協議。
理解:電子支付系統與SET安全技術、電子商務安全策略。
(七)IP安全(次重點)
識記:IP安全主要內容
理解:IP安全技術
第三部分 有關說明與實施要求
一、考核目標的能力層次表述
本課程的考核目標共分為三個能力層次:識記、理解、應用,它們之間是遞進等級的關系,後者必須建立在前者基礎上。其具體含義為:
識記:能知道有關的名詞、概念、知識的含義,並能正確認識和表述,是低層次的要求。
理解:在識記的基礎上,能全面把握基本概念、基本原理、基本方法,能掌握有關概念、原理、方法的區別與聯系,是較高層次的要求。
應用:在理解的基礎上,能運用基本概念、基本原理、基本方法聯系學過的多個知識點分析和解決有關的理論問題和實際問題,是最高層次的要求。
二、教材
《網路與信息安全教程》
林柏鋼編著 機械工業出版社 2004年7月第1版
三、自學方法指導
1、在開始閱讀指定教材某一章之前,先翻閱大綱中有關這一章的考核知識點及對知識點的能力層次要求和考核目標,以便在閱讀教材時做到心中有數、突出重點、有的放矢。
2、在了解考試大綱內容的基礎上,根據考核知識點和考核要求,在閱讀教材時,要逐段細讀,逐句推敲,集中精力,吃透每一個知識點,對基本概念必須深刻理解,對基本理論必須徹底弄清,對基本方法必須牢固掌握,並融會貫通,在頭腦中形成完整的知識體系。
3、在自學過程中,既要思考問題,也要做好閱讀筆記,把教材中的基本概念、原理、方法等加以整理,這可從中加深對問題的認識、理解和記憶,以利於突出重點,並涵蓋整個內容,可以不斷提高自學能力。同時,在自學各章內容時,能夠在理解的基礎上加以記憶,且勿死記硬背。
4、完成書後作業和適當的輔導練習是理解、消化和鞏固所學知識,培養分析問題、解決問題及提高能力的重要環節。在做練習之前,應認真閱讀教材,按考核目標所要求的不同層次,掌握教材內容,在練習過程中多所學知識進行合理的回顧與發揮,注重理論聯系實際和具體問題具體分析,解題時應注意培養邏輯性,針對問題圍繞相關知識點進行層次(步驟)分明的論述或推導,明確各層次(步驟)間的邏輯關系。
四、對社會助學的要求
1、應熟知考試大綱對課程提出的總要求和各章的知識點。
2、應掌握各知識點要求達到的能力層次,並深刻理解對各知識點的考核目標。
3、輔導應以考試大綱為依據,指定教材為基礎,不要隨意增刪內容,以免與大綱脫節。
4、輔導時,應對學習方法進行指導。提倡「認真閱讀教材,刻苦鑽研教材,主動爭取幫助,依靠自己學通」的方法。
5、輔導時,要注意突出重點,對考生提出的問題,不要有問即答,要積極啟發引導。
6、注意對應考者能力的培養,特別是對自學能力的培養,要引導學生逐步學會獨立學習,在自學過程中善於提出問題、分析問題、解決問題的能力。
7、要使考生了解試題的難易與能力層次高低兩者不完全是一回事,在各個能力層次中存在不同難度的試題。
8、助學學時:本課程共4學分,建議總學時72學時,課時分配如下:
章
次
內
容
學
時
第一章
緒論
2
第二章
計算機病毒概述
8
第三章
密碼學概論
12
第四章
加密演算法
12
第五章
密碼應用
12
第六章
計算機網路系統集成安全技術
12
第七章
網路通信安全保密技術
14
總學時
72
五、關於考試命題的若干規定
1、本大綱各章所提到的內容和考核目標都是考試內容。試題覆蓋到章,適當突出重點。
2、試卷中對不同能力層次的試題比例大致是:「識記」為10%、「理解」為30%、「應用」為60%。
3、試題難易程度要合理:易、較易、較難、難比例為2:3:3:2。
4、每份試卷中,各類考核點所佔比例約為:重點佔65%、次重點佔25%、一般佔10%。
5、本課程命題採用的基本題型包括名詞解釋、單項選擇題、填空題、簡答題、應用題、計算題等。
6、考試採用閉卷筆試,考試時間150分鍾,採用百分制評分,60分為合格。
六、題型示例
(一)填空
計算機病毒由引導模塊、傳染模塊和
模塊構成。
(二)單選題
差分密碼分析是採用
方法攻擊選優分組密碼的。
A、已知密文攻擊
B、已知明文攻擊
C、選擇明文攻擊
D、選擇密文攻擊
(三)名詞解釋
超級沖殺
ARP欺騙
(四)簡答題
1、說明雙重簽名的實現方法?
2、說明SET協議的主要目標?
(五)計算題
已知公開密鑰為e=5,n=35,密文c=10,求明文。
(六)應用題
寫出利用SET協議實現用戶雙方認證的過程。
天津市高等教育自學考試課程考試大綱
課程名稱:信息安全
課程代碼:7172
『肆』 關於使用c#進行文件夾加密的問題!!
要不把文件看成比特流加密好了。
.Net中常見的加密和編碼演算法集成在.NET Framework中
名稱空間:System.Security.Cryptography
需要掌握System.Security.Cryptography名字空間的功能和用於解決特定方案的類。
你可以去研究下喔
『伍』 大學數學系老師課余時間的研究課題都為哪類請舉例說明
數學有相當多的分支:你的問題太泛了。
我就舉幾個例子吧。比如搞基礎數學的,像數論的就可以搞密碼研究,例如山東大學的王小雲就是搞加密演算法的,用的是純數學函數方面的東西。密碼學和數學結合相當緊密的,國內西電的應用數學就是因為她的密碼學而聞名的。還有搞信號的,也要數學系的老師,還有搞網路演算法的,數學系的老師也搞,總之涉及的領域相當多,你說的還有樓上說的都只是些表面淺層的東西。
『陸』 大學生醫保電子憑證參保地是在家鄉還是學校
大學生醫保電子憑證參保地是在學校。
醫保電子憑證由國家醫保信息平台統一簽發,是基於醫保基礎信息庫為全體參保人員生成的醫保身份識別電子介質。電子憑證通過實名/實人認證技術,採用加密演算法形成電子標識,具備安全可靠、認證唯一等重要特點。參保人可通過電子憑證享受各類在線醫療保障服務。
(6)大學生加密演算法擴展閱讀:
醫保電子憑證具有身份憑證、信息記錄、自助查詢、醫保結算、繳費及待遇領取、辦理醫保業務等功能,確保群眾能夠在互聯網上高效、安全地享受醫療保障部門的各項公共服務。參保人可通過國家醫保App,或者通過微信、支付寶等經由國家醫保局認證授權的第三方渠道激活使用。
在安全性上,醫保電子憑證通過實名、實人認證,採用國產加密演算法,數據加密傳輸,動態二維碼展示,確保個人信息和醫保基金使用安全。它由國家醫保信息平台統一生成,標准全國統一,跨區域互認,參保人可依此在全國辦理有關醫保業務,堪稱「一碼在手,醫保無憂」。
『柒』 軟體加密與解密的前言
隱蔽軟體(surreptitious software)是近十年來計算機安全研究領域新興的一個分支。在隱蔽軟體的研究過程中不僅需要借鑒計算機安全方面的技術,還會用到計算科學其他領域的大量技術,如密碼學、隱寫術、數字水印、軟體量度(software metric)、逆向工程以及編譯器優化等。我們使用這些技術來滿足在計算機程序中安全存儲秘密信息的需求,盡管這些需求的表現形式千差萬別、各不相同。本書中「秘密」一詞的意思比較廣,書中所介紹技術(代碼混淆、軟體水印和指紋、防篡改技術以及軟體「胎記」等)的使用目的是防止他人剽竊軟體中的智力成果。比如,軟體中使用指紋技術可以用來跟蹤軟體是否被盜版,代碼混淆技術能夠加大攻擊者逆向分析軟體的難度,而防篡改技術則可以使別人很難製作軟體的破解版,等等。
好了,現在我們來講講為什麼需要閱讀本書,誰使用隱蔽軟體以及本書將會涵蓋哪些內容。
為什麼閱讀本書
與傳統的安全研究不同,隱蔽軟體不關心如何使計算機免於計算機病毒入侵,它關心的是計算機病毒的作者是如何防止他人分析病毒的!同樣,我們也不關心軟體到底有沒有安全漏洞,我們關心的是如何隱蔽地在程序中加入一些只有在程序被篡改時才會執行的代碼。密碼學研究領域中,被加密數據的安全性依賴於加密密鑰的隱秘性,而我們現在研究的恰恰是如何隱藏密鑰。軟體工程中有大量的軟體量度技術,以確保程序結構良好,本書中將使用同樣的技術使程序復雜難讀。本書中描述的很多技術都是基於編譯器優化技術研究開發的演算法的,但是編譯優化的目的是使編譯器生成個頭盡量小、運行速度盡量快的程序,而使用本書中介紹的一些技術卻會使生成的程序個頭又大,執行起來又慢。最後,傳統的數字水印和隱寫術是想辦法把要隱藏的信息藏到圖像、音頻、視頻甚至純文本文件中,而隱蔽軟體則是把需要隱藏的信息藏到計算機代碼中。
那麼,為什麼要閱讀本書呢?為什麼要了解一種不能防止計算機被病毒或者蠕蟲攻擊的安全技術?為什麼要學習一種只會讓代碼體積變大而執行速度變慢的編譯優化技術?為什麼要把精力花在一種違反了密碼學基本前提(即密鑰是不可能被攻擊者獲得的)的密碼學分支上呢?
回答是,傳統的計算機安全和密碼學研究成果有時並不能解決實際工作中遇到的且亟待解決的安全問題。比如,在本書中將展示如何使用軟體水印技術防止軟體盜版。軟體水印是在程序中嵌入的唯一標識(類似信用卡的卡號或者版權聲明),通過這個標識,程序的某個副本就和你(程序的作者)或者客戶聯系在了一起。要是你發現市場上在賣自己軟體的盜版光碟,就可以通過在盜版軟體中提取的水印追查製作這個盜版軟體的母版 當初是哪個傢伙從你這里買走的。當給合作商提供新開發的游戲的測試版時,你也可以在測試版中加上數字水印。要是你感覺有人泄露了你的代碼,就能(從眾多的合作商中)找出肇事者,並把他送上法庭。
又比如,在程序的新版本中加上了某個新的演算法,你當然不希望競爭對手也得到這個演算法,並把它加到他們的軟體中。這時,你就可以去混淆程序,使之盡可能變得復雜難懂,使競爭對手逆向分析軟體時效率很低。而如果確實懷疑某人剽竊了你的代碼,本書也會教你如何使用軟體「胎記」證實你的懷疑。
再比如,你的程序中包含有某段不能為人所知的代碼,並且你想確保沒有這段代碼程序就不能正常運行。例如,你肯定不希望黑客修改程序中的軟體使用許可驗證代碼,或者可用於解密數字版權管理系統中mp3文件的密鑰。第7章將討論多種防篡改技術,確保受到篡改的程序停止正常運行。
聽說你把密鑰放在可執行文件里了?這主意實在太糟糕了!以往的經驗告訴我們,任何類似「不公開,即安全」 的做法最終都將以失敗告終,而且不管在程序中怎樣隱藏密鑰,最終它都逃不出一個足夠頑強的逆向分析人員的手心。當然,必須承認你的做法也還是對的。本書中介紹的所有技巧都不能保證軟體能永遠免於黑客的毒手。不必保證某個東西永遠處於保密的狀態,也不必保證程序永遠處於不可能被篡改的狀態,更不需要保證代碼永遠不會被剽竊。除非這個研究領域有什麼重大的突破,否則能指望的只是延緩對方的攻擊。我們的目標就是把攻擊者的攻擊速度減緩到足夠低,使他感到攻擊你的軟體十分痛苦或要付出過高的代價,從而放棄攻擊。也可能攻擊者很有耐心地花了很長時間攻破了你的防禦,但這時你已經從這個軟體中賺夠了錢,或者已經用上了更新版本的代碼(這時他得到的東西也就一錢不值了)。
比方說,你是一個付費頻道的運營商,用戶通過機頂盒來觀看你提供的電視節目。每個機頂盒都是帶有標簽的——在代碼的某個位置上存放了分配給每個用戶的唯一標識(ID),這樣你就可以根據用戶的繳費情況決定是允許還是拒絕某個特定用戶觀看頻道里的節目。可是現在有一個黑客團伙找到並且反匯編了這段代碼,發現了計算用戶ID的演算法,並且在網上以低廉的價格把修改用戶ID的方法賣給了網民。這時你該怎麼辦呢?你也許想到了使用防篡改的智能卡,不過這玩意兒並不像看上去那麼難破解,這將在第11章中講解。或者你可能想到要混淆代碼,使之更難以被分析。或者你也可以使用防篡改技術使程序一被修改就自動停止運行。更有可能,你會混合使用上述各種技巧來保護代碼。但是盡管使用了所有技術,你還必須要知道並且必須接受,你的代碼仍然可能被破解,秘密仍會泄露(在這個案例里就是機頂盒裡的用戶ID仍然會被篡改)這一事實。怎麼會這樣呢?這只是因為「不公開,既安全」這個想法在根本上就存在漏洞。不過既然本書中介紹的所有技術都不能給你一個「完美並且長期的安全保證」,那麼為什麼還要使用這些技術,為什麼還要買這樣一本書呢?答案很簡單,代碼能頂住黑客攻擊的時間越長,訂閱頻道的客戶就越多,同時升級機頂盒的周期也就越長,這樣你賺到的錢和省下的錢也就越多。
就這么簡單。
誰使用隱蔽軟體
很多知名的公司都對隱蔽軟體有濃厚的興趣。事實上很難真正掌握有關技術在實踐中具體被使用的程度(因為大多數公司在如何保護自己的代碼一事上絕對是守口如瓶的),但是我們還是可以根據他們專利的申請和擁有情況把他們對隱蔽軟體的感興趣程度猜個八九不離十。微軟公司擁有多個關於軟體水印[104,354]、代碼混淆[62,62,69,69,70,70,180,378]和軟體「胎記」[364]技術的專利。Intertrust公司擁有大量與數字版權管理技術相關的組合式專利,包括代碼混淆和代碼防篡改專利。2004年,在微軟與Intertrust之間的馬拉松式官司落下了帷幕之後,微軟向Intertrust支付了高達4.4億美元的專利使用費,才獲得了後者所有的專利使用許可。同年,微軟也開始與PreEmptive Solution公司開展商業合作[250],從而把PreEmptive Solution開發的identifier obfuscator(PreEmptive solution公司在該工具中擁有專利[351])加到了Visual Studio的工具集里。而普渡大學科研成果的副產品Arxan,因其獨創的防篡改演算法專利[24,305]而成功地開辦了一家公司。蘋果公司擁有一個代碼混淆方面的專利,估計是用於保護其iTune軟體的。Convera,一家從英特爾公司獨立出來的企業,則著力研究應用於數字版權管理的代碼防篡改技術[27,268-270]。從加拿大北方電信公司中分離出來的Cloakware公司也是這個領域里最成功的企業之一。該公司擁有他們稱為「白盒加密」的專利[67,68,182],即把加密演算法和密鑰藏到程序代碼中。2007年12月,Cloakware公司被一家主營付費電視業務的荷蘭公司Irdeto以7250萬美元的價格收購。即使是相對的後來者Sun Microsystem也已經提交了一些代碼混淆領域的專利申請。
Skype的VoIP客戶端也使用了類似Arxan[24]、英特爾[27]及本書中將要提到的[89]代碼混淆和防篡改技術進行了防逆向工程加固。對於Skype公司來說,保護其客戶端的完整性無疑是極其重要的,因為一旦有人成功逆向分析了其客戶端軟體,解析出Skype所使用的網路協議,黑客們就能寫出廉價的能與Skype軟體進行正常通信的程序(這樣的話,人們就沒有必要一定用Skype)。所以保持網路協議不公開則有助於Skype擁有一個龐大的用戶群,這大概也是2005年易貝公司以26億美元收購Skype的原因吧。實際上,使用隱蔽軟體技術還使Skype公司贏得了足夠多的時間,進而成為了VoIP技術的領軍企業。即使這時Skype的協議被分析出來了(這一點黑客們確實也做到了,詳見7.2.4節),黑客們也拿不出一個能夠撼動Skype市場地位的類似軟體了。
學術研究者從多種角度對隱蔽軟體技術進行了研究。一些擁有編譯器和程序語言研究背景的研究者,比如我們,會很自然地加入這一領域的研究,因為涉及代碼轉換的絕大多數演算法都會涉及靜態分析的問題,而這一問題則是編譯優化技術的研究者再熟悉不過的了。盡管以前,密碼學研究者大多不屑於研究「不公開,即安全」的問題,但最近一些密碼學研究人員已經開始把密碼學的相關技術應用於軟體水印以及發現代碼混淆技術的局限性上了。來自多媒體水印、計算機安全和軟體工程方面的研究人員也已經發表了很多關於隱蔽軟體的文章。遺憾的是,由於沒有專門的刊物、學術會議(供研究人員相互之間進行交流),這一領域的研究進展被大大延緩了。事實上,為了使這些研究成果能被傳統的學術會議和期刊接受,研究人員在不停地努力著,現在仍在努力。目前已經發表過隱蔽軟體研究成果的學術會議有POPL(Principles of Programming Languages,程序設計原理)上的ACM專題研討會、信息隱藏研討會、IEEE的軟體工程研討會、高級密碼學會議(CRYPTO)、ISC(Information Security Conference,信息安全大會)以及其他一些關於數字版權管理的學術會議。隨著隱蔽軟體這一領域的研究越來越成為學術研究的主流,我們有望擁有專門針對於隱蔽軟體的期刊、專題討論會甚至是研討會,只是可惜目前為止這一切都還沒有實現。
軍方也在隱蔽軟體上花了很多精力(和納稅人的錢)。比如,Cousot公司擁有的軟體水印演算法[95]專利就歸屬於世界上第九大國防工程承包商法國Thales集團。下面是一段引自最新的(2006)美軍招標文件[303]中有關AT(anti-tamper)技術 研究的文字。
現在,所有的美軍項目執行部門(PEO)和項目管理方(PM)在設計和實現有關系統時,必須在系統中使用軍隊和國防部制定的AT策略。嵌入式軟體現代武器系統的核心,是被保護的最重要技術之一。AT技術能夠有效地保證這些技術不被他國(人)逆向工程分析利用。僅僅由標准編譯器編譯生成而不加AT技術防護的代碼是很容易被逆向分析的。在分析軟體時,逆向工程分析人員會綜合使用諸如調試器、反編譯器、反匯編器等很多工具,也會使用各種靜態和動態分析技巧。而使用AT技術的目的就是使逆向工程變得更為困難,進而防止美國在技術領域的優勢被他國竊取。今後還有必要向部隊的PEO和PM提供更有用、更有效並且多樣化的AT工具集……研發AT技術的目的在於提供一個能夠抗逆向工程分析的高強度殼 ,從而最大限度地遲滯敵方對被保護軟體的攻擊。這樣美國就有機會維持其在高科技領域的優勢或者減緩其武器技術泄密的速度。最終,美軍就能繼續保持其技術優勢,進而保證其軍備的絕對優勢。
這份招標文件來自於美軍導彈和空間程序(設計部門),專注於實時嵌入式系統的保護。我們有理由相信產生這份招標文件的原因是,美軍擔心射向敵方的導彈由於種種原因落地後未能爆炸,使敵方有機會接觸到嵌入在導彈中負責引導導彈飛臨目標上空的控制軟體。
下面是另一段引自美國國防部[115]的文字。
進行主動式軟體保護 (SPI)是國防部的職責之一,它必須開發和部署相關的保護技術,以保證含有國防武器系統關鍵信息的計算機程序的安全。SPI提供的是一種全新的安全防護方法,它並不(像傳統的安全技術那樣)保護計算機或者網路的安全,而只是加強計算機程序自身的安全。這種新方法能顯著提升國防部的信息安全情況。SPI的適用范圍很廣,從台式機到超級計算機上面所有的程序都能使用SPI技術予以保護。它是(軟體保護技術中)完整的一層,是「縱深防禦」的一個範例。SPI技術是對網路防火牆、物理安全等傳統安全技術的一個補充,但是其實現並不依賴於這些傳統的安全設備。現在SPI技術被部署在選定的HPC中心和150多家國防部機關以及其他由商業公司參與建設和維護的軍事基地。廣泛地部署SPI技術將會有效地增強美國和美國國防部對關鍵應用技術的保護。
.上面這段話說明了什麼?它說明美國國防部不僅關心導彈會不會掉到敵方領土上去,還關心在自己的安全系數和性能都很高的計算機中心運行的軟體的安全。事實上,竊密和反竊密是防間諜機關和情報部門之間永恆的主題。比方說,一架戰斗機上的某個程序需要更新一下,這時我們很可能就是用一台筆記本電腦連接到這架戰斗機上進行更新操作。但是萬一這台筆記本電腦不慎遺失了,或者乾脆就被其他國家政府使用某種方法控制了,就像電影里常演的那樣,這時會有什麼情況發生呢?對方會馬上把相關的代碼拿去做逆向工程分析,並把分析的結果用於改進其戰斗機中所使用的軟體。更有甚者,對方會悄悄地在你的軟體中加上一個特洛伊木馬,並讓飛機在特定的時間里從天上掉下來。如果我們不能絕對保證上述這一幕100%不可能發生的話,隱蔽軟體至少可以作為安全防禦的最後一道防線(至少還能做到事後的責任追究)。例如,飛機中的軟體可以用有權訪問相關軟體的人的ID做一個指紋簽名。要是哪天,在其他國家的戰斗機上發現了這些代碼,就可以立即對這些代碼進行逆向分析,並進一步推算出誰是泄密事件的元兇。
什麼?我聽見你說,為什麼我要對政府之間和商業巨頭之間如何保護它們各自的秘密感興趣呢?如果黑客破解了這些軟體,他們也不過是通過自己的勞動換取一些微薄的利益而已啊。話雖如此,但是這些保護技術給你 帶來的好處最終還是大於它給商業巨頭帶來的好處。理由是,對你來說,法律形式的保護措施(如專利、商標和版權)只有當你擁有足夠的財力,能在法庭上把對方告倒的時候才會管用。換而言之,即使你認為某家大公司通過破解你的代碼,剽竊了一個極有「錢途」的主意,你也無力通過那種馬拉松式的官司在法庭上告倒微軟,除非你有足夠的經濟實力能在這種財力的比拼中熬出頭 。而在本書中討論的保護技術(比如代碼混淆和防篡改技術)則既廉價又好用,中小型企業和商業巨頭均可使用。而且如果這時你去告這家大公司的話,也可以用水印或者軟體「胎記」等技術,在法庭上當場拿出代碼被剽竊的真憑實據來。
最後不得不簡單地提一下另一類極其擅長使用隱蔽軟體的人——壞蛋們。病毒的作者已經能非常成功地利用代碼混淆的技術偽裝病毒的代碼,使之逃避殺毒軟體的檢測了。值得一提的是,人們使用這些技術(如保護DVD、游戲和有線電視)時經常被黑客破解,而黑客使用這些技術(如構建惡意軟體)時,人們卻很難抗擊。
本書內容
隱蔽軟體研究的目的是發明能夠盡可能遲滯對手(逆向工程分析)進度,同時又盡可能地減少因為使用該技術,而在程序執行時增加的計算開銷的演算法。同時也需要發明一種評估技術,使我們可以說「在程序中使用了演算法A之後,相對於原先的程序,黑客攻破新程序需要多花T個單位的時間,而新程序增加的性能開銷是0」,或者最低限度我們也應該可以說「相對於演算法B,使用演算法A保護的代碼更難被攻破」。特別要強調一下,隱蔽軟體研究尚處於嬰兒期,雖然我們在書中會把相關的保護演算法和評估演算法全都介紹給大家,但是這門藝術的現狀卻還並不理想(到時候你可不能太失望啊)。
在本書中,我們試圖把當前所有有關隱蔽軟體的研究成果組織起來系統化地介紹給讀者。我們力爭每章內容涵蓋一種技術,並描述這一技術的應用領域以及目前可用的演算法。第1章將給出隱蔽軟體這個領域的一些基本概念;第2章用對抗性演示的模式介紹黑客逆向分析軟體時常用的工具和技巧,然後針對這些工具和技巧介紹如何防範黑客的攻擊;第3章詳細講述黑客和軟體保護方用於分析計算機程序的技術;第4章、第5章和第6章分別介紹與代碼混淆有關的演算法;第7章介紹與防篡改技術相關的演算法;第8章和第9章分別介紹與水印相關的演算法;第10章介紹與軟體「胎記」相關的演算法;第11章講述基於硬體設備的軟體保護技術。
如果你是位企業管理人員,只是對隱蔽軟體的研究現狀和這些技術怎麼應用到你的項目中感興趣,那麼只要閱讀第1章和第2章就夠了。如果你是位擁有編譯器設計背景的研究人員,那麼建議直接跳到第3章開始閱讀。但是之後的章節還是最好順序閱讀。這是因為……呃,還是舉個例子吧,介紹水印技術的章節中會用到在代碼混淆章節中介紹的知識。當然在本書撰寫過程中,我們還是盡量使各章內容都能獨立成章的,所以(如果你擁有一些背景知識)偶爾跳過那麼一兩章也未嘗不可。如果你是一位工程師,想要使用有關技術加固你的軟體,那麼強烈建議你仔仔細細地閱讀第3章的所有內容,如果有條件的話,還應該再搞幾本編譯原理方面的教材惡補一下「程序靜態分析」的知識。然後你就可以隨意跳到感興趣的章節去閱讀了。如果你是名大學生,把本書作為一門課程的教材來閱讀,那麼就應該一頁一頁地完整閱讀本書,期末別忘了做好復習。
希望本書能夠做到兩件事情。首先,希望能向你,親愛的讀者,證明代碼混淆、軟體水印、軟體「胎記」和防篡改等技術里有大量妙不可言的想法,值得你花點時間去學習,而且這些技術也可以用來保護軟體。其次,希望本書能把本領域內當前所有有用的信息匯集在一起,從而為隱蔽軟體的深入研究提供一個良好的起點。
Christian Collberg和Jasvir Nagra
2009年2月2日(土撥鼠日)
P.S.實際上寫作這本書還有第三個目的。要是在閱讀本書時,你突然靈光閃現,冒出一個絕妙的主意,進而激發了你投身於隱蔽軟體研究的雄心壯志,那麼,親愛的讀者,我這第三個目的就算是達到了。請把你的新演算法告訴我們,我們將把它加到本書的下一版里!