Administracion de Redes

Administracion de Redes
En este blog encontraran todo lo relacionado con el modulo de seguridad de administracion de redes, aunque tambien encontraran documentos relacionados con tecnologia e informatica.

miércoles, 30 de abril de 2008

Terminos de seguridad Criptografica


Secure Sockets Layer (SSL) y Transport Layer Security (TLS)
Seguridad de la Capa de Transporte-, su sucesor, son protocolos criptográficos que proporcionan comunicaciones seguras en Internet.
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 garanti
za su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de infraestructura de claves públicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsificación de la identidad del remitente(phishing) y mantener la integridad del mensaje.

SSL implica una serie de fases básicas:

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:

Funcion
El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser comprimido, cifrado y empaquetado con un código de autentificació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 (incluidos ataques man in the middle attack), 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.

Aplicacion
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 recomendó en 1997 que los protocolos de aplicación ofrecieran un 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 tunelar una red completa y crear una red privada virtual (VPN), como en el caso de OpenVPN.




Transmission Control Protocol (TCP)
TCP (Transmission Control Protocol, en español Protocolo de Control de Transmisión) es uno de los protocolos fundamentales en Internet. Fue creado entre los años 1973 - 1974 por Vint Cerf y Robert Kahn). Muchos programas dentro de una red de datos compuesta por ordenadores pueden usar TCP para crear conexiones entre ellos a través de las cuales enviarse un flujo de datos. El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto. TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP y SSH.

Funciones de TCP
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe: libre de errores, sin pérdidas y con seguridad.

Formato de los Segmentos TCP
En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo o PDU (protocol data unit) se llaman segmentos.
Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red. TCP divide el flujo de bytes llegado de la aplicación en segmentos de tamaño apropiado (normalmente esta limitación viene impuesta por la unidad máxima de transferencia (MTU) del nivel de enlace de datos de la red a la que la entidad está asociada) y le añade sus cabeceras. Entonces, TCP pasa el segmento resultante a la capa IP, donde a través de la red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún segmento se ha perdido dando a cada uno un número de secuencia, que es también usado para asegurarse de que los paquetes han llegado a la entidad destino en el orden correcto. TCP devuelve un asentimiento por bytes que han sido recibidos correctamente; un temporizador en la entidad origen del envío causará un timeout si el asentimiento no es recibido en un tiempo razonable, y el (presuntamente desaparecido) paquete será entonces retransmitido. TCP revisa que no haya bytes dañados durante el envío usando un checksum; es calculado por el emisor en cada paquete antes de ser enviado, y comprobado por el receptor.

Funcionamiento del protocolo en detalle
Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y fin de la conexión. Para establecer la conexión se usa el procedimiento llamado negociación en tres pasos (3-way handshake). Una negociación en cuatro pasos (4-way handshake) es usada para la desconexión. Durante el establecimiento de la conexión, algunos parámetros como el número de secuencia son configurados para asegurar la entrega ordenada de los datos y la robustez de la comunicación.

Establecimiento de la conexión (negociación en tres pasos)
Aunque es posible que un par de entidades finales comiencen una conexión entre ellas simultáneamente, normalmente una de ellas abre un socket en un determinado puerto tcp y se queda a la escucha de nuevas conexiones. Es común referirse a esto como apertura pasiva, y determina el lado servidor de una conexión. El lado cliente de una conexión realiza una apertura activa de un puerto enviando un segmento SYN inicial al servidor como parte de la negociación en tres pasos. El lado servidor respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el cliente debería responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión.
Es interesante notar que existe un número de secuencia generado por cada lado, ayudando de este modo a que no se puedan establecer conexiones falseadas (spoofing).

Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación emisora o receptora. Los puertos son clasificados en tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los puertos dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados: 49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del 0 al 65535).



Hypertext Transfer Protocol (HTTP)
El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer Protocol) es el protocolo usado en cada transacción de la Web (WWW). HTTP fue desarrollado por el consorcio W3C y la IETF, colaboración que culminó en 1999 con la publicación de una serie de RFC, siendo el más importante de ellos el RFC 2616, que especifica la versión 1.1.
HTTP define la sintaxis y la semántica que utilizan los elementos software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador o un spider) se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un URL. Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

Transacciones HTTP
Una transacción HTTP consiste de un encabezado seguido, opcionalmente, por una línea en blanco y algún dato. El encabezado especificará cosas como la acción requerida del servidor, o el tipo de dato retornado, o el código de estado.
El uso de campos de encabezados enviados en las transacciones HTTP le dan gran flexibilidad al protocolo. Estos campos permiten que se envíe información descriptiva en la transacción, permitiendo así la autenticación, cifrado e identificación de usuario.
Un encabezado es un bloque de datos que precede a la información propiamente dicha, por lo que muchas veces se hace referencia a él como metadato —porque tiene datos sobre los datos—.
Si se reciben líneas de encabezado del cliente, el servidor las coloca en las variables de ambiente de CGI con el prefijo HTTP_ seguido del nombre del encabezado. Cualquier carácter guión ( - ) del nombre del encabezado se convierte a caracteres "_".
El servidor puede excluir cualquier encabezado que ya esté procesado, como Authorization, Content-type y Content-length. El servidor puede elegir excluir alguno o todos los encabezados si incluirlos excede algún límite del ambiente de sistema. Ejemplos de esto son las variables HTTP_ACCEPT y HTTP_USER_AGENT.
HTTP_ACCEPT. Los tipos MIME que el cliente aceptará, dado los encabezados HTTP. Otros protocolos quizás necesiten obtener esta información de otro lugar. Los elementos de esta lista deben estar separados por una coma, como lo dice la especificación HTTP: tipo, tipo.
HTTP_USER_AGENT. El navegador que utiliza el cliente para realizar la petición. El formato general para esta variable es: software/versión librería/versión.
El servidor envía al cliente:
Un código de estado que indica si la petición fue correcta o no. Los códigos de error típicos indican que el archivo solicitado no se encontró, que la petición no se realizó de forma correcta o que se requiere autenticación para acceder al archivo.
La información propiamente dicha. Como HTTP permite enviar documentos de todo tipo y formato, es ideal para transmitir multimedia, como gráficos, audio y video. Esta libertad es una de las mayores ventajas de HTTP.
Información sobre el objeto que se retorna.
Ten en cuenta que la lista no es una lista completa de los campos de encabezado y que algunos de ellos sólo tienen sentido en una dirección.


P.A.M. (Pluggable Authentication Modules)
Es una librerıa que permite al administrador de un sistema elegir que metodos de autenticacion va a utilizar el sistema. Esto permite adaptar la seguridad de nuestro sistema segun nuestras necesidades.

Utilizando esta librerıa podemos personalizar los metodos que utilizaran las aplicaciones para autenticar a los usuarios, siempre y cuando dispongamos del codigo fuente de las aplicaciones.

Con esta librerıa no es necesario realizar muchos cambios en el codigo fuente

de las aplicaciones.



C.F.S. (Cryptographic File System)
Esta utilidad permite la creacion de ficheros y directorios encriptados dentro del sistema de ficheros que estamos utilizando. Para poder acceder a estos ficheros se necesitara una contraseña que habra sido establecida cuando se creo el directorio.

Este software esta basado en D.E.S. y esta sometido a las leyes de exportacion de los Estados Unidos.



T.C.F.S. (Transparent Cryptographic File System)
Desarrollado por la Universidad de Salerno especıficamente para Linux. Su proposito es proporcionar seguridad en sistemas de ficheros NFS. La desencriptacion se realiza en el cliente.

Este software funciona a nivel de nucleo, no a nivel de usuario, con lo cual se gana en seguridad.

Esta basado en D.E.S. y para funcionar las maquinas clientes necesitan una version compilada del nucleo para soporte de T.C.F.S.



Kerberos
Kerberos es un sistema de autenticaci´on. Este sistema trata de solucionar el problema de la autenticacion tradicional, la cual manda las passwords como texto en claro.

Para funcionar necesita haber un servidor kerberos, lo cual implica unos problemas:

  • Si el servidor no funcionara toda la red estarıa inactiva.

  • Si se ve comprometida la seguridad del servidor kerberos quedarıa comprometida la seguridad de toda la red.

Tambien tenemos otros problemas:

  • Necesitamos kerbetizar todas las aplicaciones y servicios que requieran autenticacion con kerberos.

  • Necesitamos disponer del codigo fuente de las aplicaciones y servicios. Con software propietario esto es imposible, a menos que exista la version kerbetizada y estemos dispuestos a pagar por ella.

  • La kerbetizacion no es siempre facil.

El proceso de autenticacion en kerberos es:

1. El cliente se autentica una vez en el centro de distribucion de claves (KDC).

2. El KDC da un Ticket Granting Ticket, TGT. Ticket especial para obtener otros

Tickets. Tiene un periodo de caducidad, normalmente de unas 8 horas.

3. Cuando necesitamos utilizar un recurso solicitamos un ticket utilizando el TGT para obtener un ticket Ticket Granting Server, TGS. El cual nos da acceso al recurso solicitado.



IPSec
Como es sabido el protocolo http es un protocolo que manda informacion como texto plano, sin encriptar.

Este protocolo se encarga de encriptar los “datos” de los paquetes a nivel IP, esto significa que no hace falta el modificar las aplicacionesque utilizan estos protocolos para utilizarlo. De esta forma podemos establecer

comunicaciones “seguras” con unos cambios mınimos en el sistema.

Este protocolo esta disponible para otros S.O. por lo cual podremos establecer comunicaciones “seguras” con otros S.O.

Para poder instalar esto necesitamos tener compilado el nucleo con soporte para IPSec.



SSH
Este protocolo fue diseñado para dar seguridad al acceso a computadores en forma remota.

Cumple la misma función que telnet o rlogin pero además, usando criptografía, logra seguridad con los datos.

A diferencia de telnet u otro servicio similar, SSH utiliza el puerto 22 para la comunicación y la forma de efectuar su trabajo es muy similar al efectuado por SSL.

Para su uso se requiere que por parte del servidor exista un demonio que mantenga continuamente en el puerto 22 el servicio de comunicación segura, el sshd.

El cliente debe ser un software tipo TeraTerm o Putty que permita la hacer pedidos a este puerto 22 de forma cifrada.

La forma en que se entabla una comunicación es en base la misma para todos los protocolos seguros:

  • El cliente envía una señal al servidor pidiéndole comunicación por el puerto 22.

  • El servidor acepta la comunicación en el caso de poder mantenerla bajo encriptación mediante un algoritmo definido y le envía la llave publica al cliente para que pueda descifrar los mensajes.

  • El cliente recibe la llave teniendo la posibilidad de guardar la llave para futuras comunicaciones o destruirla después de la sesión actual.



Anillos de confianza
Los anillos de confianza son el sustituto a las autoridades de certificacion en GnuPg y tiene como fin la autenticacion de las claves publicas de los usuarios.

La forma de hacer esto es firmar las claves de aquellos en los que confiemos plenamente y tengamos identificados. De esta forma todos aquellos que confien en nosotros confiaran tambien en aquellos a los que hayamos

firmado su clave publica.

A pesar de tener firmada una clave podemos asignarle un grado de confianza. Existen cuatro niveles de confianza:

  • Unknown, desconocido.

  • None, no nos fiamos. El usuario que firmo la clave se puede dedicar a firmar todas las claves sin comprobaciones.

  • Marginal, confiamos pero con reservas.

  • Full, confianza plena.




lunes, 28 de abril de 2008

GRAN EXPERIENCIA ...¡ FLISOL 2008 !...

Bueno ete sabado pasado 26 de abril de 2008, tuve la posibilidad de poder participar en la logistica del flisol 2008, para los que no saben flison es un evento de software libre.

En mi pequeña pero muy util ayuda en este participe en la instalacion de s.o libres como son ubuntu 8.4, 7.10 y debian etch R3.

La mayoria de equipos que instale fue portatiles, como ya lo saben estos equipos portatiles son algo complejos debido a que estas tienen mas software y no es tan facil intalarle todos sus comtroladores pero gracias a la gran eficiensa y al gran conocimiento de personajes que participaron en dicho evento pude desembolverme muy bien en el campo ya que contaba con el apoyo de estos personajes por si depronto algun inconveniente.

Ya he expresado mi vista buena del evento ahora dire los inconvenientes que aunque depronto no fueron tanto en mi parte por el publico pero se nos dieron.

Pienso que los organizadores del evento devio estar mas atentos con los de logistica, ya que muchos no pudimos salir en todo el dia a comer. Ya discutiendo lo del evento con mis compañeros y el profe camilo me doy de cuenta que tambien huvo percances en la entrada ya que devido al mucho publico que habia los administradores del parque explorar ordenaron cerrar las puertas esto por el lado del publico.

En total la realizacion del evento en mi penzar estuvo excelente y la cerrare con la frase del evento...

...¡ CREES QUE ERES LIBRE, SI TU SOFTWARE NO LO ES!...

GNUPG

GnuPG

GnuPg tambien conocido com Gpg es la version libre del conocido PGP de Phil Zimmermann.
Es li
bre para uso no comercial y para uso comercial. Ademas se dispone del codigo fuente con lo cual es posible auditar el codigo y comprobar si tiene fallos de seguridad y funcionalidades no documentadas.
Permite encriptar y desencriptar ficheros y realizar firmas digitales. No utiliza algoritmos patentados.


Generacion de claves.

Para generar nuestras claves tendremos que hacer:
gpg --gen-key

A continuacion tendremos que elegir el tipo de clave: (1)

  • DSA y ElGamal.
    Creamos un par de claves. El primer par, DSA, para firmar y el segundo para encriptar/desencriptar.

  • DSA. Solo firma.
    Creamos una clave, solo para firmar.

  • ElGamal. Firma y cifrado.

Creamos una clave que utilizaremos para firmar y encriptar/desencriptar.
A continuacion tendremos que elegir el tamaño de la clave: (2048)

  • 768 bits. Insegura.

  • 1024 bits. Seguridad buena aunque esta en la zona de riesgo.

  • 2048 bits. “Segura”.

Elegiremos la fecha de caducidad e introduciremos varios datos:

  • Nombre y apellidos.

  • Direccion de correo electronico.

  • Comentario.

A continuacion necesitamos introducir una contraseña para proteger nuestras claves.


Caracteristicas de GnuPg

1. Ver nuestras claves publicas.
gpg --list-public-keys

2. Ver nuestras claves secretas.
gpg –list-secret-keys gpg -K

3. Generar certificados de revocacion.
gpg --gen-revoke

4. Firmar las llaves.
gpg –sign-key (ID de llave)

5. Crear firmas digitales en formato ASCII y en texto claro.
gpg --clearsign

6. Verificar firmas digitales.
gpg --verify

7. Encriptar datos.
gpg --encrypt

8. Desencriptar datos.
gpg --decrypt

9. Generar una salida con armadura ASCII.
gpg --armor

10. Ver las huellas digitales.
gpg –fingerprint

11. Exportar la llave publica en cogigo ASCII .
gpg –export -o pub-julian.txt -a

12. Exportar la llave secreta (privada).
gpg -o priv-julian.txt –export-secret-key -a

13. Importar llaves.
gpg --import

14. Cifrar con llave publica y encriptar un archivo.
gpg -r (ID llave) -e prueva.txt

CONCEPTOS DE CRIPTOGRAFIA

Firma digital

El concepto de firma digital nació como una oferta tecnológica para acercar la operatoria social usual de la firma ológrafa (manuscrita) al marco de lo que se ha dado en llamar el ciberespacio o el trabajo en redes.
Consiste en la transformación de un mensaje utilizando un sistema de cifrado asimétrico de manera qu
e la persona que posee el mensaje original y la clave pública del firmante, pueda establecer de forma segura, que dicha transformación se efectuó utilizando la clave privada correspondiente a la pública del firmante, y si el mensaje es el original o fue alterado desde su concepción.
El fin, de la fi
rma digital, es el mismo de la firma ológrafa: dar asentimiento y compromiso con el documento firmado; y es por eso que a través de la legislación, se intenta acercarla, exigiéndose ciertos requisitos de validez.


Funcion de una firma digital
Primero se produce un resumen del mensaje, luego se encripta este resumen. Si estamos utilizando criptografía asimétrica lo encriptamos con nuestra clave privada.
De esta forma la única persona que conozca la clave privada será capaz de firmar digitalmente en nuestro nombre.


Como comprobar una firma digital
Desencriptamos la firma digital, usando la clave publica si han utilizado un método asimétrico. Obtenemos el resumen del mensaje original.
Hacemos un hash sobre el mensaje original.
Comprobamos nuestro resumen con el obtenido al desencriptar y si coinciden la firma digital es valida.


Ventajas Ofrecidas por la Firma Digital
Gracias a la firma digital, los ciudadanos podrán realizar transacciones de comercio electrónico seguras y relacionarse con la Administración con la máxima eficacia jurídica, abriéndose por fin las puertas a la posibilidad de obtener documentos como la cédula de identidad, carnet de conducir, pasaporte, certificados de nacimiento, o votar en los próximos comicios cómodamente desde su casa.
Ahora bien, en un contexto electrónico, en el que no existe contacto directo entre las partes, ¿resulta posible que los usuarios de un servicio puedan presentar un documento digital que ofrezca las mismas funcionalidades que los documentos físicos, pero sin perder la seguridad y confianza de que estos últimos están dotados? La respuesta, por fortuna, es afirmativa, ya que el uso de la firma digital va a satisfacer los siguientes aspectos de seguridad:

Integridad de la información: la integridad del documento es una protección contra la modificación de los datos en forma intencional o accidental. El emisor protege el documento, incorporándole a ese un valor de control de integridad, que corresponde a un valor único, calculado a partir del contenido del mensaje al momento de su creación. El receptor deberá efectuar el mismo cálculo sobre el documento recibido y comparar el valor calculado con el enviado por el emisor. De coincidir, se concluye que el documento no ha sido modificado durante la transferencia.

Autenticidad del origen del mensaje: este aspecto de seguridad protege al receptor del documento, garantizándole que dicho mensaje ha sido generado por la parte identificada en el documento como emisor del mismo, no pudiendo alguna otra entidad suplantar a un usuario del sistema. Esto se logra mediante la inclusión en el documento transmitido de un valor de autenticación (MAC, Message autentication code). El valor depende tanto del contenido del documento como de la clave secreta en poder del emisor.

No repudio del origen: el no repudio de origen protege al receptor del documento de la negación del emisor de haberlo enviado. Este aspecto de seguridad es más fuerte que los anteriores ya que el emisor no puede negar bajo ninguna circunstancia que ha generado dicho mensaje, transformándose en un medio de prueba inequívoco respecto de la responsabilidad del usuario del sistema.

Imposibilidad de suplantación: el hecho de que la firma haya sido creada por el signatario mediante medios que mantiene bajo su propio control (su clave privada protegida, por ejemplo, por una contraseña, una tarjeta inteligente, etc.) asegura, además, la imposibilidad de su suplantación por otro individuo.

Auditabilidad: permite identificar y rastrear las operaciones llevadas a cabo por el usuario dentro de un sistema informático cuyo acceso se realiza mediante la presentación de certificados,

El acuerdo de claves secretas: garantiza la confidencialidad de la información intercambiada ente las partes, esté firmada o no, como por ejemplo en las transacciones seguras realizadas a través de SSL.

Certificado digital

Un Certificado Digital es un documento digital mediante el cual un tercero confiable garantiza la vinculación entre la identidad de un sujeto o entidad y su clave pública.
Esta entidad certificadora debe firmar la llave publica.
Si bien existen variados formatos para
certificados digitales, los más comúnmente empleados se rigen por el estándar UIT-T X.509. El certificado contiene usualmente el nombre de la entidad certificada, un número serial, fecha de expiración, una copia de la clave pública del titular del certificado (utilizada para la verificación de su firma digital), y la firma digital de la autoridad emisora del certificado de forma que el receptor pueda verificar que esta última ha establecido realmente la asociación.


Quien da certificados
Tiene que haber una tercera parte, de confianza para emisor y receptor, que certifique a ambos.
Estas terceras partes reciben el nombre de “Trusted Third Parties (TTP)”, terceras partes de confianza. Su labor, básicamente, consiste en identificar a usuarios, empresas o servicios con una determinada clave pública.
Las entidades que emiten certificados reciben el nombre de “Certification Authority (CA)”, las cuales han de ser de confianza y pueden estar certificadas por ellas mismas o por otra
CA superior.


En que consiste un certificado

Básicamente un certificado esta compuesto por varios campos:

Identidad del propietario.
Clave pública.
Periodo de validez.
Identidad y clave pública de la CA que lo expidió.
Firma digital del certificado. Esta firma esta realizada por la CA.
Revocaciones de certificados.

La seguridad de un certificado reside en la confidencialidad de la clave privada. Al ser los certificados de dominio publicó cualquiera puede comprobarlos y lo único que le certifican es quien es el propietario de una determinada clave pública. Ese propietario es laúnica” persona que conoce la clave privada correspondiente a la pública certificada.
La persona que conozca una determinada clave privada puede certificarse utilizando el certificado de la correspondiente clave pública y de esta forma ofrecer una “falsa” seguridad a la persona que ha verificado el certificado (Suplantación de personalidad).
Cuando un certificado ha sido revocado la CA que lo expidió lo coloca en su “Certification
Revocation Lists (CRL)”, lista de revocación de certificados.


Comprobación de certificados

Cuando queremos establecer una comunicación con “alguien” debemos poseer su clave pública.
Una vez conseguida debemos asegurarnos que es quien dice ser. Para ello solicitamos su certificado y comprobamos su validez de la siguiente forma:

1. Comprobamos su caducidad.
2. Comprobamos que CA lo expidió.
3. Comprobamos el certificado de la CA, así como todos los certificados de CA’s superiores que haya, si se da el caso, certificado a la CA anterior.
4. Comprobamos que el certificado no fue manipulado, comprobando la firma digital de la CA.
5. Comprobamos CRL de la CA para verificar que no ha sido revocado.

Después de todo esto podemos establecer una conexión “segura” y “autenticada”.

CRIPTOGRAFIA

¿Que es la criptografía?

Desde que el hombre ha necesitado comunicarse con los demás ha tenido la necesidad de que algunos de sus mensajes solo fueran conocidos por las personas a quien estaban destinados. La necesidad de poder enviar mensajes de forma que solo fueran entendidos por los destinatarios hizo que se crearan sistemas de cifrado, de forma que un mensaje después de un proceso de transformación, lo que llamamos cifrado, solo pudiera ser leído siguiendo un proceso de descifrado.
La principal aplicación de la criptografía es la de proteger información para evitar que sea accesible por observadores NO autorizados, proteger datos, pero también tiene otras aplicaciones.

Como funciona
La palabra criptología proviene de las palabras griegas Kryto y logos y siginifica estudio de lo oculto. Una rama d
e la criptología es la criptografía, que se ocupa del cifrado de mensajes. Esta se basa en que el emisor emite un mensaje en claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este texto cifrado, por medio del canal de comunicación establecido, llega al descifrador que convierte el texto cifrado, apoyandose en otra clave, para obtener el texto en claro original. Las dos claves implicadas en el proceso de cifrado y descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado.

Las principales características que un sistema de seguridad quiere obtener son:

  • Confidencialidad: Consiste en garantizar que sólo las personas autorizadas tienen acceso a la información.
  • Integridad: Consiste en garantizar que el documento original no ha sido modificado.El documento puede ser tanto público como confidencial.
  • Autenticación: Permite garantizar la identidad del autor de la información.
  • No repudio: Impedir que alguien niegue haber realizado una transaccion cuando efectivamente lo ha realizado.

Tipos de criptografía

One-time pad
Transposición
La maquina hagelin
La maquina enigma
Des
--> simetrico
Dh
--> asimetrico
Rsa
--> asimetrico
Dsa
--> asimetrico
Idea --> simetrico
Aes --> simetrico


Otros 10 tipos de algoritmos

  • Rc5
  • Cast
  • Blowfish
  • Hmac
  • Ripe-md
  • Elgamal
  • Sha1
  • Md5
  • 3des
  • Rc4

Criptografía simétrica
Los sistemas de cifrado simétrico son aquellos que utilizan la misma clave para cifrar y descrifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar también un canal de comunicación que sea seguro para el intercambio de la clave. Es importante que dicha clave sea muy difícil de adivinar ya que hoy en día los ordenadores pueden adivinar claves muy rápidamente.

Ventajas
Son algoritmos “fáciles” de implementar.
Requieren “poco” tiempo de cómputo.

Desventajas
Las claves han de transmitirse por un canal seguro. Algo difícil de realizar.


Otros criptosistemas simétricos
LOKI, Australiano. Roto mediante criptoanálisis diferencial.
LOKI91, Australiano. Versión modificada del anterior. De momento ha resistido los ataques por criptoanalisis diferencial.
RC2, diseñado por R. Rivest para RSA
Data Security Inc. No es publico ni esta patentado.
RC4, version simplificada del anterior. El gobierno de los EEUU autorizo su exportación. Utiliza una clave de 40 bits.
RC5, diseñado por R. Rivest.
GOST, Rusia. Similar al DES.
CAST, Canada. Inmune a ataques basados tanto en criptoanalisis diferencial como en criptoanalisis lineal.
BLOWFISH, diseñado por Bruce Schneier.
IDEA, desarrollado por X. Lai y J.L. Massey en el politecnico de Zurich.
AKELARRE, inspirado en IDEA y RC5. Se diseño a partir de estos para evitar algunas de los inconvenientes que tenian ambos metodos.
SKIPJACK, EEUU. Desarrollado por la
NSA (National Security Agency). Este algoritmo es el que incorporan los chips
CLIPPER y CAPSTONE. Tanto el algoritmo como los chips estan clasificados por el gobierno de los EEUU como secretos.
RIJNDAEL, Belga. Desarrollado por Vincent


Criptografía Asimétrica
También son llamados sistemas de cifrado de clave pública. Este sistema de cifrado usa dos claves diferentes. Una es la clave pública y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella.Para enviar un mensaje, el remitente usa la clave pública del destinatario para cifrar el mensaje. Una vez que lo
ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo.Por ello, se puede dar a conocer perfectamente la clave pública para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer.


Funciones resumen (Hash)
Estas funciones producen resumenes de textos, es decir, dado un mensaje una funcion “hash” produce un resumen del mismo.
Para que este tipo de funciones sean utiles, criptograficamente, deben cumplir:

  • El resumen es de longitud fija.

  • Calcular el resumen de un mensaje es facil. (tiempo polinomial)

  • Dado un resumen es computacionalmente imposible calcular el mensaje que lo genero. (tiempo exponencial)

  • Es practicamente imposible obtener dos mensajes que generen el mismo resumen.

Se recomienda utilizar signaturas de al menos 128 bits. El tama˜no m´as usado para signaturas es de 160 bits.

¿Que es el criptoanálisis?
Suponiendo conocidos los algoritmos de encriptación el criptoanálisis consiste en comprometer la seguridad de un sistema criptográfico. El criptoanálisis consiste en buscar los puntos débiles de un sistema criptográfico.

Existen diferentes formas de atacar un sistema criptográfico:
1. Ataque por fuerza bruta, si se tiene un criptograma mediante este método se probarían todas las claves posibles para obtener el texto plano. Si el conjunto de posibles claves es alto este sistema es inviable.
Normalmente a este tipo de ataques no se les suele considerar como una forma de criptoanálisis ya que no busca puntos débiles, únicamente utiliza todas las claves posibles.

2. Ataque por texto plano escogido, consiste en elegir varios textos planos y obtener sus criptogramas asociados. Esto implica tener acceso al dispositivo de encriptación, pero no a la clave de encriptación.

3. Ataque a partir de texto plano, el atacante tiene acceso a textos planos y a sus correspondientes criptogramas.

4. Análisis por frecuencias, este tipo de ataque es utilizado para romper sistemas criptográficos simétricos y se basa en estudiar la frecuencia con la que aparecen los distintos símbolos en un lenguaje determinado y luego estudiar la frecuencia con la que aparecen en los criptogramas, y de esta manera establecer una relación y obtener el texto plano.


Sistemas criptográficos
Los sistemas criptográficos los podemos clasificar según como encripten los diferentes símbolos del alfabeto que estemos utilizando:

Monoalfabeticos, son aquellos en los que cada símbolo del alfabeto se encripta siempre con el mismo símbolo, la encriptación de cada símbolo es independiente del mensaje.
Por ejemplo todas las “B” que aparecen en el texto plano siempre aparecerán en el criptograma como “L”. . .
Este tipo de sistemas son inseguros ya que se pueden romper mediante “análisis estadísticos de frecuencias”.

Polialfabeticos, son aquellos en los que cada símbolo del alfabeto NO se encripta con el mismo símbolo, la encriptación depende del mensaje. Por ejemplo las “B” que aparecen en el mensaje se encriptan unas veces con “L”, otras veces con “T”, otras veces con “˜N”,. . .
El primer requisito para que un sistema criptográfico sea seguro es que sea polialfabetico.




viernes, 4 de abril de 2008

ISA SERVER


ISA SERVER


En el mundo de la informatica y como ya todos nos debimos dar de cuenta es muy importante la seguridad.

Microsoft en su desarrollo en busqueda de la seguridad a desarrollado un firewall llamado ISA SERVER en su mas reciente version ISA SEVER 2006.

ISA SERVER 2006 es un firewall muy completo con grandes utilidades y facilidades para el administrador de la red, permitiendo un gran manejo de la informacion que viaja atraves de la red y a la vez brindarle seguridad a la misma.

La publicación segura de aplicaciones con ISA Server 2006 permite el acceso de forma protegida a aplicaciones Exchange, SharePoint y otros servidores de aplicaciones Web. Los usuarios remotos pueden acceder a ellas desde fuera de la red corporativa con el mismo nivel de seguridad y privacidad que desde dentro.

ISA Server 2006 puede utilizarse como Gateway para redes de oficinas. Permite conectar y proteger los enlaces entre oficinas remotas y departamentos centrales y optimizar el uso del ancho de banda.

Ademas ISA Server nos permite trabajor con una administracion centralizada (Active Directory) y asi tener mas seguridad sobre la red teniendo el control de que usuarios pueden navegar a internet en la red.

Este swit de Microsoft es muy completo con muchas facilidades de uso para el administrador de la red.



INSTALACION ISA SERVER 2006


Lo primero que debemos hacer es descargar el instalador de isa server 2006.

NOTA: Para descargarlo debemos tener una cuenta de hotmail para accedera a la pagina de descargas de microsoft.

  • Nos logueamos
  • Llenamos los datos (continue)
  • De nuevo clic en continue
  • Abre una pagina, en la parte inferior de la misma aparecera el link para descargarlo (clic download)

Luego de haberlo conseguido debemos instalarlo:
  • Doble clic en el instalador para empezar.
Cuando lo ejecutamos aparece una ventana de instalacion donde aparacen varias opciones:
  • Clic install ISA SERVER 2006

Bienvenido a la instalacion
  • siguiente
  • clic en aceptar los terminos de la licencia
  • siguiente

Como es un instalador de prueva el que descargamos aparecera con la clave de producto
  • siguiente


Debemos escoger el escenario que deceamos instalar
  • clic instalar ambos ISA SERVER y el servidor de almacenamiento de configuracion
  • siguiente

NOTA: esto se hace cuando tenemos solo un ISA SERVER, cuando ya tenemos el servidor de almacenamiento podemos escoger otras opciones.

Selecionar componentes:
-Miramos que este selecionado ISA SERVER
  • siguiente


Opciones de instalacion de empresa
  • clic crear una nueva empresa de ISA SERVER
  • siguiente

Aparecera un aviso de peligro
  • siguiente

Cuenta de servidor de almacenamiento de configuracion
  • usuario (Administrator)
  • contrase;a (Sena.2008)
  • siguiente
Red interna
  • clic en agregar adaptador
  • seleccionamos nuestro adaptador de red
  • siguiente
Conexion de cliente firewall
  • siguiente

NOTA: si no queremos una comunicacion encriptada con el cliente firewall selecccionamos la opcion permitir conecciones no encriptadas.

Aparecera un aviso de peligro
  • siguiente

Listo para instalar el programa
  • clic install


El programa empieza el proceso de instalacion.

En medio del proceso de instalacion el programa nos pide el cd 2 (R2) de windows server 2003 para acabar de instalar los paquetes.



Cuando termina la instalacion nos aparecera una ventana de finalizacion donde hay una opcion para invocar la consola de administracion de ISA SERVER si queremos invocarla le damos clic en la opcion para invocar y luego clic en finalizar.



Tambien podemos invocar la consola de administracion asi:
  • inicio
  • todos los programas
  • microsoft ISA Server
  • ISA Server Management