Criando TrueCrypt no Ubuntu 14.04

5

Com toda a coisa da NSA, as pessoas tentaram reconstruir binários de aparência idêntica aos que o truecrypt.org fornece, mas não tiveram sucesso. Então, alguns pensam que podem ser compilados com portas de trás que não estão no código-fonte. - > Então, como compilar a última versão do Ubuntu (estou usando o UbuntuGNOME, mas isso não importa)? Eu tentei alguns tutoriais para versões anteriores do Ubuntu, mas eles parecem não funcionar mais?

edit:

link Agora você pode pensar "ok, não precisamos construir", mas: Para construir, ele usou software de código fechado e há provas de conceitos em que um compilador comprometido ainda coloca backdoors no binário: 1. fonte sem backdoors 2. binário de forma idêntica ao binário de referência 3. binário contém ainda backdoors

edit2 (responder à postagem):

Ao usar $ make -j 2 PKCS11_INC=$HOME/src/pkcs-11 , obtenho:

...

/usr/include/wx-2.8/wx/dynarray.h:669:5: note: in expansion of macro ‘_WX_DEFINE_TYPEARRAY_PTR’
     _WX_DEFINE_TYPEARRAY_PTR(_wxArray##name, name, base, classdecl)
     ^
/usr/include/wx-2.8/wx/dynarray.h:655:5: note: in expansion of macro ‘WX_DEFINE_TYPEARRAY_WITH_DECL_PTR’
     WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class WXDLLEXPORT)
     ^
/usr/include/wx-2.8/wx/dynarray.h:829:5: note: in expansion of macro ‘WX_DEFINE_EXPORTED_TYPEARRAY_PTR’
     WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayPtrVoid)
     ^
/usr/include/wx-2.8/wx/bookctrl.h:26:1: note: in expansion of macro ‘WX_DEFINE_EXPORTED_ARRAY_PTR’
 WX_DEFINE_EXPORTED_ARRAY_PTR(wxWindow *, wxArrayPages);
 ^
Linking truecrypt
/usr/bin/ld: /home/user/src/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): undefined reference to symbol 'dlopen@@GLIBC_2.1'
/lib/i386-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [truecrypt] Error 1
make: *** [all] Error 2
user@user-pc:~/src/truecrypt-7.1a-source$ 

ao usar $ make -j 2 PKCS11_INC=$HOME/src/pkcs-11 LIBS=-ldl :

...

Forms/VolumeSizeWizardPage.o: In function 'TrueCrypt::VolumeSizeWizardPage::GetVolumeSize() const':
VolumeSizeWizardPage.cpp:(.text._ZNK9TrueCrypt20VolumeSizeWizardPage13GetVolumeSizeEv+0x80): undefined reference to 'TrueCrypt::StringConverter::ToUInt64(std::basic_string, std::allocator > const&)'
Forms/VolumeSizeWizardPage.o: In function 'TrueCrypt::VolumeSizeWizardPage::SetVolumeSize(unsigned long long)':
VolumeSizeWizardPage.cpp:(.text._ZN9TrueCrypt20VolumeSizeWizardPage13SetVolumeSizeEy+0x8f): undefined reference to 'TrueCrypt::StringConverter::FromNumber(unsigned long long)'
Forms/WizardFrame.o: In function 'TrueCrypt::WizardFrame::SetStep(int, bool)':
WizardFrame.cpp:(.text._ZN9TrueCrypt11WizardFrame7SetStepEib+0xe6): undefined reference to 'TrueCrypt::Event::Connect(TrueCrypt::EventConnectorBase const&)'
collect2: error: ld returned 1 exit status
make[1]: *** [truecrypt] Error 1
make: *** [all] Error 2
user@user-pc:~/src/truecrypt-7.1a-source$

(mesmo sem o parâmetro make -j ... BTW)

edit3

Agora funciona, obrigado user76204 e 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. coloque as fontes do truecrypt em /home/USERNAME/truecrypt-7.1a-source
  4. começar a compilação: $ LIBS=-ldl make -j 2 PKCS11_INC=/home/USERNAME/src/pkcs-11/
por linuxubuntu 20.10.2013 / 10:00

2 respostas

1

Eu tive o mesmo problema no Ubuntu 14.04.

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

resolveu meu problema (/ tmp / truecrypt / pkcs11 é onde meus arquivos pkcs11 são armazenados.)

Um aviso para pessoas compilando no 14.04: não instale o libwxgtk3.0-dev, use o libwxgtk2.8-dev antigo, senão ele não compilará devido a um bug no libwxgtk3.0-dev.

veja link

    
por GEO 20.04.2014 / 12:41
2

Existe um plano para auditar o truecrypt em relação à segurança do software e uma revisão do texto da sua licença, o que você pode achar interessante.

Veja como eu a compilei com sucesso no 12.04, mas deve funcionar para versões posteriores do 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

Você também precisa de alguns arquivos de cabeçalho PKCS-11 específicos do site oficial da RSA. Você pode obtê-los todos de uma vez com o wget, que pode usar * com downloads de ftp:

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

Agora faça o download do código-fonte do site do truecrypt e verifique-o com gpg após obter a chave pública, se necessário. Então, talvez extraia para o seu ~/src .

Você precisa fornecer o nome da pasta pkcs-11 que contém os arquivos de cabeçalho ao executar make , portanto, forneça o caminho correto se for diferente de abaixo. É claro, substitua Truecrypt_source pelo seu próprio caminho real no comando cd e no comando cp abaixo. (O binário Truecrypt será encontrado na pasta Main da pasta de origem.)

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

Ocasionalmente, você pode precisar adicionar à linha de comando LIBS=-ldl do make como em esta questão .

Agora seu truecrypt recém-compilado estará pronto para uso e você pode ter certeza de que não tem backdoors.

NOTA: Antes de instalar a nova versão, você deve desinstalar truecrypt se já estiver instalado com o script de desinstalação fornecido que foi instalado com o binário:

sudo /usr/bin/truecrypt-uninstall.sh
    
por user76204 08.11.2013 / 03:47