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

0

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

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

    
por Josh 12.09.2013 / 19:50

1 resposta

0

Os comandos a seguir criarão um volume TrueCrypt com um arquivo de chave aleatório no dispositivo $DEVPATH , * sobrescrevendo completamente qualquer informação nesse disco / dispositivo !!! * Ele anexará o contêiner TrueCrypt, criará um volume de formato HFS + neste dispositivo e destrua 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 que é criado usa um arquivo de chave aleatório sem senha. O arquivo de chave aleatório é criado por dd if=$RAND of=$KEYFILE bs=1 count=4096 . Remova essa linha e aponte KEYFILE= em um arquivo estático se você quiser um contêiner reutilizável. SEJA CERTO REMOVER A LINHA: srm $KEYFILE se você fizer isso, porque essa linha de arquivo APAGA FIXAMENTE O ARQUIVO-CHAVE !!! *
  • Os dados aleatórios desse script são provenientes da fonte aleatória sem bloqueio /dev/urandom . Altere para RAND=/dev/random para mais segurança, mas lentidão.
  • O dispositivo $DEVPATH SERÁ SUBSCRITO POR ESTE COMANDO !!!! Esteja absolutamente certo de que você sabe o que está fazendo. Por segurança, defina DEVPATH para um arquivo, como /tmp/some_file e acrescente um --size=nnnn à linha TrueCrypt que cria o volume, onde nnnn é o tamanho do byte do arquivo a ser criado. Remova a opção --quick . Isso será muito mais lento.
  • Isso funciona no Mac OS X. No Linux, use mkfs.ext3 em vez de diskutil eraseVolume . Ou apenas use mount -t tmpfs e swap criptografado; -)
por 13.09.2013 / 00:32