資訊保安與密碼學概論
一篇文章讓你初步瞭解資訊保安領域。
1、簡述安全攻擊,安全機制,安全服務
- 安全攻擊:任何危及資訊系統安全的行為。
- 安全機制:用來檢測、阻止攻擊或者從攻擊狀態恢復到正常狀態的過程。
- 安全服務(安全屬性):使用一種或多種安全機制來增強安全、對抗安全攻擊的過程。
2、安全服務(安全屬性)的幾個屬性及定義
身份認證(鑑別):確保每個實體都是他們所聲稱的實體
訪問控制:防止對資源的未授權使用
資料機密性:保護資料免受非授權洩露
資料完整性:保護資料免受非授權篡改
不可否認/真實性:保護通訊中針對任何一方的否認攻擊
可用性:確保資源能在需要時被授權方獲得
3、瞭解幾個典型的安全機制
- 特定安全機制:
加密、數字簽名、訪問控制、資料完整性、認證交換、流量填充、路由控制、公證 - 普遍安全機制:
可信功能、安全標籤、事件檢測、安全審計跟蹤、安全回覆
單一的機制不能提供完全的安全服務,但是加密(密碼學)是主要採取的技術。
- 特定安全機制:
4、安全攻擊中破壞的是什麼安全屬性
- 偷聽/洩露——攻擊機密性
- 偽造——攻擊真實性/不可否認性
- 重放——攻擊認證和真實性
- 篡改——攻擊完整性
- 中斷——攻擊可用性(狹義:破壞硬體、拒絕服務DOS)
5 、主動攻擊與被動攻擊的區別
被動攻擊:
包括偷聽和流量分析,不對資料進行修改。
主要是攻擊保密性。
難以檢測。
可以預防——加密,流量填充主動攻擊:
包括對資料流、系統狀態的修改、建立虛假資訊。
主要攻擊真實性、不可否認性、完整性、可用性
難以預防
可以檢測——數字簽名、HASH、入侵檢測等
6、密碼體制的五要素
- 明文(Plaintext/Message)
- 密文(Ciphertext)
- 金鑰(Key)
- 加密演算法(encrypt)
- 解密演算法(decrypt)
7、密碼體制的三種分類
基於保密的內容
- 受限演算法:保密演算法——古典密碼
- 基於金鑰的演算法:保密金鑰——現代密碼
基於金鑰個數
- 雜湊函式——無金鑰
- 祕密(對稱/傳統/單鑰)金鑰碼——一個金鑰
- 公鑰(非對稱/雙鑰)密碼——兩個金鑰(公鑰和私鑰)
基於明文加密處理方式
- 流密碼/序列密碼:以bit或字元的方式處理輸入輸出
- 分組密碼:以塊的方式處理輸入輸出
8、傳統密碼與公鑰密碼的優缺點
- 傳統密碼優點:加解密速度快。
- 傳統密碼缺點:難以分配和管理金鑰,實現數字簽名困難。
- 公鑰密碼優點:易於分配和管理金鑰,實現數字簽名容易。
- 公鑰密碼缺點:難以生產金鑰,加解密速度慢。
9、古典加密與現代加密的特點
- 古典加密:資料的安全依賴於演算法的保密。
- 現代加密: 資料的安全依賴於金鑰的保密而不是演算法的保密。
10、三種密碼分析方法及各自特點
- 暴力破解攻擊(嘗試所有金鑰,直到找到正確明文):
理論上可以破解任何密碼系統,平均嘗試一半的金鑰空間可以破解成功。 - 統計分析攻擊(比較和分析密文的統計特徵):
能破解絕大多數古典密碼。 - 數學分析攻擊(根據數學理論進行密碼破解):
攻擊公鑰密碼的主要方法。
- 暴力破解攻擊(嘗試所有金鑰,直到找到正確明文):
11、無條件安全與計算上安全
- 無條件安全:絕對安全,無論何種計算機資源都無法破解的密碼,只有夏農提出的一次一密滿足。
一次一密特點:使用明文一樣長的隨機金鑰,且不重複,明密文統計無關,金鑰產生和分配困難。 - 計算機上的安全:破解密碼的代價超過加密資訊的價值;破解密碼的時間超過資訊(M或K)的有效期。
- 無條件安全:絕對安全,無論何種計算機資源都無法破解的密碼,只有夏農提出的一次一密滿足。
12、代替和置換的定義
- 代替:明文被其他字母、數字或者符號代替;明文被看做bit流,將明文bit流替換為密文bit流。
- 置換: 不改變實際使用的字母,而是通過重新排列字母順序來隱藏資訊。
13、單字母代替(單表代替,多表代替)與多字母代替
- 單字母代替
將每個明文字母獨立的對映為密文字母。
- 單表代替
一個明文字母表對應一個密文字母表 - 多表代替
一個明文字母表對應多個密文字母表
- 單表代替
- 多字母代替
字母對映以組的方式進行,依賴於其上下文的位置。
- 單字母代替
14、通用凱撒密碼(單字母單表代替)的公式
凱撒密碼公式:
C = E(m) = (m + k) mod 26
m = D(C) = (C – k) mod 26
K = 0~25(取0沒意義)(金鑰是一個數)
通過25種窮舉搜尋就能夠攻破通用的凱撒密碼。15、置亂密碼(單字母單表)的統計分析攻擊
不是對字母表進行移位,而是任意的打亂字母表,每個明文字母匹配一個隨機的密文字母。
金鑰:明文字母表和密文字母表的對應關係。
由於人類語言中所有字母不是被等概率的使用,可以通過統計(頻率)分析攻破。16、維吉尼亞密碼(最著名的多表代替密碼)公式,金鑰長度,金鑰空間以及破解方式與維納密碼(流密碼)的一次一密思想
Vigenere密碼
迴圈使用26個凱撒密碼金鑰,每個金鑰用完之後再從頭開始重複使用。
多個密文表,平滑了頻率分佈,從而使得密碼分析更加困難。
金鑰詞重複使用使得金鑰跟明文一樣長。
公式:Ci = (Pi + K[i mod m]) mod 26 Ki=a~z
金鑰: 金鑰由重複的金鑰詞構成,m為金鑰詞長度,金鑰空間為26^m。
重複的密文暴露金鑰週期,如果金鑰長度短,可以窮舉攻擊;如果金鑰長度長,可以假設金鑰詞長度為m,則通過m次單字母頻率分析得到m個金鑰詞字母。Vernam密碼
流密碼:基於bit而不是字母
Ci=pi⊕ki
pi=Ci⊕ki
安全性依賴於金鑰的隨機性。(個人理解:)雖然計算計算原理不一樣,但效果可以看成金鑰長度為明文長度的置亂密碼。一次一密
金鑰與明文一樣長,且永不重複
明文和密文統計無關
無條件安全(永不可破)
金鑰產生和分配困難,只被軍用
17、playfair矩陣(多字母單表代替)的形成,及其加密演算法
舉例:
加密演算法規則:
1、從第一個字母開始,每兩個字母一組,如果有重複的一組,則在它們之間填充一個字母,然後再把重複字母中的後一個當做第一個字母繼續1的步驟,直到明文結束。
例如. “balloon” 被填充為”ba lx lo on”
2、如果雙字母位於同一行,用每個字母右邊的字母去代替原字母。(行尾回滾至行首)
3、如果雙字母位於同一列,用每個字母下面的字母去代替原字母。(列尾回滾至列首)
4、否則,每個字母用與它同一行,與另一字母同一列交叉點的字母代替。解密:同行同行的話與加密操作相反,否則與加密操作相同。
同樣可以對比單字母的26個字母頻率統計,這裡只是需要統計26X25=650組雙字母組合的頻率。
18、置換密碼(柵欄密碼,列置換密碼,多步置換,乘積密碼,轉輪機)其中注意轉輪機每輸入一個字母快速轉子就會轉動一格
- 柵欄密碼
將明文字母以對角線的方式寫入,再逐行讀出密文字母。
例子:
- 列置換密碼
明文以矩形方式一行行寫入,但一列列的讀出,金鑰是矩形的長度和列讀出順序。
例子:
多步置換密碼
多次進行列置換密碼操作,這樣難以反向重構。
例子:
乘積密碼
由於語言的統計特徵,單純使用代替或者置換是不夠的。
連續多次使用密碼使得演算法更安全:兩次代替得到更為複雜的代替密碼,兩次置換得到更為複雜的置換密碼,一次代替加一次置換得到安全性高得多的密碼。
是從古典密碼過渡到現代密碼的橋樑。轉輪機
每個轉子對應一個代替密碼;
每個轉子產生一個對應著26個密文字母表的多表代替密碼(維吉尼亞密碼);
每次按鍵後,轉子旋轉一個刻度;
每個轉子的輸出是下一個轉子的輸入;
在每個轉子迴圈完一個週期後,相鄰的下一個轉子旋轉一個刻度。
(一個3-轉子轉輪機產生26^3個密文表)
- 柵欄密碼
19、對公鑰密碼的一些誤解
- 公鑰密碼比對稱密碼更安全
- 公鑰密碼的出現使得對稱密碼變得過時
- 與對稱密碼使用KDC繁瑣的握手方式分配金鑰相比,公鑰密碼的金鑰分配容易。
20、公鑰密碼的要求
- 用公鑰加密的資訊可以用私鑰解密恢復(基本條件) D(E(M,PU),PR)=M
- 給定加密金鑰,想得到解密金鑰從計算上不可行(安全條件)
- 當相關的加密金鑰已知,做相應加密操作是快速高效的(工程使用條件)
- 加密的順序可以互換(可選條件)D(E(M,PU),PR)=D(E(M,PR),PU)=M
21、對稱密碼與公鑰密碼的對比分析
- 對稱金鑰(祕金鑰):
- 使用一個金鑰,雙方共享
- 金鑰洩露導致通訊的安全性被破壞
- 由於通訊對稱,雙方地位平等,因此不能防止傳送者否認傳送,也不能防止接收者偽造資訊並宣告是傳送者傳送的。
- 公鑰密碼
- 使用兩個金鑰(公鑰和私鑰)
- PU的公開不會洩露PR
- 由於通訊不對稱,加密資訊的人不能解密資訊
- 基於數學函式而不是代替和置換
- 對稱金鑰(祕金鑰):
22、公鑰密碼體制的幾張圖以及相關的安全屬性
加解密——保密性
數字簽名——認證、完整性和不可否認性
金鑰交換——提供會話金鑰23、單向函式與單向陷門函式
- 單項函式:每個函式值都存在唯一的逆,並且計算函式值是容易的,但求逆卻是不可行的。
- 單向陷門函式:一個函式,若計算函式值很容易,並且在缺少一些附加資訊時計算函式的逆是不可行的,但是已知這些附加資訊時,可以在多項式時間內計算出函式的逆。
24、公鑰密碼分析
- 針對PR的窮舉攻擊
- 數學分析攻擊:從PU中檢視推出PR
- 窮舉訊息攻擊
25、雜湊函式的定義及六種基本使用模式
- hash函式H將可邊長的資料塊M作為輸入,產生固定長度的Hash值h=H(M)。
- hash函式H將可邊長的資料塊M作為輸入,產生固定長度的Hash值h=H(M)。
26、抗強碰撞性,抗弱碰撞性
- 單向性:給定h,反向求出x,使得H(x)=h不可行
- 抗弱碰撞性:給定x,找到y,使得H(x)=H(y)不可行
- 抗強碰撞性:找到任意的x,y使得H(x)=H(y)不可行
27、雜湊函式的通用結構(迭代壓縮函式)
如果每個f是抗碰撞的,則雜湊結果也是抗碰撞的。28、數字簽名包含的屬性及定義
- 簽名的屬性:
- 防止傳送方抵賴,包括簽名內容、時間(不可否認性)
- 除了傳送方,其他人不能偽造簽名和被簽名內容(真實性,完整性)
- 可被第三方驗證以解決爭端(可仲裁性)
定義:數字簽名是一種認證機制,是訊息產生者在訊息後附加的一個簽名碼。 可以保證訊息來源的真實性/不可否認性、完整性。
數字簽名的屬性:
- 必須依賴被簽名信息——確保完整性
- 必須使用傳送者獨一無二的資訊(PR)——防止偽造和否認(真實性/不可否認性)
- 相對容易產生
- 相對容易驗證(PU)
- 計算上不能被偽造(對於給定數字簽名偽造新訊息與之對應、對於給定訊息偽造數字簽名與之對應)
- 儲存數字簽名的拷貝是可行的
- 簽名的屬性:
29、雜湊函式在數字簽名中的用處
- 減少數字簽名和通訊的長度
- 維護訊息和簽名的對應關係以防偽造(真實性、完整性)
30、仲裁數字簽名
31、口令儲存機制
原理:Hash函式,給定h(口令),難以反向得到口令
過程:使用者口令以雜湊值儲存h(口令),當用戶輸入口令,系統計算口令的雜湊值,然後與口令檔案中儲存的雜湊值相比較,磁碟中不儲存口令原文。32、口令字典的字典攻擊
俗稱猜密碼。33、引入鹽的三個目的
- 防止口令檔案中出現相同的口令
- 有效增加口令長度
- 阻止硬體實現DES
34、入侵檢測系統
- 能及時識別出入侵者
- 有效的入侵檢測系統能預防入侵
- 入侵檢測能收集入侵資訊,以便用於增強入侵預防功能。
- 35、注意入侵者和授權使用者的行為輪廓那張圖
36、瞭解誤判和漏判,哪種情況造成誤判,哪種情況造成漏判和入侵檢測技術
- 放寬對入侵的定義會導致誤報——將授權使用者識別為入侵者
- 嚴格對入侵的定義會導致漏報——將入侵者識別為授權使用者
入侵檢測技術
- 誤用檢測:定義現有的入侵模式,難以發現新的入侵
- 異常檢測:定義正常使用輪廓,判斷入侵行為和正常行為的偏差
- 能檢測出未知入侵
37、挑戰應答認證機制
- 協議1.0
A直接傳送明文給B,C可以直接偽裝A給B發訊息。 - 協議2.0
A將自己的IP地址和明文一起發給B,C可以建立一個數據包,通過IP欺騙冒充A 協議3.0和協議3.1
- 3.0
在協議2.0的基礎上,A再加一個祕密口令證明自己是A,C可以進行重放攻擊。 - 3.1
在3.0的基礎上,將祕密口令加密,然並卵。。。
- 3.0
協議4.0
B向A傳送一個隨機數N,A用AB共享的對稱金鑰加密,若B能解密得到N,則A就是A- 協議5.0
在4.0的基礎上,將對稱密碼換成A的私鑰加密,B用A的公鑰解密。
- 協議1.0
38、X.509 服務體制下的金鑰分配,認證服務,驗證證書,交叉認證,證書撤銷 以及PKI
- 金鑰分配:通過數字簽名確保公鑰資料庫PKDB中PU的真實性和完整性;證書是由可信第三方對使用者識別符號和其公鑰PU的數字簽名載體;CA對PU進行簽名的可信第三方實體
- 認證服務:定義服務的框架(將公鑰證書存放在目錄中,由CA用其私鑰PR來簽署證書);使用公鑰演算法和數字簽名技術;公鑰證書是公鑰PU的可信載體,能安全分配公鑰。
- 驗證證書:使用者可以在CA的證書中獲取CA的公鑰,然後用來驗證其他使用者證書中公鑰的安全性;CA的證書可以自籤或者由他的父CA簽署得到。
交叉認證:
證書撤銷:
證書都有有效期,可以提前撤銷證書(私鑰洩露、使用者與CA不再信任、CA證書被破壞),通過數字簽名維護一個證書的撤銷列表(CRL),使用者定期更新CRL並在使用證書前檢查其CA的CRL列表的證書名,出於速度考慮,本機快取CRL列表- PKI(public key infrastructure)公鑰基礎設施
- 定義:PKI系統是由硬體、軟體、人、策略和相應處理構成的一整套體系,用來建立、管理、儲存、分發和撤銷其上的數字證書(PU)
- 目標:分發公鑰PU。信任通過證書傳遞。
- 元素:端實體、認證機構CA、註冊機構RA(可選)、證書撤銷列表CRL釋出點(可選)、證書存取庫(證書和CRL)
- 任務:使用者註冊、使用者初始化(金鑰對的產生和分配)、認證(證書產生和儲存)、金鑰對的備份和恢復(對於資料加密,備份PU和PR;對於數字簽名只能備份PU)、自動金鑰對更新、證書撤銷請求、交叉認證(CA間互相簽署證書)
39、LSB演算法,數字水印,針對隱私的連結攻擊
- LSB(最低有效位)演算法:
- 修改數字影象中指示顏色的低位bit來隱藏資訊,一個畫素點包含24bit的RGB顏色資訊,修改最低有效位LSB不會顯著改變影象的品質
- 優先:快速 、簡單
- 缺點:隱藏的資訊可能會通過資訊處理被破壞,如:訊號轉換、影象壓縮
- 數字水印 :
- 在數字媒體中新增一個“不可察覺”的版權資訊(唯一的識別符號或序列號),數字水印可以在需要被提取以作為非授權拷貝的證據。
- 特點:版權資訊的嵌入或提取不會影響宿主媒體的正常使用
- 要求:透明性、魯棒性
- 分為時空域和頻域兩種技術
- 與隱寫術技術相同但用途不同
- 針對隱私的連結攻擊:
連結攻擊是從釋出的資料表中獲取隱私資料的常見方法。其基本思想為:攻擊者通過對釋出的資料和其他渠道獲取的外部資料進行連結操作,以推理出隱私資料,從而造成隱私洩露。
- LSB(最低有效位)演算法:
40、K-匿名演算法熟悉以及泛化過程
K-匿名演算法思想:每次計算都只能選擇某一個屬性值來泛化,被選中的這某一屬性的值域集合的基數在其他剩餘屬性中是最大的,重複之前的步驟直到選取完準識別符號屬性。
41、什麼是訪問控制及訪問控制的目的
- 訪問控制定義:主體依據某些控制策略,獲得不同的許可權訪問客體
- 訪問控制目的:提供主體和客體一定的安全防護,確保不會有非法者使用合法或敏感資訊,也確保合法者能夠正確使用這些資源,從而實現安全的分級管理。
42、訪問控制的三要素及實現
- 三要素:
- 主體:對客體提出訪問請求的實體,簡稱S,也稱為使用者User或授權訪問者。
- 客體:接受主體訪問請求的被動實體,簡稱為O
- 控制策略:主體對客體的訪問規則集,簡稱為P
- 訪問控制的實現:
框架:
實現:
- 身份認證:主體S和客體O之間的雙向認證。
- 策略的制定和實現:制定——建立使用者;實現——使用者行為
- 審計:審計是訪問控制的重要內容和補充,審計可以對使用者使用何種資訊資源、使用的時間、以及如何使用進行記錄和監控。
- 三要素:
43、兩種訪問控制(DAC,MAC)的定義及區別
DAC(自主訪問控制):屬於無層次多級安全,又稱任意訪問控制,允許合法使用者以使用者或使用者組的身份訪問策略規定的客體,同時阻止非授權使用者訪問客體;某些使用者還可以自主的把自己所擁有的客體的訪問許可權授予其他使用者。
MAC(強制訪問控制):屬於層次性多級安全,系統事先給主體和客體分配不同的安全級別;在實施訪問控制時,系統先對主體和客體的安全級別進行比較,再決定主體能否訪問該客體。
DAC和MAC區別:
- DAC是無層次型;MAC是層次型。
- DAC的訪問許可權可以自由的授權給其他使用者,授權基於使用者;MAC的訪問許可權是嚴格的按照安全等級來執行的,授權基於安全等級,只能被安全管理員修改。
44、四種訪問方式
- 向下讀(rd):主體安全級別高於客體安全級別時允許的讀操作
- 向上讀(ru):主體安全級別低於客體安全級別時允許的讀操作
- 向下寫(wd):主體安全級別高於客體安全級別時允許執行或是寫操作
- 向上寫(wu):主體安全級別低於客體安全級別時允許執行或是寫操作
45、MAC下的BLP模型及Biba 模型
- Bell-LaPadual(BLP)模型:具有隻允許向下讀、向上寫的特點,可以有效地防止機密資訊向下級洩露。缺點:使非法、越權篡改成為可能
- Biba模型:具有隻允許向上讀、向下寫的特點,可以有效地保護資料的完整性。缺點:忽略了保密性
46、DAC下的訪問控制列表及訪問控制矩陣
- 訪問控制列表:以檔案為中心
- 訪問控制矩陣:包括所有主體客體的完整矩陣
- 訪問控制列表:以檔案為中心
- 47、MAC下的安全標籤列表
主體和客體的安全級別集合
48、授權與審計的差別
- 授權:是訪問控制的前提,是客體授予主體的許可權。授權基於信任模型(建立和管理信任關係的框架,信任關係是指主體符合客體所假定的期望值)
- 審計:是對訪問控制的必要補充,是實現系統安全的最後一道防線,處於系統最高層,作用是跟蹤記錄系統行為和使用者行為。審計不但有助於確保系統及其資源免受非法授權使用者侵害,還能在一定程度上防止合法使用者越權使用,同時還能提供對資料恢復的幫助。
49、審計內容
- 個人職能
- 事件重建
- 入侵檢測
- 故障分析