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、名前、ベース、クラスWXDLLEXPORT) ^ /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に感謝します。
$ 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
$ mkdir -p $HOME/src/pkcs-11
/home/USERNAME/truecrypt-7.1a-source
に入れます$ LIBS=-ldl make -j 2 PKCS11_INC=/home/USERNAME/src/pkcs-11/
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 を参照
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