120 lines
4.1 KiB
TeX
120 lines
4.1 KiB
TeX
\documentclass[12pt,a4paper]{article}
|
|
\usepackage[spanish]{babel}
|
|
\usepackage{hyperref}
|
|
\usepackage{graphicx}
|
|
\usepackage{subcaption}
|
|
|
|
\title{Tema VI: Cifrado de Información}
|
|
\author{Nicolás A. Ortega Froysa}
|
|
|
|
\begin{document}
|
|
\maketitle
|
|
\pagebreak
|
|
\tableofcontents
|
|
\pagebreak
|
|
|
|
\section{Introducción}
|
|
|
|
A menudo es necesario cifrar información para que sólo aquellas personas
|
|
privilegiadas puedan accederla. Para esto, se ha usado históricamente el
|
|
cifrado, y en nuestra época digital tecnológica, esto no ha cambiado, sino que
|
|
se ha visto potenciado aún más, hasta el punto de que hoy día el cifrado de
|
|
información es algo de lo más cotidiano. Simplemente con acceder a una página
|
|
con el protocolo HTTPS ya estás usando cifrado.
|
|
|
|
\section{GNU Privacy Guard (GPG)}
|
|
|
|
En los sistemas GNU/Linux, la forma más normal de cifrar archivos es usando la
|
|
herramienta de {\em GNU Privacy Guard} (GPG). Esto se usa tanto para cifrado
|
|
simétrico como asimétrico. Vamos a revisar cómo cifrar un archivo usando esta
|
|
herramienta de forma simétrica: es decir, que se usa la misma contraseña para
|
|
cifrar y descifrar.
|
|
|
|
\subsection{Cifrado}
|
|
|
|
En primer lugar, tendremos que juntar todos los archivos que queremos cifrar en
|
|
un solo archivo. Esto se puede hacer usando cualquier herramienta de compresión
|
|
o unión de archivos. Para nuestro ejemplo, usaremos la herramienta {\tt tar},
|
|
aunque también se podría usar ZIP.
|
|
|
|
Creamos un directorio con todos los archivos que queremos comprimir, y luego los
|
|
juntamos usando el comando de {\tt tar} siguiente:
|
|
|
|
\begin{verbatim}
|
|
$ tar cvf secreto.tar secreto/
|
|
\end{verbatim}
|
|
|
|
Una vez que tengamos todos los archivos dentro de un mismo archivo, podemos
|
|
cifrarlo usando el comando {\tt gpg} (o en algunos sistemas de GNU/Linux es {\tt
|
|
gnupg}). Usamos el comando siguiente:
|
|
|
|
\begin{verbatim}
|
|
$ gpg --symmetric --cipher-algo <cipher> secreto.tar
|
|
\end{verbatim}
|
|
|
|
En este caso {\tt \textless{}cipher\textgreater{}} se reemplaza con el tipo de
|
|
cifrado que se quiere hacer. En nuestro caso queremos usar el cifrado {\tt
|
|
AES256}. Pedirá también una contraseña para el cifrado en este paso. Esto
|
|
producirá un archivo denominado {\tt secreto.tar.gpg}. A partir de aquí podemos
|
|
borrar los archivos originales de {\tt secreto.tar} y el contenido del
|
|
directorio {\tt secreto/}. Dicho lo cual, como acabamos de cifrar los archivos
|
|
es más seguro borrarlos usando el comando {\tt shred} de GNU/Linux, que no sólo
|
|
borrará los archivos, sino que antes de borrarlos reemplazará todo su contenido
|
|
con caracteres aleatorios.
|
|
|
|
\begin{figure}[!htb]
|
|
\centering
|
|
\includegraphics[width=0.75\linewidth]{imgs/cifrado.png}
|
|
\caption{Cifrado de un archivo con GPG.}
|
|
\label{fig:cifrado}
|
|
\end{figure}
|
|
|
|
\subsection{Descifrado}
|
|
|
|
Para descifrar el mismo archivo, hacemos lo que sería el mismo proceso, pero a
|
|
la inversa. Primero, lo desciframos usando GPG, e introduciendo la contraseña
|
|
establecido anteriormente:
|
|
|
|
\begin{verbatim}
|
|
$ gpg -o secreto.tar -d secreto.tar.gpg
|
|
\end{verbatim}
|
|
|
|
Esto producirá de nuevo nuestro archivo de {\tt secreto.tar}. Posteriormente
|
|
queremos desjuntar los archivos contenidos en ese {\em tarball}. Esto lo hacemos
|
|
igualmente con el comando {\tt tar}:
|
|
|
|
\begin{verbatim}
|
|
$ tar xvf secreto.tar
|
|
\end{verbatim}
|
|
|
|
Esto nos extraerá del archivo el directorio original y los archivos contenidos
|
|
en él. Con esto, ya habremos descifrado y recuperado los datos.
|
|
|
|
\begin{figure}[!htb]
|
|
\centering
|
|
\includegraphics[width=0.55\linewidth]{imgs/descifrado.png}
|
|
\caption{Descifrado con GPG.}
|
|
\label{fig:descifrado}
|
|
\end{figure}
|
|
|
|
\section{Conclusión}
|
|
|
|
El cifrado por línea de comando en GNU/Linux usando la herramienta GPG de GNU es
|
|
una tarea bastante sencilla, aunque se tiene que dividir en sub-pasos si se
|
|
quiere hacer con varios archivos. Mas esto forma parte de lo que sería la
|
|
mentalidad de UNIX -- que cada herramienta haga una sola cosa, y que lo haga
|
|
bien.
|
|
|
|
\pagebreak
|
|
|
|
\section{Derechos de Autor y Licencia}
|
|
|
|
\noindent
|
|
Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa
|
|
<nicolas@ortegas.org> \\
|
|
\\
|
|
Este documento se distribuye bajo los términos y condiciones de la licencia
|
|
Creative Commons Attribution No Derivatives 4.0 International.
|
|
|
|
\end{document}
|