Сборка TrueCrypt на Ubuntu 14.04

При помощи всего NSA люди пытались воссоздать идентично выглядящие двоичные файлы к тем, которые предоставляет truecrypt.org, но безуспешно. Поэтому некоторые думают, что они могут быть скомпилированы с задними дверями, которых нет в исходном коде. -> Итак, как скомпилировать последнюю версию Ubuntu (я использую UbuntuGNOME, но это не должно иметь значения)? Я пробовал некоторые учебники для предыдущих версий Ubuntu, но они больше не работают?

редактировать:

https://madiba.encs.concordia.ca/~x_decarn/truecrypt-binaries-analysis/ Теперь вы можете подумать: "Хорошо, нам не нужно строить", но: Для сборки он использовал программное обеспечение с закрытым исходным кодом, и есть подтверждение концепции, когда скомпрометированный компилятор все еще помещает бэкдоры в бинарный файл: 1. исходный код без бэкдоров 2. бинарный код, идентичный эталонному бинарному 3. бинарный файл содержит еще бэкдоры

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: примечание: в расширении макроса '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);
 ^
Связывание truecrypt
/usr/bin/ld: /home/user/src/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): неопределенная ссылка на символ 'dlopen@@GLIBC_2.1'
/lib/i386-linux-gnu/libdl.so.2: ошибка при добавлении символов: DSO отсутствует в командной строке
collect2: error: ld вернул 1 состояние выхода
make[1]: *** [truecrypt] Ошибка 1
make: *** [все] Ошибка 2
пользователь @ пользователем ПК:~/ SRC / TrueCrypt-7,1а-источник $ 

когда используешь $ 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: В функции `TrueCrypt::VolumeSizeWizardPage::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: error: ld вернул 1 состояние выхода
make[1]: *** [truecrypt] Ошибка 1
make: *** [все] Ошибка 2
пользователь @ пользователем ПК:~/ SRC / TrueCrypt-7,1а-источник $

(то же самое без make -j ... параметр кстати)

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. положить истинно криптовые источники /home/USERNAME/truecrypt-7.1a-source
  4. начать строительство: $ LIBS=-ldl make -j 2 PKCS11_INC=/home/USERNAME/src/pkcs-11/

2 ответа

Решение

У меня была такая же проблема на 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/

Существует план аудита 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

Вам также понадобятся некоторые конкретные заголовочные файлы PKCS-11 с официального сайта RSA. Вы можете получить их все одновременно с помощью 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,

При запуске необходимо указать имя этой папки pkcs-11, содержащей файлы заголовков make, так что дайте правильный путь, если он отличается от приведенного ниже. Конечно, заменить Truecrypt_source с вашим собственным реальным путем в команде cd и в команде cp ниже. (Двоичный файл 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
Другие вопросы по тегам