lunes, 28 de julio de 2008

Bit Locker - Seguridad en Windows Vista- 2da Parte

Continuando con el tema de bit Locker , vamos a seguir viendo otras caracteristicas muy importantes para la implementacion de la misma:


Autenticación MAC.
El mecanismo natural de implementación de cifrado para evitar estos mecanismos de ataque, es la utilización de MAC (Message Autenthication Code) a cada bloque de datos del disco. El problema que plantea el uso de este mecanismo es que necesitaríamos establecer una reserva de sectores para almacenar el MAC, con lo cual tendríamos un uso limitado en la capacidad de almacenamiento de hasta un posible 50% de almacenamiento. Además bajo las condiciones actuales de implementación de este mecanismo en sistema de altos procesamiento de datos con accesos de lectura y escritura, podremos encontrarnos con problemas de rendimiento o la corrupción de sectores. Si no queremos escribir en sectores x, sin dañar x+1 x-1 en procesos de caída del sistema no controlados o por pérdida de energía, tendremos que tener en cuenta que en el caso de escribir en un sector x el sistema deberá leer el sector, desencriptarlo, encriptarlo y nuevamente escribir todos los sectores que correspondan al bloque. Si falla el sistema cuando se escriben sectores, en el nuevo bloque pero quedan pendientes otros, entonces todo el bloque puede quedar corrompido.



Autentificación de “Poor-man”
Este es otro de los posibles mecanismos para la implementación de seguridad que permite generar bloques cifrados con un tamaño entre 512-8192 bytes, de tal forma que una leve modificación en uno de los caracteres del bloque modifica de forma aleatoria todo el bloque. Con objeto de evitar el mecanismo de secuenciación moviendo datos cifrados de un sector a otro sector, se generan cambios del algoritmo para cada sector. De este forma aunque el potencial atacante tuviera acceso a los datos tanto cifrados como en texto plano, la variedad del mecanismo de secuenciación y los cambios en el algoritmo evitan los mecanismos de predicción del sistema de cifrado.En el siguiente post evaluaremos diferentes mecanismos de cifrado y el mecanismo empleado para Bitlocker: AES-CBC + difusor.


AES - CBC + Difusor
Existen numerosos elementos necesarios aplicar a la hora de determinar un mecanismo de cifrado, y estos deben garantizarse, de tal forma que el acceso a los datos cifrados deben ser controlados, tanto a nivel lógico, como el impedir los ataques que mediante manipulación arbitraria permitiera el acceso aleatorio a los datos y la obtención del mecanismo de cifrado.Por mecanismos de rendimiento el mejor sistema que se puede emplear para el cifrado de datos de disco es AES-CBC, pero ya advertimos anteriormente el riesgo de posibles ataques al utilizar únicamente este mecanismo. La decisión finalmente establecía la utilización de AES-CBC para la encriptación primaria y una clave difusor independiente para texto plano. Este difusor tiene como objetivo fortificar frente a los ataques de manipulación, mejor que lo que puede realizar de forma única el algoritmo de AES-CBC.



Implementando el cifrado
Aqui vamos a definir como se realiza la implementación en Windows Vista. Antes de realizar la implementación, necesitamos haber definido inicialmente una estructura de disco consecuente para la implantación de Bitlocker.


Inicialmente necesitamos para habilitar bitlocker 2 particiones formateadas en NTFS. Una de las particiones, la activa, es el volumen de sistema, que contendrá todo el sistema de arranque y no se cifrará, esta partición no cifrada además de mantener todo el arranque, nos permitirá cargar el boot loader y arrancan otro sistema operativo que pudiera estar coexistiendo en nuestra máquina y en otra partición diferente de aquella que vamos a cifrar. La otra partición, almacenará el sistema operativo y es aquella que podemos cifrar. Únicamente mediante bitlocker se puede cifrar esta partición.


Una vez que tenemos definido y creado nuestro sistema de almacenamiento siguiendo estas características, procederemos a habilitarlo. En el caso de que no poseamos el chip TPM, siempre podremos optar por utilizar un Stick USB para el almacenamiento de las claves. Para utilizar esta metodología deberíamos habilitar la directiva correspondiente tal y como definimos en post anteriores.


Posteriormente a la definición del método para el almacenamiento de las claves, el sistema nos presenta la posibilidad de guardar una password de recuperación. El almacenamiento de la misma se puede realizar en un dispositivo USB, en una carpeta o bien imprimirse. Esta clave debiera quedar bien resguardada, tanto por motivos de seguridad, como por motivos de administración, puesto que nos permitirá recuperar el disco cifrado, en caso de contratiempos, aunque nos lleváramos el disco duro a otra máquina diferente del que hallamos implementado el cifrado del disco. Esta password de recuperación es única para cada sistema donde hayamos implementada por bitlocker.


Finalizaremos la aplicación de Bitlocker, reiniciando la máquina. Se realiza un pre-arranque donde se comprueban las condiciones para su implementación y la compatibilidad. Si supera este proceso, se procederá a la implementación del cifrado. Una vez completado en el siguiente proceso de arranque, en función del escenario de implementación que hayamos utilizado, bien por PIN o USB, nos lo solicitará para proceder con el proceso de carga del sistema operativo.


Uno de los mecanismos que tenemos que tener siempre presente es el de la recuperación en caso de una contingencia. Para ello deberemos disponer de la clave de recuperación bien que se encuentre en un dispositivo USB, o lo hubiéramos impreso. Durante el arranque si el sistema está bloqueado nos pedirá la clave de recuperación. Inicialmente nos solicitará la llave USB o bien introducir manualmente la clave que tuviéramos en papel. Este mismo mecanismo deberemos implementar en el caso de que el hardware haya provocado fallos y tuviéramos que llevarnos el disco a otra máquina.












Figura 1 - Funciones de cifrado mediante AES-CBC + Difusor
La figura anterior describe los mecanismos empleados para el cifrado de los datos. Los datos en texto plano son corred con una clave del sector. Posteriormente se le aplican los difusores y finalmente se encripta con el modo AES-CBC. La clave del sector viene definida por la siguiente función:
KS:=E(KSEC, e(s)) E(KSEC,e’(s))
donde E() es la función AES de encriptación, KSEC es la clave utilizada (128 o 256 bits, según lo elegido) y e(s) y e’(s), es la función de codificación utilizada en la capa AES-CBC teniendo en cuenta que e’ es como e solo que el último byte tiene el valor 128. La clave Ks se repite tantas veces como sea necesario hasta completar una clave del tamaño del bloque y se aplica una función corred sobre el texto plano.
El uso de dos difusores, muy similares pero aplicados en direcciones opuestas, permite la propiedad de difusión correcta en ambas direcciones. Los difusores vienen determinadas en una función donde intervienen el número de palabras del sector y un operador de 4 constantes (diferentes para cada difusor) en un array que especifica la rotación. Este mecanismo tiene como objetivo minimizar el impacto del cifrado en el rendimiento al utilizar un menor uso de ciclos por segundo para realizar el mismo.
Hasta la Vista...

viernes, 4 de julio de 2008

Bit Locker - Seguridad en Windows Vista- 1ra Parte

Windows Vista en sus versiones Enterprise y Ultimate, incorpora una nueva funcionalidad que entre otras posibles características podría paliar los anteriores escenarios que habíamos planteado: Bitlocker. Este nuevo sistema garantiza la confidencialidad de los datos almacenados en el disco mediante cifrado. Bitlocker utiliza AES (Advance Encription Standard) como algoritmo de cifrado en modo CBC (Cypher Block Chaining) y con objeto de evitar los ataques por manipulación de datos cifrados se incorpora un difusor adicional independiente de AES-CBC.
Los mecanismos de seguridad implementados por Bitlocker se complementan mediante unas nuevas especificaciones de seguridad hardware Trusted Platform Module (TPM). Este nuevo chip TPM proporciona una plataforma segura para el almacenamiento de claves, password o certificados, haciendo más difícil el ataque contra las mismas. Aunque nuestros equipos no dispusieran de este mecanismo de seguridad las especificaciones de Bitlocker admiten su funcionalidad sin el chip TPM, pero ¿funciona igual?


La Concienciación para la Seguridad de los Discos

Bitlocker proporciona mecanismos para garantizar tanto el cifrado de la unidad que contiene el sistema operativos, proporcionando de esta manera, seguridad adicional frente a amenazas externas directas o indirectas. De esta forma nadie ajeno al sistema podría conseguir la información almacenada en la partición del disco duro cifrado mediante Bitlocker. A pesar de las mejoras que este mecanismo proporciona no hay que obviar otras metodologías como EFS o Right Management Services, puesto que Bitlocker solo condiciona este mecanismo de seguridad, a la información almacenada sobre el disco cifrado y en ninguna instancia a todos los datos que salen fuera de él como ficheros compartidos, almacenados en discos externos, etc. El cifrado del sistema se puede combinar mediante cifrado de mecanismos Software y/o Hardware.



¿Combinar Hardware y Software?
Bitlocker proporciona un filtro en el Stack del sistema de Windows Vista encargado de realizar los procesos de cifrado y descifrado de una forma totalmente transparente, cuando se escribe o se lee en un volumen protegido. Este mismo mecanismo interviene también cuando el equipo entra en el modo de hibernación. Mediante este mecanismo se garantiza también la seguridad del fichero de paginación, los ficheros temporales y resto de elementos que puedan contener información sensible. Una vez que el mecanismo de cifrado ha sido puesto en marcha, la clave de cifrado es eliminada del disco y posteriormente almacenada en el Chip TPM. Con objeto de garantizar que un posible ataque al sistema hardware mediante posibles vulnerabilidades, se proporcionan mecanismos de autentificación mediante sistemas adicionales tales como el uso de Token (llave USB) o una password (PIN) para evitar esta posibilidad.El uso combinado de mecanismos hardware y software evitan determinados ataques que tienen como objetivo la modificación de datos que aunque cifrados podrían provocar una vulnerabilidad en el sistema, siendo explotado posteriormente para poder acceder al sistema. La implementación de Bitlocker requiere de la existencia de condiciones para su implementación. Un factor importante es que el sistema necesita dos particiones NTFS una de las cuales, la partición activa, que albergará el sistema de arranque no se encontrará cifrada. Bitlocker también proporciona mecanismos para garantizar que no se han producido modificaciones en el sistema de arraque del sistema, tales como los que pueden provenir de ataques tipo malware que pudieran producir un ataque colateral o el control del acceso al sistema.Puesto que bitlocker proporciona diferentes mecanismos de implementación, cada escenario dependerá de determinados factores, algunos de los cuales pueden ser tan curiosos como la predisposición a la seguridad de sus usuarios. Imaginemos que se implementa bitlocker con autentificación por Token (almacenada en un Memory Stick USB) para un portátil y cuando pierdes o te roban el portátil ¿qué?, pues resulta que el USB iba en el mismo maletín y a rezar para que el que nos haya robado el portátil cuando vea el USB y que Vista no arranque no una situaciones. Aunque alguno piense menuda tontería, eso es imposible que pase... tampoco pensaba que iba a ver nunca en una SmartCard el código PIN escrito con rotulador indeleble y lo he visto (sino tiempo al tiempo, y es que más de uno se planteará donde llevar el Memoty Stick).


¿Dónde implementaremos Bitlocker?
Uno de los problemas que se nos plantea cuando decidamos implementar Bitlocker, es cual es el escenario previsible en el que podemos implementarlo y como será la forma idónea para realizarlo. Evidentemente cuando decidimos por la implementación de un mecanismo de seguridad como el cifrado deberemos tener presente si es necesario el mismo o para que lo vamos a hacer, si esta es una máquina convencional usada solamente como soporte de aplicaciones pero no almacenamos en ella ningún dato de interés. Supongamos los equipos estándar de una empresa. Estos por regla general son utilizados solo como soporte para la ejecución de las aplicaciones, ya que los datos importantes de la empresa se encuentran almacenados en un servidor bien resguardado en el CPD (o así debería ser…) Habrá que tener presente también los elementos adicionales que pudieran quedar almacenados en la máquina que por comodidad pudiéramos dejar almacenados, tales como contraseñas de navegación, de aplicaciones enmascaradas por los dichosos asteriscos, los correos, etc. Cual importante es esta información en manos de alguien que busca datos de nuestra empresa, implicaría prever la opción para el cifrado de estos discos. Una de las mejoras que nos reporta el sistema de Bitlocker en máquinas coexistiendo en un Dominio, es que los mecanismos para la recuperación de las contraseñas, obtienen ventaja de las funcionalidades aportadas por el Directorio Activo.Si la circunstancia la evaluamos desde el punto de vista de una persona que viaja muy a menudo, con un portátil que parece ya una extensión más de su propio cuerpo (alguno se sentirá identificado seguramente), el hecho de tenerlo cifrado sería una opción más que interesante, máxime cuando puedan llevar informes de clientes, datos de la empresa, etc. Un eventual robo o pérdida, solo significaría precisamente eso: el robo o la pérdida, pero pasaría a un significativo segundo plano los datos que portaran. La implementación dependerá fundamentalmente si el dispositivo presenta o no Chip TPM. Si no lo lleva la única opción posible es el uso del almacenamiento de la clave en un USB (cuidado donde lo llevamos no sea que se rían de nosotros).¿Y el usuario doméstico? Salvo para algunos casos significativos, resulta evidente que este método no será el empleado en los hogares, principalmente porque la orientación de los sistemas operativos de índole doméstico no portan esta funcionalidad. Un elemento previsible aunque negativo, es que este sistema pudiera dificultar elementos para el análisis de un equipo donde es requerido determinar si desde él, se ha cometido un posible delito.Y en todos estos posibles escenarios, ¿tengo que equiparme con un nuevo PC, para soportar la infraestructura de Bitlocker? La respuesta es NO, aunque podremos obtener mejoras significativas si optamos por utilizar un equipo que cuente con el Chip TPM. Para todos aquellos que desean utilizar el cifrado y no poseen el Chip, encontramos una directiva de seguridad bajo la cual podemos condicionar el uso de Bitlocker sin el citado Chip. Por defecto el sistema solo admite la configuración de Bitlocker si el equipo cuenta con el Chip.






Configuración de Bitlocker sin TPM en Vista

Para utilizar Bitlocker sin TPM
1.-MMC
2.-Directiva Equipo Local
3.-Configuración del equipo
4.-Plantillas Administrativas
5.-Componentes de Windows
6.-Cifrado de Unidad Bitlocker


Directiva de Seguridad



















Configuración Bitlocker sin TPM























Algoritmos de autentificación para el cifrado de Disco

Cuando se determina la necesidad de implementar un mecanismo para establecer un cifrado, así como el mecanismo para su descifrado tiene que cumplir ciertas normas y criterios para no hacerlo inviable:- No debe repercutir de forma muy negativa en el rendimiento general en procesos de escritura y lectura.- Debe ser transparente para los mecanismos de funcionalidad de las aplicaciones con las que trabajamos.- Debe ser lo suficientemente robusto para evitar ataques mediante ataques de permutación o por manipulación de datos y obtención de resultados en texto plano.A la hora de determinar un sistema de implementación para el cifrado de la unidad de disco para bitlocker, Microsoft tuvo en cuenta determinados factores y evaluó la posibilidad de implementar algunos de estos sistemas de implementación de cifrado. Uno de los elementos que se tuvieron en cuenta es que Bitlocker no debería consistir solamente en un elemento de cifrado, sino que debería garantizar mediante un sistema de autenticación de datos, el evitar que una manipulación de los datos cifrados pudieran introducir una modificación a ciegas, en el código del S.O., provocando una debilidad en el mecanismo de arranque con Bitlocker o para conseguir una escalada de privilegios en el sistema. Además debería evitar el permitir la predicción de la función de cifrado mediante la manipulación de datos cifrados y la obtención de datos en texto plano.
Seguiremos viendo mas acerca de esta util herramienta en el siguiente post..
Hasta la proxima...