Como posso criar um contêiner TrueCrypt aleatório temporário via linha de comando?

0

Desejo criar um script de shell que usará TrueCrypt para criar um contêiner de uso temporário e único com um arquivo de chave aleatório para ser usado no espaço temporário. Basicamente, quero o equivalente a uma montagem tmpfs do Linux (com troca criptografada), mas para o Mac OS X.

Como posso gerar um volume TrueCrypt com um arquivo de chave aleatória no Mac OS X?

Josh
fonte
Como você planeja gerar a chave aleatória? criar um contêiner TrueCrypt é fácil, mas quando você menciona a chave "aleatória" que indica um arquivo de texto não criptografado que contém sua chave, o que não parece uma boa idéia.
Ramhound
dd if=/dev/urandom of=temp_keyfile bs=1 count=2048podia funcionar.
21713 Josh
@Ramhound ver a minha resposta para o que eu estava tentando realizar
Josh

Respostas:

0

Os comandos a seguir criarão um volume TrueCrypt com um arquivo de chave aleatória no dispositivo $DEVPATH, * substituindo completamente qualquer informação nesse disco / dispositivo !!! * Em seguida, anexará o contêiner TrueCrypt, criará um volume no formato HFS + neste dispositivo e destruirá a chave usada para criá-lo:

#!/bin/bash

# Source for random data. Use /dev/random for more secure but slower random data""
RAND=/dev/urandom

# Create a random keyfile:
KEYFILE=/tmp/scratch.key
dd if=$RAND of=$KEYFILE bs=1 count=4096

# Create a TrueCrypt volume on $DEVPATH using $KEYFIlE as the keyfile:
/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt -t -c \
  -k $KEYFILE --volume-type=normal --quick --encryption=AES \
  --hash=RIPEMD-160 --filesystem="none" --password="" \
  --random-source=$RAND $DEVPATH

# Attach the TrueCrypt volume as a device:
/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt -t --mount \
    -k $KEYFILE --password="" --protect-hidden=no \
    --filesystem=none $DEVPATH

# Find the TrueCrypt device:
TCDEV=$(/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt -t -l | grep $DEVPATH | cut -d ' ' -f 3)

# Create a filesystem on the TrueCrypt device:
diskutil eraseVolume JHFS+ Scratch $TCDEV

# And destroy the key so this is a one-time use volume:
srm $KEYFILE

Observe que:

  • O volume TrueCrypt criado usa um arquivo de chave aleatória sem senha. O arquivo de chave aleatória é criado por dd if=$RAND of=$KEYFILE bs=1 count=4096. Remova essa linha e aponte KEYFILE=para um arquivo estático se desejar um contêiner reutilizável. Certifique-se de remover a linha também: srm $KEYFILE se o fizer, porque essa linha de arquivo APAGA SEGURAMENTE O ARQUIVO CHAVE !!! *
  • Os dados aleatórios para esse script vêm da fonte aleatória sem bloqueio /dev/urandom . Mude para RAND=/dev/randompara mais segurança, mas diminui a velocidade.
  • O dispositivo $DEVPATH será sobrescrito por este comando !!!! Tenha certeza absoluta de que você sabe o que está fazendo. Para ser seguro, defina DEVPATHcomo um arquivo, como /tmp/some_filee anexe --size=nnnna à linha TrueCrypt que cria o volume, onde nnnné o tamanho de byte do arquivo a ser criado. Retire a --quickopção Isso será muito mais lento.
  • Isso funciona no Mac OS X. Para Linux, use em mkfs.ext3vez de diskutil eraseVolume. Ou apenas use mount -t tmpfse swap criptografado ;-)
Josh
fonte