前面我們介紹了怎麼用 WSL 架設一個虛擬的作業系統 Kali Linux 在自己的 Windows 環境上。現在我們要來簡單講解一下,這兩個作業系統是怎麼在自己的電腦上運作的,以及我們要怎麼利用這兩個環境做一些實驗!
一台電腦的硬體設備包括:GPU、顯示卡、記憶體、硬碟、主機板等等,實際上我們只是把硬碟的一部分切出來放你的 Kali Linux 系統而已,但它仍然是一個獨立的環境。
你可以在 Windows cmd 下指令 ipconfig
觀察 IPv6 的位址,對照 Kali Linux 下指令 ifconfig
的 IPv6 位址,會發現兩個系統都是在同一個家用的私有網域底下哦!
也就是說,我們可以練習怎麼在自己的 Windows 和 Linux 之間傳送加密檔案!
而今天會介紹到的工具叫做 GPG(GNU Privacy Guard)它是一種「非對稱式加密工具」可以幫你把檔案加密後傳送給你想要的人!而對方也會知道怎麼解開你的加密文件,有點像是以前小時候在學校跟同學互傳紙條,但是這張紙條被放在盒子上鎖,只有你和朋友有鑰匙可以打開的那種感覺!
GPG 是一種密碼學軟體,提供加密、解密、簽章、驗章等功能,你可以透過它來建立一組公鑰和私鑰。這組公鑰私鑰可以替你的文件做加解密,常見的作法會把公鑰簽章後發送給「你信任的人」,對方也會將他的公鑰發送給你,透過彼此的公鑰對文件加密後回傳,再以私鑰解鎖就能看到原始文件,俗稱「明文」。
用一張圖來快速說明一下這個複雜的機制!
很明顯在這個傳遞的過程中,就算有其他人擷取到你加密過的文件,但是他沒有我的私鑰也是打不開,沒辦法看到我的內容哦!
當然,這張圖片是以我的立場來說明和解釋,你也可以把你的公鑰傳給我,我就會用你的公鑰加密檔案再回傳給你,你可以用自己的私鑰把它打開哦!
打開你的 Kali Linux 和 Terminal 輸入
gpg --full-generate-key
他會問你三個問題,全部都選擇預設(直接按 Enter),確定沒有問題,按下 y
就可以了。
輸入你的姓名、信箱(可選)、備註(可選),然後按下 o
產生你的第一組金鑰。
產生的過程中會需要設定 Passphrase,它的功能是在你未來匯入私鑰的時候驗證,這組密碼要保存好。如果你忘記了私鑰,也忘記了 Passphrase,那其他人用公鑰加密給你的檔案也打不開了!
完成之後 GPG 會顯示公鑰資訊給你看,[SC] 表示它的用途,S 代表 Signing 簽章,C 代表可以建立憑證 Certification;另外有支加密用的 sub 子金鑰 (Cv25519),用途為 [E] Encryption 加密。
這時候我們先把公鑰跟私鑰做一個備份,輸入
gpg --export -a <username> > public
然後 cat
看一下裡面的內容
這個就是你的公鑰檔案,接著我們輸入
gpg --export-secret-key -a <username> > private
這時候我們就需要輸入剛剛設定的 Passphrase,就完成公私鑰的備份了!
還記得我們前面學過的 nano
嗎?你可以嘗試在桌面建立一個新的檔案,或是把我們昨天用的 test.txt
做一個加密,看一下是不是真的被加密過!
你可以輸入
gpg -e -a -r <username> test.txt
-e
(--encrypt):加密檔案-a
(--armor):使用文字檔格式-r
(--recipient):選擇某個 USER ID 加密(以我的例子就是 RayChao_Linux
)是不是很神奇!裡面的內容居然是一堆亂碼,這表示你已經加密成功囉!接下來我們要來實作「解密」。
你可以輸入
gpg -d test.txt.asc
-d
(--decrypt):解密檔案這時候你也需要輸入 Passphrase 才可以解開
怎麼樣?是不是很酷啊!下一章我們會提到怎麼在 Windows 和 Linux 之間互傳加密檔案然後解鎖!這樣實作一次可以幫你提升記憶力!
黑暗執行緒的文章
Runoob 的文章
Will 大哥的文章
HackerSploit 的 Youtube 頻道
sixwings 的鐵人賽文章