% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}

\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{iftex}
\usepackage[margin=1in]{geometry}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{1pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\definecolor{myblue}{RGB}{24, 102, 201}
\titleformat{\section}
{\huge\bfseries\color{myblue}}
{}
{0em}
{}[\titlerule]

\titleformat{\subsection}
{\Large\bfseries}
{}
{0em}
{}

\titleformat{\subsubsection}[runin]
{\bfseries}
{}
{0em}
{}[:]

\titlespacing{\subsubsection}
{0em}{0.75em}{0.5em}

\titlespacing{\subsection}
{0em}{1em}{0.65em}

\titlespacing{\maketitle}
{0em}{0em}{0em}
\renewcommand{\maketitle}{
	\begin{center}
		{\huge\bfseries \theauthor}\\
		\vspace{.35em}
		\href{https://sufyaan.me/kpst}{sufyaan.me/kpst}
	\end{center}
}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
\newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
\babelprovide[main,import]{english}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
  pdftitle={(POST) KeePass + Syncthing},
  pdflang={en},
  colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=blue,
  pdfcreator={LaTeX via pandoc}}

\title{Sufyaan's Website}
\author{Sufyaan's Website}
\date{}

\begin{document}
\maketitle


\section[KeePass + Syncthing]{KeePass + Syncthing}\label{why-i-use-terminal-apps}

\textbf{23 June 2023}


\textbf{Category: }Software

I have decided to switch from a self-hosted Vaultwarden (Bitwarden)
instance to using KeePass along with Syncthing to sync it to all my
devices. There are numerous reasons why I decided to make this change.

\hypertarget{security}{%
\subsection[Security]{Security}\label{security}}

The offline nature of KeePass makes it so that it is nearly impossible
to crack. Connecting things to the internet makes it trivial for a
script kiddie thousands of kilometers away from you to attempt to crack
your passwords. A password manager is a place where all of your
passwords are stored. Due to this very reason, I decided to upgrade my
security by moving to a reputed piece of software.

It has a plethora of security features. Firstly, it has the ability to
generate passwords of any length. It allows you to choose what
characters are allowed. Its generation is so complex and liberating that
even foreign characters like \texttt{Æ}, \texttt{É}, or even mathematics
symbols and arbitrary symbols that no one would care about can be used.
For example, the division sign (÷) or the copyright symbol (©) are
included in password generation. Since most hackers try alphanumeric
character cracking, KeePass password generation can make your passwords
practically impossible to crack.

The encryption algorithm used for your password database is AES-256,
commonly known as 256-bit encryption. It is a form of encryption that is
so difficult to crack that the only way you can actually hope to obtain
someone\textquotesingle s password is by phishing them or using external
methods. For more information, please
\href{https://invidious.tiekoetter.com/watch?v=S9JGmA5_unY}{watch this
video by 3Blue1Brown.} It is extremely interesting.

In fact, KeePass is so secure that even the passwords that are stored in
your memory while you are viewing your database is encrypted. That way,
even a \href{../definitions/management-engine}{management engine} attack
will not work. If you want to try viewing the cleared memory sectors to
find remnants of your passwords, good luck. The passwords which are
stored in your memory are first overwritten to the point of
unrecoverability before being cleared.

You can even setup a keyfile (a file you need to use to login), a
\href{../definitions/security-key/}{security key}, or both.

\hypertarget{view.-the.-code.}{%
\subsection[View. The. Code.]{View. The. Code.}\label{view.-the.-code.}}

KeePass is open-source under the GPLv2 license, which is the best
open-source license for people\textquotesingle s freedom. That makes it
\href{../definitions/free-software/}{free software}.

\hypertarget{the-encryption-never-stops}{%
\subsection[The Encryption Never Stops]{The Encryption Never
Stops}\label{the-encryption-never-stops}}

Along with KeePass, I use Syncthing to sync my database. Syncthing also
uses cryptographic encryption. This makes it so that anyone who wants to
brute-force my database needs access to both my Syncthing password and
my KeePass password.

\hypertarget{to-conclude...}{%
\subsection[To Conclude...]{To Conclude...}\label{to-conclude...}}

I use KeePass along with Syncthing for three reasons.

\begin{enumerate}
\tightlist
\item
  KeePass is extremely secure. It has industry-standard protection
  methods and algorithms and its offline nature makes it practically
  uncrackable.
\item
  It is fully \href{../definitions/free-software/}{free software} under
  the GPLv2 license
\item
  Syncthing is also encrypted, which means that an attacker who wants to
  attack me using the internet needs to crack both my Syncthing password
  and KeePass password which would take billions of years.
\end{enumerate}

I am probably never going to switch back because this system works
extremely well. Syncthing is very fast at staying up-to-date.

\end{document}
