Skip to content

Commit 3f998b8

Browse files
Memoria casi completa.
Faltan trabajos relacionados y conclusiones. Posibilidad de mejorar y añadir mas cosas
1 parent c06f5be commit 3f998b8

13 files changed

+198
-132
lines changed
64.9 KB
Loading

Documentacion/img/estilos-css.PNG

20.4 KB
Loading

Documentacion/tex/1_Introduccion.aux

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
\setcounter{bsm@mctr}{0}
5555
\setcounter{workm@mctr}{0}
5656
\setcounter{sheetsequence}{13}
57-
\setcounter{lastsheet}{32}
58-
\setcounter{lastpage}{22}
57+
\setcounter{lastsheet}{36}
58+
\setcounter{lastpage}{26}
5959
\setcounter{figure}{0}
6060
\setcounter{lofdepth}{1}
6161
\setcounter{table}{0}

Documentacion/tex/2_Objetivos_del_proyecto.aux

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
\setcounter{bsm@mctr}{0}
5151
\setcounter{workm@mctr}{0}
5252
\setcounter{sheetsequence}{15}
53-
\setcounter{lastsheet}{32}
54-
\setcounter{lastpage}{22}
53+
\setcounter{lastsheet}{36}
54+
\setcounter{lastpage}{26}
5555
\setcounter{figure}{0}
5656
\setcounter{lofdepth}{1}
5757
\setcounter{table}{0}

Documentacion/tex/3_Conceptos_teoricos.aux

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
\citation{aho1986compilers}
44
\@writefile{toc}{\contentsline {chapter}{Conceptos te\IeC {\'o}ricos}{5}{chapter*.6}}
55
\@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}}
7-
\citation{wiki:latex}
8-
\citation{koza92}
9-
\@writefile{toc}{\contentsline {subsection}{Subsecciones}{8}{section*.7}}
10-
\@writefile{toc}{\contentsline {subsubsection}{Subsubsecciones}{9}{section*.8}}
11-
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Referencias}{9}{section.3.3}}
6+
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Recursividad}{7}{section.3.2}}
7+
\@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}{}}
1216
\@setckpt{./tex/3_Conceptos_teoricos}{
13-
\setcounter{page}{10}
17+
\setcounter{page}{13}
1418
\setcounter{equation}{0}
1519
\setcounter{enumi}{0}
1620
\setcounter{enumii}{0}
@@ -23,7 +27,7 @@
2327
\setcounter{book}{0}
2428
\setcounter{part}{0}
2529
\setcounter{chapter}{3}
26-
\setcounter{section}{3}
30+
\setcounter{section}{4}
2731
\setcounter{subsection}{0}
2832
\setcounter{subsubsection}{0}
2933
\setcounter{paragraph}{0}
@@ -57,10 +61,10 @@
5761
\setcounter{cmsm@mctr}{0}
5862
\setcounter{bsm@mctr}{0}
5963
\setcounter{workm@mctr}{0}
60-
\setcounter{sheetsequence}{20}
61-
\setcounter{lastsheet}{32}
62-
\setcounter{lastpage}{22}
63-
\setcounter{figure}{0}
64+
\setcounter{sheetsequence}{23}
65+
\setcounter{lastsheet}{36}
66+
\setcounter{lastpage}{26}
67+
\setcounter{figure}{3}
6468
\setcounter{lofdepth}{1}
6569
\setcounter{table}{0}
6670
\setcounter{lotdepth}{1}
@@ -69,7 +73,7 @@
6973
\setcounter{Hfootnote}{1}
7074
\setcounter{memhycontfloat}{0}
7175
\setcounter{Hpagenote}{0}
72-
\setcounter{bookmark@seq@number}{9}
76+
\setcounter{bookmark@seq@number}{10}
7377
\setcounter{parentequation}{0}
74-
\setcounter{section@level}{1}
78+
\setcounter{section@level}{2}
7579
}

Documentacion/tex/3_Conceptos_teoricos.tex

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ \section{¿Qué es una gramática y para qué sirve?}
3939
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\]
4040
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})$.
4141

42+
\section{Recursividad}
43+
4244
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})^{*} \]
4345
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.
4446

@@ -66,18 +68,55 @@ \section{Tipos de gramáticas }
6668
que son totalmente equivalentes a las regulares normales, pero en muchos casos su notación es más adecuada.
6769
\end{itemize}
6870

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.
6976

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.
7184

72-
Además de secciones tenemos subsecciones.
85+
\end{itemize}
7386

74-
\subsubsection{Subsubsecciones}
87+
\begin{figure}[h]
88+
\centering
89+
\includegraphics[width=0.99\textwidth]{funcion-hash}
90+
\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}
7593

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.
102+
\end{itemize}
77103

104+
\begin{figure}[h]
105+
\centering
106+
\includegraphics[width=0.99\textwidth]{hash-cracker}
107+
\caption{Ejemplo de ataque con tablas de búsqueda. Imagen sacada de \url{https://crackstation.net/}}
108+
\label{fig:3.2}
109+
\end{figure}
78110

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?
80112

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}.
82114

115+
\begin{figure}[h]
116+
\centering
117+
\includegraphics[width=0.99\textwidth]{hash_salt-cracker}
118+
\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}
83121

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.

Documentacion/tex/4_Tecnicas_y_herramientas.aux

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
11
\relax
22
\providecommand\hyper@newdestlabel[2]{}
3-
\@writefile{toc}{\contentsline {chapter}{T\IeC {\'e}cnicas y herramientas}{10}{chapter*.9}}
4-
\@writefile{toc}{\contentsline {section}{\numberline {4.1}GWT}{10}{section.4.1}}
5-
\@writefile{toc}{\contentsline {section}{\numberline {4.2}WebSwing}{11}{section.4.2}}
6-
\@writefile{toc}{\contentsline {section}{\numberline {4.3}JSweet}{12}{section.4.3}}
7-
\@writefile{toc}{\contentsline {section}{\numberline {4.4}DukeScript}{12}{section.4.4}}
8-
\@writefile{toc}{\contentsline {section}{\numberline {4.5}Vaadin}{13}{section.4.5}}
9-
\@writefile{toc}{\contentsline {section}{\numberline {4.6}Herramientas para el cifrado de contrase\IeC {\~n}as}{13}{section.4.6}}
10-
\@writefile{lot}{\contentsline {table}{\numberline {4.1}{\ignorespaces Tabla comparativa entre Vaadin y GWT.}}{14}{table.4.1}}
11-
\newlabel{tabla:comparativa}{{\M@TitleReference {4.1}{Tabla comparativa entre Vaadin y GWT.}}{14}{Tabla comparativa entre Vaadin y GWT}{table.4.1}{}}
3+
\@writefile{toc}{\contentsline {chapter}{T\IeC {\'e}cnicas y herramientas}{13}{chapter*.8}}
4+
\@writefile{toc}{\contentsline {section}{\numberline {4.1}GWT}{13}{section.4.1}}
5+
\@writefile{toc}{\contentsline {section}{\numberline {4.2}WebSwing}{14}{section.4.2}}
6+
\@writefile{toc}{\contentsline {section}{\numberline {4.3}JSweet}{15}{section.4.3}}
7+
\@writefile{toc}{\contentsline {section}{\numberline {4.4}DukeScript}{15}{section.4.4}}
8+
\@writefile{toc}{\contentsline {section}{\numberline {4.5}Vaadin}{16}{section.4.5}}
9+
\@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}{}}
1215
\@setckpt{./tex/4_Tecnicas_y_herramientas}{
13-
\setcounter{page}{15}
16+
\setcounter{page}{19}
1417
\setcounter{equation}{0}
1518
\setcounter{enumi}{0}
1619
\setcounter{enumii}{0}
1720
\setcounter{enumiii}{0}
1821
\setcounter{enumiv}{0}
19-
\setcounter{footnote}{8}
22+
\setcounter{footnote}{9}
2023
\setcounter{mpfootnote}{0}
2124
\setcounter{@memmarkcntra}{0}
2225
\setcounter{storedpagenumber}{1}
2326
\setcounter{book}{0}
2427
\setcounter{part}{0}
2528
\setcounter{chapter}{4}
26-
\setcounter{section}{6}
29+
\setcounter{section}{7}
2730
\setcounter{subsection}{0}
2831
\setcounter{subsubsection}{0}
2932
\setcounter{paragraph}{0}
@@ -57,19 +60,19 @@
5760
\setcounter{cmsm@mctr}{0}
5861
\setcounter{bsm@mctr}{0}
5962
\setcounter{workm@mctr}{0}
60-
\setcounter{sheetsequence}{25}
61-
\setcounter{lastsheet}{32}
62-
\setcounter{lastpage}{22}
63-
\setcounter{figure}{0}
63+
\setcounter{sheetsequence}{29}
64+
\setcounter{lastsheet}{36}
65+
\setcounter{lastpage}{26}
66+
\setcounter{figure}{4}
6467
\setcounter{lofdepth}{1}
6568
\setcounter{table}{1}
6669
\setcounter{lotdepth}{1}
6770
\setcounter{PWSTtable}{0}
6871
\setcounter{Item}{0}
69-
\setcounter{Hfootnote}{8}
72+
\setcounter{Hfootnote}{9}
7073
\setcounter{memhycontfloat}{0}
7174
\setcounter{Hpagenote}{0}
72-
\setcounter{bookmark@seq@number}{16}
75+
\setcounter{bookmark@seq@number}{18}
7376
\setcounter{parentequation}{0}
7477
\setcounter{section@level}{1}
7578
}

0 commit comments

Comments
 (0)