Instructions for Building TrueCrypt 6.3a in Linux

來源:互聯網
上載者:User

TrueCrypt最初是為Windows平台上開發的加解密軟體,後來也支援了Linux和Mac OS X平台,但是TrueCrypt的重點仍然是Windows平台,Linux和Mac OS X至今還不支援System Encryption功能並且AES演算法也沒有使用x86彙編。具體是什麼原因,沒有找到官方的說法,可能的原因如:

1. TrueCrypt的重點是Windows平台,支援Linux和Mac OS X平台可能僅為了提供軟體的完整性和跨平台使用的便利性。

2. Linux Kernel 2.6.x已經提供了device mapper架構下的dm-crypt目標驅動。它和cryptsetup-LUKS應用程式層工具一起可以提供System Encryption功能。TrueCrypt開發人員可能認為dm-crypt據有天生的優勢,目前沒有必要在Linux平台下提供重複功能軟體(dm-crypt代碼在Linux kernel中直接維護,避免了很多問題,目前主流的Linux發布版本都支援dm-crypt with luks)。

3. TrueCrypt提供System Encryption功能並不困難,但是要像Windows版本那樣提供真正的全磁碟加密,也就是Linux下面的/boot也要加密,這需要修改Grub等bootloader,而且要盡量避免bootloader升級帶來的相容問題,也可以提供一個自己的bootloader提供解密功能並引導Linux的bootloader啟動,完成這項工作也是非常費時。

註: cryptsetup目前也不支援/boot加密,有人修改了Grub2的代碼實現的此功能,但是他在文章中提到:"The method is truly the bleeding edge and the modified code is not even in the trunk of GRUB2"。

TrueCrypt為了避免受到Linux Kernel版本變化的影響,driver部分採用FUSE(file system in userspace)架構,也就是driver部分運行在userspace中,雖然FUSE架構寫的非常穩定和高效,但是還是會影響效能,而且AES演算法使用的C實現而也沒有使用x86彙編。TrueCrypt for Linux 沒有像Windows本版那樣提供benchmark功能,如果排除程式本身在Linux和Windows平台之間下的效能差異,效能應該比Windows版本低一些,但是本人沒有測試過。

雖然TrueCrypt的Linux版本和Windows本版比起來有種種的不足,但是TrueCrypt豐富的功能,友好的介面和穩定性在Linux平台下的眾多的開源加解密軟體中還是非常出色,值的我們去研究和使用。

參考TrueCrypt程式碼封裝中ReadMe.txt和Makefile檔案,折騰一番,成功編譯出可執行檔問題不大。TrueCrypt的Makefile檔案編寫的非常好,ReadMe.txt也寫的還行,就是還不夠詳細。如果你想編譯Debug本版進行調試,還得花費一定的時間處理編譯中出現的各種問題。本人在Ubuntu 9.04/9.10和Fedora 11/12都編譯成功,下面以Ubuntu 9.10為例來示範編譯步驟。

1. sudo apt-get install build-essential

2. sudo apt-get install libfuse-dev

3. 下載PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20 header files中三個檔案:pkcs11.h,pkcs11f.h,pkcs11t.h放到PKCS11_INC檔案夾下。
    

     export PKCS11_INC="/路徑/PKCS11_INC"  #設定臨時環境變數,每次重啟後進行編譯都必須設定。 

     如果你不想每次重啟都設定環境變數,可以在Ubuntu的~/.bashrc檔案末尾部分加入:

     #Set PKCS11_INC environment variable for TrueCrypt
     PKCS11_INC=/路徑/PKCS11_INC
     export PKCS11_INC

4.

(a)如果你不想下載wxWidgets原始碼包進行編譯,按下面步驟:

1-1.

    (1)For release version with GUI 
    sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev wx2.8-headers wx-common

    (2)For release & debug version with GUI and NOGUI
    sudo apt-get install libwxbase2.8-0 libwxbase2.8-dbg libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dbg libwxgtk2.8-dev wx2.8-headers wx-common wx2.8-i18n

     注釋:

     libwxbase2.8 * : non-GUI support classesof wxWidgets toolkit
     libwxgtk2.8 * : wxWidgets Cross-platfrom c++ GUI toolkit
     wx2.8-i18n : i18n是internationalization的縮寫,i和n之間正好18個字母,好像是國際化語言套件吧。
     wx2.8-doc
     wx2.8-examples

1-2. 

     make                                          # build truecrypt release

     make  DEBUG=1 DEBUGGER=1   # build truecrypt debug

    

(b)如果你想編譯wxWidgets原始碼只用來支援truecrypt編譯,按以下步驟:

1-1.    

     apt-get install gnome-core-devel
     make WX_ROOT= wxWidgets原始碼路徑 wxbuild                                           # build wxwidgets release library
     make DEBUG=1 DEBUGGER=1 WX_ROOT=wxWidgets原始碼路徑 wxbuild      # build wxwidgets debug library

1-2.

     make  WXSTATIC=1                                                                                             # build truecrypt release

     make  DEBUG=1 DEBUGGER=1  WX_ROOT=wxWidgets原始碼路徑 WXSTATIC=1  # build truecrypt debug 
 

     如果只需要編譯控制台介面,在make命令後面加上NOGUI=1

(c)你也可以直接編譯wxWidgets全部原始碼,使用make install命令安裝,這裡不提供具體步驟。

     在編譯wxWidgets-2.8.10代碼的過程中可能出現socket錯誤,這需要在src/gtk/gsockgtk.cpp中添加一個宏定義如下:

    +#define GSocket GlibGSocket
      #include <gdk/gdk.h>
      #include <glib.h>
    +#undef GSocket

推薦大家採用4(b)中提供的方法來編譯。

   

5. 如果編譯成功,在/Main目錄下面會產生一個truecrypt可執行檔案(對比Windows本版會產生多個檔案,Linux本版這點很好)。如果編譯的是debug版本,你可以啟動gdb,試試看能不能調試應用部分。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.