dimarts, 19 d’abril del 2016

Introducción a la seguridad

¿Qué es la seguridad informática?
  • Un conjunto de técnicas y políticas que tratan de minimizar la vulnerabilidad de los sistemas o de la información que contienen.
  • Se trata de conseguir que el coste de conseguir acceder a un recurso de forma inadecuada sea más alto que su valor.
  • La seguridad es un proceso, no un producto.
  • La seguridad total no existe.

Tipos de seguridad

Podemos hablar de dos tipos de seguridad, que se complementan:
  • Seguridad física: referente a la protección de los componentes del sistema (hardware) delante las amenazas físicas: incendios, inundaciones, control de acceso de personas, caídas del suministramiento eléctrico…
  • Seguridad lógica: referente a la protección de los datos. Las principales técnicas aplicadas son el control de acceso y la criptografía.
La gestión global de la seguridad de una organización tiene que tratar los dos tipos.
Cuando se habla de seguridad informática se tiende a pensar en cortafuegos, antivirus, detectores y otras herramientas muy utilizadas en el mundo de la seguridad, pero se tienen menos presentes los conceptos relacionados con la seguridad física. El hecho de decidir de manera acertada las características de la seguridad física, representa tener una base sólida sobre la cual construir los otros elementos de seguridad.

Objetivos de seguridad

La seguridad tiene como principales objetivos, teniendo en cuenta los principales componentes del sistema (hardware, software y datos):
  • Confidencialidad: Los componentes del sistema solamente serán accesibles para usuarios autorizados.
  • Integridad: Los componentes del sistema únicamente pueden ser creados y modificados por usuarios autorizados.
  • Disponibilidad: Los componentes del sistema tienen que estar accesibles a los usuarios autorizados.
  • No repudio: referente a la comunicación entre un emisor y un receptor. En esta comunicación el receptor de un mensaje obtiene una prueba válida delante un tercero del origen de los datos recibidos.

Amenazas

Las amenazas afectan principalmente al hardware, al software y a los datos. Estos son los tres puntos más débiles de todo sistema. Las amenazas provocan fenómenos de:
  • Interrupción: Un punto del sistema deja de funcionar, por ejemplo la destrucción del hardware, fallida del sistema operativo...
  • Interceptación: Acceso a la información por parte de usuarios no autorizados, por ejemplo las escuchas de la red con sniffers.
  • Modificación: Acceso no autorizado que modifica el entorno para su beneficio, por ejemplo la modificación de registros de una base de datos, modificación de paquetes TCP enviados por la red....
  • Generación: Creación de nuevos objetivos dentro del sistema, por ejemplo, crear nuevos registros en una base de datos.

Triángulo de debilidades




Otras clasificaciones de amenazas

Amenazas físicas → Seguridad física
  • Temperatura ambiental.
  • Caídas del suministro eléctrico.
  • Robos y desastres naturales.
Amenazas lógicas → Seguridad lógica (datos)
  • Acceso no autorizado a los datos (privacidad).
  • Lectura no autorizada en la transmisión (confidencialidad).
  • Modificación de datos durante su transmisión por un tercer actor no autorizado (integrado).
  • Suplantación de la identidad de un usuario.
  • Denegación de servicios (disponibilidad).
Otra clasificación sería basada en el procedimiento del ataque:
  • Amenazas internas: ocasionadas por agentes internos en la organización, por ejemplo los mismos empleados, de manera consciente e inconsciente.
  • Amenazas externas: ocasionadas por agentes externos de la organización que a priori no tienen un conocimiento interno del sistema, por ejemplo un hacker malicioso. En principio las amenazas internas son más peligrosas que las externas por el conocimiento y el grado de acceso de los empleados al sistema.
Asegurar un sistema informático es un proceso muy complejo que nunca puede llegar a ser perfecto y se tiene que analizar con mucho cuidado según las necesidades de la organización y los recursos que se pueden destinar a este objetivo. Los pasos generales a seguir son los siguientes:
  • Análisis de los riesgos y las amenazas.
  • Definición de un plan de seguridad para minimizar las amenazas.
  • Desplegar la seguridad y monitorizar el sistema.
Seguridad = Proceso.

Clasificación según el tipo de ataque

Un sistema informático está expuesto a múltiples amenazas y ataques. A continuación una clasificación de las amenazas según el tipo de atacante:
  • Hacker: experto informático con gran capacidad para descubrir vulnerabilidades de los sistemas, pero sin motivación económica.
  • Cracker: un hacker que, cuando rompe la seguridad de un sistema lo hace con la intención o de dañar al sistema o de obtener un reconocimiento por ello o beneficio económico.
  • Lammer o Script-Kiddies: pretenden hacer hacking sin tener conocimientos avanzados de informática. Habitualmente solamente se dedican a buscar y descargar programas de hacking para ejecutarlos.
  • Sniffers: expertos en redes que analizan el tránsito para obtener información. Extraen la información de los paquetes que se transmiten por la red.
  • Programadores de virus: expertos en programación, redes y sistemas que crean programas para dañar el sistema.

Control de acceso

El control de acceso es un mecanismo para garantizar la seguridad de la información.
Sirve para especificar quién o qué puede acceder a cada uno de los recursos del sistema, y también el tipo de acceso que se le permite en cada caso.
Hay dos tipo de funciones o procesos principales para garantizar el control de acceso:
  • Autentificación: verificación de la identidad de un usuario o de alguna otra entidad del sistema.
  • Autorización: la concesión de un derecho o de un permiso a una entidad del sistema para acceder a un recurso del sistema.

Terminología

Un objeto es un recurso que tiene el acceso controlado, por ejemplo, registros, páginas de memória, ficheros, directorios y programas.
Un sujeto es una entidad capaz de acceder a objetos, en general el concepto de sujeto va ligado al proceso. Cuando un usuario o aplicación vuelve acceder a un objeto, en realidad lo hace por medio de un proceso que representa al usuario. Aún así, es habitual hablar de usuarios como sujetos.

Sistemas GNU/Linux

En sistemas GNU/Linux hay tres clases de sujetos:
  • Propietario.
  • Grupo.
  • Otros.
Un derecho de acceso indica de qué manera un sujeto puede acceder a un objeto, por ejemplo la escritura, lectura y ejecución.

Matrices y ACL

Las matrices son una implementación del control de acceso.

Sujetos
Objetos

/home/francisco
/home/ruth
/home/albert
francisco
Lectura, escritura, cd


ruth

Lectura, escritura, cd

albert
Lectura, escritura, cd
Lectura, escritura, cd
Lectura, escritura, cd

En la práctica, la matriz de control de acceso se descomponen en estructuras más sencillas y manejables llamadas ACL (Access Control Lists). Por eso se descompone la matriz en columnas y se asocia a cada objeto una lista de quién puede interactuar y cómo.

Autentificación

Para que un usuario acceda a un recurso de un sistema se necesita previamente:
  • Demuestre que es quien dice ser (identificación).
  • Tener las credenciales necesarias.
  • Se le hayan dado derechos o privilegios (tanto en términos de acceso, como para llevar a cabo las acciones que pide).
La identificación es una manera de asegurarse que un sujeto (usuario o proceso) es la entidad que dice que es.
Determinar la identidad en seguridad informática tiene tres aspectos clave:
  • Unicidad: en un sistema cada individuo tiene que tener un identificador único.
  • No descriptiva: ninguna parte de la credencial no tiene que indicar la finalidad de la cuenta. Por ejemplo, un identificador de usuario no debería de ser webadmin, superusuario o gerente.
  • Expedición: los elementos que vienen dados por otra autoridad reconocida para demostrar la identidad de un sujeto. El documento nacional de identidad es un tipo de elemento de seguridad que se consideraría una forma de expedición de identificación.
Una vez el sujeto se ha identificado, hace falta que se autentifique, es decir, hace falta que demuestre que es quien dice ser. Hay tres factores que se utilizan para la autentificación:
  • Alguna cosa que una persona sabe (autentificación por conocimiento).
  • Alguna cosa que una persona tiene (autentificación por posesión).
  • Alguna cosa que una persona es o hace (autentificación por característica).
Una autenticación multifactor utiliza dos o tres factores de autenticación y asegura un nivel más alto de seguridad. En general, el tipo de autenticación multifactor más utilizada es la autenticación de dos factores.
Un ejemplo:
  • Un usuario quiere acceder a un sistema y para hacerlo tiene que indicar alguna cosa que sabe (contraseña) y utilizar alguna cosa que tiene (tarjeta magnética).
  • Otra posibilidad podría ser una contraseña y un atributo físico (escaneo de retina).

Autorización

El mecanismo de autentificación permite comprobar la identificación de un usuario porque acceden al sistema o a un recurso concreto. Una vez dentro, el usuario solamente podrá hacer determinadas acciones o acceder a los recursos a los cuales se le ha dado permiso.
Para facilitar al administrador del sistema la faena de autorizar el acceso a los recursos, se pueden establecer diferentes criterios mediante el uso de:
  • Roles.
  • Grupos.
Políticas de contraseña
Las contraseñas son el método más extendido para impedir accesos no autorizados.
  • Es una herramienta que es muy económica y bien utilizada puede ser muy efectiva.
  • El mal uso de las contraseñas es en la lista de las diez amenazas más habituales de seguridad.
  • Una política de contraseñas es un documento que regula cuales son las normas de creación de las contraseñas, las normas de protección de las contraseñas y la frecuencia de renovación de estas.
Contraseñas débiles:
  • Menos de 10 caracteres.
  • Palabras que aparecen en los diccionarios.
  • Utilizar información personal: nombre familiares, datos, códigos postales…
  • Utilizar patrones numéricos o alfanuméricos: qwerty, abcd, 1234....
Contraseñas fuertes:
  • Contener tanto mayúsculas como minúsculas.
  • Utilizar valores alfanuméricos (textos y números).
  • Más de 10 caracteres.
  • No utilizar palabras de diccionarios ni información personal.
El problema que hay con las contraseñas robustas que normalmente son difíciles de recordar, y al final acaban siendo escritas en un papel bajo el teclado.

Sistemas biométricos

Los sistemas biométricos verifican la identidad de un usuario mediante el análisis de alguno de sus atributos físicos o de su comportamiento.
  • Basados en un atributo físico: basan su criterio de decisión en alguna cosa que el usuario es, por ejemplo un lector de huellas dactilares.
  • Basados en el comportamiento: basan su criterio de decisión en alguna cosa que el usuario hace, por ejemplo, una tablet sobre la cual el usuario escribe su firma.
Características:
  • Sistemas de autentificación muy caros.
  • Se utilizan en sistemas de seguridad con requerimientos altos.
Hay dos tipos de errores que pueden cometer los sistemas biométricos:
  • Un falso positivo: se produce cuando el sistema acepta un impostor que debería de ser denegado.
  • Un falso negativo: se produce cuando el sistema no permite el acceso a un usuario que debería de estar aceptado.




Políticas de seguridad

La seguridad lógica

  • La seguridad lógica es complementaria respecto a los elementos de la seguridad pasiva.
  • El control de acceso a los equipos informáticos requiere la verificación de la identidad de una persona para permitirle el acceso a un lugar, datos i/o programas determinados. Estas medidas también forman parte de la cadena de seguridad.
  • Hay estructuras lógicas inventadas para la concreción de los derechos que tendrá una persona que accede al sistema.
  • Unos ejemplos son las matrices de control de acceso y las listas de control de acceso. Previamente a aplicar unos permisos determinados, pero hace falta autenticar la persona y la manera más habitual de hacerlo es mediante contraseñas.
  • Las contraseñas pueden ser muy efectivas si se utilizan bien. Si aplicamos correctamente la política de contraseñas se tiene mucho ganado.
  • Hay métodos más robustos de proteger el acceso de posibles intrusos. Uno de los métodos más robustos que hay es el uso de sistemas biométricos.

Control de acceso

El control de acceso es una de las medidas más utilizadas para garantizar la seguridad de la información.
Mecanismo que sirve para especificar quién o qué (por ejemplo un programa) puede acceder a cada uno de los recursos del sistema específico, y también el tipo de acceso que se le permite en cada caso.
El control de acceso de un sistema engloba dentro de un contexto más grande en que hay involucradas las siguientes funciones:
  • Autentificación: verificación de la identidad de un usuario o de otra entidad del sistema.
  • Autorización: la concesión de un derecho o de un permiso a una entidad del sistema para acceder a un recurso del sistema.

  1. El usuario se tiene que autenticar para poder entrar en el sistema.
  2. La función de autenticación determina si el usuario puede pasar o se queda fuera.
  3. La función de control de acceso determina si el usuario puede acceder al recurso del sistema que solicita.
  4. Para hacerlo, consultará la base de datos de autorizaciones, mantenida por un administrador del sistema, en que se especificará qué tipo de acceso tiene cada usuario para un recurso concreto.

  • Los sistemas de control de acceso básico, normalmente definen tres clases de sujeto, con diferentes derechos de acceso a cada clase:
    • Propietario: este podría ser el creador de un recurso, como un fichero o directorio.
    • Grupo: además de los privilegios asignados a un propietario, un grupo concreto de usuarios también puede tener privilegios de acceso a determinados recursos. Un usuario puede pertenecer a varios grupos.
    • Otros: un nombre más pequeño de accesos se conceden a usuarios que han entrado en el sistema, pero que no pertenecen a la categoría de propietario o de grupo para un recurso determinado.
  • Los derechos de acceso pueden incluir las acciones siguientes:
    • Lectura: un usuario puede visualizar la información de un recurso dado (fichero, directorio, registro). El acceso de lectura permite copiar o imprimir recursos.
    • Escritura: un usuario puede añadir, modificar o eliminar datos de un recurso dado.
    • Ejecución: un usuario puede ejecutar programas específicos.
    • Borrado: un usuario puede eliminar ciertos recursos como ficheros o registros.
    • Creación: un usuario puede crear nuevos ficheros, registros o directorios.

Control de acceso discrecional

Es una política de control de acceso basada en la identidad del solicitante y en unas normas de acceso (autorizaciones) que indican lo que pueden o no pueden hacer los solicitantes.
El término discrecional hace referencia al hecho que un sujeto puede tener derechos de acceso para un recurso concreto.
Una implementación del control de acceso discrecional es la matriz de control de datos.

Sujetos
Objetos

/home/francisco
/home/ruth
/home/albert
francisco
Lectura, escritura, cd


ruth

Lectura, escritura, cd

albert
Lectura, escritura, cd
Lectura, escritura, cd
Lectura, escritura, cd


En la práctica, la matriz de control de acceso se descompone en estructuras más sencillas y manejables para implementar en un sistema operativo o base de datos.
Hay dos posibles opciones:
  • Descomponer la matriz en columnas y asociar a cada objeto una lista de quién puede interactuar y como. Esta lista se llama lista de control de acceso (ACL, access control list).
  • Descomponer la matriz en filas y asociar a cada sujeto un alista de lo que puede hacer. Los elementos de esta lista se llaman capacidades.

Control de acceso a los recursos

Para garantizar la seguridad de un sistema informático, los usuarios se tienen que identificar y autenticar correctamente para poder acceder.
Una vez dentro, los usuarios solamente podrán acceder a los recursos para los cuales se les ha dado permiso, es decir, los que están autorizados a utilizar. Por lo tanto, los usuarios solamente podrán hacer las tareas para las que se les ha dado derechos.
Permisos:
  • El administrador del sistema puede acceder y configurar el entorno para que determinados usuarios no puedan ver, modificar o eliminar ciertos archivos o directorios.
  • También hay la posibilidad de dar ciertos permisos a grupos de usuarios con características similares.
  • Hay varios mecanismos para controlar quién está autorizado a utilizar un recurso y quien no. En general, los sistemas operativos guardan para cada recurso los usuarios y los grupos que lo puede utilizar y en qué condiciones (lectura, escritura, ejecución…).
  • Un mecanismo para controlar los accesos consiste en utilizar listas de control de acceso (ACL).

Los permisos en entorno linux

En una carpeta, podemos utilizar el comando “ls -l” para ver los permisos de los archivos y directorios, por lo tanto incluye el contenido del directorio en un sistema LINUX, incluyendo los permisos de cada fichero o subdirectorio.
El primer carácter indica el tipo de objeto: archivo normal (-), directorio (d)...
Seguidamente, encontramos 9 caracteres que representan los permisos de acceso al archivo o al directorio, que indican en grupos de tres:
  • Usuario propietario del archivo o del directorio (user).
  • Grupos de usuarios del archivo o directorio (group).
  • Otros usuarios. (others).
Cada grupo de tres caracteres tienen el primero de lectura, el segundo indica el permiso escritura y el tercero es el permiso de ejecución, que son los permisos básicos.
Después de los permisos, hay un nombre entero que representa el nombre de enlaces fuertes al archivo o directorio.
Seguidamente podemos encontrar el usuario y el grupo de propietarios del archivo o directorio.
Para poder modificar los permisos en sistemas UNIX se utiliza la orden chmod (change mode).
Permite indicar qué permisos quieren añadir a un archivo o directorio concretos o quitar. Hay varias maneras de utilizar la orden chmod. Para obtener ayuda completa se puede consultar la página de ayuda con “man chmod”
chmod [ugo][+/-][rwx] fichero.
  • u: propietario
  • g: grupo
  • o: otros
  • +: da permisos.
  • - : quita los permisos.
  • r: lectura
  • w: escritura
  • x: ejecución.

“chown usuario fichero:
  • Cambia el propietario de un fichero o directorio.

chgrp grupo fichero”
  • Cambia el grupo de un fichero o directorio.

Listas de control de acceso

Listas de control de acceso (ACL), mejoran la seguridad de los archivos de nuestro sistema.
En estas listas, se definen los privilegios que tiene un usuario de forma individual sobre un determinado fichero, es decir, permiten o limitan el acceso a los archivos de manera individual sin tener en cuenta el grupo al que pertenece el usuario.
Los ACL permiten dar privilegios de acceso adicionales. El propietario de un archivo puede, grácias a las ACL dar privilegios a uno o más usuarios que se sustituirán los privilegios de acceso de base.
Con las ACL es posible otorgar privilegios a un usuario que no son parte del grupo sin modificar los privilegios de los otros. Igualmente se pueden otorgar privilegios de acceso a un grupo de usuarios que no pertenecen al grupo del archivo.
Las ACL son una especie de tablas que le dicen al SO que tiene o no tiene permiso para acceder a un objeto determinado y son exclusivas de particiones con formato de NTFS. Todos estos permisos pueden ser modificados con el comando “cacls”.

Descriptores de seguridad

Cualquier objeto en un Windows con nucleo NT y sobre un sistema de archivos NTFS tiene asociados unos parámetros de seguridad almacenados en los llamados descriptores de seguridad.
En un descriptor de seguridad se guarda quien es el propietario del objeto y a qué grupo de usuarios pertenece, así como quien tiene acceso al objeto y quien tipos de permisos tiene acceso. Estos permisos están guardados en las ACL.
Los descriptores de seguridad no están almacenados concretamente en ninguna carpeta, sinó que lo están en forma de metadatos en la MFT. Por lo tanto, directamente no podemos acceder a estos descriptores ni editarlos (directamente). Al máximo que podemos llegar es a verlos encriptados en el registro de windows.
Por ejemplo: iniciamos sesión con cuenta de administrador, y vamos a inicio → ejecutar → regedit. Si navegamos hasta la llave que tenemos en la imagen veremos el valor Security. Este es el descriptor de seguridad asociado al servicio “Registro de sucesos”.
Mediante el comando cacls podemos modificarlos.

Las ACL: Comando CACLS

El comando cacls se encarga de gestionar las ya mencionadas ACL. Una ACL contiene una ACE (o “Access Control Entry”, Entrada de control de acceso) que indica que permisos tiene cada usuario. Es decir, una ACE para cada usuario o grupo.
Para observarlo hemos de acceder en la pestaña seguridad que aparece al hacer clic derecho sobre una carpeta a archivo y seleccionar las propiedades. En Windows XP (Herramientas|Opciones de carpeta| Ver).

ACL en Windows

  • Sintaxis: cacls fichero /parámetros
  • Parámetros:
    • Archivo: muestra las ACL.
    • /t: Cambia las ACL de los archivos especificados en el directorio actual y en todos los subdirectorios.
    • /e: Modifica la ACL en lugar de reemplazarla.
    • /c: Fuerza la modificación encara que se encuentren errores.
    • /g: usuario:permisos; R(lectura); W(escritura), C(cambiar) y F(control total). Concede derechos de acceso al usuario.
    • /R usuario: Suspende los derechos de usuario.
    • /p usuario:perm (Sustituye los derechos de usuario especificado (o extraerlos todos con :n).
    • /d: deniega el acceso al usuario especificado.
cacls está deprecated y se utiliza icacls.

ACL en Linux

  • Primero comprobamos si la distribución LINUX soporta ACL, con el comando # grep POSIX_ACL /boot/config-’uname -r’.
  • Instalar ACL en caso que no sea: apt-get install acl.
  • La partición de los archivos tiene que soportar ACL, configurando el archivo /etc/fstab. Fichero fstab: para comprobar la partición y poder configurar la lista de control de acceso.
  • Getfacl: muestra la información de la lista de control de acceso al fichero.
  • Setfacl: da permisos a un usuario sobre un fichero.


Mecanismos de seguridad de acceso al sistema

Los métodos de autenticación, son los mecanismos que una máquina tiene para comprobar que el usuario que intenta acceder es quien dice ser.
Estos métodos se pueden clasificar en 3 grupos, en función de los medios que se utilicen para identificarse:
  • Alguna cosa que el usuario sabe y el resto desconoce (password, PIN, etc.).
  • Alguna cosa que el usuario tiene (tarjeta bancaria, tarjeta de llaves, tarjeta ATM…).
  • Alguna característica propia del usuario, características físicas o de comportamiento (imprentas dactilares, iris, la forma de teclear, etc.) A este tipo se le conoce como mecanismos biométricos.
Por ejemplo en las directivas de seguridad con windows XP configurar directivas de seguridad de usuarios, sobre contraseñas y bloqueos de cuentas. Las directivas se pueden configurar desde las directivas de seguridad local.

Políticas de contraseñas

En la mayoría de los equipos informáticos, la autenticación de los usuarios se realiza introduciendo un nombre y una contraseña. La seguridad de los sistemas estará fuertemente relacionada con la buena elección de la contraseña y la confidencialidad de la misma. Por este motivo las empresas suelen tener definidas políticas de contraseñas donde se establece la longitud mínima, el formato, el tiempo de vida, etc.
Una política de contraseñas es un documento que regula cuales son las normas de creación de las contraseñas, las normas de protección de las contraseñas y la frecuencia de renovación de las contraseñas.

Características que hay que cumplir una buena contraseña

  • No han de estar formadas por palabras que encontramos en los diccionarios, ni en catalán ni en otro idioma ya que cualquier programa de fuerza bruta la descubrirá con facilidad.
  • No se tienen que utilizar únicamente letras mayúsculas o minúsculas, porque se reducen las combinaciones.
  • No tienen que estar formadas exclusivamente por números, por el mismo motivo que en el caso anterior.
  • No hemos de utilizar la información personal (nombres de familiares, data de nacimiento, número de teléfono, etc…).
  • No hemos de invertir palabras reconocidas. Cualquier programa creado por este fin la descubriría en poco tiempo.
  • No hemos de repetir los mismos caracteres en la misma contraseña.
  • No hemos de escribir la contraseña en ningún lugar, ni en papel ni en documentos electrónicos que no estén encriptados.
  • No le hemos de enviar a ningún correo electrónico que nos pida la contraseña.
  • No la tenemos que comunicar a nadie por teléfono.
  • Hemos de limitar el número de intentos fallidos. Si se excede del número máximo de intentos permitidos, el usuario se tiene que bloquear y se tendría que poner en contacto con el técnico de seguridad.
  • Hemos de cambiar las contraseñas de acceso, dadas por defecto por los fabricantes de los routers y otros periféricos, que nos permiten el acceso a la red.
  • No hemos de utilizar la misma contraseña en diferentes máquinas o sistemas, ya que si la descubren, haríamos vulnerables el resto de los equipos al que tenemos acceso.
  • No podemos permitir que las aplicaciones recuerden las contraseñas.
Por lo tanto, las contraseñas tienen que ser:
  • Cadenas de caracteres que incluyan tanto letras minúsculas como mayúsculas, números y caracteres especiales sin ningún tipo de lógica aparente.
  • La longitud de la contraseña tiene que ser superior a 8 caracteres, aunque lo más recomendable es que supere los 15.
Una técnica para generar contraseñas robustas es crearlas a partir de una canción o frase que nos sea fácil de recordar. Por ejemplo, si hacemos uso de la frase “Esto es una manera de recordar una contraseña”, podemos generar la contraseña a partir de las iniciales de cada palabra y cambiar la palabra ‘un’ por 1, añadiendo un carácter alfanumérico: Ae1MdR1c!

Si cumplimos con todas las recomendaciones, haremos que cualquier intruso que intente descubrir la llave de acceso cualquier intruso que intente descubrir la llave de acceso mediante programas de fuerza bruta, como John the Ripper o similares, pierdan mucho tiempo y desiste.
Hay que recordar que una contraseña mal escogida o mal protegida puede suponer un importante agujero de seguridad en la seguridad del sistema.
Hay muchos programas que te generan contraseñas seguras, por si no tenemos imaginación.
Tabla de tiempos que tardan en detectar las contraseñas:

Nº de caracteres
Mayúsculas, minúsculas y caracteres especiales
Solo minúsculas
3
Menos de un segundo
0.02 segundos
4
Menos de dos minutos
0,046 segundos
5
Aproximadamente dos horas
10 segundos
6
Aproximadamente 9 días
5 minutos
7
Entre 2 y 3 años
Aprox 2 h.
8
Aproximadamente 2 siglos
Menos de 3 días
9
Unos 20.000 años
Aprox. 2 meses

Las contraseñas además de ser robustas tienen que estar bien protegidas, ya que si llegan en manos de posibles atacantes estos pueden burlar la seguridad de todo el sistema.
Hay muchos métodos por los cuales los atacantes pueden averiguar una contraseña.
Un método muy extendido es el de ingeniería social en la cual, por ejemplo, un atacante llama a un usuario y le dice que es el administrador de sistemas y le pide la contraseña. Como el usuario trabaja en una multinacional y no conoce en persona al administrador de sistemas da la contraseña al atacante, ya que se piensa que es el administrador.

Normas básicas de protección de contraseñas

  • No escriben nunca la contraseña en un correo electrónico.
  • No decir la contraseña por teléfono a nadie.
  • No decir la contraseña a los compañeros de la empresa ni que sean superiores directos.
  • No hablar sobre las contraseñas delante de otras personas.
  • No poner pistas de la contraseña para hacerla más fácil de recordar y a la vez averiguarlo.
  • No escribir nunca la contraseña en formularios aunque sean formularios del departamento de seguridad.
  • No decir la contraseña a amigos ni familiares.
  • No decir a nadie la contraseña cuando se sale de vacaciones.
  • No escribir en ningún papel la contraseña por si se olvida.
  • Cambiar la contraseña cada seis meses como mínimo.

Sistemas biométricos

Los sistemas biométricos verifican la identidad de un usuario mediante el análisis de alguno de sus atributos físicos o de su comportamiento.
La moderna biometría está diseñando constantemente sistemas de acceso biométrico a espacios físicos y a la información digital. Se aplica sobre patrones de las facciones, la retina, el termograma del rostro, la geometría de la mano, la voz y otros.
Los más sofisticados permiten comprobar si la identificación se realiza con un órgano vivo.
Un ejemplo de sistema biométrico basado en un atributo físico sería un lector de imprentas dactilares. Estos sistemas basan su criterio de decisión en alguna cosa que el usuario es.
En cambio, una tablet electrónica sobre la cual el usuario escribe su asignatura es un sistema biométrico basado en el comportamiento. Estos sistemas basan en su criterio de decisión en alguna cosa que el usuario hace.
Los sistemas biométricos que basan el criterio de decisión en algún patrón de comportamiento tienen el problema que estos patrones pueden cambiar a lo largo del tiempo o que pueden ser falsificados por atacantes.
La manera de funcionar de los sistemas biométricos es que hacen un escaneo de un patrón físico o de comportamiento del usuario y lo comparan con una muestra modelo que tienen registrada. Si las dos muestras se consideran iguales, entonces la autentificación es la correcta. Los usuarios se tienen que dar de alta en los sistemas biométricos. Durante este proceso, el sistema biométrico recogerá una muestra del patrón del usuario que servirá como referencia para intentos de autenticación posteriores.
Los sistemas biométricos, como cualquier sistema, no son infalibles y puede ser que tengan ciertos errores durante el proceso de autenticación.
Hay dos tipos de errores que se pueden cometer en los sistemas biométricos.
  • Un falso positivo se produce cuando el sistema acepta un impostor que debería de haber estado denegado.
  • Un falso negativo se produce cuando el sistema deniega el acceso a un usuario que debería de estar aceptada.

Lector de imprentas dactilares
Lector de retina
Las imprentas dactilares son formadas por el relieve que se encuentra en los dedos de la mano.
Característica única de cada persona.
Leen el patrón formado por los vasos sanguíneos que se encuentran en la retina ocular. Hace uso de una cámara que proyecta un eje de luz verso al ojo y captura del patron.

Lector del IRIS

El lector identificador del iris se coloca próximo a los accesos. Puede ir sobre la pared o sobre un pie. Al realizarse la recogida de datos, el software procesa la imagen aplicandole una serie de algoritmos de los que se obtienen unos parámetros que posteriormente se codifican y se guardan en la base de datos, para comenzar a utilizar como medida de reconocimiento y, en consecuencia, la obertura o denegación de acceso a las áreas que se hayan determinado por esta persona.
El reconocimiento por el iris se considera un sistema de fiabilidad alta, es decir, difícil de falsificar.

Lector de la palma de la mano

Uno de los sistemas más fiables de identificación para las manos consiste en captar el entramado de las venas que pasan por las palmas.
Del entramado se realiza una imagen digital y se conserva en una base de datos, que servirá para la posterior identificación y permiso de acceso de la persona registrada.
Fujitsu es el creador del sistema Palm Secure de identificación para las palmas de la mano.
Una vez cogidas y archivadas las muestras de reconocimiento, el control de acceso se lleva a cabo colocando la mano a unos centímetros del lector de escáner. Este sistema de identificación se considera de fiabilidad alta.

Lector de reconocimiento facial

Se basan en la colaboración de puntos sobre la imagen del techo y con la medida de las distancias entre estas, como por ejemplo la distancia que hay entre dos pupilas de un sujeto.
Hasta hace poco tiempo, se utilizava la tecnologia 2D pero recientemente se ha comenzado a utilizar la 3D, que aporta un tercer parámetro a la identificación: la profundidad.
Una vez pasada la fase de registro de datos, el sistema funciona de la siguiente manera:
La persona se pone delante de una cámara de video que capta su imagen, el software de la cámara reconoce los puntos clave de los rostros y hace el cálculo de las distancias. Por último, los valores obtenidos se comparan con la base de datos para identificar a la persona y admitir o denegar su entrada o salida.
La fiabilidad del sistema es medianamente baja, por dos motivos:
  • Una persona se puede disfrazar el rostro con prótesis o similares.
  • Las características del rostro varían con el paso de los años, aparecen arrugas, etc.
  • El factor iluminación, ya que según el foco de luz se produce sombra en el rostro que puede confundir al sistema.

Sistema biométrico

  • Inscripción: con sensores, lee y extrae la características que identifican al usuario, guardando el patrón a una base de datos.
  • Identificación: lee y extrae la característica que reconoce al usuario. Este patrón se compara con los que se tienen guardados en la base de datos y se devuelve la decisión sobre la identidad del usuario.
Sistemas biométricos comunes
Verificaciones anatómicas:
  • Mano: huellas dactilares, geometría, venas…
  • Rostro: Geometría.
  • Patrones oculares: retina, iris...

Verificación del comportamiento:
  • Timbre de la voz.
  • Escritura: uso del teclado, escritura manual de un texto predefinido, firma del usuario.
  • Longitud y cadencia de paso.

Autenticación de usuarios

Una vez el sujeto se identifica, hace falta que se autentifique, es decir, hace que demuestre que es quien dice ser.
Hay tres factores que se utilizan para la autenticación:
  • Alguna cosa que una persona sabe (autenticación por conocimiento).
  • Alguna cosa que una persona tiene (autenticación por posesión).
  • Alguna cosa que una persona es o hace (autenticación por característica).
Explicaciones:
  • La autenticación por conocimiento, como una contraseña o una combinación de caja fuerte, normalmente es la manera más económica de implementar la autenticación. El inconveniente principal es que personas no autorizadas puedan averiguar la información secreta y acceder igualmente al sistema.
  • La autenticación por posesión, como una llave o tarjeta de acceso, se utiliza comúnmente para acceder a instalaciones, pero también puede ser útil para autenticar sistemas. El problema aparece cuando alguien pierde su propiedad o se la roban, cosa que se podría convertir en un acceso no autorizado.
  • La autenticación por característica se basa en uno de los atributos físicos de una persona. Los sistemas biométricos estáticos utilizan atributos físicos únicos como la huella digital o la retina, para autenticar a los usuarios (alguna cosa que el usuario es). Los sistemas biométricos dinámicos reconocen los usuarios para la voz, las características de la escritura (alguna cosa que el usuario hace).
  • Una autenticación multifactor utiliza dos o tres factores de autenticación y asegura un nivel de más alta seguridad. En general, el tipo de autenticación multifactor más utilizada es la autenticación de dos factores:
    • Por ejemplo: un usuario quiere acceder a un sistema y para acceder han de indicar alguna cosa que sepa (contraseña) y utiliza alguna cosa que tiene (tarjeta magnética).
    • Otra posibilidad podría ser una contraseña más un atributo físico (escaneo de retina).


Autorización



El mecanismo de autenticación permite comprobar la identificación de un usuario porque accede al sistema o a un recurso concreto. Una vez dentro, el usuario solamente podrá hacer determinadas acciones o acceder a los recursos a los cuales se les ha dado permiso.
El administrador del sistema autoriza los usuarios a hacer determinadas tareas. Así, el administrador tiene el máximo control posible del sistema y restringe el acceso a ciertos recursos y limita eso que puede hacer cada tipo de usuario.
  • Supongamos que el usuario Juan se tiene que identificar correctamente y ya está dentro del sistema, accede a un fichero de texto y prueba de abrir el documento.
  • Antes que le aparezca la pantalla, el sistema comprobará que el usuario Juan tenga autorización para acceder al fichero que pide. Si tiene esta autorización, podrá ver el contenido del archivo, en caso contrario, se le mostrará un mensaje de error conforme no tiene acceso.

Criterios de acceso

Para facilitar al administrador del sistema la tarea de autorizar el acceso a los recursos, se pueden establecer diferentes criterios de acceso mediante el uso de roles, grupos, localizaciones, horas de acceso y tipo de transacciones.
Se utilizan los roles cuando se quieren dar permisos a un tipo de usuario que hace una tarea concreta. Este rol se basa en un tipo de faena o función.
Por ejemplo, un trabajador que haga uso de un auditor en una empresa necesitará acceso de lectura a cualquier transacción que se haga. Este rol no necesitará privilegios para modificar o borrar datos.
Los grupos van bien cuando se tienen varios usuarios con características parecidas que requieren el acceso a ciertos recursos y ciertos datos. Al juntar estos usuarios en un único grupo y darles los permisos de acceso correspondientes al grupo es más sencillo y efectivo que hacerlo persona por persona.
En el caso de un instituto, se pueden crear dos grupos, alumnos y profesores. Los directorios y ficheros de las asignaturas serán accesibles en modo lectura para los dos grupos, mientras que solamente el grupo de profesores tendrá privilegios para modificar o borrar datos.
La localización del usuario que quiere acceder a un recurso es otra manera eficaz de controlar el acceso al sistema. Esta localización puede ser:
  • Física, solamente se puede acceder a un recurso si físicamente nos encontramos en el mismo sitio.
  • Lógica,normalmente teniendo en cuenta la dirección del ordenador desde donde se accede.
Un ejemplo de localización lógica podría ser el siguiente:
Configura uno de los servidores de base de datos de tal manera que solamente se pueden hacer consultas desde las direcciones IP de los ordenadores de la empresa.
La hora de acceso es otro mecanismo de seguridad para controlar el acceso al sistema. Este criterio permite establecer las franjas horarias en que se puede acceder a un recurso concreto.
Supongamos que tenemos un servidor web para hacer trámites administrativos mediante formularios. Se pueden configurar unas horas de acceso de ocho de la mañana a ocho de la tarde para poder utilizarlos. Fuera de este horario, no será posible introducir ningún dato más.
Finalmente, las restricciones por tipo de transacción permiten controlar los datos a los cuales se accede durante un cierto tipo de funciones y que acciones se pueden llevar a cabo con los datos.
Cuando accedemos a nuestra cuenta bancaria vía web, podremos ver el saldo que queda pero no podremos hacer transferencias mientras no pasemos otro nivel de seguridad.

Copias de seguridad

Objetivos de las copias de seguridad

Las copias de seguridad garantizan 2 objetivos:
  • Integridad.
  • Disponibilidad.
Son útiles para restablecer el sistema operativo, las aplicaciones y los datos en caso de recorrer algún desastre.
Las copias de seguridad se pueden realizar en muchos soportes de almacenamiento, cintas, CD, DVD, en discos externos o en dispositivos de almacenaje remoto. Hemos de pensar cómo destruir de forma segura los soportes donde hemos guardado los datos.
En el mercado existen varios métodos que garantizan la destrucción de los datos.
Actividades:
Visitar las siguientes páginas y analizar los diferentes tipos de mecanismos de destrucción de disco y ordenadores que poseen.

Realización de copias de seguridad

Podemos diferenciar 3 clases de copias de seguridad, dependiendo de la cantidad de ficheros que se quieran almacenar:
  • Completa: realiza una copia de todos los archivos y directorios seleccionados.
  • Diferencial: se copian todos los archivos que se han creado o actualizado desde la última copia de seguridad completa realizada.
    • Por ejemplo, si hacemos una copia de seguridad completa todos los viernes a las 00:00 horas.
    • Y una copia de seguridad diferencial el resto de días.
    • Cada copia diferencial guardará los archivos que se hayan creado o modificado desde el viernes a las 00:00 horas hasta el momento de realizar la nueva copia.
    • Ventajas:
      • Se requiere menos espacio y tiempo de proceso de la copia.
  • Incremental: Se copian los archivos que se tienen que modificar desde la última copia de seguridad completa o diferencial realizada.
    • Por ejemplo, si hacemos una copia completa el viernes a las 00:00 horas y copias de seguridad incremental el resto de días a la misma hora, cada copia incremental sólo guardará los archivos que se hayan realizado o copiado el dia que se haya realizado la copia.
    • Ventajas:
      • El proceso de copia es más rápido.
      • Ocupa menos espacio, pero si hemos de restaurar los archivos de una pérdida a causa de un desastre, necesitamos la copia de seguridad completa y todas las  copias incrementales realizadas desde la copia integral.

Programación temporal de copia de seguridad

Un esquema de rotación es un método óptimo para resguardar información en formatos o contenedores múltiples.
Hay tres tipos de esquemas de rotación:
  • GFS (Granfather-Father-Son).
  • Torre de Hanoi.
  • Backup incremental.

GFS (Granfather-Father-Son)

Es el esquema de rotación más popular, consiste en:
  • un full backup mensual (preferiblemente off-site) que es el abuelo (GranFather).
  • Un full backup semanal (on-site), el padre.
  • Un backup incremental diario, el hijo (son), también on-site.
Beneficio: conserva copias recientes de la información, mientras paralelamente conserva copias anteriores para un periodo determinado.
Ejemplo:

Domingo(1)
Lunes(2)
Martes(3)
Miércoles(4)
Jueves(5)
Viernes(6)
Sábado(7)
Diferencial/ Incremental o NADA
Diferencial/ Incremental
Diferencial/ Incremental
Diferencial/ Incremental
Diferencial/ Incremental
Completo
Diferencial/ Incremental o NADA
Domingo(8)
Lunes(9)
Martes(10)
Miércoles(11)
Jueves(12)
Viernes(13)
Sábado(14)
Diferencial/ Incremental o NADA
Diferencial/ Incremental
Diferencial/ Incremental
Diferencial/ Incremental
Diferencial/ Incremental
Completo
Diferencial/ Incremental o NADA

En caso de que el sistema falle el jueves(12):
  • Será necesaria la copia completa del viernes (6).
  • Si se utilizan copias diferenciales: Solamente la copia diferencial de los miercoles (11).
  • Si se utilizan copias incrementales: Se necesitarán todas las copias incrementales des del sábado 7 hasta el miércoles 11.

Torre de Hanoi

Consiste en un full backup (suponemos en 5 discos, etiquetas de la A a la E).
  • El disco A se reutiliza diariamente.
  • El disco B cada 4 días.
  • El disco C cada 8 y así sucesivamente, hasta cobrar el mes.
Ejemplo:
5 discos (A-E) → 16 días.
2(n-1), donde n es el número de discos.


Sesión
Nivel de copia de seguridad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1 (Incremental)

A

A

A

A

A

A

A

A
2 (Diferencial)


B



B



B



B

3 (Diferencial)




C







C



4 (Diferencial)








D







5 (Completo)
E
















Beneficio:
Es mucho más simple de realizar el backup como hacer el restore, y hasta más económico que el GFS que utiliza
Desventajas:
Necesita medios de almacenamientos de gran capacidad, y en entornos automatizados, software especializado por esta metodología.


Backup incremental

Se copian los archivos que se han modificado desde la última copia de seguridad completa o diferencial realizada.
incrementalbackup.jpg

Soporte de almacenamientos remotos y extraíbles

Uno de los errores más habituales es utilizar el mismo soporte en el que se encuentran los datos para guardar las copias o ubicarlas en el mismo sitio donde se encuentran los equipos de los que hemos realizado las copias.
La finalidad de la copia de seguridad es poder recuperar los datos en caso de desastre. SI la copia se encuentra en el mismo disco o en una partición del mismo y se produce una avería física, no podremos recuperar los datos ni la copia de seguridad.
Las copias de seguridad se pueden guardar en diferentes soportes, en discos duros externos, en discos compactos, en DVD, en cintas, en memorias flash, en discos SSD, etc.
La realización de copias de seguridad en un lugar diferente a la ubicación original se llama Off-site Data Protection. Existen numerosas empresas especializadas en estos servicios, como http://www.perfectbackup.es.
Discos CD y DVD regrabables:
  • Ofrecen un número muy limitado de escrituras.
  • Después de varias decenas de escrituras, las grabaciones fallan y aparecen mensajes del tipo “el soporte es de sólo lectura”.
La cinta:
  • Es uno de los soportes más antiguos que se siguen utilizando actualmente.
  • Sus características principales son el gran volumen de almacenaje que permiten y su alta fiabilidad.
  • Son más lentas que los discos duros convencionales, ya que el acceso a los datos es secuencial.
Las memorias de tipo flash:
  • Pendrive, microSD, compactFlash y similares.
  • No son recomendables, ya que se suelen estropear con facilidad debido a los golpes y a los altos voltajes que reciben en ocasiones accidentalmente, y además, tienen poca capacidad..
Los discos duros (o discos rígidos):
  • Utilizan métodos de grabación basados en la imantación del soporte.
  • Aunque han evolucionado rápidamente, esto solamente ha supuesto un incremento en la capacidad de estos, en el tiempo de acceso a los sectores y en la fiabilidad.
Soporte SSD (Soild State Drive):
  • En la actualidad se empiezan a realizar copias de seguridad en soportes SSD.
  • Desventaja: el precio, son muy caras, y su capacidad es limitada.
  • Ventajas: Sobre los discos duros convencionales:
    • No tienen elementos mecánicos, los que los hacen ser fiables frente a los discos duros tradicionales.
    • El rendimiento es mayor y el tiempo de acceso de los SSD es bastante inferior a una milésima de segundo frente a las varias decenas de milésimas de segundos habituales de los discos duros tradicionales.


Restauración de copias de seguridad

Puntos de restauración

De la misma forma que realizamos copias de seguridad de los datos, hemos de realizar otros del sistema operativo, para restablecer su correcto funcionamiento lo más rápido posible y evitar la instalación del sistema operativo desde cero.
En el caso de sistemas operativos de la familia Microsoft, podemos intentar restablecer el sistema al estado que se encontraba antes de producirse el problema. La restauración permite borrar los archivos de un sistema a un estado anterior.
Por eso se tienen que crear y guardar puntos de restauración.
Para activarlo en windows 7:
  1. Abrir el panel de control.
  2. Pulsar en Sistema.
  3. Seleccionar protección del sistema en el panel izquierdo.
  4. Seleccionar la unidad de disco que se quiere activar la protección automática, configurar y seleccionar la configuración de restauración deseada.

Arrancada con la última configuración válida


En ocasiones la restauración del sistema no puede realizarse, o bien porque no se han creado puntos de restauración, o bien porque el sistema está demasiado degradado.
Si no podemos iniciar Windows, podremos utilizar la opción de inicio con la última configuración válida conocida.
En Windows, cuando se reinicia el equipo si se selecciona la tecla F8, aparece una nueva ventana donde muestra las opciones de inicio avanzadas.
Se tiene que seleccionar la última configuración válida conocida, posteriormente el equipo arrancará con normalidad.
Si esta opción no nos funciona, intentaremos restaurar el sistema desde los símbolos del sistema con el comando rstrui.exe.
En el caso que no podamos iniciar el equipo con las opciones anteriores, podemos probar la Reparación de inicio de Windows.
Permite solucionar algunos problemas, como la falta de archivos del sistema o bien archivos corruptos. Para hacerlo seguiremos estos pasos:
  1. Reiniciar el equipo.
  2. Presionar la tecla F8 en el arranque del sistema operativo para acceder al menú de opciones de inicio avanzadas.
  3. Seleccionar la 1a opción reparar equipo.
  4. Seleccionar la distribución del teclado.
  5. Seleccionar el nombre de usuario y la contraseña.
  6. En el menú de opciones de recuperación del sistema escoger reparación de inicio.

Recuperación automática del sistema

Si el sistema está tan degradado que no podemos arrancarlos ni en modo de errores y hemos realizado alguna copia de seguridad, podemos recuperarla con ASR (Automated System Recovery) en algún medio externo (DVD, disco duro, tarjeta SD, etc.) podemos recuperarlo.
Los pasos son los siguientes:
  1. Arrancar el ordenador con el CD original del sistema operativo.
  2. En los primeros momentos de la instalación pulsar F2 que nos avisará en la parte inferior.
  3. Seguir los pasos que nos soliciten.
  4. Comunicar quién es el medio y fichero de la copia.

Creación y restauración de imágenes

Con el propósito de hacer copias de seguridad del sistema (y así hacer la reinstalación más cómoda, sencilla y con menos tiempo) existen aplicaciones como Symantec Ghost y Acronis True Image, entre otros.

Criptografía

Introducción a la criptografía

El término criptografía proviene del griego:
krypto = oculto
graphos = escritura
Garantiza la confidencialidad de la información transmitida.
Definición de criptografía de l’IEC:
“Técnica de conversión de un texto o de unos datos en un mensaje incomprensible para la persona que no posee la cifra o la llave.”
Definición de Rubicon Labs:
“Ciencia que estudia la escritura oculta, es decir, aquella que enseña a diseñar códigos secretos y la operación inversa, para interpretar los mensajes cifrados.”

Historia de la criptografía

Escítala (Siglo V a.C.)

Los primeros mensajes cifrados son del siglo V a.C., donde los espartanos de la antigua Grecia utilizaban la escítala para ocultar comunicaciones.
199px-Skytale.png
Con este método, el emisor enrollaba una cinta sobre un palo y posteriormente se escribe el mensaje en forma longitudinal. Después, la cinta se desenrollaba del palo y era enviada al receptor del mensaje. Si este era interceptado por los enemigos, solamente obtendremos un conjunto de caracteres sin sentido. El receptor solamente podía interpretar el mensaje siempre y cuando tuviese un palo idéntico al cual se va utilizar para ocultar el mensaje (es decir, una vara con el mismo diámetro.

Polybios (segle II a.C.)

A mediados del siglo II a.C., los griegos desarrollaron otro método conocido con el nombre del historiador Polybios.
tablas2+copia.png
El cifrado consiste en sustituir cada letra del mensaje original por una pareja de letras o números que indican la fila y la columna donde se encuentra.

César (siglo I a.C.)

En el siglo I a.C. los romanos desarrollaron el cifrado de César.
El cifrado consiste en sustituir cada carácter por otro, resultado de desplazar 3 posiciones a la izquierda el carácter original del alfabeto utilizado volviendo a comenzar para la cola del abecedario cuando convenga.
320px-Caesar_cipher_left_shift_of_3.svg.png

Vigenère (segle XVI)

En el siglo XVI, Blaise de Vigenère, desarrolló la idea de León Battista Alberti (s.XV), a través de la cual utilizó 26 alfabetos cifrados, obteniendo cada uno de ellos comenzando con la siguiente letra de la anterior:
De esta manera el emisor podría cifrar la 1ª letra con el 5º alfabeto, la 2ª con el 10º, la 3ª con la 5ª, etc...
2000px-Vigenère_square_shading.svg.png
Para descifrar el mensaje, el receptor tiene que saber que linea de la tabla de Vigenère ha sido utilizada para codificar cada letra, por el que previamente se tienen que haber puesto de acuerdo. Esto se obtiene utilizando una palabra clave, que será necesario repetir tantas veces como haga falta hasta que se consiga la longitud total del texto a cifrar.
La ventaja de este método es que no se puede descifrar el mensaje oculto analizando las frecuencias de las letras ya que una misma letra se corresponde con diversas combinaciones diferentes.
Otra ventaja de este método es que se pueden utilizar innumerables llaves.

Otros cifrados

El cifrado de Alberti (uno de los primeros cifrados polialfabéticos).
Cifradores del siglo XIX
  • El cifrador de Wheatstone.
  • El cifrador de Bazeries.
Máquinas de cifrar del siglo XX
  • La máquina Enigma.
  • La máquina Hagelin.

Clasificación de los métodos de criptografía

La clasificación según los métodos de criptografía sería:
  • Sistemas de transposición: Consiste en descolocar el orden de las letras, sílabas o conjunto de letras. En función del número de transposiciones podemos clasificar los sistemas de transposición en:
    • Sistemas de transposición simples: cuando el texto en claro solamente se somete a una transposición.
    • Sistemas de transposición doble o múltiple: cuando se realiza una segunda transposición sobre el texto que ya había estado cifrado mediante transposición simple. Este método consigue más seguridad.
  • Sistemas de sustitución: Consiste en sustituir algunas letras del alfabeto para otras o por un conjunto de estas según el método. Según el tipo de substitución se clasifica en:
    • Literal: se sustituyen letras por letras.
    • Numéricas, se sustituyen por números.
    • Esteganográfica: se sustituyen por signos o se oculta el mensaje detrás de una imágen, sonido, etc.

Criptografía simétrica y asimétrica
Hoy en día utilizamos básicamente dos métodos de cifrado.
  • Cifrado Simétrico (o de clave privada), el cual utiliza la misma llave para el cifrado y descifrado.
  • Cifrado asimétrico (o de clave pública), utiliza una pareja de llaves para el proceso de cifrado y descifrado.

Criptografía simétrica

Cifrado simétrico (o de clave privada), el cual utiliza la misma clave para el cifrado y el descifrado. Este cifrado se basa en un secreto compartido entre la entidad que cifra el mensaje y la que lo descifra.
El método de Vigenère es un claro ejemplo de criptografía simétrica.

Desventajas

El intercambio de claves, ya que si las personas se conocen y están físicamente en contacto es más o menos fácil comunicarse la clave a utilizar, pero si se encuentran separadas a miles de kilometros, o no se conocen, y han de utilizar el correo electrónico, el correo ordinario, una llamada telefónica, etc… todos son medios de comunicación inseguros, ya que cualquier intruso podría capturar la clave escogida.
La cantidad de claves que una persona ha de memorizar, ya que suponemos que una persona intercambia información confidencial con 50 personas diferentes, con cada una de ellas utiliza una llave diferente y cada cierto tiempo modifica estas llaves por seguridad. ¿Cuántas claves debería memorizar? Innumerables.

Criptografía asimétrica

El cifrado asimétrico (o de clave pública), consiste en que cada una de las partes involucradas en la comunicación segura tienen una pareja de claves para el proceso de cifrado y descifrado.
Una clave pública (para cifrar), que debería de intercambiar con cada una de las entidades con las que quiere comunicar mensajes secretos y otra clave privada (para descifrar), y que por lo tanto no se tienen que comunicar con nadie.
Para cifrar un mensaje, el emisor utilizará la clave pública del receptor y al mismo tiempo el receptor descifrará este mensaje haciendo uso de su clave privada.
Las llaves se generan al mismo tiempo y se encuentran relacionadas matemáticamente entre sí mediante funciones de un solo sentido.
Resulta prácticamente imposible descubrir la clave privada a partir de la pública.
En un sistema de cifrado con clave pública, los usuarios escogen una clave aleatoria que solamente ellos conocen (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 desee enviar un mensaje a otro usuario, solamente tiene que cifrar el mensaje que desee enviar utilizando la clave pública del receptor (que puede encontrar en un servidor de llaves). El receptor podrá descifrar el mensaje con su clave privada (que solamente conoce el). Este sistema se basa en una función que es fácil de calcular en una dirección y que matemáticamente resulta muy difícil de invertir sin la clave privada.

Algoritmos

Los algoritmos son los métodos que se utilizan para transformar el texto claro en el texto cifrado, como por ejemplo, el cifrado por sustitución del César.
Como podemos imaginar, hoy en día se utilizan varios algoritmos, algunos válidos para criptografía de clave privada y otros válidos para criptografía de clave pública.


ALGORITMOS DE CLAVE PRIVADA
ALGORITMOS DE CLAVE PÚBLICA
  • DES
  • 3DES
  • RC4
  • IDEA
  • AES
  • DH
  • ElGamal
  • RSA

Función de Hash

Son funciones que asocian a cada documento un número y que tienen la propiedad que conociendo el valor numérico, no se puede obtener el documento.
Estas son conocidas por el nombre de funciones de un solo sentido.
Las funciones hash han de cumplir los siguientes requisitos:
  • Ha de ser muy difícil que dos documentos diferentes tengan el mismo hash.
  • Ha de ser muy difícil, por no decir imposible, crear un documento a partir del valor de hash.
La forma de obtener el valor hash de un documento utilizará algoritmos complejos matemáticamente, por lo que así podamos cumplir las 2 especificaciones de la función hash.
Algunos de estos algoritmos son el MD5 y el SHA.
Las funciones Hash sirven para garantizar la integridad de los textos.
Por ejemplo, con el código ASCII podríamos generar una función hash:
  1. El código ASCII asigna un número a cada letra o signo de puntuación.
  2. Es una clave simétrica estándar internacional.
  3. La utilizan, por ejemplo, todos los ordenadores.
  4. Podemos sustituir cada letra de un texto por su código ASCII.
  5. Podemos utilizar los códigos ASCII de un texto para hacer cualquier cálculo.
  6. Aquí, cada tres caracteres, con sus códigos ASCII, se operan.
  7. Fórmula = (1r-2n)*3r
  8. La suma de los resultados es una función HASH que identifica perfectamente el texto.

funcin-hash-4-728.jpg


Firma digital

La firma digital permite al receptor de un mensaje verificar la autenticidad del origen de la información y verificar que esta información no ha estado modificada desde su generación.
La firma digital ofrece el soporte para la autenticación y integración de los datos, así que el no repudio del origen, dado que el emisor del mensaje firmado digitalmente no puede argumentar que no lo es.
La firma digital está destinada al mismo propósito que una manuscrita. Aún así, una firma manuscrita es sencilla de falsificar mientras que la digital es imposible mientras no descubra la clave privada de quien firma.
La descripción del mecanismo de la firma electrónica es el siguiente:
  • Se calcula un valor hash del documento, utilizando algún algoritmo como el SHA.
  • Este valor hash se cifra utilizando la clave privada de nuestra pareja de claves pública-privada.
  • El resultado de este valor es el que se conoce como firma digital del documento.
El proceso de comprobación de una firma digital:
  • La firma se descifra utilizando la clave pública de la persona que firma, y con esto se obtiene el valor de resumen del documento.
  • Se obtiene el valor resumen del documento utilizando el mismo algoritmo que en el proceso de cifrado, por ejemplo, el SHA.
  • Por último, se comparan los dos valores resúmenes obtenidos en los dos procesos anteriores y si estos coinciden entonces la firma es válida, si estos dos valores son diferentes la firma será nula.
770px-Firma_Digital.png


Certificado digital

El certificado digital es un documento que contiene información sobre una persona o entidad, guarda su nombre, su dirección, email… y una clave pública y una firma digital de un organismo de confianza (autoridad certificadora) que confirma que la clave pública que contiene el certificado pertenece al propietario del mismo. Esta última firma podríamos decir que es la más importante.
Existen multitud de formatos para los archivos que guardan los certificados digitales. El más extenso y utilizado en internet es el estándar conocido como X.509.
Campos de un certificado:
  • Versión, número de serie.
  • Algoritmo de firma (idéntico al algoritmo utilizado para firmar el paquete X.509.)
  • Autoridad certificadora (emisor).
  • El periodo de validez (válido desde y hasta…)
  • El propietario de una clave (asunto).
  • Clave pública.
  • La firma digital de la autoridad certificadora.
  • Imprenta digital.
  • Uso de la clave.


PKI (Public Key Infrastructure)

PKI son las siglas de Public Key Infrastructure (infraestructura de clave pública), o lo que es lo mismo, todo lo necesario, para las comunicaciones seguras mediante el uso de certificados digitales y firmas digitales.
Las PKI están compuestas de:
  • La autoridad de certificación (CA, Certification Authority), es la entidad de confianza encargada de emitir y revocar los certificados.
  • La autoridad de registro (RA, Registration Authority), es la encargada de controlar la generación de certificados. Primero procesa las peticiones que hacen los usuarios, posteriormente comprueba la identidad de los usuarios exigiendo que les presenten la documentación oportuna que permita verificar la identidad de los mismos y por último solicita a la autoridad de certificación la expedición del certificado digital.
  • Las autoridades de los repositorios donde se guardan los certificados emitidos y aquellos que han estado revocados por cualquier motivo y han dejado de ser válidos.
  • Todo el software necesario para poder utilizar los certificados digitales.
  • Política de seguridad definida por las comunicaciones.
En España para realizar numerosos trámites con las administraciones públicas por internet nos exigen el uso de un certificado digital que asegure nuestra identidad.
Este certificado emitido por la fábrica de la moneda y timbre, autoridad de certificación, que haciendo uso de numerosas oficinas de la administración pública (tresorias de la seguridad social, oficinas de la agencia tributaria) como autoridades de registro verifica que la persona que solicita el certificado es quien dice ser al presentar el documento nacional de identidad en estas oficinas.

Biblioteca JCE

El paquete JCE (Java Cryptography Extension) es una biblioteca que ofrece Java para poder ejecutar algoritmos de cifrado a nuestros programas.
El objetivo de JCE es ofrecer una capa de abstracción que permita integrar diferentes tipos de algoritmos criptográficos, de manera que el código sea muy parecido y que solamente dependa de unos pocos parámetros para llamar algunos métodos, independientemente del algoritmo escogido.
También está pensado para que pueda ser extendido para incluir nuevos algoritmos que se inventen en el futuro manteniendo una retrocompatibilidad de las aplicaciones. Hace falta tener en cuenta que el JCE no dispone de todos y cada uno de los algoritmos existentes a día de hoy.
JCA_Overview.png
080202.gif

Cifrado simétrico

Algoritmo AES

Es de cifrado simétrico, también conocido como de llave privada.
Actualmente existen diferentes algoritmos de cifrado simétrico en uso dentro del contexto de aplicaciones informáticas. Nosotros nos centraremos en el estudio del algoritmo AES (Advanced Encryption Standard), que es el que se considera más seguro y el estándar en algoritmos de cifrado desde el año 2002.
Antiguamente llamado Rijndael (pronunciado “Rain Doll” en inglés), y creado por dos criptógrafos belgas, Joan Daemen y Vincent Rijmen, que ganó su estatus estándar después de participar en un concurso muy exigente a nivel internacional el año 1997 al NIST (Instituto Nacional de Normas y tecnología).
La propuesta que presentaban, presentaba por primera vez una familia de cifradores con diferentes medidas de llaves y bloques.
320px-AES-SubBytes.svg.png
Para el AES, el NIST seleccionó tres miembros de la família de Rijndael, cada uno con una mida de bloque de 128 bits, pero tres llaves diferentes: 128, 192 y 256 bits.

El AES se basa en un principio de diseño que se conoce como red de sustitución - permutación, como el nombre indica, combina ambos conceptos.
A diferencia de su predecesor DES, el AES no utiliza la red Fesitel (cifrador de bloques prácticamente idéntico por el proceso de cifrado y descifrado), sino que implementa una variante del cifrado Rijndael, que funciona con múltiples de 32 bits, con mín. 128 y máx. 256.
AES opera con columnas de bytes de 4x4, que indican el estado.
La llave que se utiliza especifica el número de repeticiones de las rondas (rondas de ahora en adelante) que se utilizan para convertir la entrada (llamada como ya sabéis “texto plano”) en la salida final (llamada “texto cifrado”).

El número de ciclos de repeticiones comentado son los siguientes:
  • 10 ciclos de repetición por las llaves de 128 bits.
  • 12 ciclos de repetición por las llaves de 192 bits.
  • 14 ciclos de repetición por las llaves de 256 bits.
Cada “round” consiste en varios pasos de procesado, conteniendo cada uno de ellos a la misma vez en varias partes, incluyendo uno que depende directamente de la propia llave de encriptación.
Lógicamente, para transformar el texto cifrado de nuevo al texto plano original se hará utilizando la misma llave de encriptación, también se aplica un nuevo conjunto de rounds.

  1. KeyExpansion: se obtienen las llaves de las rondas con el esquema de llaves de Rijndael.
  2. InitialRound:
    1. AddRoundKey - Cada byte del estado es combinado con un bloque de la llave utilizando el operador lógico XOR.
  3. Rondas:
    1. SubBytes - Se realiza una substitución no lineal donde cada byte es substituido por otro, de acuerdo con una tabla de búsqueda.
    2. ShiftRows - Se realiza una transposición donde cada fila del estado está rotada de manera cíclica un número determinado de veces.
    3. MixColumns - Operación de mezcla que opera a las columnas del estado, combinando los cuatro bytes en cada columna utilizando una transformación lineal.
    4. AddRoundKey - Cada byte del estado se combina con la llave round. Cada llave round se deriva de la clave de cifrado utilizando una iteración de la llave.
  4. Etapa final.
    1. SubBytes - Se realiza la sustitución no lineal donde cada byte es substituido por otro, de acuerdo con una tabla de búsqueda.
    2. ShiftRows - Se realiza una transposición donde cada fila del estado está rotada de manera cíclica un número determinado de veces.
    3. AddRoundKey - Cada byte del estado es combinado con la llave round, cada llave round se deriva de la llave de cifrado utilizando una iteración de la llave.

Seguridad

El diseño y la robustez de todas las longitudes de clave del algoritmo AES (128, 192 y 256) han sido declaradas suficientes como para proteger información clasificada a nivel de “secreto”.
La información “TOP SECRET” requiere el uso de claves de longitud mínima 192 o 256. La implementación del AES en productos pretende proteger sistemas de seguridad nacional y/o información que ha de ser revisada y certificada por la NSA previa adquisición y uso. AES tiene 10 rondas por las claves de 128 bits, 12 rondas para las claves de 192 bits, y 14 rondas para las claves de 256 bits.
Los mejores ataques para este cifrador se encuentran alrededor de 7 rondas por las 128, 8 rondas para las de 192 y 9 para las de 256.
Otros algoritmos de cifrado simétrico que aún están en uso son, por ejemplo, el anterior estándar: DES (Data Encryption Standard), o el TripleDES.
Como las modificaciones de código que hacen falta para poder usar un algoritmo o otro mediante JCE son mínimas, si nos centramos en uno de ellos ya podemos entender como funciona.
Vamos a ver con partes de código como trabajar con esto…
Antes de plantearse la ejecución de un algoritmo de cifrado, primero hace falta una condición indispensable: decidir quién será la clave mediante la cual es protegida la información.
Por lo tanto, esto es el primer paso a resolver. Todos los que tengan acceso a esta clave será capaz de generar datos cifrados y de descifrarlas posteriormente.