\documentclass[a4paper,12pt]{article} \usepackage{geometry} \usepackage[english]{babel} \usepackage{microtype} \usepackage{hyperref} \setlength{\parindent}{0pt} \title{Truecrypt Report} \author{Tobias Eidelpes 01527193} \date{\today} \begin{document} \maketitle \section{Introduction} This report is about a password encrypted container which contains sensitive information. The password required to open the container should be found and the information inside shared. The purpose of this report is to analyze the container, investigate whether the password can be cracked, draw conclusions about the security of the container and document all findings in the process. \section{Setting} An encrypted truecrypt container has been created and downloaded from the website~\footnote{\url{https://seclva.ifs.tuwien.ac.at/forensics/mktruecrypt.php}} provided in the assignment on October 14, 2021. This website allows a truecrypt container to be generated which is secured with a password. The password is randomly generated by the website, but properties such as the length and character set of the password can be defined beforehand. Additionally, the student id has to be submitted with the length and character set. In this case the truecrypt container is secured with a five digit password. Upon successful download we receive a file called \texttt{tc01527193.tc}~\footnote{sha256sum: d49b99389f62fc248f88721eac28a40b478ccd16d3a3828dc3d220f24fa6b344}. This file marks the encrypted container. On a Linux operating system the container can be mounted using the following command: \begin{verbatim} $ sudo cryptsetup --type tcrypt open tc01527193.tc sdd \end{verbatim} This immediately opens a prompt where the password has to be submitted. We have therefore confirmed that the container is indeed encrypted. The next task is to find the password for the container. Truecrypt secures containers by default using the RIPEMD-160 hash function and the XTS encryption mode. Since the password is randomly generated and relatively short, the password can be found by trying all possible combinations of five digits (=bruteforcing). The container is passed to Hashcat~\footnote{\url{https://hashcat.net/hashcat/}} (version 6.2.4) to crack the password: \begin{verbatim} $ hashcat -a 3 -m 6211 tc01527193.tc "?d?d?d?d?d" \end{verbatim} After 1 second at a hashrate of approximately 75000 H/s on an AMD GPU RX480, the password is revealed to be \texttt{91509}. The container can now be opened decrypted and mounted under Linux with: \begin{verbatim} $ sudo cryptsetup --type tcrypt open tc01527193.tc container $ sudo mount /dev/mapper/container /mnt \end{verbatim} The directory \texttt{/mnt} now contains the contents of the container. There are three files in it: \texttt{awesome.jpg}, \texttt{secret.txt} and \texttt{wasted.jpg}. The two image files picture Spongebob under a rainbow (\texttt{awesome.jpg}~\footnote{sha256sum: 7d8355b740c5f07e4c4ed682374867dbbcd7921297bb6139a59d36ed94575949}) and Spongebob with Patrick (\texttt{wasted.jpg}~\footnote{sha256sum: c3d05ee9e7eb5e14aaf87365afc88b3261820325df6a8eed37e11a5a092ebb5a}). The third file (\texttt{secret.txt}~\footnote{sha256sum: cab63727fe97d8a25326cefc46346007941151a6c2c81708b74f0cf5f78d94b7}) contains the text \begin{verbatim} 2ca0841020b08bffa9eb1c056ff3ab4b31f144b229 \end{verbatim} \section{Analysis} Due to the password being relatively short at five digits, it is very easy to crack. In a real-world scenario passwords usually contain at least seven characters and not just digits but also alphanumeric characters. A seven digit password is crackable in around 133 seconds with a hashrate of 75000 H/s. If only lowercase characters are used and the password is still seven characters long, it takes around one day and six hours to crack the password. If uppercase and lowercase chracters as well as digits are possible, the password is cracked in about 544 days. A password which secures the container for at least 10 years and is only made up of digits requires a length of at least 14. If lowercase and uppercase characters and digits are used, the password has to be at least 8 characters long. These are all upper bounds, because the password might be cracked earlier if the cracker is lucky and the password is one of the earliest combinations which the computer tries. From these numbers it is possible to give a recommendation for secure passwords. Passwords should be randomly generated, at least eight characters long and contain lowercase and uppercase letters as well as digits. This provides robust protection from crackers for a century. \end{document}