web-dev-qa-db-ja.com

Ubuntu 14.04でTrueCryptを構築する

NSA全体で、人々はtruecrypt.orgが提供するものと同じように見えるバイナリを再構築しようとしましたが、成功しませんでした。そのため、ソースコードにないバックドアを使用してコンパイルされる可能性があると考える人もいます。 ->では、どのように最新のUbuntuバージョンでコンパイルしますか(UbuntuGNOMEを使用していますが、それは問題ではありません)?以前のUbuntuバージョンのチュートリアルをいくつか試しましたが、もう機能しないようです。

編集:

https://madiba.encs.concordia.ca/~x_decarn/truecrypt-binaries-analysis/ 「OK、私たちは構築する必要はない」と思うかもしれませんが、クローズドソースのソフトウェアであり、侵害されたコンパイラが依然としてバックドアをバイナリに配置する概念実証があります。1.バックドアのないソース2.参照バイナリと同一のバイナリ

edit2(投稿に返信):

$ make -j 2 PKCS11_INC=$HOME/src/pkcs-11を使用すると、次の結果が得られます。

 ... 
 
/usr/include/wx-2.8/wx/dynarray.h:669:5:注:マクロ '_WX_DEFINE_TYPEARRAY_PTR' 
 _WX_DEFINE_TYPEARRAY_PTR(_wxArray ## name、name、base、classdecl)
 ^ 
/usr/include/wx-2.8/wx/dynarray.h:655:5:注:マクロの展開中'WX_DEFINE_TYPEARRAY_WITH_DECL_PTR' 
 WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T、名前、ベース、クラスWXDL​​LEXPORT)
 ^ 
/usr/include/wx-2.8/wx/dynarray.h:829:5:note: :マクロ 'WX_DEFINE_EXPORTED_TYPEARRAY_PTR' 
の展開中WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T、name、wxBaseArrayPtrVoid)
 ^ 
/usr/include/wx-2.8/wx/bookctrl.h:26:1 :注:マクロ 'WX_DEFINE_EXPORTED_ARRAY_PTR' 
 WX_DEFINE_EXPORTED_ARRAY_PTR(wxWindow *、wxArrayPages); 
 ^ 
/usr/bin/ld:/ homeの展開中/user/src/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o):シンボル 'dlopen @@ GLIBC_2.1' 
/lib/i386-linへの未定義の参照ux-gnu/libdl.so.2:シンボルの追加エラー:コマンドラインからDSOが欠落しています
 collect2:エラー:ldが1つの終了ステータスを返しました
 make [1]:*** [truecrypt]エラー1 
 make:*** [all]エラー2 
 user @ user-pc:〜/ src/truecrypt-7.1a-source $ 

$ make -j 2 PKCS11_INC=$HOME/src/pkcs-11 LIBS=-ldlを使用する場合:

 ... 
 
 Forms/VolumeSizeWizardPage.o:関数 `TrueCrypt :: VolumeSizeWizardPage :: GetVolumeSize()const ':
 VolumeSizeWizardPage.cpp :(。 text._ZNK9TrueCrypt20VolumeSizeWizardPage13GetVolumeSizeEv + 0x80): `TrueCrypt :: StringConverter :: ToUInt64(std :: basic_string、std :: allocator> const&) '
 Forms/VolumeSizeWizardPage.o:InFunction` TrueCryPT:WardardPage.o:InFunction `TrueCrypt :: SetVolumeSize(unsigned long long) ':
 VolumeSizeWizardPage.cpp :(。text._ZN9TrueCrypt20VolumeSizeWizardPage13SetVolumeSizeEy + 0x8f):「TrueCrypt :: StringConverter :: FromNumber(unsigned long long)」への未定義参照Forms/WizardFrame.o:関数 `TrueCrypt :: WizardFrame :: SetStep(int、bool) ':
 WizardFrame.cpp :(。text._ZN9TrueCrypt11WizardFrame7SetStepEib + 0xe6):` TrueCrypt :: Event:への未定義の参照: :Connect(TrueCrypt :: EventConnectorBase const&) '
 collect2:エラー:ldが1つの終了ステータスを返しました
 make [1]:*** [truecrypt]エラー1 
 make:* ** [すべて] Er ror 2 
 user @ user-pc:〜/ src/truecrypt-7.1a-source $ 

make -j ...パラメーターBTWなしで同じ)

edit3

これで動作します。user76204とGEOに感謝します。

  1. $ Sudo apt-get install build-essential nasm libfuse-dev wx-common wx2.8-headers libwxbase2.8-dev libwxsvg-dev libwxgtk2.8-0 libwxgtk2.8-dev
  2. $ mkdir -p $HOME/src/pkcs-11
  3. truecryptソースを/home/USERNAME/truecrypt-7.1a-sourceに入れます
  4. 構築を開始:$ LIBS=-ldl make -j 2 PKCS11_INC=/home/USERNAME/src/pkcs-11/
5
linuxubuntu

Ubuntu 14.04でも同じ問題が発生しました。

LIBS=-ldl make PKCS11_INC=/tmp/truecrypt/pkcs11 

問題を解決しました(/ tmp/truecrypt/pkcs11はpkcs11ファイルが保存されている場所です)。

14.04でコンパイルしている人への注意:libwxgtk3.0-devをインストールせず、代わりに古いlibwxgtk2.8-devを使用してください。そうしないと、libwxgtk3.0-devのバグによりコンパイルできません。

https://groups.google.com/forum/#!topic/wx-users/2D_my-umcL を参照

1
GEO

truecryptを監査する計画 があります。これは、ソフトウェアのセキュリティとそのライセンスの文言のレビューに関するもので、興味深いことがあります。

12.04で正常にコンパイルした方法は次のとおりですが、Ubuntuの以降のバージョンでも動作するはずです。

Sudo apt-get install build-essential nasm libfuse-dev wx-common wx2.8-headers libwxbase2.8-dev libwxsvg-dev libwxgtk2.8-0 libwxgtk2.8-dev

また、公式のRSAサイトから特定のPKCS-11ヘッダーファイルが必要です。 wgetでそれらを一度に取得できます。wgetは*をFTPダウンロードで使用できます:

mkdir -p $HOME/src/pkcs-11
wget 'ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11*' -P $HOME/src/pkcs-11

truecryptサイト からソースコードをダウンロードし、必要に応じて公開キーを取得した後、gpgでソースコードを確認します。次に、おそらくそれを~/srcに抽出します。

makeを実行するときは、ヘッダーファイルを含むpkcs-11フォルダーの名前を指定する必要があるため、以下と異なる場合は正しいパスを指定します。もちろん、cdコマンドおよび以下のcpコマンドで、Truecrypt_sourceを実際のパスに置き換えます。 (Truecryptバイナリは、ソースフォルダーのMainフォルダーにあります。)

cd Truecrypt_source
make PKCS11_INC=$HOME/src/pkcs-11
Sudo cp Truecrypt_source/Main/truecrypt /usr/local/bin

この質問 のように、makeコマンドラインLIBS=-ldlに追加する必要がある場合があります。

これで、新しくコンパイルしたtruecryptを使用する準備が整い、バックドアがないと確信できます。

注:新しいバージョンをインストールする前に、バイナリとともにインストールされた提供されたアンインストールスクリプトですでにインストールされている場合は、truecryptをアンインストールする必要があります。 :

Sudo /usr/bin/truecrypt-uninstall.sh
2
user76204