• 沒有找到結果。

Cipher Block Chaining Mode(CBC 模式)

在文檔中 Web Content Recovery System (頁 37-0)

第四章 DES-X 介紹

4.5 DES 的操作模式

4.5.2 Cipher Block Chaining Mode(CBC 模式)

CBC 模式處理方式是加密演算法的輸入是由前一個密文區段的 64 位元與下一個明文區段的 64 位元經過 XOR 運算後所組成,其主要是改 良 ECB 模式在同樣內容的明文重複出現的情況下,不會產生相同的密 文輸出。因為一開始的明文區段並沒有前一個密文區段可以用,所以 必須另外準備「起始向量」(Initialization Vector,IV)給第一段明 文區段使用,而解密之時也只需要先將第一個密文區段和 IV 作 XOR 運

算之後就可以正常解密出明文,其作法如下所示:

圖 4-7 CBC 模式操作流程圖 4.5.3 Cipher Feedback Mode(CFB 模式)

DES 或其他對稱式區段加密演算法都是作用在固定長度區段上的加 密技巧,然而我們卻可以利用 CFB 模式將 DES 轉換成一個資料流加密 法(Stream Cipher),使用資料流加密法的話就不需要將訊息長度補足 成固定區段大小的倍數,可以用即時處理的方式來運作,因此當我們 要傳送一連串字元時就可以採用 CFB 模式。

資料流加密法的特質就是密文與明文長度必須相同,因此我們如果 要傳送 8 位元的字元資料的話,每個字元就必須用 8 位元來加密,若 是超過 8 位元來加密就浪費傳輸容量了。

CFB 模式的操作方法是加密函數輸入是一個位移暫存器(Shift Register),這個暫存器一開始會被設定成某個起始向量 IV,加密函數

的第一次輸出的最左邊的 j 個位元會與第一個明文單元 P1作 XOR 運

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

CFB Encrypt

圖 4-8 CFB 模式操作流程圖 4.5.3 Output Feedback Mode(OFB 模式)

OFB 模式的結構與 CFB 模式很類似,在 OFB 中回存到位移暫存器中

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

CFB Decrypt

DES Encrypt Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

OFB Decrypt

圖 4-9 OFB 模式操作流程圖

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

DES Encrypt K

Shift register 64-j bits | j bits

OFB Encrypt

第五章 SHA-1 介紹 5.1 何謂 SHA-1

安全雜湊演算法(Secure Hash Algorithm)簡稱 SHA,是由美國國 家標準與技術協會(NIST)所發展出來的,並且在 1993 年發布成為第 180 項美國聯邦資訊處理標準(FIPS PUB 180),而在 1995 年底又將其 修訂版本發布為 FIPS PUB 180-1,所以我們通稱此版本為 SHA-1,SHA 是以 MD4(Message Digest Algorithm)為基礎,並且設計方式與 MD4 也很類似。

Message(K bits) 100...0

Y

0

Y

1

… Y

q

… Y

L-1

512bits 512bits 512bits 512bits

Padding

(1 to 512bits) Message length

圖5-1 SHA-1演算法流程圖

5.2.1 SHA-1 訊息附加位元(Padding bits)

在訊息之後附加一些位元使訊息取 512 同餘之後等於 448,我們一 定要在訊息尾端附加位元即使訊息本身長度就已經符合我們需求,因 此我們附加的位元個數可以從 1 到 512 位元,而附加的方法是先加上 一個 1 然後再用 0 補到需要的長度,當然這需要在訊息末端加上一段 64 位元的資料,這段資料以一非負整數表示用來記錄原來訊息的長度。

5.2.2 設定 Message Digest 暫存區的初值

我們使用一個 160 位元的暫存區來存放這個雜湊函數的中間值及 最後結果,我們可以用 5 個 32 位元暫存器(A、B、C、D、E)來表示這 個暫存區,而這 5 個暫存器的起始初值如下(以 16 進位表示):

5.2.3 處理訊息中 512 位元區段

此為 SHA-1 核心部分,這部分是由四個「處理回合」所組成的模組,

每個回合有 20 個步驟,運作邏輯我們可以由圖 5-2 看到,這四個回合 的結構都差不多,但是每個回合都用了一個不同的基本邏輯函數,這 些邏輯函數在這個規格中分別被標示成 F1、F2、F3及 F4

每回合的輸入是我們正要處理的 512 位元區段(Yq)與 160 位元的暫 存區 ABCDE,這四個回合會分別更動這個暫存區的內容,每個回合還會 加上常數 Kt,我們用步驟編號 t 由 0 到 79 來表示四個回合中的 80 個 步驟,而實際上我們只用了四個不同的常數如下所示:

F2,K,W[0……19]

20 個步驟

F3,K,W[0……19]

20 個步驟

F4,K,W[0……19]

20 個步驟 F1,K,W[0……19]

20 個步驟

A B C D E

A B C D E

A B C D E

+ + + + +

Yq CVq

A B C D E

CVq

A B C D

圖5-2 SHA-1處理一個512位元區段流程圖

第四個回合的輸出(第 80 個步驟的輸入)會跟第一個回合的輸入(CVq) 加在一起,所產生的結果就是 CVq+1,相加的方法是暫存區中的四個字 元與 CVq中相對應的字元相加(字元間彼此獨立相加),並且都要取 232 的同餘就可以得到結果。

5.2.4 SHA-1 輸出

當所有 512 位元的區段都處理過之後,最後一階段產生的輸出就是 我們要的 160 位元的訊息摘要值。我們可以將 SHA-1 的行為歸納如下:

CV0 = IV

CVq+1 = SUM32(CVq, ABCDEq) MD = CVL

此處

IV = ABCDE 暫存區的初始值

ABCDEq = 訊息中第 q 個區段最後一回合的輸出

L = 訊息中的區段個數(包含以附加的位元及長度欄位)

SUM32 = 將兩個輸入區段的字元分別獨立相加之再取 232的同餘 MD = 最後的訊息摘要值

5.3 SHA-1 的壓縮函數

和特性也很相似,我們就根據 MD4 所定義的設計目標來比較這兩個演 算法。

對抗暴力法攻擊的安全程度:最明顯也是最重要的差別就是 SHA-1 的摘要值要比 MD5 的摘要值多了 32 個位元,如果我們想針對一摘 要值來求出訊息的話,MD5 需要執行 2128個運算,而 SHA-1 則需要 執行 2160個運算。此外如果想要找到兩個可以產生相同摘要值得訊 息的話,那 MD5 需要執行約 264個運算,而 SHA-1 則需要執行約 280 個運算,因此就暴力破解法而言 SHA-1 是比較安全的。

對抗密碼破解的安全程度:近年來 MD5 在結構上被人發現是不安全 的,而 SHA-1 尚未有發現結構上的問題,加上 SHA-1 的設計策略和 DES 的 S-box 相同不為人知,所以目前看來比 MD5 要安全許多。

速度:這兩個演算法都大量的使用了取 232同餘的加法,所以他們 在 32 位元處理器上的表現都很好,但是 SHA-1 需要的步驟是 80 步 而 MD5 是 64 步,在暫存區的長度上 SHA-1 的 160 位元也比 MD5 的 128 位元要來的多,所以在同樣的電腦上 SHA-1 的執行速度要比 MD5 來的慢。

由上面幾點來看雖然 SHA-1 的執行速度較 MD5 為慢,但是 SHA-1 卻具 有較高的安全性強度,加上 MD5 被發現有結構上的缺點,所以我們當 然是採用 SHA-1。

第六章 Web Content Recovery System 程式介紹 6.1 安裝程式

此安裝程式主要負責幾項工作:

1. 拷貝 WCR 所有程式到使用者指定目錄。

2. 設定並建立 WCR 系統的設定檔(wcr.ini)。

3. 加入系統登錄檔註冊值,使檔案總管等程式之 POP 選單增加

「WCR 檔案加密」之選項。

4. 執行 Mkey.exe 來產生新的 DES 鑰匙並將其存放於指定的位置。

5. 藉由加密程式加密所有需要保護的網頁資料。

6. 建立程式集目錄和程式捷徑。

上述的步驟我們可以由下面的執行畫面 6-1~6-5 來看:

圖 6-1 WCR 安裝程式畫面 1

圖 6-2 WCR 安裝程式畫面 2

圖 6-3 WCR 安裝程式畫面 3

圖 6-4 WCR 安裝程式畫面 4

圖 6-5 WCR 安裝程式畫面 5

6.2 加密和備份程式

此程式則負責檔案的加密和加密之後的備份工作,以求發生網頁被 竄改之時能有還原網頁之能力,其使用和執行介面是經由 Windows 作 業系統上的檔案管理程式,不需另外開啟程式或特殊介面,我們可以 由圖 6-6 看到增加到 POP 右鍵選單上的「WCR 檔案加密」選項

圖 6-6 WCR 加密程式執行畫面 6.3 解密和還原程式

當檔案需要解密或是由備份中移除、還原時則由此程式來做,主要 用於網頁檔案 update 或是汰舊,另外因為我們的加密對象是檔案名 稱,所以所有檔名皆為無法認出的密文,為了讓使用者能夠方便的找

到檔案並作解密還原的動作,所以我們的解密還原程式就在讀取檔案 列表時即時的將檔名作 DES-X 解密動作,讓在 GUI 介面上看到的檔案 列表是未加密前的檔名,此做法不僅方便使用者另外一方面在解密檔 案時也不需要再作 DES-X 解密動作,其執行畫面如圖 6-7。

圖 6-7 解密還原程式執行畫面 6.4 WCR 主程式

功能說明

起始執行畫面如圖 6-8,主要可使用的功能有四個:

啟動:啟動 WCR TCP Proxy 的功能,啟動後才會開始執行 WCR 的功能。

重新載入虛擬目錄設定:當使用者在 WCR TCP Proxy 執行後修改虛擬

目錄的設定後,需執行此功能來重新載入設定,方能產生效果。

重新讀取設定:用來重新讀取其他細部的設定。

圖 6-8 WCR 主程式執行畫面

最小化:當點下右上角的最小化鍵後,WCR TCP Proxy 會縮到 task bar 上(如圖 6-9),在 task bar 上的 icon 連點兩下,WCR TCP Proxy 會回 復原來的大小。

圖 6-9 WCR 在最小化在 task bar 畫面 執行結果

在 WCR TCP Proxy 功能啟動後,輸入原始的檔名後,網頁正確的 開啟(圖 6-10),但實際網頁的名稱都已經經過加密(如圖 6-11),直接 到 IIS 所在的 port 來開啟同樣的網頁,結果並無法成功的開啟(如圖 6-12)。

圖 6-10 開啟網頁測試畫面

圖 6-11 實際在主機上的檔名畫面

圖 6-12 直接送要求給 IIS 開啟網頁的測試畫面 第七章 WCR 系統架構和問題解決

7.1 WCR 系統架構

整體架構大致分為兩部分:On-line 的主程式和 Off-Line 的加解 密及備份還原程式,其簡單的結構可由圖 7-1 來看:

On-Line 主程式

Off-Line

圖 7-1 WCR 系統簡單架構圖 TCP Proxy

即時檢查 即時還原 即時通知

資料備份還原

檔案加解密 離線檢查

而處理 Client 端瀏覽器 Request 的流程也可以由圖 7-2 清楚了解

轉送到TCPProxy Client端 Web Service Web Service將 Reqeust的檔案 Response給 TCPProxy Client端

TCPProxy Client端將Response

轉送到TCPProxy Server端

TCP Proxy 會 bind 到 80 PORT,然後當 Request 進來時,先將檔名 經 DES-X 加密後再搜尋目錄下檔名以此密文開頭的檔案,找到之後再 將此檔的內容經過 SHA-1 來計算其摘要值,並與檔名中的摘要值部份 比對,以檢查檔案的完整性,如果沒問題再將 Request 中的檔名改為 加密後的檔名,再送往 Web Service,收到 Web Service 的 Response 後將傳回給 Client 端;如果檔案有問題便即時將他從備份檔中還原,

並記錄 log 再以 E-mail 方式通知管理者,最後都由 Web Service 的程 式作 Response 後將傳回給 Client 端。

7.1.1 WCR 加密和備份做法說明

我們使用 DES-X 來加密檔案名稱(不包含路徑),而以 SHA-1 來計算 檔案內容的訊息摘要值,之後將兩者整合變成該加密後的檔案名稱,

也就是說我們的加密處理只變動檔名部分,不會對檔案內容作任何動 作或處理,至於檔案備份工作則是依照使用者設定的備份路徑將檔案 依照原本所在路徑的架構完整備份下來,舉例來說:當備份路徑為 D:\WCR\Backup 而加密過檔名為

E:\e5b7cd8e07106fbda28cee94b167af6fe8d74d8a014e76387d860346.html 則備份檔案為

D:\WCR\Backup\E\e5b7cd8e07106fbda28cee94b167af6fe8d74d8a014e76 387d860346.html。我們由圖 7-3 可以了解加密和備份程式處理檔案的 流程。

圖 7-3 WCR 加密備份程式流程圖

圖 7-3 WCR 加密備份程式流程圖

在文檔中 Web Content Recovery System (頁 37-0)

相關文件