INSTITUTO TECNOLÓGICO DE IGUALA
UNIDAD: 4
SEGURIDAD EN SERVICIOS DE
INTERNET
ASIGNATURA:
SEGURIDAD INFORMÁTICA
NOMBRE DEL DOCENTE:
M.C
VÍCTOR MANUEL JACOBO ADÁN
CARRERA: INGENIERÍA EN SISTEMAS COMPUTACIONALES.
SEMESTRE: 6 GRUPO:
“A”
NOMBRE DE
LOS ALUMNOS:
GONZALEZ ENCISO GERADO
LÁZARO DELGADO ABEL JAFET
PINEDA JAIMES EFRAIN
SALINAS
MENDOZA EVER
SOTELO BASILIO MIGUEL
ANGEL
Introducción:
La seguridad combina varias
disciplinas y determina a menudo si una aplicación Web tiene éxito. Una
aplicación Web segura identifica de forma precisa a los usuarios por medio de
la autenticación, ayuda a garantizar que esos usuarios sólo tienen acceso al
contenido que necesitan mediante una autorización, contribuye a proteger los
datos confidenciales por medio de la comunicación y el almacenamiento cifrados,
y sigue los procedimientos de seguridad recomendados en la escritura de código
con el fin de evitar la creación de riesgos para la seguridad en la propia
lógica de la aplicación.
Cuando hablamos de seguridad
de la información estamos indicando que dicha información tiene una relevancia
especial en un contexto determinado y que, por tanto, hay que proteger.
La Seguridad de la
Información se puede definir como conjunto de medidas técnicas, organizativas y
legales que permiten a la organización asegurar la confidencialidad, integridad
y disponibilidad de su sistema de información.
Los sistemas informáticos
permiten la digitalización de todo este volumen de información reduciendo el
espacio ocupado, pero, sobre todo, facilitando su análisis y procesado. Se gana
en espacio, acceso, rapidez en el procesado de dicha información y mejoras en
la presentación de dicha información.
Pero aparecen otros
problemas ligados a esas facilidades. Si es más fácil transportar la
información también hay más posibilidades de que desaparezca por el camino. Si
es más fácil acceder a ella también es más fácil modificar su contenido, etc.
Desde la aparición de los
grandes sistemas aislados hasta nuestros días, en los que el trabajo en red es
lo habitual, los problemas derivados de la seguridad de la información han ido
también cambiando, evolucionando, pero están ahí y las soluciones han tenido
que ir adaptándose a los nuevos requerimientos técnicos. Aumenta la
sofisticación en el ataque y ello aumenta la complejidad de la solución, pero
la esencia es la misma.
4.1 SEGURIDAD EN LA WEB
En la actualidad el crecimiento de
internet ha impactado directamente en la seguridad de la información manejada
cotidianamente. Sitios de comercio electrónico, servicios, bancos e incluso
redes sociales contienen información sensible que en la mayoría de los casos
resulta ser muy importante.
Se puede decir que uno de los puntos
más críticos de la seguridad en Internet son las herramientas que interactúan
de forma directa con los usuarios, en este caso los servidores web. Es común
escuchar sobre fallas en los sistemas de protección de los servidores más
frecuentemente utilizados, por ejemplo, Apache, NGINX, IIS, etc. (Build
With, 2016) O en los lenguajes de programación en que son escritas las
aplicaciones. Sin embargo, la mayoría de los problemas detectados en servicios
web no son provocados por fallas de ninguna de estas partes, si no que los
problemas se generan por malas prácticas de parte de los programadores.
Debemos entender que programar
aplicaciones web seguras no es una tarea fácil, ya que requiere por parte del
programador, no sólo cumplir con el objetivo funcional básico de la aplicación,
sino una concepción general de los riesgos que puede correr la información
procesada por el sistema.
Estos tres aspectos a su vez dependen
de otros tres elementos principales que engloban prácticamente todos los
distintos controles que se pueden establecer en un sistema informático:
Autenticación: los clientes de nuestras
aplicaciones o servicios deben ser identificados de forma única, sean usuarios
finales, otros servicios o computadoras externas.
Autorización: no solo es
necesario saber quiénes acceden a nuestros activos, también es necesario establecer
que es lo que pueden hacer con ellos. Un nivel de autorización dado determina qué
tipo de operaciones o transacciones puede efectuar un cliente dado sobre un
recurso dado.
Registro y
Auditoria: luego
de efectuada una operación, es importante que esta sea registrada
adecuadamente, en particular es esencial si queremos evitar el repudio de
transacciones efectuada por un cliente.
Amenazas
comunes
Los múltiples ataques externos a los
que puede estar expuesto un sitio web son usualmente clasificados en 6
categorías principales. Indicaremos cada una y los tipos de ataques más típicos
que incluyen, y a continuación describiremos en mayor detalle cuatro de ellos.
Autenticación: son las que
explotan el método de validación de la identidad de un usuario, servicio o
aplicación.
·
Fuerza
Bruta
·
Autenticación
insuficiente
·
Débil
validación de recuperación de Password
Autorización: explotan el
mecanismo de un sitio web de determinar si un usuario o servicio tiene los
permisos necesarios para ejecutar una acción.
·
Predicción
de Credenciales o Sesión
·
Autorización
insuficiente
·
Expiración
de Sesión insuficiente
·
Fijado
de Sesión
Ataques
Lógicos: explotan
la lógica de la aplicación (el flujo procedural utilizado por la aplicación
para efectuar cierta acción.
·
Abuso
de funcionalidad
·
Denial
of Service
·
Insuficiente
Anti-Automatismo
·
Insuficiente
validación de procesos
·
Manipulación
de entradas (URL, campos).
Ataques al
cliente: atacan
al usuario de la aplicación.
·
Content
Spoofing
·
Cross-Site
Scripting
Ejecución
de comandos: ataques
diseñados para ejecutar comandos remotos en el servidor.
·
Buffer
Overflow
·
Format
String
·
LDAP
Injection
·
Ejecucuón
de Comandos (OS Commanding)
·
SQL
Injection
·
SSI
Injection
·
XPath
Injection
·
Robo de Información: ataques que apuntan a
adquirir información específica sobre el sitio web.
·
Indexado
de directorio
·
Caminos
transversales
·
Predicción
de ubicación de recursos
·
Escape
de información
·
Los
ataques que vamos a describir son SQL Injection, Manipulación de entradas,
Ejecución de Comandos, y Cross Site Scripting
4.1.1 Asignación Segura de Nombres de Dominio
Que es un nombre de dominio
Un Nombre
de Dominio es, básicamente, una dirección de Internet (ej.:
www.midominio.com). Si adquieres un Nombre de Dominio, obtienes la exclusiva
para usar dicha dirección en todo el mundo.
Un dominio o nombre
de dominio es el nombre que identifica un sitio web. Cada dominio
tiene que ser único en internet. Por ejemplo,
"www.masadelante.com" es el nombre de dominio de la página web
de Mas adelante. Un solo servidor web puede servir múltiples páginas
web de múltiples dominios, pero un dominio sólo puede apuntar a un servidor.
Un
dominio se compone normalmente de tres partes: en www.masadelante.com, las tres
uves dobles (www), el nombre de la organización (más adelante) y el tipo de
organización (com).
Los
tipos de organización más comunes son .COM, .NET, .MIL, y .ORG, que se refieren
a comercial, network, militar, y organización (originalmente sin ánimo de
lucro, aunque ahora cualquier persona puede registrar un dominio .org).
Puesto
que internet se basa en direcciones IP, y no en nombres de dominio,
cada servidor web requiere de un servidor de nombres de dominio (DNS) para
traducir los nombres de los dominios a direcciones IP. Cada dominio tiene un
servidor de nombre de dominio primario y otro secundario.
Durante el período que dure la contratación, nadie más podrá tener una página con tu Nombre de Dominio. Tener un Nombre de Dominio, te proporciona un nombre fácil de recordar (y además elegido por ti) para denominar a tu web (Ej.: www.juanperez.com es más fácil de retener en la memoria que www.servicio_de_hosting.com/juanperez).
Además, no supone una gran inversión económica y proporciona una mejor imagen entre tus visitantes y de cara a posibles intercambios comerciales o de enlaces.
Los
buscadores también colocan en mejor posición en sus listas de
resultados a una página con Nombre de Dominio propio, lo cual revierte en
una mayor audiencia.
Definición
de Nombre de Dominio
Cuando accedemos a un lugar en Internet
normalmente escribimos una dirección en la parte superior del navegador, sea
este Explorer, Netscape o cualquier otro. A dicha dirección se le denomina
“nombre de dominio” y esconde tras de sí unos números que son denominados
protocolos de internet (IP), los que cumplen una función parecida a la de un
número telefónico. Un nombre de dominio es, entonces, una manera de asignar un
nombre amigable a una localización en Internet proporcionándole una
identificación clara. Los nombres de dominios son usados, además, para acceder
a la web, al correo electrónico y, en general, a todos los servicios de
Internet. Los nombres de dominio en Internet han adquirido un papel
fundamental, ya que su registro significa el poder hacer uso de los mismos en
todo el mundo. El Sistema de Nombres de Dominio (DNS) traslada los nombres de
Internet a los números del Protocolo Internet, necesarios para la transmisión
de información a través de la red. Estos pueden tener una extensión que identifique
la actividad a que se dedica el poseedor de un nombre de dominio, el país de
origen u otros.
Clases
de Nombres de Dominio
En la actualidad existen dos tipos de
dominios de primer nivel plenamente operativos; los “Dominios genéricos”
que son formados por tres letras y están abiertos al público, como son: .com,
.org y .net; y los “Dominios territoriales” que son gestionados por cada uno de
los países del mundo y tienen una designación de dos letras, por ejemplo:
".es" para España, “.fr" para Francia, “.pe" para el Perú,
etc. Considerando la saturación de nombres existente en los dominios genéricos
tradicionales y la conveniencia de liberalizar el registro de nombres en
Internet, se ha propuesto la creación de siete nuevos dominios genéricos.
Importancia
de registrar los nombres
Sin embargo, estos “nombres de dominio” están
ocasionando conflictos comerciales alrededor del mundo, por lo que en el caso
de tener un nombre de entidad, nombre comercial, marca o nombres de productos
es aconsejable registrarlos inmediatamente y, muy especialmente, si se tiene
previsto utilizar Internet como cauce para realizar sus actividades
comerciales, pues los nombres de dominios se asignan de manera que el primero
en solicitarlos es el primero que los registra. Es importante considerar que en
el caso de que alguien registre anticipadamente un nombre coincidente con el
que usted pretende registrar, será necesario abrir un proceso que establezca la
adjudicación definitiva del nombre y, mientras tanto, la asignación quedará en
suspenso con todos los inconvenientes que este hecho pueda reportar. En
general, cualquier persona, institución o empresa puede registrar un nombre si
se cumplen ciertos requisitos legales y técnicos que pueden variar en los
diferentes países. Inicialmente, es aconsejable registrar el nombre en los
dominios geográficos en los que realice su actividad principal. Es de destacar
que este proceso no siempre es fácil dado que algunos países tienen unas reglas
muy estrictas sobre cómo deben registrarse cada tipo de organización. También,
es importante registrar el nombre en alguno de los dominios genéricos
tradicionales (.com, .org y .net) y muy especialmente en el primero, pues se
trata del más ampliamente utilizado y con relativa frecuencia se dan casos en
que alguien se ha adelantado a registrarlo y lo utilizase para otros fines. Los
problemas relativos a la Jurisdicción competente para resolver las
controversias que se produzcan en torno a los Nombres de Dominio y, en
especial, en torno a los dominios genéricos internacionales, suponen, uno de
principales interrogantes al que necesario dar respuesta.
Legislación
Comparada sobre los dominios
En Estados Unidos hay numerosos precedentes
sobre conflictos entre dominios y marcas. Desde el momento en que Internet
empezó a ser una red comercial, numerosos especuladores comenzaron a registrar
nombres de empresa y marcas famosas para posteriormente venderlas a los
titulares de las mismas en el mundo real. Para evitar este tipo de conductas el
organismo encargado del registro de los dominios genéricos estableció un
procedimiento para aplicar en dichos casos. En muchos países han ido surgiendo
conflictos entre titulares de dominios y marcas, por lo que en algunos países
como Alemania o Reino Unido ya tienen disposiciones legales que protegen a los
titulares de las marcas registradas. En Estados Unidos se han producido
numerosas controversias con los nombres de dominio. Muchas de ellas han acabado
en los Tribunales de Justicia. En Inglaterra también han surgido controversias,
al igual que en Francia y Alemania, dónde ya se han pronunciado los órganos
judiciales, incluso con anterioridad a la ya citada Sentencia Británica; y en
breve estos problemas empezarán a ser analizados por los Tribunales de Justicia
españoles.
La
necesidad de una regulación jurídica del registro de nombres de dominio
No se pretende con este razonamiento una
regulación exhaustiva de Internet (lo cual desde luego resulta impensable),
pero sí imponer criterios jurídicos en las facetas de este nuevo medio que
vayan exigiéndolo. El caso de los nombres de dominio, a todas luces, es una de
éstas. Desde una perspectiva privada, las disputas que han existido en EEUU
ponen de manifiesto que derechos reconocidos tanto por la legislación de marcas,
como los de competencia desleal, pueden verse, como de hecho así ha acontecido,
seriamente afectados por los nombres de dominio. Desde una perspectiva pública,
son numerosas las cuestiones que habrán de ser debatidas: ¿Es realmente un
servicio público la asignación de nombres de dominio? ¿Cómo se efectuará el
proceso de elección de nuevos registradores en el mundo, y en Europa? El acto
de denegación de la inscripción de un nombre de dominio, o el de su registro,
¿es un acto administrativo y, como tal, susceptible de recurso ante la
jurisdicción correspondiente? ¿Cual es la verdadera naturaleza de las normas de
asignación de nombres de dominio? Y, consecuencia de todo lo anterior, ¿cual es
la jurisdicción competente en el caso de que esta actividad produjere daños a
los particulares, o en el caso de impugnación No se pretende con este
razonamiento una regulación exhaustiva de Internet (lo cual desde luego resulta
impensable), pero sí imponer criterios jurídicos en las facetas de este nuevo
medio que vayan exigiéndolo. El caso de los nombres de dominio, a todas luces,
es una de éstas. Desde una perspectiva privada, las disputas que han existido
en EEUU ponen de manifiesto que derechos reconocidos tanto por la legislación de
marcas, como los de competencia desleal, pueden verse, como de hecho así ha
acontecido, seriamente afectados por los nombres de dominio. Desde una
perspectiva pública, son numerosas las cuestiones que habrán de ser debatidas:
¿Es realmente un servicio público la asignación de nombres de dominio? ¿Cómo se
efectuará el proceso de elección de nuevos registradores en el mundo, y en
Europa? El acto de denegación de la inscripción de un nombre de dominio, o el
de su registro, ¿es un acto administrativo y, como tal, susceptible de recurso
ante la jurisdicción correspondiente? ¿Cual es la verdadera naturaleza de las
normas de asignación de nombres de dominio? Y, consecuencia de todo lo
anterior, ¿cual es la jurisdicción competente en el caso de que esta actividad produjere
daños a los particulares, o en el caso de impugnación La Propuesta
Los
dominios surgen como una herramienta para simplificar el acceso a los
ordenadores que componen la Red. Gracias al sistema de nombres de dominio, se
hace posible la identificación de los ordenadores en Internet. Técnicamente, un
dominio es una forma sencilla de localizar un ordenador en Internet, pero sobre
todo es la garantía de nuestra identidad. Al igual que en el mundo real tenemos
diferentes formas de identificarnos, como puede ser el DNI, en Internet el
dominio constituye el principal medio de identificación.
El
dominio actúa como dirección de la empresa. Los dominios tienen una doble
naturaleza: como dirección para localizar un ordenador en Internet y como
marca, para identificar una empresa sus productos y servicios. Uno de los
aspectos más importantes de los dominios es que son únicos. Es imposible que
dos personas u organizaciones tengan simultáneamente la misma dirección, por lo
que la evolución de Internet desde sus planteamientos científicos y académicos
hacia una Red comercial hace que esta segunda naturaleza haya adquirido una
mayor importancia para competir en mercados globales.
El
dominio ayuda a crear y promover la identidad de la empresa en Internet.
Establece un punto de contacto con millones de usuarios y personaliza a la
empresa frente a sus competidores.
4.1.2 CAPA DE SOCKETS SEGUROS
SSL (Capa de sockets
seguros)
Secure Sockets Layer (SSL;
en español «capa de conexión segura») y su sucesor Transport Layer
Security (TLS; en español «seguridad de la capa de transporte»)son protocolos
criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.
SSL fue desarrollado
inicialmente para asegurar las transacciones financieras en la Web, pero ahora
se utiliza mucho para asegurar transacciones de Internet de todo tipo.
SSL resuelve el problema del
"problema compartido" de WEP utilizando una versión ampliada de
criptografía de clave pública (vea la sección anterior "Cifrar
contenido"). En lugar de requerir que la gente se ponga de acuerdo sobre
un secreto (la clave de cifrado en WEP) por adelantado o que haya disponibles
claves públicas, un navegador y un servidor equipados con SSL utilizan una
tercera parte fiable, conocida como autoridad de certificados, para aceptar la
identidad del otro.
Generalmente, SSL se utiliza
para interacciones basadas en sesiones cortas, como enviar información de
tarjeta de crédito a través de un formulario Web. Pero puede usarse para cifrar
sesiones de correo electrónico (enviar y recibir), incluyendo todo el contenido
del correo electrónico que va del cliente al servidor, FTP (en una forma
generalmente conocida como FTP Seguro) y muchos otros tipos de transacciones.
SSL es válido para cualquier servicio de
Internet que intercambia
datos en fragmentos en lugar de hacerlo como información fluida. (Por ejemplo,
se puede usar SSL para la mensajería instantánea pero no para reproducir música
RealAudio.)
Como SSL es verificado por
una tercera parte, no tenemos que utilizar la confianza (ciega o confirmada)
como sucede en SSH.
SSL se utiliza mucho ahora
porque las patentes subyacentes han caducado. Podemos encontrar SSL con nombres
como EAP-TLS (Protocolo de autenticación encapsulada-Seguridad de capa de
transporte, un tipo de PPP al que se añade seguridad), TLS/SSL u otras
variaciones, pero todo es más o menos lo mismo.
Hola Bob.
El atacante no puede leer el
tráfico cifrado con SSL.
A diferencia de SSH, en el
que podemos conectar dos puertos arbitrarios a través de un túnel (puerto a
puerto), SSL funciona de programa a programa, con el cliente cifrando los datos
y el servidor descifrándolos.
Historia y desarrollo
Desarrollado por Netscape, SSL versión 3.0 se publicó en 1996, que más tarde sirvió como base para desarrollar TLS versión 1.0, un estándar protocolo IETF definido por primera vez en el RFC 2246. Visa, MasterCard, American Express y muchas de las principales instituciones financieras han aprobado SSL para el comercio sobre Internet.
SSL opera de una manera modular: sus autores lo diseñaron extensible, con soporte para compatibilidad hacia delante y hacia atrás, y negociación entre las partes (peer-to-peer).
Primeras claves débiles
Algunas primeras implementaciones de SSL podían usar claves simétricas con un máximo de sólo 40-bit debido a las restricciones del gobierno de los Estados Unidos sobre la exportación de tecnología criptográfica. Dicho gobierno impuso una clave de 40-bit lo suficientemente pequeña para ser “rota” por un ataque de fuerza bruta por las agencias de seguridad nacional que desearan leer el tráfico cifrado, a la vez que representaban un obstáculo para atacantes con menos medios. Una limitación similar se aplicó a Lotus Notes en versiones para la exportación. Después de varios años de controversia pública, una serie de pleitos, y el reconocimiento del gobierno de Estados Unidos de cambios en la disponibilidad en el mercado de 'mejores' productos criptográficos producidos fuera del país, las autoridades relajaron algunos aspectos de las restricciones de exportación. La limitación de claves de 40-bit en su mayoría ha desaparecido. Las implementaciones modernas usan claves de 128-bit (o más) para claves de cifrado simétricas.
Descripción
SSL
proporciona Autenticación y privacidad de la
información entre extremos sobre Internet mediante el uso
de criptografía. Habitualmente, sólo el servidor es autenticado (es decir,
se garantiza su identidad) mientras que el cliente se mantiene sin autenticar.
SSL
implica una serie de fases básicas:
·
Negociar entre las partes el
algoritmo que se usará en la comunicación
·
Intercambio de calves públicas y Autenticación basadas
en certificados
·
Cifrado del tráfico basado en cifrado
simétrico
Durante la primera fase, el
cliente y el servidor negocian qué algoritmos criptográficos se van a usar. Las
implementaciones actuales proporcionan las siguientes opciones:
·
Para criptografía de clave
pública: RSA, Diffie-Hellman, DSA (Digital Signature
Algorithm) o Fortezza;
·
Para cifrado
simétrico: RC2, RC4, IDEA (International Data Encryption
Algorithm), DES (Data Encryption Standard), Triple
DES y AES (Advanced Encryption Standard);
·
Con funciones hash: MD5 o de
la familia SHA.
Funcionamiento
El protocolo SSL intercambia
registros; opcionalmente, cada registro puede ser comprimido, cifrado y empaquetado
con un código de Autenticación del mensaje (MAC). Cada
registro tiene un campo de content_type que especifica el protocolo
de nivel superior que se está usando.
Cuando se inicia la
conexión, el nivel de registro encapsula otro protocolo, el protocolo handshake,
que tiene el content_type 22.
El
cliente envía y recibe varias estructuras handshake:
·
Envía un mensaje ClientHello especificando
una lista de conjunto de cifrados, métodos de compresión y la versión del
protocolo SSL más alta permitida. Éste también envía bytes aleatorios que serán
usados más tarde (llamados Challenge de Cliente o Reto). Además
puede incluir el identificador de la sesión.
·
Después, recibe un registro ServerHello,
en el que el servidor elige los parámetros de conexión a partir de las opciones
ofertadas con anterioridad por el cliente.
·
Cuando los parámetros de la conexión son
conocidos, cliente y servidor intercambian certificados (dependiendo de las
claves públicas de cifrado seleccionadas). Estos certificados son
actualmente X.509, pero hay también un borrador especificando el uso de
certificados basados en OpenPGP.
·
El servidor puede requerir un certificado al
cliente, para que la conexión sea mutuamente autenticada.
·
Cliente y servidor negocian una clave secreta
(simétrica) común llamada master secret, posiblemente usando el resultado
de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta
con una clave pública que es descifrada con la clave privada de cada uno. Todos
los datos de claves restantes son derivados a partir de este master secret (y
los valores aleatorios generados en el cliente y el servidor), que son pasados
a través una función pseudoaleatoria cuidadosamente elegida.
TLS/SSL poseen una variedad
de medidas de seguridad:
·
Numerando todos los registros y usando el
número de secuencia en el MAC.
·
Usando un resumen de mensaje mejorado con una
clave (de forma que solo con dicha clave se pueda comprobar el MAC). Esto se
especifica en el RFC 2104).
·
Protección contra varios ataques conocidos
(incluyendo ataques man-in-the-middle), como los que implican un degradado
del protocolo a versiones previas (por tanto, menos seguras), o conjuntos de
cifrados más débiles.
·
El mensaje que finaliza el protocolo handshake (Finished)
envía un hash de todos los datos intercambiados y vistos por ambas
partes.
·
La función pseudo aleatoria divide los datos
de entrada en 2 mitades y las procesa con algoritmos hash diferentes
( MD5 y SHA), después realiza sobre ellos una
operación XOR. De esta forma se protege a sí mismo de la eventualidad de
que alguno de estos algoritmos se revelen vulnerables en el futuro.
Aplicaciones
SSL se ejecuta en una capa
entre los protocolos de aplicación como HTTP, SMTP, NNTP y
sobre el protocolo de transporte TCP, que forma parte de la familia de
protocolos TCP/IP. Aunque pueda proporcionar seguridad a cualquier
protocolo que use conexiones de confianza (tal como TCP), se usa en la mayoría
de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar
páginas World Wide Web para aplicaciones de comercio
electrónico, utilizando certificados de clave pública para verificar
la identidad de los extremos.
Aunque un número creciente
de productos clientes y servidores pueden proporcionar SSL de forma nativa, muchos
aún no lo permiten. En estos casos, un usuario podría querer usar una
aplicación SSL independiente como Stunnel para proporcionar cifrado.
No obstante, el Internet Engineering Task Force recomendó en 1997 que
los protocolos de aplicación ofrecieran una forma de actualizar a TLS a partir
de una conexión sin cifrado (plaintext), en vez de usar un puerto diferente
para cifrar las comunicaciones – esto evitaría el uso de envolturas (wrappers)
como Stunnel.
SSL también puede ser usado
para tunelizar una red completa y crear una red privada
virtual (VPN), como en el caso de OpenVPN.
4.1.3 HTTP SEGURO
Protocolo seguro de
transferencia de hipertexto, más conocido por sus siglas HTTPS, es
un protocolo de aplicación basado en el protocolo HTTP,
destinado a la transferencia segura de datos de Hipertexto, es decir, es
la versión segura de HTTP.
El sistema HTTPS utiliza un
cifrado basado en SSL/TLS para crear un canal cifrado (cuyo nivel de
cifrado depende del servidor remoto y del navegador utilizado por el cliente)
más apropiado para el tráfico de información sensible que el protocolo HTTP. De
este modo se consigue que la información sensible (usuario y claves de paso
normalmente) no pueda ser usada por un atacante que haya conseguido interceptar
la transferencia de datos de la conexión, ya que lo único que obtendrá será un
flujo de datos cifrados que le resultará imposible de descifrar.
El puerto estándar para
este protocolo es el 443.
Diferencias
con HTTP
En el protocolo HTTP las URLs comienzan
con "http://" y utilizan por omisión el puerto 80, las URLs de
HTTPS comienzan con "https://" y utilizan el puerto 443 por
omisión.
HTTP es inseguro y está
sujeto a ataques man-in-the-middle y eavesdropping que
pueden permitir al atacante obtener acceso a cuentas de un sitio web e
información confidencial. HTTPS está diseñado para resistir esos ataques y ser
más seguro.
Capas
de red
HTTP opera en la capa más
alta del modelo OSI, la capa de aplicación; pero el protocolo de seguridad
opera en una subcapa más baja, cifrando un mensaje HTTP previo a la transmisión
y descifrando un mensaje una vez recibido. Estrictamente hablando, HTTPS no es
un protocolo separado, pero refiere el uso del HTTP ordinario sobre
una Capa de Conexión Segura cifrada Secure Sockets Layer (SSL)
o una conexión con Seguridad de la Capa de Transporte (TLS).
Configuración
del servidor
Para preparar un servidor
web que acepte conexiones HTTPS, el administrador debe crear un certificado
de clave pública para el servidor web. Este certificado debe estar firmado
por una autoridad de certificación para que el navegador web lo acepte. La
autoridad certifica que el titular del certificado es quien dice ser. Los
navegadores web generalmente son distribuidos con los certificados raíz
firmados por la mayoría de las autoridades de certificación por lo que estos
pueden verificar certificados firmados por ellos.
Adquisición
de certificados
Adquirir certificados puede
ser gratuito 3 (generalmente sólo si se paga por otros servicios) o
costar entre US$134 y US$1,5005 por año.
Las organizaciones pueden
también ser su propia autoridad de certificación, particularmente si son
responsables de establecer acceso a navegadores de sus propios sitios (por
ejemplo, sitios en una compañía intranet, o universidades mayores). Estas
pueden fácilmente agregar copias de su propio certificado firmado a los
certificados de confianza distribuidos con el navegador.
También existen autoridades
de certificación peer-to-peer.
Usar
un control de acceso
El sistema puede también ser
usado para la autenticación de clientes con el objetivo de limitar el acceso a
un servidor web a usuarios autorizados. Para hacer esto el administrador del
sitio típicamente crea un certificado para cada usuario, un certificado que es
guardado dentro de su navegador. Normalmente, este contiene el nombre y la
dirección de correo del usuario autorizado y es revisado automáticamente en
cada reconexión para verificar la identidad del usuario, potencialmente sin que
cada vez tenga que ingresar una contraseña.
En
caso de claves privadas comprometidas
Un certificado puede ser
revocado si este ya ha expirado, por ejemplo cuando el secreto de la llave privada
ha sido comprometido. Los navegadores más nuevos como son Firefox,6 Opera,7
e Internet Explorer sobre Windows Vista 8 implementan
el Protocolo de Estado de Certificado Online (OCSP) para verificar
que ese no es el caso. El navegador envía el número de serie del certificado a
la autoridad de certificación o, es delegado vía OCSP y la autoridad responde,
diciéndole al navegador si debe o no considerar el certificado como válido.9
Adopción
de HTTPS
En febrero de 2017, la
adopción HTTPS fue:
Argentina: 9,77% del total
de dominios.10
España: 5,11% del total de
dominios.11
México: 13.31% del total de
dominios.12
Chile: 18,71% del total de
dominios.13
Colombia: 4,85% del total de
dominios.14
Limitaciones
El nivel de protección
depende de la exactitud de la implementación del navegador web,
el software del servidor y los algoritmos de cifrado actualmente
soportados. Vea la lista en Idea Principal.
También, HTTPS es vulnerable
cuando se aplica a contenido estático de publicación disponible. El sitio
entero puede ser indexado usando una araña web, y la URI del
recurso cifrado puede ser adivinada conociendo solamente el tamaño de la
petición/respuesta. Esto permite a un atacante tener acceso al texto plano
(contenido estático de publicación), y al texto cifrado (La versión
cifrada del contenido estático), permitiendo un ataque criptográfico.
Debido a que SSL opera
bajo HTTP y no tiene conocimiento de protocolos de nivel más alto, los
servidores SSL solo pueden presentar estrictamente un certificado para una
combinación de puerto/IP en particular Esto quiere decir, que en la mayoría de
los casos, no es recomendable usar Hosting virtual name-based con HTTPS.
Existe una solución llamada Server Name Indication (SNI) que envía el
hostname al servidor antes de que la conexión sea cifrada, sin embargo muchos
navegadores antiguos no soportan esta extensión. El soporte para SNI está
disponible desde Firefox 2, Opera 8, e Internet
Explorer 7 sobre Windows Vista.
4.1.4 SEGURIDAD EN CORREO ELECTRÓNICO.
La utilización del correo
electrónico por Internet o por otras redes que no sean de confianza supone
riesgos de seguridad para su sistema, aunque este esté protegido por unos
cortafuegos.
Debe conocer estos riesgos
para garantizar que su política de seguridad indique cómo minimizarlos.
El correo electrónico es
similar a otras formas de comunicación. Es importante ser prudente a la hora de
enviar información confidencial por correo electrónico. El correo electrónico
viaja a través de numerosos sistemas antes de llegar a su destino, por lo que
es posible que alguien lo intercepte y lo lea. Por lo tanto, convendrá que
emplee medidas de seguridad para proteger la confidencialidad del correo
electrónico.
Riesgos
más comunes de la seguridad del correo electrónico
Estos son algunos de los
riesgos asociados al uso del correo electrónico:
La Inundación (tipo
de ataque de denegación de servicio) se produce cuando un sistema queda
sobrecargado con múltiples mensajes de correo electrónico. Para un atacante es
relativamente fácil crear un programa sencillo que envíe millones de mensajes
de correo electrónico (incluso mensajes vacíos) a un único servidor de correo
electrónico para intentar inundarlo. Sin la seguridad correcta, el servidor de
destino puede experimentar una denegación de servicio porque el disco de
almacenamiento del servidor queda lleno de mensajes inútiles. El sistema
también puede dejar de responder porque todos sus recursos están ocupados en
procesar el correo del ataque.
Correo masivo
(spam) (correo basura) es otro tipo de ataque común dirigido al correo electrónico.
Con el aumento del número de empresas que practican el comercio electrónico en
Internet, se ha producido una invasión de mensajes comerciales de correo
electrónico no deseados o no solicitados. Este es el correo basura, que se
envía a una amplia lista de distribución de usuarios de correo electrónico,
llenando el buzón de correo de todos los usuarios.
La Confidencialidad es
un riesgo asociado al envío de correo electrónico a otra persona a través de
Internet. El mensaje de correo electrónico pasa a través de numerosos sistemas
antes de llegar al destinatario. Si el mensaje no está cifrado, cualquier
pirata informático podría hacerse con él y leerlo en cualquier punto de la ruta
de entrega.
Opciones
de seguridad del correo electrónico
Para prevenir los riesgos de
inundaciones y el correo masivo (spam), debe configurar el servidor de correo
electrónico correctamente. La mayoría de las aplicaciones de servidor
proporcionan métodos para combatir este tipo de ataques. Asimismo, puede
colaborar con el proveedor de servicios de Internet (IPS) para asegurarse de
que aporta algún tipo de protección adicional contra estos ataques.
Las medidas de seguridad
adicionales que necesite dependerán del nivel de confidencialidad que desee,
así como de qué características de seguridad ofrezcan sus aplicaciones de
correo electrónico. Por ejemplo, ¿basta con mantener la confidencialidad del
contenido del mensaje de correo electrónico?, ¿o bien desea que sea
confidencial toda la información asociada al correo electrónico (como las
direcciones IP de origen y destino)?
Algunas aplicaciones tienen
características de seguridad integradas que tal vez ofrezcan la protección que
necesita. Por ejemplo, Lotus Notes Domino proporciona varias características de
seguridad integradas, como la capacidad de cifrado de un documento completo o
de campos individuales de un documento.
Para cifrar el correo, Lotus
Notes Domino crea una clave pública y una clave privada exclusivas para cada
usuario. La clave privada se utiliza para cifrar el mensaje, de forma que solo
lo podrán leer aquellos usuarios que tengan su clave pública. Debe enviar la
clave pública a los destinatarios que desee, para que puedan utilizarla para
descifrar la nota cifrada. Si alguien le envía correo cifrado, Lotus Notes Domino
utiliza la clave pública del remitente para descifrar automáticamente la nota.
Puede encontrar más
información sobre el uso de las características de cifrado de Notes en los
archivos de ayuda en línea del programa.
Si desea proporcionar más
confidencialidad para el correo electrónico o para otro tipo de información que
fluya entre las sucursales, clientes remotos o socios comerciales, tiene dos
opciones.
Si SSL está soportado por la
aplicación del servidor de correo electrónico, puede utilizar la capa de
sockets segura (SSL) para crear una sesión de comunicaciones seguras entre el
servidor y los clientes de correo electrónico. SSL también proporciona soporte
a la autenticación opcional del lado del cliente, si la aplicación de cliente
está escrita para este uso. Como la sesión completa está cifrada, SSL también
garantiza la integridad de los datos mientras se estén transmitiendo.
Otra posible opción es
configurar una conexión de red privada virtual (VPN). Puede utilizar el sistema
para configurar diversas conexiones VPN, incluso entre clientes remotos y su
sistema. Cuando se utiliza una conexión VPN, todo el tráfico que fluye entre
los extremos de la comunicación está cifrado, lo que garantiza la
confidencialidad y la integridad de los datos.
4.1.5 MIME SEGURO
S/MIME (Secure /
Multipurpose Internet Mail Extensions, del inglés, Extensiones de
Correo de Internet de Propósitos Múltiples / Seguro) es un estándar para criptografía de clave
pública y firmado de correo electrónico encapsulado
en MIME.
S/MIME fue desarrollado
originalmente por RSA. La especificación original usó la especificación
MIME de IETF recientemente desarrollada con el estándar de facto de
mensaje seguro PKCS #7.
S/MIME provee los siguientes
servicios de seguridad criptográfica para aplicaciones de mensajería
electrónica:
Autenticación, integridad
y no repudio (mediante el uso de firma digital) y
Privacidad y seguridad de
los datos (mediante el uso de cifrado)
S/MIME específica el
tipo application/pkcs7-mime (tipo smime "enveloped-data")
para envoltura de datos (cifrado): la entidad MIME completa a ser envuelta se
cifra y se empaca en un objeto que luego se inserta en una entidad
MIME application/pkcs7-mime.
La funcionalidad S/MIME está
construida en la mayoría de apps de correo electrónico modernos y son capaces
de inter operar entre ellos. Un correo firmado tiene estos encabezados ocultos
(visibles en "Ver código fuente del mensaje")
Content-Type:
multipart/signed; protocol="application/pkcs7-signature";
micalg=sha1; boundary=""
This is a cryptographically
signed message in MIME format.
[Texto del correo]
Content-Type: application/pkcs7-signature;
name="smime.p7s"
Content-Transfer-Encoding:
base64
Content-Disposition:
attachment; filename="smime.p7s"
Content-Description: Firma
criptográfica S/MIME
Correo Cifrado
Content-Type:
application/pkcs7-mime; name="smime.p7m"; smime-type=enveloped-data
Content-Transfer-Encoding:
base64
Content-Disposition:
attachment; filename="smime.p7m"
Content-Description: Mensaje
cifrado S/MIME
[Número y letras aleatorios]
Certificados S/MIME
Antes de que S/MIME pueda
usarse en alguna de las aplicaciones antes mencionadas, se debe obtener e
instalar una clave/certificado individual tanto de la autoridad
certificadora (AC) interna como de una AC pública. Una buena práctica es
usar claves privadas separadas (y certificados asociados) para firma y para
cifrado.
Limitaciones
S/MIME sólo puede funcionar
apropiadamente con aplicaciones y programas instalables de correo electrónico,
servicio de correo electrónico basado en páginas web nunca clasifican mensajes
firmados y puede limitarse a mostrar un email vacío con un adjunto smime.p7s
(el cual contiene realmente el mensaje)
4.1.6 PGP, GPG.
GNU Privacy
Guard (GnuPG o GPG) es una herramienta de cifrado y firmas
digitales desarrollado por Werner Koch, que viene a ser un reemplazo
del PGP (Pretty Good Privacy) pero con la principal diferencia que
es software libre licenciado bajo la GPL. GPG utiliza el
estándar del IETF denominado OpenPGP.
Usos
GPG es estable, calificado
como un software para el uso en producción y es comúnmente incluido en los
sistemas operativos como FreeBSD, OpenBSD, NetBSD y GNU/Linux.
Aunque básicamente el
programa tiene una interfaz textual, actualmente hay varias aplicaciones
gráficas que utilizan recursos de GPG. Por ejemplo, ha sido integrado dentro
de Kmail y Evolution, también hay un plugin llamado Enigmail que
se integra con Mozilla y Thunderbird que trabajan en Windows, GNU/Linux
y otros sistemas operativos. Debido a que los plugins no forman parte del
mecanismo de GPG y no están especificados en los estándares OpenPGP, ni
sus respectivos desarrolladores están vinculados con los proyectos de plugins,
se podría pensar que las ventajas de seguridad de GPG puedan estar
comprometidas o incluso perdiendo su efectividad como resultado de esta falta
de coordinación y apoyo, pero al ser las herramientas de código abierto o
scripts interpretados (como en el caso de los plugins en Thunderbird), se garantiza
un funcionamiento fiable con la herramienta GPG.
GPG también puede ser compilado
en otras plataformas como Mac OS X y Windows. En Mac OS X hay
portada una aplicación libre llamada MacGPG, que ha sido adaptada para usar
el ambiente del usuario y sus definiciones de clases nativas. La compilación
cruzada no es un ejercicio trivial, por lo menos en parte debido a que las
provisiones de seguridad cambian con el sistema operativo y su
adaptación a menudo se vuelve difícil, pero los compiladores de alta calidad
deben producir ejecutables que interactúen correctamente con otras
implementaciones GPG.
Funcionamiento
GPG cifra los mensajes
usando pares de claves individuales asimétricas generadas por los
usuarios. Las claves públicas pueden ser compartidas con otros
usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores
de claves. Siempre deben ser compartidas cuidadosamente para prevenir falsas
identidades por la corrupción de las claves públicas. También es posible añadir
una firma digital criptográfica a un mensaje, de esta manera la totalidad del
mensaje y el remitente pueden ser verificados en caso de que se desconfíe de
una correspondencia en particular.
GnuPG también soporta
algoritmos de cifrado simétricos, por ejemplo CASTS.
GPG no usa algoritmos de
software que están restringidos por patentes, entre estos se encuentra el algoritmo
de cifrado IDEA que está presente en PGP casi desde sus inicios.
En su lugar usa una serie de algoritmos no patentados como ElGamal, CAST5, Triple
DES (3DES), AES y Blowfish. También es posible usar IDEA en
GPG descargando un plugin extra, sin embargo este puede requerir una licencia
para usuarios de algunos países en donde esté patentada IDEA.
GPG es un software de
cifrado híbrido que usa una combinación convencional de criptografía de
claves simétricas para la rapidez y criptografía de claves públicas
para el fácil compartimiento de claves seguras, típicamente usando recipientes
de claves públicas para cifrar una clave de sesión que es usada una vez. Este
modo de operación es parte del estándar OpenPGP y ha sido parte del
PGP desde su primera versión.
Problemas
El estándar OpenPGP
especifica varios métodos de mensajes con firmas digitales. Debido a un error
al intentar mejorar la eficiencia de uno de los métodos, se introdujo una
vulnerabilidad de seguridad (Nguyen 2004) que afectó a un único método de
mensajes firmado digitalmente utilizado en algunas versiones de GPG (desde la
1.0.2 hasta la 1.2.3, con menos de 1.000 claves listadas en los servidores de
claves). Dicha vulnerabilidad ha sido corregida a partir de la versión
GPG. El episodio ilustra la
dificultad de realizar implementaciones correctas de algoritmos
criptográficos, protocolos e incluso criptosistemas.
GPG es un sistema en línea
de comandos. Diferentes implementaciones gráficas están disponibles pero sólo
algunas tienen implementadas todas sus características (por ejemplo: borrado de
ID, usuarios o firmas). Debido a que todas las instrucciones deben ser pasadas
a la línea de comandos, rápidamente llegan a dificultar el uso correcto de
aspectos no triviales del programa. El trabajo sobre una versión de biblioteca está
en progreso.
conclusión:
Conclusión
Cuanto más valiosa sea la
información en su base de datos, mayores serán las probabilidades de que la
información sea blanco de ataques. Si sus registros consisten en información
confidencial o financiera que podría facilitar el fraude, su base de datos será
más atractiva para hackers que puedan utilizar o vender esta información para
obtener beneficios económicos. Recuerde que hasta sus datos personales básicos
también pueden ser de valor. Sus datos pueden usarse para usurpar la
personalidad de alguien, difundir malware o simplemente como un medio
de alterar sus servicios por motivos personales.
Las amenazas a la seguridad evolucionan tan rápido como
la tecnología que intentan comprometer. La base de datos CVE (Vulnerabilidades
y Exposiciones Comunes) incluye de por sí más de 59.000 amenazas conocidas
contra la seguridad de la información, y una búsqueda en la base de datos
de apache devuelve una lista de más de 500 vulnerabilidades conocidas.
Mientras que las técnicas usadas para acceder a datos y
modificar código varían considerablemente, por lo general una infracción de
seguridad tiene uno de los siguientes cuatro objetivos:
·
Acceso a bases de
datos y robo o corrupción de datos personales o confidenciales
·
Modificar el código
de un sitio web con el fin de cambiar lo que los usuarios ven
·
Interceptar datos
personales y confidenciales
·
Ataques de denegación
de servicio (DoS) que deshabilitan la disponibilidad de los servicios
Referencias
Aguilar, A. &
Hernández, A. (25 de Abril de 2014). Obtenido de Sugerencias de Seguridad para
Sitios Web: http://www.seguridad.unam.mx/documento/?id=1143
Aguilar, A. (21 de
Agosto de 2015). Obtenido de ¿Qué es y cómo opera un ataque de Cross-Site
Scripting (XSS)?: http://www.seguridad.unam.mx/documento/?id=35
OWASP. (3 de Febrero de
2014). Obtenido de Top 10 2013-A3-Cross-Site Scripting (XSS):
https://www.owasp.org/index.php/Top_10_2013-A3-Cross-Site_Scripting_(XSS)
OWASP. (21 de Agosto de
2015). Obtenido de Top 10 2013-Top 10:https://www.owasp.org/index.php/Top_10_2013-Top_10
OWASP. (27 de Enero de
2016). Obtenido de Transport Layer Protection Cheat Sheet: https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Shee










No hay comentarios:
Publicar un comentario