Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(UTESA)
Asignatura:
SEGURIDAD INFORMATICA
Tema:
Ensayo Sobre La Criptografía
Nombres y Matricula:
Jean Michael Cornelio De Los Santos
118-5693
Profesor:
Juan José Diaz Nerio
Contenido
1. Historia de la Criptografía y su Desarrollo en Europa ........................................................................... 4
2. Sistemas de cifra con clave secreta....................................................................................................... 5
ANALOGÍA DE LA CRIPTOGRAFÍA CON LOS CANDADOS ...................................................... 5
FUNDAMENTOS DE LA CRIPTOGRAFÍA DE CLAVE SIMÉTRICA ........................................... 5
LOS ATAQUES POR FUERZA BRUTA ............................................................................................ 6
EL PROBLEMA DE LA DISTRIBUCIÓN DE CLAVES .................................................................. 7
3. El problema de la distribución de la clave ............................................................................................ 8
LA CRIPTOGRAFÍA DE CLAVE PÚBLICA..................................................................................... 8
EL PROBLEMA DE LA CONFIANZA .............................................................................................. 9
4. Introducción a la seguridad en redes telemáticas ................................................................................ 9
RIESGOS Y PROTECCIONES EN LAS REDES TELEMÁTICAS ................................................ 10
CONOCIENDO A TU ENEMIGO..................................................................................................... 11
PROTEGIENDO LA RED ................................................................................................................. 12
5. SEGURIDAD PERIMETRAL .................................................................................................................... 12
FUNDAMENTOS DE LA SEGURIDAD PERIMETRAL. INTRODUCCIÓN A LOS
CORTAFUEGOS ............................................................................................................................... 12
SISTEMAS DE DETECCION DE INTRUSOS. IDS y HONEYPOTS ............................................ 13
TRÁFICO EN LA RED. ANTIVIRUS, ANTISPAM y VPN ............................................................ 13
6. MALWARE ........................................................................................................................................... 14
INTRODUCCIÓN AL MALWARE: CONCEPTOS ......................................................................... 14
DIFUSIÓN DEL MALWARE. ¿CÓMO SE INFECTA?................................................................... 14
EL NEGOCIO DEL MALWARE ...................................................................................................... 15
CONTRAMEDIDAS: DETECCIÓN Y ELIMINACIÓN DE MALWARE ...................................... 15
7. SEGURIDAD EN APLICACIONES WEB. INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL ............. 16
INYECCIÓN DE CÓDIGO EN APLICACIONES WEB .................................................................. 17
TÉCNICAS DE INYECCIÓN A CIEGAS ........................................................................................ 18
EVITANDO LAS TÉCNICAS DE INYECCIÓN. MITIGACIÓN .................................................... 18
8. PROTOCOLO DE REPARTO DE SECRETOS ............................................................................................ 19
CÓMO PROTEGER UN SECRETO ................................................................................................. 19
PROTOCOLO DE REPARTO DE UN SECRETO ........................................................................... 19
REALIZACIÓN EFECTIVA DE UN PROTOCOLO DE REPARTO DE SECRETOS ................... 20
9. INTRODUCCIÓN PROTOCOLO SSL ....................................................................................................... 20
ORÍGENES DE SSL ........................................................................................................................... 20
FUNCIONAMIENTO DE SSL. SSL HANDSHAKE PROTOCOL.................................................. 21
APLICACIONES DEL PROTOCOLO SSL. COMERCIO ELECTRÓNICO Y VPNS ................... 22
10.ATAQUES AL PROTOCOLO SSL ............................................................................................................... 22
¿ES SEGURO SSL? ........................................................................................................................... 22
FALLOS DE PROGRAMACIÓN EN LAS IMPLEMENTACIONES. CRIPTOANALISIS Y
DOWNGRADE .................................................................................................................................. 23
ENGAÑANDO AL USUARIO. VULNERANDO SSL EN LA WEB .............................................. 24
11.ANÁLISIS Y GESTIÓN DE RIESGOS........................................................................................................... 24
ANÁLISIS DE IMPACTO Y ANÁLISIS DE RIESGOS .................................................................. 24
GESTIONANDO LOS RIESGOS ...................................................................................................... 25
RECOMENDACIONES. METODOLOGÍAS ................................................................................... 25
12.SEGURIDAD EN REDES WI‐FI .................................................................................................................. 26
INTRODUCCIÓN A LA SEGURIDAD DE LAS REDES WI‐FI..................................................... 26
SEGURIDAD DE LAS REDES WI‐FI .............................................................................................. 26
SEGURIDAD DE LOS CLIENTES WI‐FI ........................................................................................ 27
13.SEGURIDAD EN DNS ............................................................................................................................... 28
EL SISTEMA DNS. CONCEPTOS BÁSICOS.................................................................................. 28
ATAQUES AL SISTEMA DNS. MOTIVOS .................................................................................... 28
14.FUNCIONES UNIDIRECCIONALES Y HASH............................................................................................... 29
FUNCIONES UNIDIRECCIONALES .............................................................................................. 29
FUNCIONES HASH .......................................................................................................................... 29
CONSIDERACIONES PRÁCTICAS: PROCEDIMIENTOS, CRIPTOANÁLISIS Y
CONSECUENCIAS ........................................................................................................................... 30
1.Historia de la Criptografía y su
Desarrollo en Europa
La criptografía, o el arte de escribir en código, tiene una larga historia que se remonta a la
antigüedad. Sin embargo, su desarrollo en Europa se aceleró durante la Edad Media, con la
necesidad de proteger los mensajes militares y diplomáticos de los enemigos y espías.
Uno de los sistemas criptográficos más conocidos de la Edad Media fue la cifra de César, utilizada
por Julio César para proteger sus mensajes militares. Este sistema consistía en reemplazar cada
letra del alfabeto por la letra que se encuentra tres posiciones más adelante. Por ejemplo, la letra
A se convertiría en D, la letra B en E, y así sucesivamente.
Uno de los métodos de cifrado más conocidos utilizados en la antigua Esparta fue el cifrado de
escítala. Este método se usaba para cifrar mensajes militares confidenciales y se cree que se utilizó
por primera vez en el siglo V a.C.
La escítala era una herramienta de cifrado que consistía en una varilla de madera o metal larga y
delgada, que se envolvía con una tira de pergamino o cuero. El mensaje se escribía en la tira de
pergamino, y luego se desenrollaba alrededor de la escítala, de tal manera que las letras del mensaje
quedaban dispuestas en columnas verticales.
Una vez que se había enrollado el mensaje en la escítala, se retiraba la tira de pergamino y se
enviaba al destinatario. Para descifrar el mensaje, el destinatario tenía que tener una escítala
idéntica a la del remitente, y enrollar la tira de pergamino alrededor de la escítala de la misma
manera. Luego, podía leer el mensaje descifrado leyendo las letras en las columnas horizontales.
Otro método sistemático de cifrado conocido se llama "la cifra de César", que fue utilizado por
Julio César durante las guerras gálicas en el siglo I a.C. Este método consistía en desplazar cada
letra del alfabeto por tres posiciones hacia la derecha. Por ejemplo, la letra "A" se convertiría en
"D", la letra "B" en "E", y así sucesivamente.
Enigma fue una máquina de cifrado electromecánica utilizada por los militares y los servicios de
inteligencia alemanes durante la Segunda Guerra Mundial para cifrar y descifrar mensajes secretos.
La máquina constaba de un teclado y una serie de rotores que giraban y conectaban diferentes
conexiones eléctricas entre las letras del alfabeto, lo que permitía cifrar y descifrar mensajes.
Para poder enviar cualquier carta o escrito puede hacerse con una caja a prueba de robo es un tipo
de caja fuerte diseñada para proteger objetos de valor y documentos importantes contra robos.
Estas cajas están hechas de materiales resistentes y duraderos, como acero reforzado, y se han
diseñado para resistir a los intentos de apertura forzada, ya sea mediante la perforación, la palanca,
el corte, la sierra o cualquier otro método utilizado por los ladrones y los candados de 8 dígitos
son un tipo de candado con un mecanismo de bloqueo que utiliza una combinación de 8 números
para abrir y cerrar el candado. Estos candados son más seguros que los candados de combinación
de 4 dígitos, ya que hay muchas más posibilidades de combinaciones posibles, lo que hace más
difícil que un intruso adivine la combinación correcta, el candado usa una combinación de 8
dígitos. Eso significa que existen 10 elevado a las 8 combinaciones posibles, o lo que es lo mismo,
1 seguido de 8 ceros, o sea, 100 millones de combinaciones.
Cuando quieres proteger un mensaje digital, puedes cifrarlo utilizando un algoritmo de cifrado.
Igual que existen muchos tipos de candados, existen muchos tipos de algoritmos de cifrado. Para
cifrar mensajes de correo, archivos del disco duro, registros de una base de datos, y en general para
cifrar grandes cantidades de datos, se utiliza un tipo de algoritmo de cifrado conocido como de
clave secreta o simétrico.
La robustez del algoritmo de cifrado puede mejorarse considerablemente si se combinan ambas
operaciones e. La robustez del algoritmo de cifrado puede mejorarse considerablemente si se
combinan ambas operaciones, usando sustitución y transposición repetidamente sobre el mismo
mensaje. Algunos algoritmos modernos de cifrado, como por ejemplo el AES o el Triple DES,
utilizan múltiples vueltas de cifrado en las que se combinan las dos operaciones. s, usando
sustitución y transposición repetidamente sobre el mismo mensaje. Algunos algoritmos modernos
de cifrado, como por ejemplo el AES o el Triple DES, utilizan múltiples vueltas de cifrado en las
que se combinan las dos operaciones.
Si, la seguridad de un algoritmo de cifrado depende de dos factores. El primero ya lo hemos visto:
es el diseño del algoritmo. El segundo factor es la longitud de la clave utilizada. Cuando un
criptoanalista no puede encontrar fallos en el algoritmo, siempre le queda recurrir a un ataque de
fuerza bruta. Se trata de un método sin elegancia, que no ataca el algoritmo en sí, sino que busca
exhaustivamente todos los posibles valores de la clave hasta dar con la correcta.
Es importante elegir claves suficientemente largas, de manera que con la potencia de cálculo actual
sea imposible probarlas todas en un tiempo razonable. Éste fue el problema del algoritmo simétrico
DES. Su longitud de clave fue establecida en 56 bits. Hay que tener en cuenta que DES fue
diseñado en el año 1976, y que en aquellos tiempos resultaba impensable que un ordenador pudiera
probar 2 elevado a las 56 combinaciones posibles de la clave. Pero claro, la informática fue
evolucionando y en el año 1998 se diseñó un dispositivo capaz de obtener la clave correcta en 56
horas. Sucesivos avances en computación paralela han conseguido reducir el tiempo a menos de
un día. Actualmente, una clave simétrica de ese tamaño es completamente insegura.
Hoy en día se estima que claves de 128 bits de longitud o más garantizarán la seguridad por muchos
años. De hecho, algunos algoritmos permiten seleccionar a voluntad la longitud de la clave, como
el estándar AES que se base en el algoritmo criptográfico Rijndael. Piensa que cada bit que se
añade a la clave dobla el tamaño del espacio de claves posibles.
Existen varios métodos para distribuir claves de forma segura, incluyendo el intercambio de claves
de Diffie-Hellman, el cifrado de clave pública y los sistemas de autenticación de clave pública. En
el intercambio de claves de Diffie-Hellman, las dos partes acuerdan una clave secreta mediante un
intercambio de mensajes, sin necesidad de enviar la clave en sí. En el cifrado de clave pública,
cada parte tiene una clave pública y una clave privada, y las claves públicas se pueden compartir
de forma segura para establecer una clave compartida. En los sistemas de autenticación de clave
pública, cada parte tiene una clave pública y una clave privada, y se utilizan para verificar la
identidad de la otra parte antes de compartir una clave secreta.
Esto era casi imposible hasta que fue inventada en la década de 1970 por tres investigadores
independientes: Whitfield Diffie, Martin Hellman y Ralph Merkle. Esta nueva técnica de cifrado
revolucionó la forma en que se aseguran las comunicaciones en línea y todavía se utiliza
ampliamente hoy en día.
El problema de la distribución de la clave se refiere a cómo dos partes que desean comunicarse de
manera segura pueden acordar una clave de cifrado sin que un tercero no autorizado pueda
interceptarla o conocerla. La distribución segura de claves es un requisito crítico para la seguridad
de la comunicación cifrada, ya que cualquier persona que conozca la clave podría descifrar el
mensaje y comprometer la privacidad y seguridad de la comunicación.
Es una analogía que nos ayuda a comprender cómo funcionan los algoritmos de cifrado de clave
pública. Se dispone de dos claves: una es pública y por tanto conocida por todo el mundo y la otra
es privada y conocida solamente por su poseedor. Aunque cualquiera puede cifrar usando la clave
pública, sólo el que posee la correspondiente clave privada podrá descifrar.
En este tipo de criptografía se utiliza una pareja de claves: una para cifrar y otra para descifrar. La
clave pública debe ser conocida por todo el mundo, lo que facilita su distribución
Una vez que alguien conoce tu clave pública, puede enviarte mensajes cifrados con la seguridad
de que nadie más que tú podrá descifrarlos, porque sólo tú posees la clave privada correspondiente
a esa clave pública. Eso sí, la clave privada es muy importante que la mantengas en privado y sólo
tú la conozcas.
Si cifras un mensaje con la clave pública no podrás descifrarlo usando esa misma clave pública.
Necesitarás usar la clave privada. Lo que cifras con una clave, debes descifrarlo con la otra. Es lo
que en matemática discreta se conoce como inversos, pero esos temas serán estudiados en otra
lección.
EL PROBLEMA DE LA CONFIANZA
Desde tiempos ancestrales el hombre ha necesitado superar sus obstáculos de tiempo y espacio
desarrollando mecanismos de comunicación cada vez más precisos. Hoy en día, en pleno siglo
XXI el uso de la telefonía móvil o de Internet es un claro ejemplo de estos avances. Sin embargo,
no siempre el usuario final tiene noción de la complejidad de estas tecnologías y de los
inconvenientes que acarrea usarlas de forma incorrecta… Para adentrarse en estas tecnologías es
necesario conocer la esencia del funcionamiento de las redes de telecomunicación, y en nuestro
caso concreto de las redes de ordenadores y las comunicaciones entre ellas. Es por tanto interesante
centrarse en el caso de las redes telemáticas.
Hoy día las redes telemáticas se utilizan para comunicar no sólo a individuos, sino que tienen una
gran utilidad en las comunicaciones empresariales, bancarias, estatales, diplomáticas, militares,
entre ciudadanos con la administración pública, etc. Mucha información, en algunos casos
sensible, circula por estas redes. Existe un riesgo real de que personas no autorizadas intenten tener
acceso ilegítimo a ella.
CONOCIENDO A TU ENEMIGO
En el ambiente tecnológico es común poner etiquetas a todo, a veces de forma errónea. Lo cierto
es que existen personas con un conocimiento elevado sobre las tecnologías y protocolos en los que
se apoyan las redes telemáticas. En ocasiones este conocimiento avanzado, con dosis de talento y
trabajo, les permite descubrir fallos que permiten mejorar la tecnología, en otras ocasiones es
utilizado con intereses particulares: económicos, morales, políticos, militares, etc. En la práctica,
es difícil catalogar a los atacantes en blanco o negro, casi siempre hay niveles de grises.
Al atacante, no obstante, le sirve únicamente que un punto de éstos no esté debidamente protegido
para realizar su ataque e ir escalando privilegios en la red o máquina destino para conseguir su
objetivo. No existe la seguridad total: ante cualquier coraza de protección, siempre se podrá
encontrar un elemento capaz de romperla. No obstante, no debe olvidarse que el estado actual de
las tecnologías de seguridad permite ofrecer en las redes telemáticas una protección superior en
varios órdenes de magnitud a la que se ofrece en el mundo ordinario, por ejemplo, en el
intercambio de documentos en papel.
La solución a este problema en la mayoría de los casos consiste en una concienciación en seguridad
en redes telemáticas y en la definición de políticas de seguridad claras, que impidan, por ejemplo,
que un usuario pueda dar la clave de autenticación de un servidor por teléfono a un desconocido.
En próximas lecciones hablaremos de los certificados de clave pública y de las infraestructuras de
seguridad que existen, basadas en autoridades de seguridad de confianza, que sirven para ayudar
a los usuarios a protegerse lo mejor posible de los muchos riesgos y ataques que puedan aparecer
en las redes telemáticas.
5.SEGURIDAD PERIMETRAL
Uno de los elementos clave de la seguridad perimetral es el cortafuegos (firewall, en inglés), que
es un dispositivo de seguridad de red que se utiliza para controlar el tráfico de red entre las redes
de diferentes niveles de seguridad. Los cortafuegos pueden ser hardware o software y se pueden
implementar en diferentes ubicaciones de la red, como en la periferia de la red, en los servidores
o en los dispositivos finales.
los IDS tienen mucho valor como cuaderno de bitácora y pueden ser el punto de partida para
identificar el origen de un ataque. Además, los IDS han evolucionado a los Sistemas de Detección
y Prevención de Intrusos IDPS (Intrusion Detection and Prevention Systems), unos elementos más
complejos que también son capaces de bloquear la conexión si detectan que el evento es peligroso,
al igual que hacen los cortafuegos de aplicación.
El tráfico de red es el movimiento de datos entre diferentes dispositivos y servicios a través de una
red, ya sea a través de internet o una red local. El tráfico de red puede ser generado por diferentes
tipos de aplicaciones y servicios, como navegadores web, correo electrónico, redes sociales,
transferencia de archivos, mensajería instantánea, entre otros.
Para protegerse contra las amenazas de seguridad que pueden propagarse a través del tráfico de
red, existen varias herramientas de seguridad que se pueden implementar, como los antivirus, los
antispam y las VPN.
6.MALWARE
Malware es un término genérico para referirse a cualquier tipo de software malicioso o molesto
que se instala en los sistemas, también se caracterizan porque llevan a cabo acciones no deseadas
sin el consentimiento del usuario. Los virus informáticos son en realidad un subtipo dentro de la
gran familia del malware, al igual que otros especímenes como son los gusanos, troyanos, adware,
keyloggers, dialers, etc.
Los virus informáticos tienen la capacidad de adjuntarse o incrustarse en otro software, es decir,
se auto‐replican infectando otros programas. De esta forma una aplicación legítima, por ejemplo
un juego de ordenador o un programa de contabilidad, podría estar infectado por un virus si ha
tenido contacto con él en un sistema infectado. En el caso de los gusanos, no tienen esa capacidad
de introducirse e infectar a otros programas, y en su lugar se replican haciendo copias de sí mismos.
Por ejemplo, uno de los casos más conocidos fue el gusano ILOVEYOU, que se replicaba enviando
una copia de sí mismo por correo electrónico simulando ser una carta de amor. Si alguien abría el
fichero que contenía la supuesta carta de amor, el gusano se ejecutaba y se auto‐enviaba de nuevo
en un mensaje a toda la lista de contactos de correo electrónico de ese usuario.
A día de hoy la mayor parte del malware se distribuye a través de Internet. Uno de los métodos
más usuales es el conocido como "drive‐by download" que consiste en descargar y ejecutar el
fichero malicioso, por ejemplo a través de la Web o ejecutando un fichero adjunto recibido por
correo electrónico, por ejemplo, un fichero PDF malicioso. En muchas ocasiones se le engaña al
usuario haciéndole creer que es un programa o información útil para él, por ejemplo, para un
software para reproducir vídeos. En otras ocasiones, la infección es transparente al usuario; sólo
es necesario visitar una página Web que aproveche alguna vulnerabilidad del navegador Web para
descargar y ejecutar el malware. No obstante, en general cualquier protocolo de Internet puede ser
utilizado para distribuir malware, por ejemplo las redes P2P o la mensajería instantánea. No debe
olvidarse, además, que también los medios de almacenamiento físico pueden propagarlos; por
ejemplo, es común la distribución de ellos a través de memorias USB.
Cuando aparecieron los primeros virus informáticos, los creadores de malware eran personas que
tenían mucha destreza programando en lenguaje ensamblador y el único fin era experimentar y
demostrar su capacidad ante terceros. Digamos que en su comienzo fue una década “romántica”,
en cuanto a que no existía un fin económico por parte de los creadores de virus. Hoy día el
panorama es bien diferente; existe todo un negocio alrededor del malware, hay verdaderas mafias
detrás de estos bichos.
Hay muchas vías para ganar dinero a través del malware. Por ejemplo, existen los especímenes
especializados en delitos financieros, como los troyanos que roban credenciales de acceso a la
banca electrónica, de forma que los atacantes pueden realizar transferencias en nombre de la
víctima. A este tipo de malware también se le conoce por el nombre de “crimeware”. Por ejemplo,
el adware produce dinero mediante la venta de publicidad intrusiva en los ordenadores infectados,
en muchas ocasiones los anunciantes no son conscientes de estas prácticas, sino que creen que
están pagando campañas de publicidad legítimas. De manera similar hay malware cuya función es
enviar spam, mensajes masivos de publicidad a través de los sistemas infectados. Las botnets, o
redes de sistemas controladas de forma central, son utilizadas en muchas ocasiones para realizar
ataques distribuidos de negación de servicio contra sitios Web, como por ejemplo comercios
electrónicos. Básicamente los miles de sistemas infectados, o incluso millones, reciben órdenes de
visitar o enviar tráfico a un sitio Web, produciendo su colapso. En esos casos los sitios sufren
chantajes a cambio de no ser atacados.
Los antivirus son una solución de seguridad recomendable, pero no son infalibles. Aunque muchos
implementan sistemas heurísticos, firmas genéricas y detecciones basadas en el comportamiento
para tratar de detectar los especímenes nuevos, la realidad es que buena parte de la protección que
ofrecen contra el malware de nueva generación sigue siendo reactiva. Es decir, siempre hay un
número indeterminado de casos donde el antivirus no podrá proteger de forma efectiva.
7.SEGURIDAD EN APLICACIONES
WEB. INTRODUCCIÓN A LAS
TÉCNICAS DE INYECCIÓN SQL
Muchos internautas se preguntarán cómo es posible que un atacante pueda tener acceso a
información sensible de una empresa, que no está publicada en Internet, a través de su página web,
por ejemplo su base de datos o modificar los valores mostrados en ella. La respuesta técnica es
mucho más sencilla de lo que se puede suponer a priori.
Aunque una aplicación web puede ser tan compleja como necesite el sistema, las aplicaciones
típicas tienen la siguiente estructura. En ella se puede ver que hay tres niveles claramente
diferenciados por sus funciones. El primero de ellos es el encargado del interfaz de usuario, es
decir, la parte que gestiona la interacción Humano-Sistema, y que en una aplicación web típica es
el navegador de Internet. El segundo de los niveles es donde reside la lógica de la aplicación. Esta
correrá sobre los servidores web y los servidores de aplicaciones, que haciendo uso de diferentes
tecnologías podrán generar conocimiento o procesar información con un fin concreto. Por último
tendríamos el almacén de datos, es decir, el repositorio de la información donde se guarda el
conocimiento de una organización. Este repositorio puede estar implementado por un árbol LDAP,
una base de datos relacional, un almacén con datos en XML o un simple fichero de datos. Existe
una conexión entre cada uno de los niveles adyacentes. El usuario, a través de la información que
envía por el navegador de Internet, interactúa con el servidor web y, a su vez, la lógica de la
aplicación interactúa con el almacén de datos para leer y escribir información en el sistema. Por
supuesto, cada interacción tiene sus conjuntos de protocolos y lenguajes. Así, entre el nivel de
interfaz y el nivel de lógica de aplicación se pueden utilizar protocolos como http o https para
enviar la información, mientras que entre el servidor web y los repositorios de datos se lanzarán
consultas en lenguajes propios sobre protocolos de red creados específicamente para esta función.
Por ejemplo, si el repositorio es un árbol LDAP, la lógica de la aplicación lanzará consultas LDAP
con filtros de búsqueda LDAP. Si fuera una base de datos relacional se utilizará consultas en
lenguaje SQL sobre protocolos como Tabular Data Stream u Oracle Net, y en el caso de un
repositorio en formato XML se utilizarán consultas XPath.
La vulnerabilidad que aprovecha el atacante es que la aplicación web no valida correctamente los
datos que introduce el usuario en el interfaz y que se utilizan a posteriori en consultas al repositorio
de datos. Veámoslo mejor con un ejemplo. Supongamos que una aplicación web tiene un sistema
de validación de usuarios por medio de un formulario en el que se debe introducir un código de
usuario y una contraseña. Si el programador no valida correctamente la información introducida y
concatena los datos directamente, construyendo la consulta que se envía al servidor de la base
datos, el atacante puede interactuar directamente con la base de datos, por ejemplo con consultas
SQL, y por tanto dependiendo del entorno, extraer, modificar o borrar información.
En éstos los datos se infieren por el comportamiento que tiene una aplicación web tras la inyección
de un determinado comando, tal y como va explicarnos.
TÉCNICAS DE INYECCIÓN A CIEGAS
Para entender esto mejor vamos a suponer un entorno sencillo. Supongamos que un programador
ha construido una página web en la que se muestra una noticia. Esa noticia está almacenada en una
tabla de una base de datos relacional a la que el programador accede con una sencilla consulta del
tipo: Select * from noticias where id=’+noticia_id+’ El desarrollador utiliza el valor noticia_id
para seleccionar la noticia a mostrar y éste es recogido por un parámetro GET desde el cliente,
algo como: www.servidor.com/mostrar_noticias.php?noticia_id=1 Si la construcción,
supongamos, de la consulta SQL con el valor noticia_id se realiza concatenando una cadena de
texto y sin filtrar correctamente el valor que se envía por noticia_id, entonces tendremos una
vulnerabilidad de SQL Injection.
En particular, vamos a ver cómo proteger, por ejemplo, una clave secreta con la que hemos cifrado
un documento, o la clave privada que usamos para firmar digitalmente.
Para ello existen protocolos que permiten que un secreto se pueda recuperar a partir de
determinadas piezas de información que se han elaborado previamente, se conocen como
protocolos de compartición o de reparto de secretos.
En inglés estos protocolos se llaman secret sharing, es decir “compartición de secretos”, pero no
se trata de compartir o repartir un secreto con otros, sino de dividir el secreto en partes de modo
que éstas te permitan recuperarlo más tarde.
Supongamos que tengo escrita mi clave secreta en un papel. Lo que me dices es que tengo que
romper ese papel en varios trozos, de modo que luego seré capaz de volver a obtener la clave con
sólo pegar los trozos en los que rompí el papel original. Pues si es así, no me parece una idea muy
brillante.
Una de las formas más sencillas para llevar a cabo un protocolo de reparto de secretos usa como
herramienta matemática los polinomios. Ojo, que no es la única forma de hacerlo, hay más, pero
son algo más complicadas.
En primer lugar hay que recordar que un polinomio puede utilizarse para representar una curva
mediante los puntos que verifiquen dicho polinomio y que un polinomio de un grado fijado queda
completamente determinado si se conocen los valores que ese polinomio toma en tantos puntos
como uno más del valor de su grado.
Recuerda que dos puntos determinan una única recta, es decir, un polinomio de grado 1; tres puntos
una única parábola, que es un polinomio de grado 2, etc. De este modo que si se conocen los
valores de un polinomio para determinados puntos, se puede determinar el polinomio que pasa por
esos puntos y cuyo grado es uno menos del número de puntos conocido. El proceso para determinar
el polinomio a partir de los puntos se conoce como método de interpolación de Lagrange.
No debes olvidarte de destruir el papel en el que tenías escrito tu número secreto o borrar el fichero
donde lo habías guardado. Por cierto, también deberías eliminar cualquier rastro del polinomio
para que nadie pueda encontrarlo y ver tu número secreto en él.
ORÍGENES DE SSL
El Protocolo SSL (Secure Sockets Layer) es un protocolo de seguridad que se utiliza para
garantizar la seguridad de la información transmitida a través de internet. SSL se utiliza para
proteger transacciones en línea, como la información de las tarjetas de crédito utilizadas en las
compras en línea, el inicio de sesión en los sitios web y la transmisión de información confidencial.
SSL funciona mediante la creación de un canal de comunicación seguro entre el servidor y el
cliente que utilizan una clave de cifrado compartida. La clave de cifrado es un código secreto que
se utiliza para cifrar y descifrar la información que se transmite a través de internet.
El protocolo SSL ha servido de base para desarrollar el protocolo TLS (Transport Layer Security),
actualmente en su versión 1.2 (o también conocido como SSL 3.3) recogido en la norma RFC
5246. Conceptualmente SSL y TLS son parecidos, únicamente TLS mejora el SSL “clásico” en
algunos aspectos como puede ser la protección frente a nuevos ataques, proporcionar nuevos
algoritmos criptográficos, evitar que se pueda forzar a utilizar versiones del protocolo más
vulnerables, etc.
Primero, negociar entre cliente y servidor los algoritmos que se utilizarán en la comunicación. Por
ejemplo, algunos de los algoritmos criptográficos que se utilizan para cifrar, intercambiar claves y
firmar son: 3DES, IDEA, AES, RSA, Diffie‐Hellman, DSA, SHA‐2, etc.
tercero, el cifrado del tráfico basado en criptografía simétrica. Se genera una clave de sesión para
la comunicación en función de los parámetros negociados. Esta clave facilitará el cifrado de los
datos.
APLICACIONES DEL PROTOCOLO SSL. COMERCIO ELECTRÓNICO Y VPNS
La mayoría de las instituciones financieras defiende su uso: Visa, MasterCard, American Express,
etc. Hoy día es difícil pensar en comunicaciones seguras en Internet sin el uso del protocolo SSL,
los certificados digitales y las infraestructuras de clave pública. Esto es manifiesto en la
securización del tráfico web, https en lugar de http.
SSL también puede ser usado para tunelizar una red completa y crear una red privada virtual
(VPN). Esto se puede realizar por ejemplo con la herramienta de software libre OpenVPN, que
ofrece conectividad punto‐a‐punto con validación jerárquica de usuarios y host conectados
remotamente, entre otras bondades. También es común su uso para proporcionar autenticación y
cifrado en tráfico de voz IP (VoIp), es decir, transmisión de voz en Internet mediante el protocolo
de red IP.
SSL es inherentemente seguro pues los protocolos que se utilizan tienen un cuerpo teórico fuerte
y maduro. Pero incluso así hay aún muchas cosas que pueden salir mal. Por un lado, está la
complejidad que, como sabemos, atenta contra la usabilidad. Además, las implementaciones
pueden tener fallos en la forma en que han sido programadas.
SSL es seguro en su diseño teórico. Pero esto es una condición necesaria, aunque no suficiente.
Hoy día el uso de este protocolo es vital en el comercio electrónico entre clientes (usuarios) y
proveedores de productos. Es común su uso en transacciones cuando compramos un libro por
Internet o la banca online. Aunque SSL tiene otros usos como vimos en la lección anterior, es
posible que sea más famoso por su uso en la Web. Su uso adecuado permitirá minimizar ataques,
algunos clásicos como ataques de hombre en el medio contra la información intercambiada, así
como minimizará ataques de suplantación en el acceso a nuestras redes sociales favoritas.
Los fallos de programación juegan malas pasadas muchas veces. Uno de los ejemplos más famosos
de ataque a SSL fue la vulnerabilidad anunciada en Mayo de 2008. El investigador argentino
Luciano Bello descubrió que se habían implementado incorrectamente funciones aleatorias que se
utilizaban en OpenSSL/Debian. Esto producía material “aleatorio” predecible que facilitaba
invertir los procesos criptográficos, y como consecuencia de ello certificados X.509, claves SSH
e incluso material cifrado se vieron expuestos.
11.ANÁLISIS Y GESTIÓN DE
RIESGOS
El análisis de riesgos es una parte importante del proceso de planificación y toma de decisiones de
una organización. Ayuda a la organización a comprender los riesgos que enfrenta y a determinar
la probabilidad y el impacto de cada riesgo. También ayuda a la organización a identificar las
causas subyacentes de cada riesgo, lo que puede ayudar a abordar el problema de manera más
efectiva.
El análisis de riesgos se utiliza para identificar y evaluar los riesgos potenciales que enfrenta una
organización o proyecto. Se trata de un proceso sistemático que implica identificar los riesgos,
evaluar su probabilidad de ocurrencia y su impacto, y luego priorizarlos en función de su
probabilidad e impacto.
Típicamente tienes 4 formas de afrontar los riesgos. La primera es evitar la situación, la segunda
mitigar el peligro, la tercera pasárselo a otro y la cuarta aceptar lo que hay.
La primera medida es preguntarnos si necesitamos todo lo que tenemos. Por ejemplo, poner un
servidor Web público en nuestro servidor de bases de datos puede ser una forma de dar un servicio
espectacular a nuestros clientes, pero también abre la puerta a que haya una fuga o un robo de
información: se lo estamos poniendo fácil al ladrón. Podemos separar el servidor de producción
del de acceso público y así el escenario de riesgo es otro.
La segunda medida es mitigar el impacto, mitigar el riesgo o ambos. El riesgo lo mitigas con
medidas preventivas. Por ejemplo, cifrando el disco duro reduces las oportunidades de que la
información acabe en malas manos si pierdes el portátil en un taxi. El impacto se reduce con
medidas reactivas o de recuperación. Por ejemplo, si tienes copias de seguridad, no impides que
se pierda un fichero o que se averíe el servidor de bases de datos, pero sabes que te recuperas
rápidamente y sigues trabajando.
RECOMENDACIONES. METODOLOGÍAS
Los análisis pueden ser de detalle, pero no suelen serlo. Por ejemplo, supongamos que montamos
un sistema con recuperación de sesiones en un equipo alternativo si falla el principal.
Técnicamente es un montaje complejo; pero desde el punto de vista de seguridad se simplifica
muchísimo: la confidencialidad y la integridad de la información debe mantenerse igual en todos
los equipos. Y la disponibilidad se limita a imponer un tiempo máximo de interrupción del servicio.
12.SEGURIDAD EN REDES WI‐FI
la seguridad de las redes inalámbricas, o por simplificar, redes Wi‐Fi, basadas en las tecnologías
802.11, ya que son utilizadas por millones de personas en todo el mundo a diario dada la facilidad
de conexión, flexibilidad y movilidad que ofrecen. He oído que las redes inalámbricas que usamos
para conectarnos, por ejemplo, a la red de casa, de nuestra empresa o a Internet desde nuestros
ordenadores portátiles o dispositivos móviles, como el teléfono o tableta, son inseguras.
La principal diferencia entre las redes inalámbricas y las redes cableadas, como Ethernet, está en
el acceso físico a la red. En las redes cableadas tradicionales, para disponer de acceso a la red o a
las comunicaciones que viajan por ella, es necesario conectarse a la misma a través de una toma
de red o punto de conexión físico.
Los ataques de negación de servicio (DoS, Denial of Service) son los más difícilmente evitables
por cómo funcionan las tecnologías inalámbricas, ya que alguien puede generar suficiente “ruido”
en la frecuencia empleada por la red Wi‐Fi y hacer imposible ningún tipo de comunicación
inalámbrica, afectando a la disponibilidad de la red. Este ataque es especialmente relevante en
entornos críticos, como redes Wi‐Fi de monitorización en hospitales o infraestructuras críticas.
A la hora de configurar una red Wi‐Fi hay dos elementos de seguridad a tener en cuenta, el cifrado
de las comunicaciones y la autentificación o control de acceso a la red. Por un lado, para evitar
que nadie pueda capturar las comunicaciones y acceder a su contenido, es necesario cifrarlas. Las
tecnologías que mencionas permiten cifrar las comunicaciones, pero algunas son inseguras. Por
otro lado, para evitar que alguien pueda acceder a la red de forma no autorizada, es necesario
disponer de mecanismos de autentificación robustos que permitan identificar quién puede
conectarse a la red.
Las redes Wi‐Fi personales deberían ser configuradas con WPA2 (Wireless Protected Access 2),
en su variante Personal o PSK (Pre‐Shared Key), una opción segura si se emplean contraseñas
suficientemente largas (más de 20 caracteres) y difícilmente adivinables, que deben configurarse
tanto en los clientes como en la red Wi‐Fi. WPA2 ofrece mecanismos de cifrado y de
autentificación.
Todos los mecanismos de seguridad adicionales que mencionas permiten incrementar ligeramente
la seguridad de la red Wi‐Fi; sin embargo, presentan debilidades y no evitarán que un atacante con
los conocimientos necesarios pueda evitarlos. En algunos casos, además, su implantación es
compleja, como por ejemplo la gestión de la dirección MAC de todos los clientes Wi‐Fi de una
empresa que dispone de miles de dispositivos cliente. En otros, su utilización puede ser incluso
reducir el nivel de seguridad del entorno Wi‐Fi, como la ocultación del nombre de la red Wi‐Fi, al
tener implicaciones en los clientes.
Las redes Wi‐Fi pueden ser configuradas en la actualidad de forma mucho más segura que en el
pasado, los atacantes han centrado sus actividades también en los clientes Wi‐Fi, el eslabón más
débil de la cadena. Sólo por el hecho de tener un interfaz Wi‐Fi activo en un dispositivo móvil
alguien podría comunicarse con él y atacarlo.
El objetivo de un ataque cuando ni siquiera el dispositivo está conectado en una red Wi‐Fi es el
controlador de la tarjeta Wi‐Fi y el sistema operativo. Por este motivo se recomienda siempre tener
tanto el sistema operativo como, específicamente, los controladores Wi‐Fi de todos los dispositivos
actualizados en todo momento.
13.SEGURIDAD EN DNS
El sistema de nombres de dominio (DNS) es un sistema utilizado en Internet para traducir los
nombres de dominio en direcciones IP numéricas. Los nombres de dominio son fácilmente
recordables y utilizados por las personas, mientras que las direcciones IP son necesarias para la
comunicación entre los dispositivos conectados a Internet.
El DNS es un sistema jerárquico y distribuido compuesto por servidores DNS en todo el mundo.
Cuando se introduce un nombre de dominio en un navegador web, por ejemplo, el navegador envía
una solicitud de consulta DNS a un servidor DNS local. Si ese servidor DNS no tiene la
información solicitada, enviará la consulta a un servidor DNS de nivel superior. Este proceso
continúa hasta que se encuentra el servidor DNS que tiene la información solicitada y devuelve la
dirección IP correspondiente.
• Pharming
• DNS caché poisoning
• DNS ID Spoofing con Sniffing
14.FUNCIONES
UNIDIRECCIONALES Y HASH
FUNCIONES UNIDIRECCIONALES
los algoritmos criptográficos se basan en procedimientos que son fáciles de calcular en una
dirección, pero muy difíciles de invertir si no se conoce una trampa
El emisor puede generar un texto cifrado a partir de un texto en claro porque conoce la clave de
cifrado, mientras que un atacante no puede invertir el proceso fácilmente y recuperar el texto en
claro o la clave partiendo sólo del texto cifrado.
Este paradigma de “fácil de calcular difícil invertir” es tan común en criptografía que las funciones
que tienen esta propiedad son denominadas funciones unidireccionales o de una sola dirección.
FUNCIONES HASH
Las funciones hash son algoritmos criptográficos que transforman datos de entrada de cualquier
tamaño en una salida de longitud fija. Estas funciones son utilizadas en la criptografía y en otros
campos de la informática para garantizar la integridad de los datos y para proporcionar una forma
segura de almacenar contraseñas y otros datos sensibles.
La función hash toma los datos de entrada y los procesa mediante un algoritmo matemático para
generar una salida de longitud fija, también conocida como hash o valor de resumen. El valor de
salida es único para cada conjunto de datos de entrada y es difícil, si no imposible, de predecir a
partir de la salida.
Sin embargo, hay una gran diferencia entre funciones hash (unidireccionales) y funciones de
cifrado. El objetivo de las primeras no es proteger un secreto o la confidencialidad. Además, lo
habitual es que las funciones hash no necesiten del uso de claves secretas. Esta es una de las
características que hacen que su diseño sea más difícil. No obstante, sí comparten la filosofía de
que los algoritmos actuales son públicos y por tanto el atacante intentará vencer al algoritmo por
este hecho.