一、數(shù)據(jù)面臨的安全問題
為了讓大家直觀地了解數(shù)據(jù)面臨的安全問題,先引出一段案例。2014年9月,黑客利用蘋果iCloud漏洞,破解了一些好萊塢明星的iCloud賬戶,他們使用數(shù)據(jù)恢復(fù)工具Fonelab盜取其中的隱私文件,之后曝光了獲得的“艷照”。這就是有名的“艷照門”事件。
反思案例,加強個人的道德修養(yǎng)固然重要,我們應(yīng)該潔身自好,不去拍不雅照。但是現(xiàn)實世界中除了“艷照門”,還有更多個人、組織乃至國家重要數(shù)據(jù)被竊的事件。因此,對于“艷照門”事件,一言以蔽之:這是數(shù)據(jù)不設(shè)防引發(fā)的大事件。我們要牢記:數(shù)據(jù)泄漏雖是萬分之一的幾率,但卻是百分之百的傷害。
要確保數(shù)據(jù)安全,就要確保數(shù)據(jù)的保密性、完整性、不可否認性和可認證性。數(shù)據(jù)保密性的基礎(chǔ)是現(xiàn)代密碼學(xué)。
我們可以通過加密將可讀的信息變換成不可理解的亂碼,從而起到保護信息的作用;密碼技術(shù)還能夠提供完整性檢驗,即提供一種當某些信息被修改時可被用戶檢驗出的機制;基于密碼體制的數(shù)字簽名具有抗抵賴功能,可使人們遵守數(shù)字領(lǐng)域的承諾。
二、密碼學(xué)發(fā)展簡史
傳統(tǒng)的密碼學(xué)主要用于保密通信,其基本目的是使得兩個在不安全信道中通信的實體,以一種使其敵手不能明白和理解通信內(nèi)容的方式進行通信。現(xiàn)代密碼技術(shù)已不僅僅限于保密通信的應(yīng)用了。
【信道】是信號在通信系統(tǒng)中傳輸?shù)耐ǖ?,由信號從發(fā)射端傳輸?shù)浇邮斩怂?jīng)過的傳輸媒質(zhì)構(gòu)成。
隨著計算機及網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展,人們進入到了廣泛互聯(lián)的信息時代,電子政務(wù)、電子商務(wù)、網(wǎng)絡(luò)通信等應(yīng)用中,大量信息以數(shù)字形式存放在計算機系統(tǒng)里,并通過公共信道傳輸。信息面臨著被非授權(quán)讀取、截獲、篡改、偽造等一系列安全問題?,F(xiàn)代密碼學(xué)成為了確保數(shù)據(jù)的保密性、完整性、不可否認性和可認證性的基礎(chǔ)。
通過引入密鑰的加解密機制,加解密算法得以公開,確保密鑰的安全性成為確保密碼安全性的關(guān)鍵;密碼技術(shù)還能夠提供完整性檢驗,即提供一種當某些信息被修改時可被用戶檢驗出的機制;基于密碼體制的數(shù)字簽名具有抗抵賴功能,可使人們遵守數(shù)字領(lǐng)域的承諾。
通過以密碼學(xué)為核心的理論與技術(shù)來保證數(shù)據(jù)的機密性、完整性、不可否認性等多種安全屬性。密碼學(xué)的研究與應(yīng)用已經(jīng)滲透到人類的幾乎所有的社會活動領(lǐng)域,甚至已進入普通民眾的日常生活。后續(xù)將給大家介紹相關(guān)技術(shù)原理及應(yīng)用。
不過,現(xiàn)代密碼學(xué)研究正受到即將出現(xiàn)的量子計算機的嚴重挑戰(zhàn)。量子計算機的超級計算能力可以輕易地破解RSA和ECC等密碼算法,威脅當前的各種密碼應(yīng)用系統(tǒng)。為了應(yīng)對量子計算機的挑戰(zhàn),基于量子力學(xué)原理的量子密碼、基于分子生物技術(shù)的DNA密碼、基于量子計算機所不擅長計算之數(shù)學(xué)問題的密碼以及混沌密碼等,成為密碼學(xué)的新主題。
三、密碼學(xué)的基本概念
密碼體制(Cryptosystem),也稱為密碼系統(tǒng),是指明文、密文、密鑰以及實現(xiàn)加解密算法的一套軟硬件機制。由于密碼算法決定密碼體制,我們對密碼體制和密碼算法不加區(qū)分。
四、密碼體制常見攻擊方法
a.窮舉攻擊
窮舉攻擊又稱作暴力攻擊,是指密碼分析者用試遍所有密鑰的方法來破譯密碼。窮舉攻擊所花費的時間等于嘗試次數(shù)乘以一次解密(加密)所需的時間。例如,對于上面介紹的凱撒密碼,攻擊者就可以通過窮舉密鑰1~25來嘗試破解。
顯然,可以通過增大密鑰量或加大解密(加密)算法的復(fù)雜性來對抗窮舉攻擊。例如,將26個字母擴大到更大的字符空間,這樣當密鑰量增大時,嘗試的次數(shù)必然增大。
或者,密文與明文的變換關(guān)系不再是順序左移,而是先選定一個單詞,然后用26個字母中剩余不重復(fù)的字母依次對應(yīng)構(gòu)造一張變換表。這樣可以增加解密(加密)算法的復(fù)雜性,完成一次解密(加密)所需的時間增大,從而增加窮舉攻擊的難度。當然,這里只是為了舉例說明一下基本思想,盡管表中有26!≈4×10^26種變換,但是這樣的變換對于目前的窮舉攻擊依然不在話下。
b.統(tǒng)計分析攻擊
統(tǒng)計分析攻擊是指密碼分析者通過分析密文的統(tǒng)計規(guī)律來破譯密碼。例如,對于上面的凱撒密碼就可以通過分析密文字母和字母組的頻率而破譯。實際上,凱撒密碼這種字母間的變換并沒有將明文字母出現(xiàn)的頻率掩藏起來,很容易利用頻率分析法進行破解。
所謂頻率分析,就是基于某種語言中各個字符出現(xiàn)的頻率不一樣,表現(xiàn)出一定的統(tǒng)計規(guī)律,這種統(tǒng)計規(guī)律可能在密文中得以保留,從而通過一些推測和驗證過程來實現(xiàn)密碼的分析。
例如,可以通過對密文中出現(xiàn)的各個字母進行統(tǒng)計,找出它們各自的頻率。然后根據(jù)密文中出現(xiàn)的各個字母頻率,與英文字母標準頻率進行對比分析,從高到低,依次對應(yīng)明文,并由此依次嘗試,最終推斷出密鑰,從而破解密文。
推薦大家閱讀《福爾摩斯探案集之跳舞的人》或是觀看這一集的電視劇,看看福爾摩斯是如何從大量的跳舞的小人圖案推導(dǎo)出文字的內(nèi)容的。
對抗統(tǒng)計分析攻擊的方法是增加算法的混亂性和擴散性。
混亂性:當明文中的字符變化時,截取者不能預(yù)知密文會有什么變化,這種特性稱為混亂性?;靵y性好的算法,其明文、密鑰和密文之間有著復(fù)雜的函數(shù)關(guān)系。這樣,截取者就要花很長時間才能確定明文、密鑰和密文之間的關(guān)系,從而要花很長的時間才能破譯密碼。
擴散性:密碼還應(yīng)該把明文的信息擴展到整個密文中去,這樣,明文的變化就可以影響到密文的很多部分,這種特性稱為擴散性。擴散性好的算法可以將明文中單一字母包含的信息散布到整個輸出中去,這意味著截取者需要獲得很多密文,才能去推測加密算法。
c.數(shù)學(xué)分析攻擊
數(shù)學(xué)分析攻擊是指密碼分析者針對加密算法的數(shù)學(xué)依據(jù),通過數(shù)學(xué)求解的方法來破譯密碼。為了對抗這種數(shù)學(xué)分析攻擊,應(yīng)選用具有堅實數(shù)學(xué)基礎(chǔ)和足夠復(fù)雜的加密算法。
d.社會工程攻擊
通過威脅、勒索、行賄或者酷刑折磨密鑰擁有者,直到他給出密鑰,這些社會工程學(xué)攻擊也是一種破解密鑰的途徑。
通過上面的分析可知,影響密碼安全性的基本因素包括:密碼算法的復(fù)雜度、密鑰機密性和密鑰長度等。密碼算法本身的復(fù)雜程度或保密強度取決于密碼設(shè)計水平、破譯技術(shù)等,它是密碼系統(tǒng)安全性的保證。
五、評估密碼體制安全性的3種方法
1)無條件安全性:如果攻擊者擁有無限的計算資源,但仍然無法破譯一個密碼體制,則稱其為無條件安全。香農(nóng)證明了一次一密密碼具有無條件安全性,即從密文中得不到關(guān)于明文或者密鑰的任何信息。
2)計算安全性:如果使用目前最好的方法攻破一個密碼體制所需要的計算資源遠遠超出攻擊者擁有的計算資源,則可以認為該密碼體制是安全的。
3)可證明安全性:如果密碼體制的安全性可以歸結(jié)為某個經(jīng)過深入研究的困難問題(如大整數(shù)素因子分解、計算離散對數(shù)等),則稱其為可證明安全。這種評估方法存在的問題是它只說明了這個密碼方法的安全性與某個困難問題相關(guān),沒有完全證明問題本身的安全性并給出它們的等價性證明。
對于實際使用的密碼體制而言,由于至少存在一種破譯方法,即暴力攻擊法,因此都不能滿足無條件安全性,只能達到計算安全性。
六、密碼體制的設(shè)計原則
一個實用的密碼體制要達到實際安全應(yīng)當遵循以下原則:
1)密碼算法安全強度高。就是說,攻擊者根據(jù)截獲的密文或某些已知明文密文對,要確定密鑰或者任意明文在計算上不可行。
2)密鑰空間足夠大。使得試圖通過窮舉密鑰空間進行搜索的方式在計算上不可行。
3)密碼體制的安全不依賴于對加密算法的保密,而依賴于可隨時改變的密鑰。即使密碼分析者知道所用的加密體制,也無助于用來推導(dǎo)出明文或密鑰。這一原則已被后人廣泛接受,稱為柯克霍夫原則。1883年由柯克霍夫在其名著《軍事密碼學(xué)》中提出。
4)既易于實現(xiàn)又便于使用。主要是指加密算法和解密算法都可以高效地計算。
保護數(shù)據(jù)的不可否認性和可認證性
確保信息的不可否認性,就是要確保信息的發(fā)送者無法否認已發(fā)出的信息或信息的部分內(nèi)容,信息的接收者無法否認已經(jīng)接收的信息或信息的部分內(nèi)容。
確保信息的可認證性,就是要確保信息的發(fā)送者和接收者的真實身份,防止冒充和重放。
實現(xiàn)不可否認性和可認證性的措施主要有:數(shù)字簽名,可信第三方認證技術(shù)等。
(1)什么是數(shù)字簽名?
在傳統(tǒng)的以書面文件為基礎(chǔ)的日常事務(wù)處理中,通常采用書面簽名的形式,如手寫簽名、印章、手印等,來確保當事人的身份真實和不可否認。這樣的書面簽名具有一定的法律意義。在以計算機為基礎(chǔ)的數(shù)字信息處理過程中,就應(yīng)當采用電子形式的簽名,即數(shù)字簽名(DigitalSignatures)。
數(shù)字簽名是一種以電子形式存在于數(shù)據(jù)信息之中的,或作為附件,或邏輯上與之有關(guān)聯(lián)的數(shù)據(jù),可用于接收者驗證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份,也可用于第三方驗證簽名和所簽名數(shù)據(jù)的真實性。
(2)數(shù)字簽名的特性
數(shù)字簽名主要有以下特性:不可否認,簽署人不能否認自己的簽名。不可偽造。任何人不能偽造數(shù)字簽名。可認證,簽名接收者可以驗證簽名的真?zhèn)?,也可以通過第三方仲裁來解決爭議和糾紛。簽名接收者還可通過驗證簽名,確保信息未被篡改。
根據(jù)上述數(shù)字簽名的特性,數(shù)字簽名可用于接收者驗證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份,也可用于第三方驗證簽名和所簽名數(shù)據(jù)的真實性。
(3)消息認證的概念
在信息安全領(lǐng)域中,常見的信息保護手段大致可以分為保密和認證兩大類。目前的認證技術(shù)分為用戶的認證和對消息的認證兩種方式。
用戶認證用于鑒別用戶的身份是否合法,將在后續(xù)課程中介紹。消息認證主要是指接收方能驗證消息發(fā)送方的真實性及所發(fā)消息的內(nèi)容未被篡改,也可以驗證消息的順序和及時性。消息認證可以應(yīng)對網(wǎng)絡(luò)通信中存在的針對消息內(nèi)容的攻擊,如偽造消息、篡改消息內(nèi)容、改變消息順序、消息重放或者延遲。
消息認證與數(shù)字簽名的區(qū)別在于,當收發(fā)者之間沒有利害沖突時,消息認證對于防止第三者的破壞來說是足夠了。但當收者和發(fā)者之間有利害沖突時,單純用消息認證技術(shù)就無法解決他們之間的糾紛,此時需借助數(shù)字簽名技術(shù)。
保護數(shù)據(jù)的存在性
大家知道:利用密碼技術(shù)可以將機密信息變換成不可識別的密文。但是,信息經(jīng)過加密后容易引起攻擊者的好奇和注意,誘使其懷著強烈的好奇心去破解密碼。如果我們把信息隱藏起來,攻擊者難以從公開信息中判斷其中是否存在機密信息,從而保證機密信息的安全。
簡單地說,加密保護的是信息內(nèi)容本身,而信息隱藏則掩蓋它們的存在性。
1.信息隱藏的概念
信息隱藏,是指將機密信息秘密隱藏于另一公開的信息(通常為稱為載體)中,然后將其通過公開通道來傳遞。
信息隱藏技術(shù)的基本思想源于古代的隱寫術(shù)。大家熟知的隱寫方法恐怕要算化學(xué)隱寫了,如用米粥水在紙上寫字,待干后紙上看不出寫上的字,然而滴上碘酒后這些字會顯現(xiàn)出來。
舉一個生活中信息隱藏的例子。在公共宿舍中為了保管好自己的一些重要財務(wù)、票據(jù),可能是把這些東西放在某個柜子里,然后給柜子上鎖。這實際上就是告訴別人:我這柜子里有重要的東西。
這里介紹一個方法。比如自己的書架上,都是一些書。別人恐怕不會對這些書感興趣。實際上,其中的一本書只是一個空殼,打開封皮,中空的部分可以放一些重要的東西。而且還可以加把鎖。
也就是說如果在對重要信息加密的基礎(chǔ)上,再運用信息隱藏的方法,安全性就更高了。
2.信息隱藏的原理
近年來,信息論、密碼學(xué)等相關(guān)學(xué)科為信息隱藏提供了豐富的理論基礎(chǔ),多媒體數(shù)據(jù)壓縮編碼與擴頻通信技術(shù)的發(fā)展為其提供了必要的技術(shù)基礎(chǔ)。信息之所以能夠被隱藏,可以歸結(jié)為兩點:
a.人的生理學(xué)弱點。人眼的色彩感覺和亮度適應(yīng)性缺陷、人耳的相位感知和缺陷都為信息隱藏在圖片、音頻或視頻等文件中提供了可能。
b.載體中存在冗余。例如多媒體信息本身存在很大的冗余性,網(wǎng)絡(luò)數(shù)據(jù)包中存在冗余位。
因此,可以將機密信息進行加密后隱藏在一幅普通的圖片(或音頻、視頻、文本、數(shù)據(jù)庫、文件系統(tǒng)、硬盤、可執(zhí)行代碼、網(wǎng)絡(luò)數(shù)據(jù)包)中發(fā)送,這樣攻擊者不易對普通圖片產(chǎn)生興趣,而且由于經(jīng)過加密,即使被截獲,也很難破解其中的內(nèi)容。
數(shù)據(jù)文件保護實例
現(xiàn)在我們來分析Windows系統(tǒng)常用文檔的安全問題,了解針對這些數(shù)據(jù)文件的安全保護方法。
Windows系統(tǒng)是多數(shù)人常用的系統(tǒng),大家用它來編輯各種文檔、上網(wǎng)、娛樂等,在Windows系統(tǒng)中日常處理的文檔類型和格式通常包括:office文檔、pdf文檔、壓縮包文檔、圖片文檔、視頻文檔、音頻文檔、電子郵件。
計算機中處理、存儲以及傳輸這些文檔時面臨的安全問題主要包括:非授權(quán)訪問,即未經(jīng)文檔的所有人同意,查看、修改、拷貝文檔;篡改,文檔的內(nèi)容被非授權(quán)修改;偽造或否認,偽造或否認文檔的內(nèi)容;意外損壞,如刪除。
(1)設(shè)置口令認證、修改權(quán)限保護
MicrosoftOffice、WinRAR、Acrobat軟件中,都提供了使用打開密碼、修改權(quán)限密碼保護文檔的功能。
不過,上述密碼(口令)的設(shè)置對于文檔的保護能力很弱,因為現(xiàn)在網(wǎng)上能夠很容易找到破解這些密碼(口令)的軟件。這些軟件本是為用戶忘記了密碼(口令)而幫助他們恢復(fù)的,然而可以恢復(fù)自己文檔的密碼,當然也可以恢復(fù)別人的密碼了,不過這就不能算是恢復(fù)了,這些軟件實際上成為了破解工具。
(2)文檔加密、隱藏保護
上述給文檔增加打開口令和修改權(quán)限口令的方法面臨被破解的風險,相比較而言,將文檔全文加密是比之更安全的方法。首先介紹幾種文檔加密方法:
a.使用Windows系統(tǒng)自帶的BitLocker加密功能。
BitLocker驅(qū)動器加密是自WindowsVista后新增的一種數(shù)據(jù)保護功能,主要用于解決由計算機設(shè)備的物理丟失導(dǎo)致的數(shù)據(jù)失竊或惡意泄漏。該加密功能能夠通過加密邏輯驅(qū)動器來保護重要數(shù)據(jù),還提供了系統(tǒng)啟動完整性檢查功能。
b.使用VeraCrypt開源加密工具對文件、文件夾或磁盤進行加密。
c.使用S.S.E.FileEncryptor。
再介紹幾種文件隱藏的方法:
1)修改文檔的屬性為“隱藏”,需要在“文件夾選項”→“查看”頁框中設(shè)置“隱藏文件和文件夾”。
2)直接修改文件名的擴展名,如將doc的擴展名改成bmp,雙擊后將在繪圖中打開該文件,然而無法正常顯示該Word文件內(nèi)容,準確地說,這是起到偽裝的作用。
3)使用信息隱藏工具。如可以將信息隱藏在MP3中的軟件mp3stego(http://www.petitcolas.net/fabien/steganography/mp3stego);支持4種類型載體文件:bitmaps、text、HTML和PDF的信息隱藏軟件wbStego(http://wbstego.wbailer.com)。
(3)文檔的備份/恢復(fù)與強力擦除
對于找回被誤刪除的文件,專業(yè)的做法是在第一時間關(guān)掉計算機,直接拔電源,而不是從“開始”菜單關(guān)閉。
然后將被誤刪除文件所在硬盤拆下來,連接到其他計算機上,而且這臺計算機最好暫時禁止任何可能需要對硬盤進行寫操作的程序,例如后臺的殺毒軟件、磁盤碎片整理工具、索引工具等,然后使用恢復(fù)軟件進行恢復(fù)。
這樣做的目的在于盡量避免有新的數(shù)據(jù)被寫入硬盤,而無意中覆蓋了被誤刪除文件所在的扇區(qū),造成該文件無法恢復(fù)。當然,一般用戶在使用恢復(fù)軟件時也不用這樣繁瑣。可以在平時就安裝好恢復(fù)軟件,而不是等到要恢復(fù)軟件時才安裝,以免在安裝恢復(fù)軟件時覆蓋要恢復(fù)的文件。這樣,需要恢復(fù)誤刪除文件時可立即進行恢復(fù)。
如果希望徹底刪除某個文件,讓文件無法通過恢復(fù)軟件恢復(fù),必須使用專用軟件對存儲設(shè)備上該文件相應(yīng)的存儲扇區(qū)填充垃圾數(shù)據(jù)。
(4)文檔完整性檢測和數(shù)字簽名
可以下載完整性檢測工具,為文檔計算哈希值,在傳送文檔時同時提供該文檔的哈希值,以進行完整性檢測。
例如,著名安全工具Kali下載頁面上,提供了安裝包的SHA-1摘要值,用戶下載了文件后,可以通過重新計算散列值來判斷文件是否發(fā)生變化。
一些軟件還提供了數(shù)字簽名功能,例如AdobeAcrobat制作pdf文檔的軟件中,提供了為文檔進行簽名的功能。
(5)PGP綜合安全防護
PGP(PrettyGoodPrivacy)是一款著名的安全軟件。使用的算法包括公鑰密碼體制的RSA、DSS及Diffie-Hellman算法、對稱密碼體制的IDEA、3DES及CAST-128算法,以及SHA-1散列函數(shù)。軟件支持郵件加解密、文件加解密以及文件粉碎等功能。