Следующие команды создадут том TrueCrypt с файлом случайного ключа на устройстве $DEVPATH , * полностью перезаписывая любую информацию на этом диске / устройстве !!!* Затем он присоединит контейнер TrueCrypt, создаст том устройства в формате HFS+ на этом устройстве и уничтожит ключ, использованный для его создания:
#!/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
Обратите внимание, что:
- Созданный том TrueCrypt использует файл случайного ключа без пароля. Файл случайного ключа создается командой
dd if=$RAND of=$KEYFILE bs=1 count=4096 . Удалите эту строку и укажите KEYFILE= на статический файл, если вы хотите использовать контейнер многократного использования. Обязательно удалите строку : srm $KEYFILE если вы это делаете, потому что эта строка файла БЕЗОПАСНО УДАЛЯЕТ КЛЮЧЕВОЙ ФАЙЛ !!!*
- Случайные данные для этого скрипта поступают из неблокирующего случайного источника
/dev/urandom . Измените на RAND=/dev/random для большей безопасности, но замедления.
- Устройство
$DEVPATH будет перезаписано этой командой !!!! Будьте абсолютно уверены, что знаете, что делаете. Для безопасности установите DEVPATH в файл, например /tmp/some_file и добавьте --size=nnnn к строке TrueCrypt, которая создает том, где nnnn - размер байта создаваемого файла. Удалите опцию --quick . Это будет намного медленнее.
- Это работает в Mac OS X. Для Linux используйте
mkfs.ext3 а не diskutil eraseVolume . Или просто используйте mount -t tmpfs и зашифрованный своп ;-)