zuluCrypt is a free and open-source tool for encrypting files and volumes in a secure way. We already used it for hiding data in video files using steganography.
Today, we'll use it as a replacement for VeraCrypt - a free open source disk encryption software for Windows, Mac OSX and Linux. Being based on TrueCrypt, VeraCrypt offers a unique feature called Hidden Volumes which can give us Plausible Deniability.
zuluCrypt supports both TrueCrypt and VeraCrypt volumes while being better integrated in Linux ecosystem. It also comes preinstalled with kicksecure OS.
But why is Plausible Deniability important first of all?
From a legal perspective, depending on jurisdictions, you may be forced to type your password into an encrypted drive if requested. All it takes is for an adversary to be able to prove the existence of an encrypted drive to be able to force you to reveal the password to unlock it. Hence for example the regular LUKS encryption is not enough, because you need to be able to deny the existence of the encrypted volume. If that is the case, we have to use zuluCrypt, which is an encryption tool used to provide protection (which is Plausible Deniability) against that scenario where you're forced to provide a password.
source: https://anonymousplanet.org/guide.html#understanding-hdd-vs-ssd
regarding wear leveling:
"Also as mentioned earlier, disabling Trim will reduce the lifetime of your SSD drive and will significantly impact its performance over time (your laptop will become slower and slower over several months of use until it becomes almost unusable, you will then have to clean the drive and re-install everything). But you must do it to prevent data leaks that could allow forensics to defeat your plausible deniability. The only way around this at the moment is to have a laptop with a classic HDD drive instead."
Hardware : (Personal Computer / Laptop)
System Harddrive: not LUKS encrypted [1]
Non-System Harddrive: 500Gb (used to contain our zuluCrypt encrypted volumes)
Host OS: Linux
Hypervisor: QEMU/KVM
Packages: grub-live and ram-wipe
⚠️ Deniability Disclaimer: If the adversary cannot be told that you are using zuluCrypt, do not install zuluCrypt on the host OS outside of live mode, but rather install it manually each time you boot into live mode That way everytime you reboot, there is no zuluCrypt program to be found at all. ⚠️
Let's install zuluCrypt (you can install it safely from non-live mode), so that the software is available whenever you want to use it while the host OS is in live mode:
oxeo@milkyway:~$ sudo apt install zulucrypt-gui zulucrypt-cli
Open the GUI to see if it got installed correctly:
So now you have zuluCrypt on your system. Before you start to use it, you need to be aware of the lack of deniability you have when using the Host OS in regular mode:
By default, your host OS directly writes into the system drive all sorts of potential forensic evidence that an adversary may use against you, such as system logs, kernel logs, non-standard logs, etc, and unless if you remove each of those manually, you're never sure of wether or not the Host OS saved proof of the existence of the hidden volume onto the system drive. That's why you need to use the Host OS in live mode, to be able to use zuluCrypt, and to install it aswell if you cannot tell the adversary that you are using zuluCrypt.
That way, as you're loading the entire host OS in the RAM due to being in live mode, you are not writing anything on the system drive anymore, but rather only writing all that potential forensic evidence of the zuluCrypt hidden volume in RAM alone, which can be easily erased with a simple shutdown.
So now that we have installed zuluCrypt, let's reboot the Host OS into live mode:
And only now once we are in live mode, we can use zuluCrypt to create hidden encrypted volumes and unlock them. But be aware that everything you write into the system drive will be wiped upon shutting down, if you want to store something persistent accross reboots from live mode, you need to save it in a non-system drive.
So now from there we can create the encrypted volumes (either as files or as entire drives). In this example we'll create an encrypted file:
Select the volume name, size and location.
We want the location to be a simple file in my home directory for testing purposes (so be aware that upon rebooting it will be erased due to being in the system drive). If you want it to not be erased upon rebooting, you'll need to put it in a non-system drive like in this tutorial:
Once you click Create, it will write random data to the file. This can take a while:
Here select the volume type (Normal+Hidden VeraCrypt), password for decoy and secret part and the size of hidden volume (has to be smaller than the size of outer volume).
We set the filesystem as exfat. This is recommended since journaling filesystems can leave data which reveals the existence of hidden volume:
Now just click Create and wait a bit:
After that's done, you'll get a popup:
Now let's mount volume using both decoy and secret password to see the difference. To do that, click on Open > Volume Hosted In A File:
Select the volume file:
We'll then type the decoy password and click Open:
After a while a file manager should open in the directory where the volume got mounted:
In the zuluCrypt GUI, we can see the mount path:
We can put some decoy files there so that it makes sense why you hide it:
Now let's unmount the volume using zuluCrypt GUI:
Unlock the same volume but this time using the secret password:
As you can see, it's empty and the free space is just around 1024 MB as we set before:
You can put stuff that you actually care about in there:
And that's it! Now you have a fully working volume with hidden data inside achieving Plausible Deniability.
Donate XMR: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8