Una memoria USB no tiene por qué comportarse necesariamente como una memoria USB

Memoria USB configurada para comportarse de forma diferente al almacenamiento extraíble convencional

La mayoría de la gente cree que sabe lo que va a pasar cuando conecta una memoria USB a una computadora. Aparece una letra de unidad, se informa cierta capacidad de almacenamiento y se pueden copiar archivos a la memoria o sacarlos de ella. Eso es lo que hace una memoria USB.

Excepto que no tiene por qué comportarse necesariamente así.

El almacenamiento USB no se define únicamente por la memoria NAND flash que está dentro de la carcasa de plástico. Entre el conector USB y esa memoria NAND hay un controlador, y ese controlador desempeña un papel importante a la hora de determinar cómo se identifica el dispositivo y cómo interactúa con él la computadora host.

Ahí es donde las cosas se ponen interesantes, porque una memoria USB puede contener NAND flash perfectamente normal y, aun así, presentarse ante la computadora como algo completamente diferente.

Un ejemplo es una memoria USB configurada a nivel del controlador de hardware para comportarse como un dispositivo CD-ROM.

Y no, la idea no es simplemente hacer que los archivos sean de solo lectura.

La computadora realmente no sabe lo que hay dentro de la memoria

Cuando conectas un dispositivo USB a una computadora, el sistema operativo no mira de alguna manera a través de la carcasa de plástico y descubre que hay NAND flash dentro. Se produce una conversación entre el host USB y el dispositivo, y el dispositivo proporciona información sobre qué es y cómo debe comunicarse la computadora con él.

Piensa en ello un poco como alguien que se acerca al puesto de inmigración en un aeropuerto.

La persona presenta unas credenciales que básicamente dicen:

“Soy este tipo de dispositivo. Así me identifico. Este es el tipo de funcionalidad que ofrezco. Y así es como debes comunicarte conmigo.”

En una memoria USB, el controlador se encarga de gran parte de esa conversación.

En una memoria USB normal, el controlador presenta el almacenamiento de una forma que el sistema operativo reconoce como almacenamiento similar a un disco. Windows, Linux o macOS carga entonces el soporte adecuado e interactúa con el dispositivo de acuerdo con ello.

Pero la propia NAND flash no tiene por qué presentarse necesariamente de esa manera.

Un controlador diseñado y configurado para emulación CD-ROM puede utilizar NAND flash y exponer un dispositivo de almacenamiento lógico que se comporte como un medio óptico. Desde el punto de vista de la computadora host, ahora podría estar tratando con algo que se parece mucho más a un dispositivo CD-ROM que a una memoria USB convencional y escribible.

A la computadora no le importa demasiado que el almacenamiento físico que hay debajo sea en realidad NAND flash.

Ahí está precisamente la parte fascinante.

La tecnología física de almacenamiento y el dispositivo de almacenamiento que se presenta a la computadora no tienen por qué ser necesariamente lo mismo.

Este es también el punto en el que se vuelve importante distinguir entre trucos de software y comportamiento real a nivel del controlador. Hemos explicado esa diferencia con más detalle en nuestro artículo sobre emulación USB como CD-ROM y las diferencias entre firmware y métodos por software. La versión corta es que cambiar la forma en que un controlador presenta el almacenamiento es algo fundamentalmente diferente de simplemente cambiar un atributo de archivo o montar un archivo ISO mediante software.

Piensa en ello como un edificio con un letrero diferente en la puerta

Imagina un solo edificio físico.

Coloca afuera un letrero que diga BANCO, y los visitantes entrarán esperando encontrar cajeros, cuentas, depósitos y retiros.

Cambia el letrero por BIBLIOTECA, y la gente se acercará exactamente al mismo edificio con un conjunto de expectativas completamente diferente. No llegarán al mostrador intentando depositar dinero. Buscarán libros y esperarán las reglas de una biblioteca.

El edificio no ha cambiado necesariamente.

Lo que cambió fue la identidad que se está presentando y las reglas asociadas a esa identidad.

Un controlador USB puede hacer algo conceptualmente parecido.

El almacenamiento subyacente puede seguir siendo NAND flash, pero en lugar de presentarlo como almacenamiento convencional, escribible y similar a un disco, el controlador puede presentar un dispositivo lógico que el sistema operativo entiende como un medio de tipo CD-ROM.

El sistema operativo responde en consecuencia.

Esta es una distinción importante, porque crear un medio CD-ROM en una memoria USB no es lo mismo que hacer clic en un archivo en Windows y seleccionar “Solo lectura”.

Tampoco es necesariamente lo mismo que tomar un almacenamiento USB convencional e impedir las escrituras.

Esos enfoques intentan controlar lo que alguien puede hacer con un dispositivo de almacenamiento.

La emulación CD-ROM va un paso más allá al cambiar qué tipo de dispositivo de almacenamiento se presenta al host.

¿Por qué alguien querría hacer esto?

Al principio, configurar una memoria USB moderna para que se comporte como tecnología de la era del CD-ROM puede sonar como un paso atrás.

Pero hay algunas razones sorprendentemente prácticas para hacerlo.

Pensemos en una máquina industrial construida hace 15 o 20 años.

Su software de servicio puede haberse diseñado en una época en la que las unidades CD-ROM estaban por todas partes. La aplicación podría esperar que las actualizaciones, los archivos de calibración, los paquetes de instalación, el material de referencia o las utilidades de recuperación llegaran en medios ópticos.

Con el tiempo, la unidad física de CD deja de funcionar.

Las unidades ópticas de reemplazo se vuelven difíciles de encontrar. Mantener discos grabados se vuelve incómodo. Quizá no valga la pena reemplazar la computadora original, pero el equipo industrial conectado a ella sin duda sí vale la pena conservarlo.

Reemplazar esa computadora también podría crear un problema completamente diferente. Los sistemas industriales no siempre son entornos en los que se puede instalar una PC nueva, copiar un par de programas y dar por terminado el martes por la tarde.

Puede haber controladores especializados, hardware propietario, requisitos de validación, problemas de certificación o software que no se ha actualizado en años porque ha seguido haciendo perfectamente bien su trabajo.

La máquina puede valer 100.000 dólares mientras que la computadora que la controla utiliza un sistema operativo que la mayoría de la gente no ha visto desde que sus hijos estaban en la escuela primaria.

Ahí es cuando la compatibilidad se vuelve más valiosa que la novedad.

Un dispositivo USB capaz de presentarse correctamente como medio de tipo óptico puede ofrecer potencialmente un puente entre esas generaciones de tecnología.

En lugar de reescribir la aplicación antigua para que entienda el almacenamiento moderno, haces que el almacenamiento moderno hable el idioma que la aplicación antigua ya entiende.

La emulación CD-ROM tiene menos que ver con fingir que eres un CD y más con hablar CD-ROM a una computadora que espera escuchar ese idioma.

Los sistemas embebidos pueden ser todavía más exigentes

Los sistemas operativos de escritorio modernos son extraordinariamente flexibles.

Conecta una memoria USB normal a una computadora Windows actual y hay bastantes probabilidades de que Windows averigüe qué es y te dé acceso a los archivos.

Los sistemas embebidos pueden ser un animal completamente diferente.

Piensa en máquinas CNC, equipos de diagnóstico, instrumentos de laboratorio, sistemas de fabricación, quioscos, equipos de servicio automotriz, sistemas de punto de venta y equipos especializados de medición.

Muchas de estas máquinas no fueron diseñadas como computadoras de propósito general.

Sus programadores sabían exactamente qué debía hacer la máquina, exactamente qué hardware debía utilizar y, en muchos casos, exactamente cómo debía llegar la información.

Había pocas razones para escribir una maravillosa rutina de almacenamiento flexible capaz de manejar cualquier dispositivo que alguien pudiera conectar a la máquina 20 años después.

Si la especificación original decía que el software llegaría en CD-ROM, eso es exactamente lo que el programador tomó como base para diseñar el sistema.

Por lo tanto, el sistema puede hacer suposiciones sobre el tipo de dispositivo, el comportamiento del medio, la estructura del sistema de archivos, las unidades lógicas u otras características del dispositivo de almacenamiento.

Ahí es donde la emulación se convierte en mucho más que una curiosidad.

En lugar de cambiar el sistema host, cambias lo que el dispositivo USB le dice al host que es.

Para equipos antiguos o especializados que son caros, difíciles o imposibles de modificar, esa puede ser una opción extremadamente útil.

Una memoria USB es más que un conector y algo de memoria

Esto también deja al descubierto uno de los conceptos erróneos más interesantes sobre las memorias USB.

Es fácil imaginar una memoria USB como una ecuación sencilla:

conector USB + NAND flash = memoria USB

Pero falta una pieza importante en esa ecuación.

El controlador.

El controlador USB se encuentra entre la computadora host y la memoria NAND flash. Entre sus tareas está traducir lo que solicita el host a lo que realmente sucede dentro del almacenamiento flash.

El controlador también participa en definir cómo se identifica el dispositivo, cómo se expone el almacenamiento, qué características se reportan y cómo responde el dispositivo a los comandos del host.

Eso significa que dos dispositivos USB que contienen NAND flash similar pueden comportarse de forma muy diferente cuando se conectan exactamente a la misma computadora.

Uno podría presentarse como almacenamiento extraíble convencional.

Otro podría configurarse para presentar un comportamiento similar al de un disco fijo.

Otra implementación podría exponer una unidad lógica CD-ROM.

Y algunas arquitecturas de controlador pueden hacer algo todavía más interesante: exponer varios dispositivos lógicos de almacenamiento a través de una sola conexión USB física.

Un solo conector USB puede llevar a dos habitaciones diferentes

Imagina conectar una sola memoria USB a una computadora.

La computadora descubre un área de tipo CD-ROM que contiene:

INSTALADOR
MANUALES
CONTROLADORES
HERRAMIENTAS DE RECUPERACIÓN

Pero el mismo dispositivo USB físico también proporciona almacenamiento convencional escribible que contiene:

ARCHIVOS DE REGISTRO
INFORMES
ARCHIVOS DE CONFIGURACIÓN
DATOS DEL USUARIO

Sigue habiendo un solo conector USB y un único dispositivo físico en tu mano.

Sin embargo, desde el punto de vista lógico, la computadora ha recibido dos entornos de almacenamiento diferentes, diseñados para dos tareas diferentes.

La parte CD-ROM puede contener el material original publicado por el fabricante, mientras que la parte escribible puede seguir disponible para la información generada durante el trabajo en campo.

Un técnico podría llevar un solo dispositivo que contenga el software original de diagnóstico y la documentación de servicio, mientras utiliza otra área de ese mismo dispositivo para guardar resultados de pruebas, registros del equipo o archivos de configuración específicos del cliente.

La distinción aquí es importante.

Esto no es simplemente lo mismo que dividir una memoria USB normal en dos particiones.

Las particiones dividen la capacidad de un dispositivo de almacenamiento similar a un disco. Ambas particiones siguen formando parte del mismo tipo básico de entorno de almacenamiento.

En cambio, un controlador USB puede exponer varias unidades lógicas, a veces llamadas LUN, lo que permite que un solo dispositivo físico presente al host personalidades de almacenamiento claramente diferentes. Tenemos una explicación separada sobre LUN frente a particiones y por qué una unidad USB puede aparecer como dos discos para quienes quieran seguir bajando un poco más por ese agujero de conejo.

Por lo tanto, la emulación CD-ROM puede cambiar el comportamiento y la identidad del dispositivo lógico de almacenamiento que se presenta al host, en lugar de limitarse a dividir la capacidad de almacenamiento.

Es la diferencia entre dividir una habitación con una pared y crear dos habitaciones pensadas para realizar trabajos completamente diferentes.

También existe una ventaja para la distribución de contenido

Los CD-ROM tenían otra propiedad útil en la que la mayoría dejamos de pensar porque simplemente era la forma en que funcionaban los medios ópticos.

El editor controlaba el contenido original.

Hace veinte años, comprabas un programa en CD-ROM y lo instalabas en tu computadora. Instalar el software no modificaba el CD.

No podías arrastrar accidentalmente tus fotos de vacaciones al directorio de instalación del disco. Un empleado no podía borrar tranquilamente la mitad del instalador. Y nadie podía decidir que necesitaba otros 300 MB de espacio y borrar la documentación.

El medio era, en la práctica, un objeto publicado.

Las memorias USB mejoraron los discos ópticos en casi todos los sentidos prácticos. Son más pequeñas, más rápidas, más fáciles de transportar y tienen una capacidad de almacenamiento enormemente superior.

Pero el almacenamiento USB escribible convencional también hizo menos clara la distinción entre la persona que publica el contenido y la persona que lo consume.

Para documentación, distribución de software, herramientas de servicio, material de capacitación, utilidades de recuperación y otros contenidos controlados, a veces esa distinción resulta útil.

Un área lógica de tipo CD-ROM puede proporcionar un lugar para contenidos destinados a permanecer en su estado original de distribución, mientras que otro almacenamiento del dispositivo puede utilizarse para información que legítimamente necesita cambiar.

Esto no es lo mismo que seguridad

Hay un límite importante que conviene mantener claro.

La emulación CD-ROM no debería describirse automáticamente como un sistema completo de seguridad.

Hacer que el almacenamiento se comporte como un medio óptico no sustituye las firmas criptográficas, los mecanismos de arranque seguro, el cifrado, la autenticación u otras tecnologías diseñadas para establecer si el software o los datos son confiables.

Esas tecnologías resuelven problemas diferentes.

El valor de la emulación CD-ROM está principalmente en el comportamiento del dispositivo, la compatibilidad, la distribución controlada y la conservación del contenido publicado.

En algunas aplicaciones, impedir una modificación normal resulta extremadamente útil. Pero “difícil de modificar para el usuario” y “demostrado criptográficamente como auténtico” no son lo mismo.

Entender esa diferencia es importante, especialmente cuando estos dispositivos se utilizan en entornos industriales o especializados.

A veces no quieres que una memoria USB se comporte como una memoria USB

La desaparición de las unidades físicas CD-ROM no significa necesariamente que todas las características útiles del almacenamiento óptico hayan desaparecido con ellas.

A veces una computadora antigua espera medios ópticos.

A veces el software especializado se diseñó alrededor de ellos.

A veces es mucho más fácil adaptarse a un sistema embebido que modificarlo.

A veces un fabricante quiere mantener la documentación original o el software separados del almacenamiento que se espera que el usuario modifique.

Y a veces la solución más práctica no consiste en convencer a un sistema antiguo de que entienda algo nuevo.

Consiste en hacer que algo nuevo se comporte como aquello que el sistema antiguo ya entiende.

Esa es una de las cosas interesantes de la tecnología USB que queda oculta detrás de la simplicidad de conectar una memoria USB.

Lo que tienes en la mano puede contener memoria NAND flash, pero la NAND por sí sola no determina lo que ve la computadora.

El controlador también tiene algo que decir en esa conversación.

Y con el controlador y la configuración adecuados, una memoria USB no tiene por qué comportarse necesariamente como una memoria USB.

Nota sobre experiencia técnica: GetUSB lleva muchos años trabajando con configuraciones de memorias USB a nivel del controlador y documentándolas, incluido el comportamiento como medio extraíble, configuraciones como disco fijo, protección contra escritura, múltiples unidades lógicas y emulación CD-ROM. La distinción importante en este artículo es que el comportamiento CD-ROM puede crearse a nivel del controlador flash, en lugar de depender simplemente de una configuración de archivo en Windows o de una imagen montada mediante software. Las capacidades reales dependen del controlador USB y del firmware utilizados en el medio flash. La imagen fue creada mediante inteligencia artificial y se basó en un concepto relacionado con una empresa que ofrece soluciones USB CD-ROM.

Read More Articles

Keep exploring more stories, analysis, and technical insights.