martes, 7 de diciembre de 2010

NTFS: un sistema de archivos íntegro y complejo (parte III)

Nota previa:
Esta última parte trata las características de criptografía del SA NTFS, usamos indistintamente los términos criptografía y cifrado a veces para referirnos a lo mismo. Las dos primeras partes están aquí(1) y aquí(2). La traducción esta vez es de Jorge. La entrevista queda pendiente, mañana les digo si sale o no. Saludos.


Sistema de Archivos Encriptado (EFS: Encrypting File System)
Introducido con Windows 2000 y mejorado con cada nueva versión, EFS provee un sistema de cifrado fuerte y sencillo de utilizar. La encriptación es un tema complejo; y describir totalmente su teoría y operación queda fuera de las intenciones de este artículo porque es extenso y complicado. Para más detalles pueden buscar aquí y aquí . Implementar la encriptación sobre una red de computadoras puede resultar complejo pero es muy sencillo sobre una computadora independiente. Sea en un negocio, o en la vida personal es algo que deberían considerar implementar.
El cifrado puede ser implementado a nivel de archivos y también puede ser usado a nivel de directorios, incluida la propagación del cifrado a cualquier archivo creado dentro del mismo. No puede ser utilizado en conjunto con la compresión. 
Aquí va la explicación de cómo habilitar la encriptación básica:
Desde el explorador de Windows haga clic derecho sobre el archivo o carpeta que desea  encriptar, selecciones Propiedades, General, Avanzada, Cifrar para Proteger Datos. Una vez encriptado el archivo o la carpeta se mostrará en el explorador con un texto en verde. En una computadora independiente, solo alguien logueado como usted podrá desencriptar los archivos, y cuando usted está logueado, los archivos se desencriptan de forma transparente.
En un Servidor de Directorio Activo (Active Directory), la encriptación involucra Servidores Confiables, Usuarios Confiables, Agentes de Recuperación, Certificados, Políticas de Contraseñas, y múltiples algoritmos de encriptación,  es realmente complicado. 
Además del cifrado, usted deberá establecer  correctamente los permisos sobre sus archivos. Asegúrese de que los intrusos no puedan leer o borrar los archivos encriptados.

Algunos problemas que se presentan con EFS:
1.- El primer problema que presenta la encriptación es que si pierdes tu llave o contraseña, puedes despedirte de todos los archivos encriptados. Cuando se hace correctamente, las contraseñas toman mucho tiempo para romperlas (crackearlas). 
2.- Si utilizas una contraseña sencilla que sea obvia o adivinable algún intruso podría obtenerla y desencriptar tus archivos.
3.- Si tu computadora no está en un dominio y alguien obtiene acceso físico a ella, resulta muy sencillo resetear tu contraseña y loguearse.
4.- Si copias un archivo encriptado a una partición que no sea NTFS, los archivos se copiarán desencriptados. 
5.- Si no se archiva la llave privada del agente de recuperación y la borran del perfil del  agente de recuperación, un intruso podría loguearse en la cuenta del agente de recuperación y desencriptar los archivos encriptados.
6.-  EFS no protegerá todo tu disco duro si tú laptop es robada. Te recomiendo para ello que revises Bitlocker.
7.- EFS no está disponible en versiones de Windows Home, Starter o Basic.
Y si, Sysinternals tiene una herramienta que inspecciona  un archivo encriptado y te permite saber quien además de ti ha accedido a él: EFSDump.

Discos con Formato Avanzado. (AFD: Advanced Format Drives)
¿Que hay con los nuevos discos de formato avanzado con sectores de 4096 bytes? ¿Cómo hace NTFS para encajar con este nuevo formato?
Los nuevos discos AF son más rápidos, más grandes, más confiables, y tienen sectores de 4096 bytes, en vez de los tradicionales sectores de 512 bytes. Hay muchas posibilidades de que aparezcan en las futuras computadoras personales. Cuando Vista se estaba desarrollando Microsoft comenzó a preparase para estos discos así que Windows Vista y por tanto Windows 7 (Seven) saben que hacer con los discos AF, no así Windows XP y otras versiones anteriores. Los sectores de 512 bytes encajan sin problemas en los sectores 4096 bytes; y estos discos proveen emulación de 512 bytes con el objetivo de compatibilizar con sistemas operativos anteriores. El problema radica cuando se crea una partición y no se alinea con el límite de 4096 bytes. Este problema de alineación provoca un funcionamiento mucho más lento con Windows XP. El problema se puede evitar utilizando las herramientas que vienen junto con los nuevos discos. Seagate tiene “Smart Align” y Western Digital tiene “WD Align”. El formato avanzado es más rápido, más grande y mejor.

NTFS Transaccional (TxF: Transactional NTFS).
En Windows Server 2008 existe una función llamada NTFS Trasaccional o TxF. Esta función permite que las operaciones del sistema se presenten en grupos como transacciones, igual que en las Bases  de Datos. Esto resulta importante cuando tienes un conjunto de actualizaciones que deben realizarse o todas o ninguna. Consideremos la situación en la que necesitas actualizar un conjunto de archivos de datos que son dependientes entre sí. No puedes actualizar uno sin actualizar a los otros. Actualizándolos o todos o ninguno sería una transacción. Una transacción generalmente tiene un inicio, un final, y una  opción de aplicar los cambios (commit) y una para abandonar o deshacer todo (rollback). En la opción de "commit" se completa la transaccion, caso contrario (rollback) se deshacen todas las funciones que se realizaron en la transacción si esta no llegara a completarse.
Suena como si fuera algo bien interesante para scripts para instalaciones, para cambios en la web, archivos de documentos, y en toda clase de cosas, ¿cierto? Es una pena, porque solo esta disponible a través de llamadas a APIs y acceso al registro con PowerShell.  Esto significa que si deseas la funcionalidad TxF tienes que programártela tú mismo. La API incluye  CreateFileTransacted, DeleteFileTransacted, CommitTransaction, RollbackTransaction  y más de una docena de otras llamadas a transacciones.
Hasta que  se desarrollen más utilidades y aplicaciones con capacidades para el uso de transacciones, TxF es útil mayormente para desarrolladores. Y TxF solo corre en particiones construidas con SCSI y discos Fiber Channel.

Que pudiera haber sido – WinFS (Windows File System).
Imagínate si el sistema de archivos tuviese una Base de Datos integrada. Imagina si cada aplicación que necesite almacenar o buscar datos no tuviese que reescribir su propia Base de Datos, pero pudiera utilizar una API estándar. Tu colección MP3 pudiera estar siempre limpia y actualizada. Tus colecciones de Películas y Vídeos   serían muy fáciles para salvar y ver. Encontrar fotos tomas con años de anterioridad será pan comido. ¿Que tal que los correos electrónicos pudieran almacenarse directamente en el sistema de archivos en vez de archivos .PST, y que puedan estar disponibles para otras aplicaciones?
WinFS fue la solución para añadir funciones reales de Base de Datos al sistema de archivos. Tenía la intención de proveer una API flexible y eficiente basada en tecnologías reales de Bases de Datos. Fue ambas cosas, un nuevo sistema de archivos y una extensión de NTFS. Estaba planificado para la versión Longhorn de Vista. Tuvo que ser implementada con objetos .NET y accedida con T-SQL (Transact-SQL). Un archivo especifico, por ejemplo un MP3 sería capaz de existir y de ser actualizado en varios archivos, como solo una consulta a la Base de Datos. WinFS sería capaz de sincronizar los cambios a los datos a través de varios sistemas utilizando replicaciones de bases de datos. Actualizar la metadata para un tipo de archivo en particular podría realizarse de forma robusta usando funciones de bases de datos.  
WinFS prometió acceso a datos rápido, limpio y ortogonal a los usuarios que se ahogaban en datos.

Pero no pudo ser. WinFS se lanzó como Beta1 en septiembre de 2005. El Beta2 se canceló en junio de 2006 sin ofrecer explicaciones pero el factor supuesto fueron las demoras en el lanzamiento de Vista. Vista llevaba ya años de atrazo. Originalmente se pensó lanzar en 2003 y no salió hasta Enero de 2007. WinFS fue igualmente sacrificado para conseguir una fecha de lanzamiento para Vista.