徹底破解加密PDF檔案

2021-04-08 23:55:43 字數 3560 閱讀 6189

pdf加密、解密內幕(三)

-破解加密pdf檔案

1 一般的口令驗證

我想很多人在學習某個技術或者其它之前總會想想如果換作自己來設計會怎麼辦,比如說pdf檔案的解密,我就會想,檔案內容是經過加密的,那麼必須要有乙個金鑰才能解密檔案的內容。而這一定和要求輸入的口令是有關。那麼這之間有什麼關係呢?

當然有很多種可能,在很久以前,一些系統竟然在後台用明文儲存使用者口令和口令,這樣使用者在登入系統的時候就直接比較使用者名稱密碼是否一致,當然這些使用者名稱和密碼全部掌握在管理員的手中;到我們比較注重系統安全的時候,用口令通過hash函式生成hash序列儲存在資料庫裡,這樣就比較安全,因為hash函式是單向的,沒有輸入的口令的話只有用暴力破解的方法了。如果你的口令設定的比較簡單也是很容易被破解的。因此現在一些對安全性比較高的**都會要求你不要將口令設定的過於簡單。

那麼解密pdf的時候口令是如何來驗證的呢?

是不是由我們的口令生成的hash序列儲存在pdf檔案裡,然後在開啟的時候由你輸入的口令再生成乙個hash序列,兩者比對,同則由你輸入的口令會同pdf檔案中的其它內容生成金鑰,然後解密?這只是我們的設想,那麼pdf檔案解密是不是真的這樣做的呢?

圖1 假想的pdf解密

下面我們來尋找問題的答案。

2 pdf

檔案口令驗證

在上幾篇文章中我們也知道了pdf有兩組口令,一為owner password, 另外一組稱為user password,因為owner password是用來控制許可權的,在文章中我們把它稱為許可權口令;而user password是用來開啟檔案的,稱為開啟口令。

如果乙個檔案同時設定了開啟口令和許可權口令,那麼在開啟pdf檔案的時候只要輸入任何乙個口令就可以開啟該加密的pdf檔案了。

而當我們輸入口令的時候,一般處理pdf的軟體會先判斷是否許可權口令,如果是,那麼開放所有的操作許可權,使用者就可以沒有任何限制地使用該pdf檔案;如果不是許可權口令,那麼會判斷輸入的口令是否為開啟口令,如果驗證成功,那麼pdf檔案就解密,就可以看到檔案的內容,但是此時檔案的其它操作是受限制的。

演算法3.6和演算法3.7分別描述了對使用者口令和許可權口令的驗證。如果你尚未讀過前一篇文章,那麼如果你感興趣的話可以去看一看,然後再回過來看本文。

2.1演算法 

3.6

驗證使用者口令 1

利用使用者提供的口令執行演算法3.4(r2)或演算法3.5(r3或更高)。 2

如果步驟1的輸出和pdf檔案中加密字典中的u值一致(r2),或者前16位一致(r3或更高),因為版本3或更高的情況後十六位是任意補足的。那麼該輸入的使用者口令正確,並且可以按照演算法3.1對檔案內容進行解密。

2.2 演算法3

.7

驗證主口令 1.

根據演算法3.3的1到4步,由提供的口令串計算得到乙個金鑰。 2.

(僅版本2)用步驟1得到的金鑰解密加密字典中的o條目值。

((版本3或更高)做20次:用前一次的輸出作為下一次的輸入進行解密;金鑰是由第1步產生的原始金鑰的單個位元組依次和迴圈數和進行xor(異或)運算得到的(迴圈數從19到0)。

下面為該過程的偽碼:

test[32] =

加密字典物件中條目o的32位字串值;

temkey = test[32];

keylength = length/8;

for

(i = 19; i >= 0; --i)

rc4initkey(tmpkey, keylength, fstate);

fx = fy = 0;

for (j = 0; j < 32; ++j)

}

3 步驟2產生的結果假定為開啟口令(user password),用演算法6來驗證該使用者口令。如果正確,那麼提供的口令就為許可權口令(owner password)。 3

可能的破解方法

對加密的

pdf檔案進行破解我想是很多人最感興趣的,那麼在此也來討論一下對口令加密的

pdf檔案是否可以被破解?有那些方法可以來破解口令加密的

pdf檔案?

對於第乙個問題的答案是顯而易見的,沒有那種加密方法是絕對安全的,絕對不能被破解的,我們很多時候所說的不能破解是指破解的時間相當長,長到對你破解的內容沒有意義的時候。下面我們來看看有哪幾種常規的破解加密

pdf檔案的方法。

3.1

常規暴力破解

這是對任何需要口令驗證或解密的系統或加密檔案都有效的方法,這個方法最簡單,就是通過窮舉計算

hash

序列來比對。當該口令或密碼設定的非常簡單的時候,該方法是有非常有效的。

破解過程按照演算法

3.6和演算法

3.7來驗證開啟口令和許可權口令。

3.2

口令表

口令表主要是在暴力破解的基礎上改進的,主要是應為一些人設定口令的時候用了一些比較容易記憶的內容,比如**號碼,比如生日,比如電子郵件等。因此說建立一些常見的口令表或者一些規則,那麼匹配的速度就可能會更快。

破解過程同樣要按照演算法

3.6和演算法

3.7來驗證開啟口令和許可權口令。

3.3

知道部分內容的解密

對於那些是由機器隨機生成,複雜,很長的口令(最長可達

32位元組),那麼就不太有可能通過上述兩種方法來進行破解。或者說破解的代價相當巨大,依照現在的計算機可能要算成千上萬年。

如果你知道檔案的部分內容,那麼你通過猜測檔案的金鑰。比如說你知道檔案的標題是

」abc」,

那麼你可以通過你猜測的加密金鑰來對該明文標題

」abc」

來進行加密,然後比對該密文和

pdf檔案中的密文是否一致,如果一致,那麼這就是金鑰,從而不需要經過常規的驗證許可權口令和開啟口令就可以對檔案進行解密。如圖:

圖2

知道部分明文的破解

在這種情況下,如果金鑰長度比較短的的話,那將很容易破解該檔案。

3.4 pdf

加密演算法的改進

pdf

中內容的加密演算法從

pdf1.6

開始支援

aes加密演算法,

塊大小為

16位元組的

cbc模式

,這種演算法的特點是生成乙個隨機字串作為初始加密向量,後面的內容的加密都要和這個初時向量有關,因此說你即使知道了檔案的部分內容,也不能通過方法

3來破解

pdf檔案金鑰了。

3.5 對於只有許可權口令的pdf檔案解密

只設定了許可權口令的

pdf

4 小結

本文詳細地介紹了驗證

pdf口令的過程,同時也簡單地介紹破解加密

pdf檔案可能的方法,當然討論破解方法的目的並不是希望你去做乙個軟體,通過你的軟體去非法破解一些加密了的

pdf檔案。只是希望能夠使你了解整個

pdf檔案的解密過程。同時通過對

pdf檔案解密過程的介紹,也可以舉一反三地掌握一些其它格式檔案加密的大概過程和方法。當然如果你真的做了乙個軟體可以去掉開啟口令的話,那麼你也許可以幫幫類似於

」浩然可見

」等朋友,忘記了自己設定的口令而打不開

pdf檔案。

接下去的文章我想和大家一起討論的

pdf檔案中的公鑰加密(證書加密)和簽名,感興趣的朋友可以繼續關注。

Zip加密檔案破解

介紹 隨機計算機效能的提高,很多人可能覺得找到乙個zip檔案的密碼是一件很簡單的事情。通常,破解zip檔案有三種方法 暴力破解 字典攻擊,以及明文攻擊。azpr uzpc pkcrack 具體怎麼使用,大家可以參照他們的文件,很詳細。當然,你也可以通過搜尋引擎選擇其他的工具,相信還可以找到很多。好,...

FastReport 輸出加密PDF檔案

一直想把用fastrepor輸出的pdf檔案加密,這樣才能體現pdf檔案的優勢小巧,高效,安全。我用的4.3版本不支援,在論壇問,用google搜,好歹有點結果。fastreport在4.5版本後支援pdf加密了。4.5的安裝如下 2.關閉delphi 3.執行fastreport檔案中的recom...

破解lockdir的加密檔案

windows下由於系統對檔名和資料夾名字不能含有特殊字元,lockdir就很巧妙的利用這點來達到隱藏檔案的目的。破解lockdir的加密檔案有兩種方法 1,利用在控制台下使用attrib指令去掉檔案的系統屬性,可執行屬性,隱藏屬性等。attrib s a h x 檔名。網上有很多,就不多說了。2,...