加密技術的發展歷史悠久,從古代的斯函式庫塔爾和凱撒密碼,到現代的AES和RSA,其核心目標始終是保護資訊的機密性。凱撒密碼利用字母替換的方式,透過固定的位移值加密訊息,但其簡單的機制容易被破解。維吉尼亞密碼則採用了關鍵字來實作動態位移,增加了破解的難度。現代加密技術主要分為對稱加密和非對稱加密。對稱加密使用相同的金鑰進行加解密,常見的演算法包括區塊加密和流加密。區塊加密將資料分成固定大小的區塊進行加密,適用於資料傳輸,而流加密則逐位加密,處理速度更快,適用於即時通訊。非對稱加密使用公鑰和私鑰,公鑰用於加密,私鑰用於解密,確保了資料的機密性和完整性,並支援身份驗證和安全金鑰交換。在雲端環境中,加密技術面臨著時間成本和金鑰管理的挑戰,需要制定有效的策略來應對。文章以 ccrypt 工具為例,展示瞭如何在 Kali Linux 系統下進行檔案加密和解密,並介紹了 ccat 和 ccguess 等輔助工具的使用方法。
加密技術基礎
加密技術並非新穎,已有數十年歷史。古埃及時代有使用加密的記載,當時改變各種象形文字以隱藏訊息的意義。在軍事行動中,加密的需求更是顯而易見。這就是斯函式庫塔爾(Scytale)的誕生背景。斯函式庫塔爾是一種圓柱形工具,橫軸上分佈著多個字母。訊息寫在斯函式庫塔爾上,字母會隨機排列以隱藏訊息。
以下為斯函式庫塔爾的示意圖:
此圖示表示古希臘時期使用的斯函式庫塔爾加密工具。
隨著時間推移,出現了新的加密技術。例如,羅馬時代的凱撒大帝使用了替換密碼(Substitution cipher),即凱撒密碼(Caesar cipher)。
凱撒密碼
雖然凱撒密碼是一種簡單的加密方法,但它非常有效。可以個別或群體替換字母。例如,字母A可以替換成字母F,字母B替換成字母G,以此類別推。此外,還有一個金鑰來使接收者能解密訊息。在凱撒版本中,它將字母向右移動固定數量的位置。例如,如果使用移動2個位置的凱撒密碼,那麼字母A將變成C,B將變成D,以此類別推。移動可以是任何數字。最初這種密碼使用的是移動3個位置。
以下是一些凱撒密碼的例子:
- 「道德駭客很酷」使用移動2位置將變成「Gvjkecn jcemkpi ku eqqn」
- 「道德駭客很酷」使用移動20位置將變成「Ynbcwuf buwecha cm wiif」
從上面可以看出,移動值越高,訊息越模糊不清。沒有金鑰的話,當時解密這些訊息會非常困難。然而,今天的凱撒密碼很容易被破解。
內容解密:
- 替換概念:凱撒密碼透過替換每個字母來實作加密。
- 固定移動值:這種替換是根據固定數量的位移(例如2或20)。
- 金鑰:接收者需要知道這個固定位移值來解密訊息。
- 簡單且易破解:由於其簡單性,現代電腦很容易破解凱撒密碼。
更具安全性的加密方法在許多年後出現了,即維吉尼亞密碼(Vigenère cipher)。
維吉尼亞密碼
這也是一種替換密碼,但它不使用固定位移長度,而是使用一個關鍵字。這個關鍵字由字母組成,根據其在字母表中的位置代表數字。
假設用於加密訊息的關鍵字是AHT:
- 表示明文訊息將根據1(A)、8(H)和20(T)進行位移。
- 明文中的每個字母都會按照1, 8, 20 的模式進行位移。
例如,「秘密」這個詞:
- 明文:S E C R E T S
- 關鍵:A H T A H T A
- 加密後:T M W S M N T
我們可以視覺化如下:
Message S E C R E T S
Key A ~ 1
Shift by 1
H ~ 8
Shift by 8
T ~ 20
Shift by 20
A ~ 1
Shift by 1
H ~ 8
Shift by 8
T ~ 20
Shift by 20
Cipher T M W S M N T
如上表所示,維吉尼亞密碼相對更安全。然而,隨著今天的加密分析進步,仍然可能被破解。
內容解密:
- 關鍵字概念:維吉尼亞密碼使用一個關鍵字來確定每個字母的位移。
- 動態位移:不同於固定位移的凱撒密碼,維吉尼亞密碼中的每個位移都是根據關鍵字中的不同字母。
- 複雜度提升:雖然比凱撒密碼更難破解,但在現代電腦面前仍然脆弱。
我們之前提到的是單一型別的加密技術之一。還有其他幾種加密技術存在。
常見加密技術概述
在加密技術方面,存在多種不同型別的加解技術。以下是一些主要型別:
傳統替換式加解技術
- 替換式加解技術:這型別加解技術透過將明文中的字元或字元塊替換為其他字元來實作。
- 轉置式加解技術:與替換式相反的是轉置式加解技術。它不更改字元本身,而是改變其順序。
- 比如說列轉置式加解技術:資訊垂直書寫但水平閱讀。
- 多重替換式加解技術:為抵禦頻率分析攻擊而誕生。
- 這些多重替換式加解技術以群體形式處理文字。
- 每一組文字都用來替換原始文字。
- 排列式加解技術:它只是改變了明文的位置。
- 對稱鑰匙演算法:傳送者和接收者都需要有一個預分享鑰匙。
- 鑰匙用於加解並保持對所有人其他參與者保持秘匿。
- 原因是使用相同的鑰匙所以稱為對稱鑰匙演算法。
- 非對稱鑰匙演算法:兩個不同的鑰匙對被使用:公共鑰匙和私有鑰匙。
- 私有鑰匙保持秘匿而傳送者使用公共鑰匙進行加蝦皮。
- 公共與私人鑰匙由不同的人持有所以稱為非對稱鑰匙演算法。
公私鑰分別作用
公私鑰分別作用:要記住公私鑰分別作用的一個簡單方法是把對稱與相同連結起來因為它們會使用相同的秘匿資料。
隨著時間推移和科技進步, 新一代新演算法誕生了但是在大部分情況下較容易破解, 接下來我們看看對稱與非對稱演算法之間差異.
加解演算法
如同之前我們學習過的一樣, 加解已經存在了許多年. 在此之前你也看到了一些經典演算法和他們各自缺點. 接下來我們重點看看對稱和非對稱演算法之間差異.
對稱演算法
當我們說到對稱演算法時, 是指同樣秘匿資料用來進行資訊雙向編譯.
這意味著如果兩者交流, 則兩者需要相同秘匿資料, 不會洩露. 對稱演算法也稱為私人演算法.
以下圖示顯示了同樣秘匿資料進行雙向編譯:
此圖示表示如何利用同樣秘匿資料進行雙向編譯.
對稱演算法一般用來編譯大量資料, 資源耗損較少. 對於大規模組織來說, 他們能夠很容易擴充套件. 此外, 對稱演算法也能夠被細分為塊和流.
塊演算法
塊演算法會將原始資訊以固定大小切割(例如128位元、256位元等). 隨後以秘匿資料編譯成錯誤資訊.
以下圖示顯示了塊演算法基本編譯流程:
此圖示表示基本塊演算法編譯流程.
加密技術入門
在現代資訊安全中,加密技術是確保資料保密性、完整性和可用性的關鍵。這篇文章將探討區塊加密、流加密以及非對稱加密等核心概念,並分析其在雲端運算中的應用及挑戰。
區塊加密
區塊加密是一種將明文資料分割成固定大小的區塊,然後對每個區塊進行加密的方法。這種方法依賴於固定的區塊大小,如果資料小於預期的區塊大小,則會新增填充來比對區塊大小。常見的區塊加密演算法包括:
- 資料加密標準(DES)
- 三重 DES(3DES 或 TDEA)
- 高階加密標準(AES)
- 國際資料加密演算法(IDEA)
- Blowfish
- Twofish
- RC5
其中,AES 是當今最常用的區塊加密演算法之一。與之相對的是流加密,它對每一位明文資料進行單獨加密。
流加密
流加密將明文資料分割成位,然後逐位進行加密。這種方法生成一個隨機數流(nonce),該隨機數流是從加金鑰匙和種子衍生出來的。以下是流加密的基本過程:
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 加密技術基礎與實踐應用:從古典密碼到現代演算法
package "安全架構" {
package "網路安全" {
component [防火牆] as firewall
component [WAF] as waf
component [DDoS 防護] as ddos
}
package "身份認證" {
component [OAuth 2.0] as oauth
component [JWT Token] as jwt
component [MFA] as mfa
}
package "資料安全" {
component [加密傳輸 TLS] as tls
component [資料加密] as encrypt
component [金鑰管理] as kms
}
package "監控審計" {
component [日誌收集] as log
component [威脅偵測] as threat
component [合規審計] as audit
}
}
firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成
@enduml
流加密主要分為兩類別:
- 同步流加密:該型別的流加密不依賴於前一個區塊的明文和密鑰。它使用偽隨機生成器產生一串位元組,然後與明文進行XOR運算以產生密鑰。
- 自同步/非同步流加密:該型別的流加密也稱為自動鍵控制,它使用一個鍵流塊,該鍵流塊是對稱鑰匙和前一個區塊大小的函式。
常見的流加密演算法包括:
- Rivest Cipher(RC4)
- Salsa20
- 軟體最佳化加密演算法(SEAL)
- Panama
區塊與流加密的差異
| 區塊加密 | 流加密 | |
|
-| | 加密固定大小的區塊 | 加密每一位 | | 處理速度較慢 | 處理速度較快 | | 需要更多資源 | 使用較少資源 | | 可以使用流加密特性在不同操作模式中 | 不能使用區塊加密特性 | | 常用於資料傳輸 | 常用於資料傳輸 |
非對稱加密
非對稱加密使用兩個不同但數學上相關的鑰匙進行資料的加解密。最常見的應用是公鑰加解密,其中公鑰用於資料的加解秘,而私鑰則用於解碼。非對稱加解秘提供了以下額外功能:
- 資料完整性:透過數字簽名確保接收方接收到未被篡改的資料。
- 身份驗證:確保通訊雙方身份已經驗證,防止身份冒充。
- 安全鑰匙交換:使得在公共網路中進行對稱鑰匙交換成為可能。
非對稱加解秘廣泛應用於公鑰基礎設施(PKI)中。
加解秘攻擊型別
瞭解常見的攻擊型別有助於增強防禦策略:
- 僅知秘文攻擊(COAs):攻擊者僅有秘文且無關聯明文,試圖從秘文中提取出相關明文。
- 已知明文攻擊(KPAs):攻擊者擁有明文和秘文,試圖推斷出用於編碼的鑰匙。
- 側頻道攻擊(SCAs):透過測量硬體引數如電流、時間和電磁值來取得機器或系統中的秘訣。
雲端中的加解秘
隨著雲端服務的普及,資料保護需求日益增長。雲端提供者提供多種選項來保護資料在傳輸過程中的安全。無論是符合法規要求還是保護敏感資料,雲端提供者都提供了多種選項來確保資料在傳輸、靜止和使用中的安全。
雲端中的挑戰
- 時間與成本:編碼可能被視為額外步驟或增加成本,需要企劃有效策略來評估風險。
- 資料遺失:管理編碼鑰匙至關重要,丟失鑰匙將導致無法還原資料。
總結來說,理解這些核心概念及其應用可以幫助我們更好地設計和實施安全可靠的系統。
加密技術基礎教程
在雲端安全中,即使用加密技術也不是萬無一失。高階攻擊者可能能夠破解加密金鑰,特別是在程式允許使用者選擇金鑰的情況下。因此,存取敏感內容需要兩個或更多的金鑰。目前我們已經介紹了多種加密技術以及各種攻擊和挑戰,現在是時候將你所學到的知識付諸實踐了。
實踐加密技術
目前市面上有許多加密工具可供選擇。大多數現代作業系統都內建了原生的加密工具。接下來我們將使用一個非常簡單的工具,該工具可以在 Kali Linux 上安裝,名為 ccrypt。ccrypt 是為了取代 Unix 中現有的標準 crypt 工具而設計的,因為後者使用的是弱加密演算法。ccrypt 使用 AES 加密標準。
要安裝 ccrypt,只需在 Kali 的終端機視窗中輸入以下命令:
$ sudo apt install ccrypt
安裝過程相當迅速,因為該工具非常輕量化。以下是安裝過程的截圖:
加密工具 ccrypt 介紹
安裝完成後,可以透過輸入 ccencrypt -h 命令來檢視當前的操作模式。注意,ccrypt 包含多個額外工具;這些工具在以下截圖中列出:
這些工具包括 ccencrypt,用於加密檔案;ccdecrypt,用於解密檔案;以及 ccat,用於檢視檔案內容而不需要解密。
我們來試著使用這個工具來加密一個檔案。我將使用一個標準文字檔案,以便我們可以驗證資料已被加密。
首先,我會在終端機中輸入以下命令來建立一個文字檔案:
$ echo "Ethical Hacking is cool" > secret.txt
這將建立一個包含 “Ethical Hacking is cool” 的文字檔案,如下圖所示:
檔案建立完成後,我會使用 hello 作為金鑰來加密它:
$ ccencrypt secret.txt
檔案加密完成後,你會注意到檔案副檔名已經被增加了 .cpt 字尾。如果我們對該檔案執行標準的 cat 命令,我們會看到內部文字已被加密:
內容解密:
- ccencrypt:這是 ccrypt 提供的主要工具之一,用於對檔案進行加密處理。
- golden key:在這裡指的是用於加密和解密檔案的預設金鑰。
- file extension change:此處會將原始檔案副檔名
.txt改為.txt.cpt,表示該檔案已經被成功加密。
另一個方便的工具是 ccat
另一個隨附的工具是 ccat ,它允許你檢視已加密檔案的內容而不需要實際解密並將其寫入磁碟。
使用 ccat secret.txt.cpt 命令並提供金鑰後,我可以看到解密後的文字,如下圖所示。請注意,這並未將解密後的檔案寫入磁碟:
內容解密:
- cct:此處指的是由 ccrypt 提供的一個輔助工具。
- 金鑰驗證:cct 工具可以讓使用者不需真正進行解密動作即可檢視檔案內容。
- 暫存檢視:此方便方式通常會適用在不需長期儲存解密資料之情境。
加強安全性工具
另一個有趣的工具是 ccguess ,它允許你在已加密檔案中搜尋可能的金鑰比對。
使用 ccguess secret.txt.cpt 命令並提供一個可能比對的金鑰值(例如 ehlo), ccguess 可以提供可能的金鑰比對結果:
內容解密:
- 強制性驗證:當要進行可能性驗證時,必須提供可能性較高且合理之範圍。
- 有限窮舉:此功能並非完全窮舉演算法,其範圍僅限於輸入者所提供可能性。
- 功能限制:此功能無法像 hashcat 一樣提供廣泛範圍之暴力破解。
加密技術概述
由於加密技術是如此龐大的一個主題,我們可以撰寫專門針對加密技術的書籍。在本章中,我們介紹了加密技術及其歷史背景。同時我們探討了常見的加密演算法及其今日面臨的一些主要攻擊方法。雖然一些古典演算法仍然被廣泛應用至今,但現代演算法卻更為普遍化地應用在實務當中。
下一章節預告
在接下來的一章中,我們將進入侵略行為(Reconnaissance)階段並開始進行實際操作實驗室。
情報收集與侵略行為
侵略行為(Reconnaissance)或簡稱「侵略」,涉及觀察目標以收集策略資訊以供你自己利用。侵略行為對於道德駭客活動至關重要;反之亦然地對現實中的攻擊者也同樣重要。在此階段中重點放在資訊收集上。取得越多資訊意味著你越有能力做好攻擊計劃。
本章重點
本章將涵蓋以下幾個主要主題:
- 什麼是侵略行為?
- 被動資訊收集
- 主動資訊收集
- Wi-Fi 調查
- 在雲端進行侵略行為
- 技術需求與實踐應用
- 最佳實踐
技術需求與實踐應用
要隨著本章進行操作與學習,你需要以下條件:
- Kali Linux 2022.1 或更高版本
- 一款能夠在監控模式下工作的無線網路介面卡