You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
\@writefile{toc}{\contentsline {section}{\numberline {3.1}\IeC {\textquestiondown }Qu\IeC {\'e} es una gram\IeC {\'a}tica y para qu\IeC {\'e} sirve?}{5}{section.3.1}}
6
-
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Tipos de gram\IeC {\'a}ticas }{7}{section.3.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Tipos de gram\IeC {\'a}ticas }{7}{section.3.3}}
8
+
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Cifrado de contrase\IeC {\~n}as y seguridad en Thoth Web}{9}{section.3.4}}
9
+
\@writefile{toc}{\contentsline {subsection}{Funcionamiento del algoritmo hash}{9}{section*.7}}
10
+
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}}{10}{figure.3.1}}
11
+
\newlabel{fig:3.1}{{\M@TitleReference {3.1}{Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}}{10}{Aplicación de la función hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}{figure.3.1}{}}
12
+
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Ejemplo de ataque con tablas de b\IeC {\'u}squeda. Imagen sacada de \url {https://crackstation.net/}}}{11}{figure.3.2}}
13
+
\newlabel{fig:3.2}{{\M@TitleReference {3.2}{Ejemplo de ataque con tablas de b\IeC {\'u}squeda. Imagen sacada de \url {https://crackstation.net/}}}{11}{Ejemplo de ataque con tablas de búsqueda. Imagen sacada de \url {https://crackstation.net/}}{figure.3.2}{}}
14
+
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}}{11}{figure.3.3}}
15
+
\newlabel{fig:3.3}{{\M@TitleReference {3.3}{Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}}{11}{Resultado de aplicar tablas de búsqueda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}{figure.3.3}{}}
Copy file name to clipboardExpand all lines: Documentacion/tex/3_Conceptos_teoricos.tex
+45-6Lines changed: 45 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,8 @@ \section{¿Qué es una gramática y para qué sirve?}
39
39
Se habla de lenguaje generado por una gramática $G$ escrito así $L(G)$ y se define como el conjunto de todas las sentencias de la gramática $G$. \[L(G) = x\in\Sigma^{*}:\mathcal{S} \Rightarrow^{+}x\]
40
40
De esta manera se dice que dos gramáticas son equivalentes $G_{1} \equiv G_{2}$ si generan el mismo lenguaje $L(G_{1})=L(G_{2})$.
41
41
42
+
\section{Recursividad}
43
+
42
44
Por último una gramática es recursiva en un símbolo no terminal $U$ cuando existe una forma sentencial de $U$ que contiene a $U$. \[U \Rightarrow^{+}xUy \textup{ donde } x,y\in (\Sigma\cup\mathcal{N})^{*} \]
43
45
Así pues la gramática será recursiva cuando lo sea para algún no terminal, si $x = \varepsilon$ la gramática es recursiva por la izquierda, y si $y = \varepsilon$ se dice que es recursiva por la derecha.
44
46
@@ -66,18 +68,55 @@ \section{Tipos de gramáticas }
66
68
que son totalmente equivalentes a las regulares normales, pero en muchos casos su notación es más adecuada.
67
69
\end{itemize}
68
70
71
+
\section{Cifrado de contraseñas y seguridad en Thoth Web}
72
+
73
+
El cifrado de la contraseña es una de las cuestiones más importantes para preservar la seguridad o intimidad del usuario. El porqué es muy simple. Los usuarios normalmente utilizamos las mismas contraseñas o parecidas para cualquier cuenta de una página o red social. Por lo tanto si hay alguien con acceso a la base de datos, podrá ver la contraseña utilizada por un determinado usuario poniendo en peligro esa intimidad no solo en este programa, sino, como ya se ha comentado antes, la de otras cuentas.
74
+
75
+
Para evitar esto, el método más simple es el cifrar las contraseñas en la base de datos para que en el caso en el que alguien acceda a ella, en el campo <<contraseña>> no vea la contraseña real, sino el resultado del cifrado de esta. El método de cifrado que se emplea en Thoth Web el del algoritmo <<hash>> que como veremos más adelante tiene unas características determinadas.
69
76
70
-
\subsection{Subsecciones}
77
+
\subsection{Funcionamiento del algoritmo hash}
78
+
79
+
Se trata de un algoritmo matemático con el que se transforma cualquier cantidad de datos en una serie de datos fija que funciona como una huella dactilar. Esto quiere decir que sea cual sea la cantidad de caracteres de entrada, la salida siempre será fija. Cumple además con dos premisas muy importantes para la seguridad:
80
+
81
+
\begin{itemize}
82
+
\item No es reversible, no se puede descifrar por medio de funciones matemáticas y obtener el resultado antes de ser encriptado, sea cual sea la función utilizada (SHA-1, SHA-2 o MD 5 entre otras, como veremos a continuación).
83
+
\item Cuenta con la propiedad de que si la entrada cambia, aunque sea sólo en un bit, el hash resultante será completamente, como se puede ver en la siguiente ilustración \ref{fig:3.1}. En la imagen se puede apreciar que aunque la entrada tenga un mayor numero de caracteres, la salida siempre será de 40 caracteres.
\caption{Aplicación de la función hash a diferentes datos introducidos. \url{https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}
91
+
\label{fig:3.1}
92
+
\end{figure}
75
93
76
-
Y subsecciones.
94
+
Ahora bien, las acciones llevadas a cabo para preservar esa seguridad serían las siguientes: un usuario crea una cuenta en la aplicación, la contraseña se encripta y se almacena en la base de datos. Cuando el usuario trata de iniciar sesión y escribe la contraseña, esta se encripta y se compara el resultado con aquel que se ha guardado en la base de datos, si son iguales el usuario tendrá acceso sino, se le requerirá que lo vuelva a intentar.
95
+
96
+
El problema principal de esto es que con los avances en temas de seguridad siempre hay asociados otros que tratan de <<romper>> esa seguridad y en este caso no iba a ser menos. Creo que es importante reconocer los peligros que hay asociados a aplicar este método, pero no deseo extenderme demasiado en este aspecto así que los mencionare brevemente.
97
+
98
+
99
+
\begin{itemize}
100
+
\item Ataques de fuerza bruta. Consisten en utilizar diccionarios de palabras con contraseñas habituales e introducirlas hasta que alguna coincida. Se trata del ataque menos eficiente, pero el más difícil de evitar.
101
+
\item Tablas de búsqueda. Este tipo de ataque si que supondría un grave problema para la seguridad en el cifrado con algoritmo hash. Recordemos que las funciones hash solo se pueden encriptar, no descifrar. Lo que hace este ataque es lo siguiente, cuenta con una tabla de contraseñas típicas y su cifrado hash y las compara con los hash introducidos. Para entender mejor este concepto hay incluso herramientas online que pueden hacer este trabajo. Ver ilustración\ref{fig:3.2}. También las hay que funcionan al revés. Introduces la contraseña que crees que puede usar alguien, la encripta, la compara con todas las de la base de datos y te dice si alguien la utiliza o no.
\caption{Ejemplo de ataque con tablas de búsqueda. Imagen sacada de \url{https://crackstation.net/}}
108
+
\label{fig:3.2}
109
+
\end{figure}
78
110
79
-
\section{Referencias}
111
+
Además de estos, hay más métodos, casi todos basados en las tablas de búsqueda. Según estos ataques queda comprobado que la seguridad de este algoritmo depende en gran mediada de la contraseña que utilice el usuario. Cuanto más aleatoria y con más mezcla de caracteres mejor, ya que formará palabras que no se encuentran en los diccionarios o tablas y solo se podrá descubrir por medio de la fuerza bruta. Entonces ¿cómo hacer que las contraseñas sean más resistentes y solucionar este problema?
80
112
81
-
Las referencias se incluyen en el texto usando cite \cite{wiki:latex}. Para citar webs, artículos o libros \cite{koza92}.
113
+
Se conoce como el cifrado hash con sal o semilla. Consiste en añadir un conjunto de caracteres aleatorios, agregarlos a la contraseña y una vez hecho esto, cifrarlo con la función hash. De esta manera se consigue que la contraseña sea mucho más aleatoria que la que inicialmente ha introducido el usuario. Así podemos ver como quedaría un intento de <<tablas de búsqueda>> con este tipo de cifrado usa para contraseñas muy simples \ref{fig:3.3}.
\caption{Resultado de aplicar tablas de búsqueda al cifrado hash con semilla. Imagen sacada de \url{https://crackstation.net/}}
119
+
\label{fig:3.3}
120
+
\end{figure}
83
121
122
+
La primera de ellas corresponde con la clave <<123>> la segunda con la palabra <<contraseña>> y la tercera con la fecha <<16-6-17>>. Todas son fáciles, pero al añadirle una clave y cifrarlo todo, se vuelve mucho mas complejo. Se podría pensar que, como la clave que se le añade también se guarda en la base de datos sigue sin ser seguro. Partiendo del hecho de que no hay prácticamente nada seguro al cien por cien, lo que se consigue con esto es dificultar mucho el cálculo, ya que los dos ataques mencionado anteriormente (y varios más basados en estos dos) se ayudan de repositorios de contraseñas. Así si quisieran descifrarlo debería de coger el conjunto aleatorio, sumarle la posible contraseña y cifrarlo comparando los resultados sólo con ese hash (o contraseña cifrada) ya que el salt es único para cada hash. Con este método se consigue que los cálculos para descifrar una contraseña sean bastante más costosos de una forma muy simple.
\@writefile{lot}{\contentsline {table}{\numberline {4.1}{\ignorespaces Tabla comparativa entre Vaadin y GWT.}}{17}{table.4.1}}
10
+
\newlabel{tabla:comparativa}{{\M@TitleReference {4.1}{Tabla comparativa entre Vaadin y GWT.}}{17}{Tabla comparativa entre Vaadin y GWT}{table.4.1}{}}
11
+
\@writefile{toc}{\contentsline {section}{\numberline {4.6}Herramientas para el cifrado de contrase\IeC {\~n}as}{17}{section.4.6}}
12
+
\@writefile{toc}{\contentsline {section}{\numberline {4.7}Plataforma Google Cloud}{18}{section.4.7}}
13
+
\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces Base de datos en Google Cloud. Se puede apreciar la entidad <<User>> que muestra la base de datos.}}{18}{figure.4.4}}
14
+
\newlabel{fig:5.1}{{\M@TitleReference {4.4}{Base de datos en Google Cloud. Se puede apreciar la entidad <<User>> que muestra la base de datos.}}{18}{Base de datos en Google Cloud. Se puede apreciar la entidad <<User>> que muestra la base de datos}{figure.4.4}{}}
0 commit comments