miércoles, 27 de abril de 2016

CLAVE PUBLICA Y PRDIVADA EN CRIPTOGRAFIA



Principios del cifrado con clave pública



El principio del cifrado asimétrico (también conocido como cifrado con clave pública) apareció en 1976, con la publicación de un trabajo sobre criptografía por Whitfield Diffie y Martin Hellman.

En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan en pares:
Una clave pública para el cifrado;
Una clave secreta para el descifrado.

En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.

Cuando un usuario desea enviar un mensaje a otro usuario, sólo debe cifrar el mensaje que desea enviar utilizando la clave pública del receptor (que puede encontrar, por ejemplo, en un servidor de claves como un directorio LDAP). El receptor podrá descifrar el mensaje con su clave privada (que sólo él conoce). 


Esquema del cifrado con clave pública 


Este sistema se basa en una función que es fácil de calcular en una dirección (llamada función trapdoor de único sentido) y que, matemáticamente, resulta muy difícil de invertir sin la clave privada (llamada trapdoor).

Para ilustrarlo con un ejemplo, sería como si un usuario creara de forma aleatoria una pequeña llave metálica (la clave privada) y luego produjera una gran cantidad de candados (claves públicas) que guarda en un casillero al que puede acceder cualquiera (el casillero sería el canal no seguro). Para enviarle un documento, cada usuario puede usar un candado (abierto), cerrar con este candado una carpeta que contiene el documento y enviar la carpeta al dueño de la clave pública (el dueño del candado). Sólo el dueño podrá abrir la carpeta con su clave privada.
Ventajas y desventajas

El problema de la comunicación de la clave de descifrado ya no existe, ya que las claves públicas se pueden enviar libremente. Por lo tanto, el cifrado con clave pública permite a las personas intercambiar mensajes de cifrado sin tener que compartir un secreto.

Por otro lado, el problema consiste en asegurarse de que la clave pública que se obtiene pertenece realmente a la persona a la que desea enviar la información cifrada!
 

miércoles, 20 de abril de 2016

TALLER SISTEMA DE ARCHIVOS DISTRIBUIDOS



PARA  PODER INDAGAR SOBRE ESTO PRIMERO ¿QUÉ ES SISTEMA DE ARCHIVOS?

El sistema de archivos o sistema de ficheros (en inglés: "filesystem") es el componente del sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias.

- Características de los sistemas de archivos


Seguridad o permisos
Listas de control de acceso (ACL)
UGO ("Usuario, Grupo, Otros", o por sus siglas en inglés: "User, Group, Others")
Capacidades granuladas
Atributos extendidos (ej.: sólo añadir al archivo pero no modificar, no modificar nunca, etcétera)
Mecanismo para evitar la fragmentación
Capacidad de enlaces simbólicos o duros
Integridad del sistema de archivos (Journaling)
Soporte para archivos dispersos
Soporte para cuotas de discos
Soporte de crecimiento del sistema de archivos nativo

- Requisitos del sistema de archivos distribuidos.

Muchos de los requisitos y potenciales obstáculos en el diseño de servicios distribuidos fueron ya observados en los primeros desarrollos de sistemas de archivos distribuidos. Inicialmente ofrecían transparencia de acceso y transparencia de ubicación, los requisitos de prestaciones, escalabilidad, control de concurrencia, tolerancia a fallos y seguridad surgieron y se fueron satisfaciendo en fases posteriores del desarrollo. A continuación se presentan los principales requisitos a considerar para el desarrollo de un sistema de archivos distribuidos.
1. Transparencia
El servicio de archivos es el servicio más fuertemente cargado en una intranet, por lo que su funcionalidad y prestaciones son críticas. El diseño debe balancear la flexibilidad y escalabilidad que se derivan de la transparencia frente a la complejidad del software y las prestaciones. Las siguientes formas de transparencia son parcial o totalmente tratadas por los actuales servicios de archivos:
Transparencia de acceso: los programas del cliente no deben preocuparse de la distribución de los archivos. Se proporciona un conjunto sencillo de operaciones para el acceso a archivos locales y remotos. Los programas escritos para trabajar sobre archivos locales serán capaces de acceder a los archivos remotos sin modificación.
Transparencia de ubicación: los programas del cliente deben ver un espacio de nombres de archivos uniforme. Los archivos o grupos de archivos pueden ser reubicados sin cambiar sus nombres de ruta, y los programas de usuario verán el mismo espacio de nombres en cualquier parte que sean ejecutados.
Transparencia de movilidad: ni los programas del cliente ni las tablas de administración de sistema en los nodos cliente necesitan ser cambiados cuando se mueven los archivos. Esta movilidad de archivos permite que archivos o, más comúnmente, conjuntos o volúmenes de archivos puedan ser movidos, ya sea por los administradores del sistema o automáticamente.
Transparencia de prestaciones: los programas cliente deben continuar funcionando satisfactoriamente mientras la carga en el servicio varíe dentro de un rango especificado.
Transparencia de escala: el servicio puede ser aumentado por un crecimiento incremental para tratar con un amplio rango de cargas y tamaños de redes.

2. Actualizaciones concurrentes de archivos
Los cambios en un archivo por un cliente no deben interferir con la operación de otros clientes que acceden o cambian simultáneamente el mismo archivo. Este es el tema conocido del control de concurrencia. La necesidad de control de concurrencia para el acceso a datos compartidos en muchas aplicaciones está ampliamente aceptada y las técnicas para su implementación son conocidas, aunque muy costosas. La mayoría de los servicios de archivos actuales siguen los estándares de UNIX moderno proporcionando bloqueo consultivo u obligatorio a nivel de archivo o registro.

3. Replicación de archivos
En un servicio de archivos que soporta replicación, un archivo puede estar representado por varias copias de su contenido en diferentes ubicaciones. Esto tiene dos beneficios, permite que múltiples servidores compartan la carga de proporcionar un servicio a los clientes que acceden al mismo conjunto de archivos, mejorando la escalabilidad del servicio y mejorando la tolerancia a fallos, permitiendo a los clientes localizar otro servidor que mantiene una copia del archivo cuando uno ha fallado. Muy pocos servicios de archivos soportan totalmente la replicación, pero la mayoría soportan la caché local de archivos o porciones de archivos, una forma limitada de replicación.
4. Heterogeneidad del hardware y del sistema operativo
Las interfaces del servicio deben estar definidas de modo que el software del cliente y el servidor pueden estar implementados por diferentes sistemas operativos y computadores. Este requisito es un aspecto importante de la extensibilidad.

5. Tolerancia a fallos
El papel central de un servicio de archivos en los sistemas distribuidos hace que sea esencial que el servicio continúe funcionando aun en el caso de fallos del cliente y del servidor. Afortunadamente un diseño moderadamente tolerante a fallos es inmediato para servidores sencillos. Los servidores pueden ser sin estado[1], por lo que pueden ser reiniciados y el servicio restablecido después de un fallo sin necesidad de recuperar el estado previo. La tolerancia a la desconexión o fallos del servidor precisa de replicación de los archivos.

6. Consistencia
Los sistemas de archivos convencionales, como los que se proporcionan en UNIX, ofrecen una semántica de actualización de una copia. Esto se refiere a un modelo para acceso concurrente a archivos, en el que el contenido del archivo visto por todos los procesos que acceden o actualizan a un archivo dado, es aquel que ellos verían si existiera un única copia del contenido del archivo. Cuando los archivos están replicados, o en la caché, en diferentes lugares, hay un retardo inevitable en la propagación de las modificaciones hechas en un lugar hacia los otros lugares que mantienen copias, y esto puede producir alguna desviación de la semántica de una copia.

7. Seguridad
Virtualmente todos los sistemas de archivos proporcionan mecanismos de control de acceso basados en el uso de listas de control de acceso. En sistemas de archivos distribuidos, hay una necesidad de autenticar las solicitudes del cliente por lo que el control de acceso en el servidor está basado en identificar al usuario correcto y proteger el contenido de los mensajes de solicitud y respuesta con firmas digitales y (opcionalmente) encriptación de datos secretos.

8. Eficiencia
Un servicio de archivos distribuidos debe ofrecer posibilidades con la misma potencia y generalidad que las que se encuentran en los sistemas de archivos convencionales y deben proporcionar un nivel de prestaciones comparable.
Las técnicas utilizadas para la implementación de los servicios de archivo son una parte importante del diseño de sistemas distribuidos. Un sistema de archivos distribuidos debe proporcionar un servicio que sea comparable con, o mejor que, los sistemas de archivos locales en prestaciones y fiabilidad. Debe ser adecuado para administrar, proporcionando operaciones y herramientas que permitan a los administradores del sistema instalar y operar el sistema convenientemente. 

- Ejemplos de sistemas de archivos distribuidos.