MXPA04004143A - Substitucion dinamica de datos usb para la codificacion/descodificacion sobre la marcha. - Google Patents

Substitucion dinamica de datos usb para la codificacion/descodificacion sobre la marcha.

Info

Publication number
MXPA04004143A
MXPA04004143A MXPA04004143A MXPA04004143A MXPA04004143A MX PA04004143 A MXPA04004143 A MX PA04004143A MX PA04004143 A MXPA04004143 A MX PA04004143A MX PA04004143 A MXPA04004143 A MX PA04004143A MX PA04004143 A MXPA04004143 A MX PA04004143A
Authority
MX
Mexico
Prior art keywords
data
command
secure component
usb
security module
Prior art date
Application number
MXPA04004143A
Other languages
English (en)
Inventor
Kehl Theodore
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04004143A publication Critical patent/MXPA04004143A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Storage Device Security (AREA)
  • Small-Scale Networks (AREA)

Abstract

Un modulo y metodo de seguridad implementan solicitudes de datos desde un dispositivo USB u otro similar, en el cual un componente seguro se puede comunicar de manera segura con un dispositivo sin modificar el protocolo del conductor comun USB subyacente, o el dispositivo, aun cuando el software que controla el conductor comun no sea confiable. Un modulo de seguridad (fisicamente separado o integrado en un dispositivo o concentrador) intercepta datos que estan siendo enviados desde el dispositivo al componente seguro en respuesta a una solicitud de datos. Una senal de "no aprobacion" se envia al componente seguro, y los datos estan codificados. La siguiente solicitud de datos es interceptada, y los datos codificados son enviados en respuesta. La aprobacion del componente seguro al dispositivo le permite alcanzar el dispositivo. Con el fin de manejar una solicitud de configuracion, un comando de permitir se envia al modulo de seguridad, el cual incluye el comando de configuracion codificada y descodificado. Si una verificacion de codificacion es exitosa, un comando de configuracion enviado al dispositivo (a traves del modulo de seguridad) tiene permiso para alcanzar el dispositivo.

Description

SUBSTITUCION DINAMICA DE DATOS USB PARA LA CODIFICACIONI/DESCODIFICACION SOBRE LA MARCHA CAMPO DE LA INVENCION La invención se refiere a métodos y sistemas para proteger datos digitales, y, más particularmente, a métodos y sistemas para proteger datos digitales de ser transferidos utilizando la arquitectura de barra colectora serial universal (USB) y protocolo o una arquitectura y protocolo similares.
ANTECEDENTES DE LA INVENCION En un sistema de computadora, los componentes periféricos y otros dispositivos pueden conectarse al sistema de computadora a través de medios de un conductor común, tal como un conductor común USB. Un sistema de computadora que utiliza un conductor común USB incluirá un capa de software USB que interactuará con las aplicaciones y mediará el envío y recepción de datos de un huésped central a los componentes periféricos. La capa de software USB soporta hardware USB genérico. La capa de software USB es compleja y flexible, con el fin de soportar la comunicación USB. La capa de software USB preferiblemente soporta múltiples controladores del vendedor de hardware independiente y deben permanecer enchufables. Por lo tanto, la capa de software USB puede ser cambiada a menudo con el fin de responder a retos tales como cambios en hardware y otras actualizaciones. Además, existe un gran número de diferentes elementos de hardware USB disponibles, y la capa de software USB es preferiblemente capaz de soportar esta multiplicidad de opciones.
Debido a que los datos en el conductor común USB pasan a través de una capa de software USB y estos datos también están disponibles para cualquier dispositivo en el conductor común, la seguridad es una preocupación. Por ejemplo, un modelo de computadora puede incluir un componente seguro, software o hardware, que requiere datos para pasarlos a través del conductor común USB. Sin embargo, es deseable para simplicidad, flexibilidad y la posibilidad de ampliación que la capa de software USB no sea parte de ese componente seguro. Sin embargo, si la capa de software USB no es parte del componente de software seguro, la seguridad implementada en el componente de software seguro está en peligro. Un ataque de software o hardware puede hacer el sistema vulnerable. Por ejemplo, puede ser posible para un atacante interceptar los datos del dispositivo desde un dispositivo de hardware, por lo que la información capturada por el usuario no se envía a la aplicación a la cual se dirigieron los datos. También puede ser posible para el atacante olfatear en las entradas del dispositivo, por ejemplo, guardando las pulsaciones de las teclas del usuario para ganar contraseñas u otra información de datos. Al grabar, la modificación o reproducción de las entradas también es posible a través de ataques de software en la computadora. Si el software seguro está corriendo en un sistema de computadora, las comunicaciones con los dispositivos USB deben ¡r a través del software USB inseguro y al conductor común. Dichos dispositivos por lo general son necesarios para desplegar y capturar propósitos para un usuario. De esta manera, para que el software seguro sea seguro, las entradas y salidas al software seguro deben estar aseguradas también. Si el software seguro no tiene una trayectoria segura al usuario, entonces el software seguro no tiene forma de conocer que la acción que toma es actualmente en beneficio del usuario. Primero, un atacante puede fabricar una captura del usuario (captura que no viene del usuario, y de esta manera no fue la intención del usuario) para engañar al software seguro en cuanto a un comportamiento que el usuario legítimo no pretende. Segundo, si la salida del software confiable no va directamente al usuario a través de una trayectoria segura entonces el usuario legítimo no tiene una convicción de que el usuario actualmente está viendo la salida real del software seguro. Sin embargo, el protocolo USB es un estándar en la industria de las computadoras, y modificar el protocolo USB o arquitectura proporciona seguridad que podría remover las ventajas del uso de la arquitectura ampliamente disponible y ampliamente ¡mplementada. De esta manera, existe una necesidad de una forma para proveer los beneficios de conectividad y compatibilidad USB con dispositivos y sistemas USB, mientras se permite la seguridad incrementada.
COMPENDIO DE LA INVENCION La presente invención proporciona facilidades para la codificación/descodificac.ión en un módulo de seguridad que será provisto para un dispositivo USB. Específicamente, la presente invención proporciona las comunicaciones entre un dispositivo y un componente seguro, tales como comandos solicitando datos para un dispositivo, los datos devueltos por ese dispositivo de regreso al sistema y los comandos configurados para configurar el dispositivo para que sea manejado seguramente, aún en donde esos comandos y datos pasen a través de hardware y/o software inseguro para obtener el componente seguro. La codificación/descodificación puede ser provista en un aparato separado físicamente, por ejemplo, una pieza de hardware (una "llave electrónica") que se coloca en el cable de conexión entre el dispositivo USB y el huésped o hardware que el dispositivo USB enchufa dentro o como un dispositivo separado dentro del cual se enchufa un dispositivo USB. Alternativamente, los recursos de codificación/descodificación pueden ser construidos en el dispositivo, por ejemplo, un teclado con codificación/descodificación de hardware integrado, o integrado en la funcionalidad del concentrador emisor.
Un dispositivo puede tener varios puntos finales asociados con diferentes porciones funcionales del dispositivo. Por lo tanto, en una modalidad, la llave electrónica de seguridad maneja la seguridad para todas las interfases y todos los puntos finales en el dispositivo. De acuerdo con una modalidad de la invención, cuando el dispositivo USB recibe una carga útil para transmitir al componente seguro, por ejemplo, un paquete HID (controlador de interfase humana) tal como una pulsación de tecla, o pulsación del ratón, la carga útil se envía en la forma clara de corriente ascendente de dispositivo a la llave electrónica, codificada en la llave electrónica, y se envía codificada al huésped. La substitución del la carga útil codificada es transparente al controlador de huésped USB y transparente al dispositivo. Adicionalmente, la llave electrónica impide todos los paquetes de CONFIGURACION no autorizados de sistema al dispositivo para así asegurar esta transparencia. El software seguro envía un comando de "firmado" PERMITIR a la llave electrónica antes de que la llave electrónica permita cualquier comando de CONFIGURAR que se envíe a dispositivo. Y una vez que la llave electrónica recibe el comando de PERMITIR, solamente permite el comando CONFIGURAR específico especificado. De esta manera, cuando un comando de CONFIGURAR se va a llevar a cabo, un comando preliminar de PERMITIR es enviado, con datos incluyendo los datos del comando configurar y versión codificada de los datos del comando configurar. Cuando los datos son verificados (por ejemplo, asegurando que el comando PERMITIR fue firmado por el software seguro, en una modalidad al agregar un símbolo de almohadilla (#) utilizando el secreto compartido entre la llave electrónica y eí software seguro) la llave electrónica permite un comando de CONFIGURAR dirigido al punto final con los datos de comando de comparación que serán transmitidos a y ejecutados en el punto final. Cuando la aplicación segura quiere solicitar datos del punto final seguro, la aplicación segura utiliza software del sistema USB en la forma estándar para enviar la solicitud a un punto final específico. Sin embargo la llave electrónica cambia la manera en que esta ficha de solicitud va al punto final y el camino que los datos son devueltos al software del sistema de huésped en la siguiente manera: Cuando el software del sistema USB entonces envía una ficha al punto final, la ficha es interceptada por el módulo de seguridad. El módulo de seguridad entonces envía la ficha al dispositivo, pero envía un NAK (aprobación negativa) al huésped. Cuando el dispositivo responde al sondeo con datos, los datos se almacenan y se codifican a través del módulo de seguridad. Cuando un sondeo repetido es detectado por el módulo de seguridad y el punto final, la solicitud es "destruida" por el módulo de seguridad. ("Destrucción" es un término el cual, en la arena USB significa que los datos se envían en cierto modo para indicar un error de transmisión). El módulo de seguridad envía los datos codificados como una respuesta al segundo sondeo, y cuando el huésped aprueba la recepción con una señal ACK (Acuse de recibo), que se pasa a través del módulo de seguridad al dispositivo.
Cuando la modalidad segura quiere enviar datos a un dispositivo seguro, primero envía una solicitud al módulo de seguridad mismo. Una ficha de PERMITIR se envía al módulo de seguridad. Como una parte de este paquete, el comando (tal como el comando CONFIGURAR, el cual contiene un comando para el dispositivo USB) se transmite como los datos de la ficha PERMITIR. El módulo de seguridad verifica el comando PERMITIR para determinar que viene del software seguro y guarda estos datos. Entonces, cuando una nueva ficha de comando pasa al módulo de seguridad, si la ficha del comando coincide con la ficha del comando que fue enviada como datos en el comando PERMITIR, el comando de configurar pasa al dispositivo. El resto de los protocolos CONFIGURAR continúan en el conductor común USB como normales. Si el comando CONFIGURA no coincide con un comando PERMITIR previamente recibido, la llave electrónica destruye el comando CONFIGURAR antes de que pueda terminar. Otros aspectos de la presente invención se describen a continuación.
BREVE DESCRIPCION DE LOS DIBUJOS El módulo de seguridad, de acuerdo con la presente invención además se describen con referencia a los dibujos que la acompañan en lo cuales: La Figura 1 es un diagrama de bloque que representa un sistema de computadora en el cual la presente invención se puede implementar. La Figura 2 es un diagrama, de bloque que representa un sistema de computadora incluyendo una computadora y otros dispositivos conectados a través de USB en los cuales la presente invención puede ser implementada; La Figura 3(A) es un diagrama de bloque representando un sistema de computadora incluyendo una llave electrónica y un módulo de seguridad integrado de acuerdo con una modalidad de la invención; La Figura 3(B) es un diagrama de bloque que representa un sistema de computadora incluyendo una llave electrónica y un módulo de seguridad integrado de acuerdo a otra modalidad de la invención; La Figura 4 es un diagrama de bloque ¡lustrando una transacción IN de acuerdo con una modalidad de la invención; La Figura 5 es un diagrama de bloque que ilustra una transacción CONFIGURAR de acuerdo con una modalidad de la invención.
DESCRIPCION DETALLADA DE LAS MODALIDADES ILUSTRATIVAS Ambiente de Computación Ilustrativo La Figura 1 ilustra un ejemplo de un ambiente del sistema de computación adecuado 100 en el cual la invención puede ser implementada. El ambiente de computación adecuado 100 es solamente un ejemplo de un ambiente de computación adecuado y no pretende sugerir ninguna limitación al alcance del uso o funcionalidad de la invención. Tampoco se debe interpretar el ambiente de computación 100 como teniendo ninguna dependencia o requerimiento relacionado con cualquiera o una combinación de componentes ilustrados en el ambiente de operación ilustrativo 100.
Uno con experiencia en la técnica puede apreciar que una computadora u otro cliente o dispositivo servidor puede ser utilizado como parte de una red de computadora, o en un ambiente de computación distribuido. A este respecto, la presente invención se relaciona con cualquier sistema de computación que tiene cualquier número de unidades de memoria o almacenamiento, y cualquier número de aplicaciones y procesos que ocurren a través de cualquier número de unidades de almacenamiento o volúmenes, los cuales se pueden utilizar en conexión con la presente invención. La presente invención se puede aplicar a un ambiente con computadoras servidor y computadoras cliente utilizada en un ambiente en red o ambiente de computación distribuido, que tiene almacenamiento remoto o local. La presente invención también se puede aplicar a dispositivos de computadora independientes, que tienen capacidades de funcionalidad, interpretación y ejecución del lenguaje de programación para generar, recibir y transmitir información en conexión con servicios remotos o locales. La invención es operacional con otros numerosos ambientes o configuraciones de sistemas de computación de propósito general o especial. Ejemplos de sistemas, ambientes y/o configuraciones de computación bien conocidos que pueden ser adecuados para uso con la invención, incluyen, pero no se limitan a, computadoras personales, computadoras servidor, dispositivos portátiles, sistemas multiprocesador, sistemas con base en microprocesador, cajas encima del televisor, electrónicos de consumidor programables, PCs en red, minicomputadoras, computadoras de marco principal, ambientes de computación distribuidos, que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La invención puede ser descrita en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programa, siendo ejecutados por una computadora. En general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos de datos abstractos particulares. La invención también puede ser practicada en ambientes de computación distribuidos en donde las tareas se realizan a través de dispositivos de procesamiento remotos que están enlazados a través de una red de comunicaciones u otros medios de transmisión de datos. En un ambiente de computación distribuido, los módulos de programa y otros datos pueden ser localizados en ambos medios de almacenamiento, local y remoto incluyendo dispositivos de almacenamiento de memoria. La computación distribuida facilitar la manera de compartir los recursos y servicios de computadora a través de intercambio directo entre los dispositivos y sistemas de computación. Estos recursos y servicios incluyen el intercambio de información, almacenamiento de caché, y almacenamiento en disco de los archivos. La computación distribuida tiene la ventaja de la conectividad en red, permitiendo a los clientes el apalancamiento de su energía colectiva para beneficiar a la empresa entera. A este respecto, una variedad de dispositivos pueden tener aplicaciones, objetos o recursos que pueden utilizar las técnicas de la presente invención. Con referencia a la Figura 1, un sistema ilustrativo para implementar la invención incluye un dispositivo de computación de propósito general en la forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no están limitados a, una unidad de procesamiento 120, una memoria del sistema 130, y un conductor común del sistema 121 que acopla varios componentes del sistema incluyendo la memoria del sistema a la unidad de procesamiento 120. El conductor común del sistema 121 puede ser cualquiera de varios tipos de estructuras de conductor común incluyendo un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local utilizando cualquiera de una variedad de estructuras de conductores comunes. A manera de ejemplo, y no limitación, dichas arquitecturas incluyen el conductor común de Arquitectura Estándar de la Industria (ISA), el conductor común de la Arquitectura del Canal Micro (MCA), el conductor común Mejorado ISA (EISA), el conductor común local de la Asociación de Estándares Electrónicos de Video (VESA), y el conductor común de Interconexión del Componente Periférico (PCI) (también conocido como conductor común Mezanine). La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible que pueda se accedido a través de la computadora 110 e incluye ambos medios volátil y no volátil, removibles y no removibles. A manera de ejemplo, y no limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora incluyen ambos medios volátiles y no volátiles, removibles y no removibles, en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones ejecutables por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria no volátil, u otra tecnología de memoria, CDROM, discos versátiles digitales (DVD) u otro almacenamiento en disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético y otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede ser utilizado para almacenar la información deseada y que puede ser accedida por la computadora 100. Los medios de comunicación típicamente moralizan las instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora, u otro tipo de mecanismo de transporte e incluye cualquier medio de distribución de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijadas o cambiadas en tal forma que codifica la información en la señal. A manera de ejemplo, y no limitación, los medios de comunicación incluyen medios por cable tal como una red cableada o conexión directa-cableada, y medios inalámbricos tal como medios inalámbricos acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores también se pueden incluir dentro del alcance de los medios legibles por- computadora. La memoria del sistema 130 incluye medios de almacenamiento por computadora en la forma de memoria volátil y/o no volátil tales como memoria de solo lectura (ROM) 131 y memoria de acceso aleatorio (RAM) 132. Un sistema de entrada/salida básico 133 (BIOS), conteniendo las rutinas básicas que ayudan a la transferencia de información entre elementos dentro de la computadora 110, tales como durante el arranque, se almacenan tópicamente en ROM 131. RAM 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles para y/o actualmente siendo operados por la unidad de procesamiento 120. A manera de ejemplo, y no limitación, La Figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. La computadora 110 también puede incluir otros medios de almacenamiento removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 140 que lee de o escribe en el medio no removible, no volátil magnético, una unidad de disco duro magnética 151 que lee de o escribe en un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee de o escribe en una disco óptico no volátil 156, tal como un CD ROM u otro medio óptico. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el ambiente de operación ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria no volátil, discos versátiles digitales, cintas de video digitales, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 está típicamente conectada al conductor común del sistema 121 a través de la ¡nterfase de memoria no removible tal como la interfase 140, una unidad de disco magnético 151 y una unidad de disco óptico 155 están típicamente conectados al conductor común del sistema 121 a través de la interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento por computadora asociados discutidos anteriormente e ilustrados en la Figura 1, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 110. En la Figura 1, por ejemplo, la unidad de disco duro 141 está ilustrada como almacenando el sistema operativo 144, los programas de aplicación 145, otros módulos de programa 146, y los datos de programa 147. Observar que estos componentes pueden ya sea ser el mismo o diferentes del sistema operativo 134, programas de aplicación 135, oros módulos de programa 136 y datos de programa 137. Al sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147 se les han dado números diferentes aquí para ilustrar que, al mínimo, son diferentes copias. Un usuario puede capturar comandos e información en la computadora 20 a través de los dispositivos de entrada tales como un teclado 162 y un dispositivo de apuntamiento 161, comúnmente referido como un ratón, seguibola o almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadillas de juegos, antena parabólica, escáner o similar. Estos y otros dispositivos de entrada por lo general están conectados a la unidad de procesamiento 121 a través de una interfase de usuario 160 que está acoplada al conductor común del sistema, pero pueden estar conectados a través de otras interfases y estructuras de conductores comunes, tales como un puerto paralelo, un puerto de juego o conductor común serial universal (USB). Un monitor 191 u otro tipo de dispositivo de pantalla también está conectado al conductor común del sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tales como bocinas 197 y la impresora 196, los cuales pueden conectarse a través de una interfase periférica de salida 190.
La computadora 110 puede operar en un ambiente conectado en red utilizando conexiones lógicas a una o más computadoras remotas, tales como la computadora remota 180. La computadora remota 180 puede ser una computadora personal, un servidor, un direccionador, una PC en red, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente con relación a la computadora 110, aunque solamente un dispositivo de almacenamiento de memoria 181 ha sido ilustrado en la Figura 1. Las conexiones lógicas descritas en la Figura 1 incluyen una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también pueden incluir otras redes. Dichos ambientes conectados en red son lugares comunes de oficinas, redes de computadora a nivel empresa, intranets y el Internet. Cuando se utiliza en un ambiente conectado en LAN, la computadora 110 está conectada a la otra LAN 171 a través de una interfase de red o adaptador 170. Cuando se utiliza en un ambiente conectado en WAN, la computadora 110 típicamente incluye un módem 172 u otros medios para establecer comunicaciones a través de la WAN 173, tal como el Internet. El módem 172, el cual puede ser interno o externo, puede estar conectado al conductor común del sistema 121 a través de una interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente conectado en red, los módulos de programa descritos con relación a la computadora 110, o porciones de los mismos, pueden almacenarse en el dispositivo de almacenamiento de memoria remoto. A manera de ejemplo, y no limitación, la Figura 1 ilustra programas de aplicación remotos 185 como residentes en el- dispositivo de memoria 181. Se apreciará que las conexiones en red mostradas son ilustrativas y que otros medios para establecer enlaces de comunicaciones entre las computadoras pueden utilizarse.
Protocolo USB La arquitectura USB proporciona una manera para conectar los dispositivos a y comunicarse con un huésped. Por ejemplo, como se muestra en la Figura 2, un conductor común serial universal (USB) puede utilizarse para conectar un ratón 161, un teclado 162, una tableta de gráficos 163, una bocina 197, un micrófono 164, un teléfono 165, y un monitor 191 a una computadora 110. La arquitectura USB permite las conexiones entre uno o más dispositivos USB y un huésped USB. Generalmente, en dicha configuración, la computadora 110 es el huésped USB. La interconexión física utilizada es una topología estrella. Para prevenir las conexiones circulares, se impone una orden estratificada en la topología estrella. El resultado es la topología de tipo árbol mostrada en la Figura 2. Un concentrador está en el centro de cada estrella. El huésped USB es un concentrador. Los dispositivos USB con funcionalidad pueden también ser concentradores. Por ejemplo, en la Figura 2, el teclado 162 y el monitor 191 cada uno son dispositivos que también funcionan como concentradores. Los concentradores sin ninguna funcionalidad separada también son posibles en una topología USB. Adicionalmente, se pueden empacar múltiples funciones juntas en lo que aparece como siendo un dispositivo físico individual. Por ejemplo, un teclado y un dispositivo de apuntamiento (tai como una bola rodante) pueden estar combinados juntos en un paquete individual. Cuando múltiples funciones se combinan con el concentrador en un paquete individual, se denominan como dispositivo compuesto. El concentrador y cada función conectada al concentrador dentro del dispositivo compuesto son asignadas a su propia dirección de dispositivo. Por ejemplo, el teclado 162, el concentrador y la funcionalidad del teclado cada uno tendrá una dirección de dispositivo separada. El huésped incluye una inferíase USB al sistema de computadora huésped conocido como el controlador del huésped 167. El controlador del huésped 167 y el software del sistema USB proporcionan la interfase en la red USB y la computadora personal huésped entre el dispositivo y el software específico controlando ese dispositivo. El controlador huésped 167 controla todos los accesos a los recursos USB para enviar y recibir todos los paquetes a y desde estos dispositivos. El software del sistema en conjunción con el concentrador raíz y cualesquiera concentradores adicionales, rastrean la topología del conductor común y manejan todos los direccionamientos de los dispositivos y enrutamiento de datos desde el software del cliente utilizando el dispositivos y el dispositivo mismo. Cuando el software del cliente en el huésped desea comunicarse con algún dispositivo USB, lo hace a través de la interacción con el software del sistema USB. El software del sistema USB interactúa con el controlador del huésped 167. El controlador del huésped 167 envía y recibe y señales a través del conductor común USB a y desde el dispositivo USB y los puntos finales en el dispositivo. Uno o más concentradores pueden ser intermediarios entre el controlador del huésped 167 y el dispositivo USB. En el dispositivo USB, una capa de inferíase USB recibe las señales. Esta capa transmite datos en marcos al dispositivo, el cual direcci9ona los datos a y desde varios puntos finales en el dispositivo. Las interfases las cuales consisten de puntos finales proveen la funcionalidad. En algunos casos estas interfases están agrupadas juntas en "funciones", por ejemplo, la función del altoparlante de las bocinas 197 o la función de teclado del teclado 162 o las dos funciones de un dispositivo individual conteniendo un teclado y un ratón. Todos los dispositivos USB presentan una interfase USB estándar en términos de su comprensión del protocolo USB, su respuesta a operaciones USB estándares, y su información descriptiva de capacidad estándar. Estas interfases generalmente se definen por el cuerpo de los Estándares del Grupo de Trabajo del Dispositivo USB, aunque las interfases de costumbre específicas del vendedor también pueden ser definidas. El conductor común, mostrado como las líneas que conectan objetos en la Figura 2, es un conductor común sondeado. La computadora 110, a través de controlador del huésped 167, inicia todas las transferencias de datos. Dicho tipo de transferencia es la transferencia interrumpida. Una transferencia interrumpida se utilizad para datos pequeños, no periódico, de baja frecuencia, y latencia limitada. Las transferencias interrumpidas proveen un período de servicio máximo garantizado para la conexión y reintento de todos los intentos de transferencia en el siguiente período. Por ejemplo, el sondeo del teclado para pulsaciones de las teclas se maneja utilizando este tipo de transferencia USB. Una transacción USB inicia cuando una aplicación en el huésped solicita una transferencia a o desde un dispositivo desde el controlador huésped 167. El controlador huésped 167 envía un paquete USB describiendo el tipo y dirección de transacción, la dirección del dispositivo USB y el número de punto final. Esto es el "paquete ficha". Cada dispositivo USB se referencia a través de una dirección USB mediante una dirección USB que se asigna cuando el dispositivo está conectado y enumerado con el controlador huésped 167. Cada dispositivo USB utiliza la información de dirección incluida en la ficha para determinar si es el objetivo de la ficha enviarla a través del huésped. El número de punto final define el punto final y por lo tanto la interfase en la cual reside ese punto final (o en los términos coloquiales), del dispositivo USB al cual la comunicación se dirige. Enseguida, en la fase del paquete de datos, los datos se transfieren al huésped desde el punto final, o desde el huésped al punto final, de acuerdo con las instrucciones en el paquete de ficha. Si la ficha es una ficha de ENTRADA, el huésped está solicitando información desde el punto final. Si la ficha es una ficha de SALIDA, el huésped está indicando que enviará información al punto final. Si la ficha es una ficha de ENTRADA, aún no hay datos para ser transferidos desde el dispositivo localizado, un paquete NAK se envía para ese efecto a través del punto final en lugar de los datos. Por ejemplo, si el teclado 162 está siendo sondeado, pero no han ocurrido las pulsaciones de las teclas, se envía un NAK (aprobación negativa). Sí el punto final es detenido, se envía DETENER. Si hay datos que van a ser enviados, estos datos se envían. En respuesta, si se reciben los datos, el huésped enviará un handshake (esquema de autentificación) ACK. Cuando una ficha de SALIDA ha sido enviada, y los datos fueron transferidos desde el huésped al punto final, el punto final enviará un paquete ACK para aprobar los datos si fueron recibidos exitosamente. El handshake de DETENER puede ser enviado, si el punto final es detenido y no puede recibir los datos. Si el punto final no recibe los datos, se envía un NAK. Un comando de CONFIGURAR es un tipo de transacción externa que origina que un comando (enviado en la fase de datos) sea ejecutado en el punto final. Una descripción completa del protocolo USB está contenido en la especificación USB, la cual es un documento públicamente disponible. El documento está disponible en el sitio web Forum Implementers USB, en www.usb.org.
Substitución Dinámica de Datos USB Los métodos y sistemas de la invención implementan la seguridad en las comunicaciones entre un componente seguro y un dispositivo, tal como un dispositivo USB, a través de una red. El módulo de seguridad de la invención puede estar localizado dentro de un dispositivo USB y será descrito con referencia a un sistema USB, sin embargo, se contempla que cualquier conexión operable entre un huésped y el dispositivo puede ser ímplementada de acuerdo con la invención. Por ejemplo, cualquier conexión que comprende uno o más conductores comunes, una red (tal como una Red de Área Local (LAN) u otra red) y un conductor común USB puede utilizar la invención. En el sistema descrito en la Figura 3(A), de acuerdo con la invención, las comunicaciones están aseguradas entre un componente seguro en la computadora 110 y el ratón 361 y entre el componente seguro y la tableta de gráficos 163. El ratón 361 incluye un módulo de seguridad integrado 300, y comunicaciones con el componente seguro están mediadas por el módulo de seguridad. En el sistema de la Figura 3(A), para asegurar las comunicaciones con la tableta de gráficos 163, una llave electrónica 310, físicamente separada de la tableta de gráficos 163, media las conexiones entre la tableta de gráficos 163 y el componente seguro. El módulo de seguridad está contenido en la llave electrónica 310. Un módulo de seguridad puede ser implementado en cualquier punto en el sistema USB. Las comunicaciones en la corriente ascendente de la red USB (hacia el huésped) del módulo de seguridad o llave electrónica están protegidas, pero las comunicaciones en la corriente descendente (lejos del huésped) del módulo de seguridad o llave electrónica pueden ser vulnerables. Debido al diseño físico del sistema, todas las comunicaciones entre el huésped y el dispositivo protegido pasan a través del módulo de seguridad. En modalidades alternativas, el módulo de seguridad puede estar integrado en la llave electrónica, un concentrador de corriente ascendente, o el dispositivo asegurado mismo. Generalmente, cualquier esquema de codificación que genera datos ilegibles o verificables es útil para asegurar el sistema. En una modalidad, un sistema de pares de claves, con ambos, el componente de seguridad comunicándose con el dipositivo y el módulo de seguridad teniendo una información clave, se contempla. De acuerdo con una modalidad, con el fin de inicializar las capacidades de codificación/descodificación, el componente seguro y el módulo de seguridad comparten una clave de asociación. Una forma para compartir esta clave de asociación entre los dos dispositivos es que el componente seguro asegure la información de clave desplegada y el módulo de seguridad entonces acepte- la captura desde el teclado de corriente descendente u otro dipositivo de entrada para establecer la clave de asociación. Por ejemplo, el componente seguro puede desplegar la clave de asociación en un monitor seguro u otro dispositivo de salida. Entonces, si el módulo de seguridad está conectado a o incorporado en un teclado, ese teclado puede utilizarse para capturar la clave de asociación. En otras modalidades, la clave de asociación compartida también puede ser hardware codificado en ambos, el dispositivo y el componente seguro, puede ser quemado en ambos, el dispositivo e instalado en el software del componente seguro durante el tiempo de instalación de fábrica (o en el primer inicio después de ser construida), o puede ser desplegada por el módulo de seguridad y capturada en el componente seguro a través de botones aleatoriamente colocados en la pantalla para ser seleccionados por el usuario con un ratón, de esta manera previniendo que un adversario de escuche secretamente la información. En una modalidad, la clave de asociación se utiliza como la clave para codificar y descodificar datos, así como para validar comandos desde el componente seguro al módulo de seguridad. En una modalidad de la invención, el huésped (computadora 110) incluye software seguro como el componente seguro que comandará el dispositivo. En esta modalidad, el software seguro no tiene control directo del dispositivo en cuestión, pero debe comunicarse con el dispositivo a través del conductor común inseguro y posiblemente las áreas inseguras del huésped. Por ejemplo, si el huésped permite procesos seguros, el software seguro puede estar corriendo como un proceso seguro en el huésped. Los comandos que se están emitiendo desde el software seguro pueden ser codificados o firmados antes de que el comando sea enviado a las áreas inseguras del huésped y a través del conductor común inseguro. En esta forma, la seguridad se logra aún cuando los datos están pasando a través posiblemente áreas vulnerables del huésped o del conductor común. En el sistema descrito en la Figura 3(b), de acuerdo con la invención, el componente seguro es el servidor seguro 350, una computadora confiable corriendo software que requiere de comunicaciones seguras con el usuario a través del ratón 361 y la tableta de gráficos 163. La computadora no confiable 360, la cual contiene el controlador huésped 167, puede ser vulnerable al ataque, así como las conexiones entre la computadora no confiable 360 y el servidor seguro 350, la computadora no confiable 360 y el monitor 191, el monitor 191 y el teclado 162, y entre el teclado 162 y la llave electrónica 310. Sin embargo, debido a que la información enviada entre el servidor seguro 350 y el ratón 361 y entre el servidor seguro 350 y la tableta de gráficos 163 están aseguradas de acuerdo con la invención, la vulnerabilidad de estas conexiones e intermediarios no representa inseguridad de comunicaciones entre el servidor seguro 350 y estos dispositivos. Con el fin de implementar la descodificación/codificación, en otra modalidad, las claves de sesión se generan para cada sesión en entre el componente seguro y el módulo de seguridad. Esto permite la seguridad incrementada y es una defensa contra ataques repetidos. Ya que los datos codificados pueden ser grabados y reproducidos, si las claves de sesión cambian, los datos codificados son identificados como no autorizados. Una sesión se establece entre el componente seguro y el dispositivo o el módulo de seguridad. El componente seguro y el módulo de seguridad intercambian datos conocidos como de ocasión. El componente seguro y el módulo de seguridad cada uno calcula una función de almohadilla de estos dos datos de ocasión con la clave de asociación, la cual se convierte en una clave de sesión utilizada para codificar/descodificar. En una modalidad la inicialización correcta se confirma a través del intercambio de información codificada. Aunque la presente invención se describe con referencia al protocolo USB, se apreciará que la invención tiene una amplia aplicabilidad, y puede ser practicada con cualquier protocolo similar a USB, como se detalla más adelante. Por ejemplo, se puede utilizar para dispositivos que se están diseccionando utilizando el estándar IEEE-1394.
Señal de transmisión para una codificación sobre la marcha De acuerdo con la invención, cuando el componente seguro emite, a través del huésped y el conductor común, una ficha de ENTRADA a un punto final el cual está más allá del módulo de seguridad, el módulo de seguridad verifica para determinar si la dirección USB y el punto final, al cual la ficha de ENTRADA está dirigida, está protegida o "confiscada". Si la dirección y el punto final no están confiscados, el módulo de seguridad simplemente pasa cualquier información desde el huésped al punto final y cualquier información desde el punto final al huésped (en la misma forma que un concentrador USB repite los datos desde un puerto de corriente ascendente a un puerto de corriente descendente y viceversa). Sin embargo, si el punto final está confiscado, el módulo de seguridad media entre el componente seguro y el punto fina como se ve en ía Figura 4. Como se muestra en ia Figura 4, se recibe la solicitud de datos a través del módulo de seguridad desde el componente seguro en el paso 410. Aún si la dirección y el punto final al cual se dirige la solicitud de datos están confiscadas, la ficha de ENTRADA se envía en el punto confiscado en el paso 420. El módulo de seguridad entonces intercepta los datos solicitados a través del punto final n el paso 430. En lugar de pasar estos datos al conductor común, el módulo de seguridad envía una señal al huésped que indica que no hay datos disponibles en el paso 440 (utilizando un paquete NAK estándar) y espera a recibir la segunda solicitud de datos desde el componente seguro en el paso 450. Mientras tanto, el módulo de seguridad codifica los datos solicitados en el paso 460. Ya que con todos los puntos finales interrumpidos en el USB, el sistema huésped subsecuentemente reintentará el comando de ENTRADA. Cuando se completa la codificación y la segunda solicitud de datos ha sido recibida, el módulo de seguridad envía los datos codificados al componente seguro como una respuesta a la segunda solicitud de datos en el paso 470. La segunda solicitud de datos no se envía intacta a la dirección del dispositivo en cuestión. Ya que el dispositivo de acceso debe continuar para retransmitir ios bits cuando recibe esos bits, no puede determinar que la siguiente ficha de ENTRADA se envía a una dirección confiscada hasta que esos bits ya han sido transmitidos a la dirección y punto final en cuestión. Por lo tanto el dispositivo seguro puede corromper el resto del paquete o causar que este sea "destruido" cuando la llave electrónica detecta esta condición. Por lo tanto el punto final USB no devolverá un nuevo paquetea, ya que no recibió una ficha de ENTRADA válida; en su lugar la llave electrónica contestará al dispositivo con el paquete codificado para el huésped. Cuando se recibe una aprobación del componente seguro para los datos, la aprobación se pasa al punto final en el paso 480. Cuando esta codificación sobre la marcha se implementa en un huésped con áreas seguras e inseguras, la información utilizada para codificar o firmar los datos debe ser mantenida por el huésped en el área segura, y el módulo de seguridad debe contener la información necesaria para descodificar o verificar los datos. Cuando la clave de asociación compartida se utiliza tanto como información de codificación e información de verificación, esta clave de asociación se almacena por el huésped en el área segura y el módulo de seguridad. Para implementar esto en un sistema USB, la solicitud de datos está en una ficha de ENTRADA, la señal indicando que ningún dato que no está disponible debe ser una señal NAK, y la aprobación es una señal ACK. Si en el paso 430, el módulo de seguridad recibe una señal indicando que el punto final está en un estado de error (por ejemplo, en USB, una señal de DETENER), esa señal se pasa al conductor común.
Transmisión de señal para descodificación sobre la marcha En una modalidad descrita anteriormente, todos los comandos de configuración al dispositivo de seguridad (a través del módulo de seguridad) están prohibidos, y son destruidos, como se describió anteriormente. Esto presenta un problema cuando el componente seguro quiere enviar un comando de configuración legítimo al dispositivo. Por esta razón un mecanismo para permitir ciertos comandos de configuración a través del módulo de seguridad al dispositivo debe ser creado. De acuerdo con la invención, una instrucción de configuración válida para enviar un comando a un punto final seguro se envía primero al módulo de seguridad a través del componente seguro en un comando de "permitir". Este comando será validado en la misma forma que todos los otros comandos son enviados al módulo de seguridad desde el software confiable. Como se muestra en la Figura 5, un comando de permitir se recibe a través del módulo de seguridad desde el componente seguro en el paso 510. Esto seguido por la recepción mediante el módulo de seguridad de datos del comando permitir enviados desde el componente seguro, incluyendo un comando de configuración codificado en el paso 520. Se hace un intento para verificar el comando de configuración codificado en el paso 530. En otra modalidad, la verificación incluye la descodificación del comando configurar, produciendo una versión descodificada localmente del comando configurar. En una modalidad, los datos del comando permitir recibidos por el módulo de seguridad incluyen una versión descodificada del comando configurar.- El módulo de seguridad, para verificar, compara esta versión descodificada con la versión localmente descodificada. En aún otra modalidad, el comando configurar codificado es una versión firmada del comando configurar, y en la verificación la firma se prueba para asegurar que el comando configurar fue firmado con la clave compartida. Si la verificación no es exitosa, el comando configurar no ser enviará al punto final. Si la verificación fue exitosa, el módulo de seguridad espera para recibir un comando configurar del componente seguro en el paso 540. Si el comando configurar coincide con el comando configurar previamente verificado (paso 530), el comando, junto con una fase de datos siguiente, se envía al punto final en el paso 570. Si el comando configurar no coincide, no se envía. En su lugar, el módulo de seguridad espera por un comando configurar que coincide.
Conclusión En esta forma, mientras aún se utiliza el protocolo USB, los datos codificados y los comandos pueden pasarse desde un componente seguro a un punto final y desde un punto final a un componente seguro, mientras mantienen el dispositivo seguro de otras clases de reprogramación o reconfiguración. Como se mencionó anteriormente, ya que las modalidades ilustrativas de la presente Invención has sido descritas en conexión con varios dispositivos de computación y arquitecturas de red, los conceptos subyacentes pueden ser aplicados a cualquier dispositivo o sistema de computación en el cual se desea implementar la codificación/descodificación de comunicaciones USB o similares. De esta manera, las técnicas de acuerdo con la presente invención pueden ser aplicadas a una variedad de aplicaciones y dispositivos. Las varias técnicas descritas aquí pueden ser implementadas en conexión con hardware o software o, cuando es apropiado, con una combinación de ambos. De esta manera, los métodos y aparatos de la presente invención, o ciertos aspectos o porciones de la misma, pueden tomar la forma de código, de programa (es decir, instrucciones) moralizadas en medios tangibles, tales como disquetes flexibles, CD-ROMs, discos duros, o cualquier otros medios de almacenamiento legibles por computadora, en donde, cuando el código de programa es cargado dentro, y ejecutado por una máquina, tal como una computadora, la máquina se convierte en un aparato para practicar la invención. En el caso de la ejecución del código de programa en computadoras programables, el dispositivo de computación generalmente incluirá un procesador, un medio de almacenamiento legible por el procesador (incluyendo memoria volátil y no volátil y/o elementos de almacenamiento), por lo menos un dispositivo de entrada, y por lo menos un dispositivo de salida. Uno o más programas que pueden utilizar los servicios de procesamiento de señal de la presente invención, por ejemplo, a través del uso de un procesamiento de datos API, o similar, son preferiblemente implementados para comunicarse con un sistema de computadora. Sin embargo, el programa(s) puede ser implementado en el lenguaje de ensamble o de máquina, si se desea. En cada caso, el lenguaje puede ser un lenguaje compilado o interpretado, y combinado con implementaciones de hardware. Los métodos y aparatos de la presente invención también se pueden practicar a través de comunicaciones moralizadas en la forma de código de programa que es transmitido a través de algún medio de transmisión, tal como cableado eléctrico o cableado, a través de fibra óptica, o a través de cualquier otra forma de transmisión, en donde el código de programa es recibido y cargado en y ejecutado por una máquina, tal como un EPROM, un arreglo de puerta de enlace, un dispositivo lógico programable (PLD), una computadora cliente, un grabador de video o similar, o una maquina de recepción que tiene las capacidades de procesamiento de señal como se describió en las modalidades ilustrativas anteriores se convierte en un aparato para practicar la invención. Cuando se implementa en un procesador de propósito general, el código de programa se combina con el procesador para proporcionar un aparato único que opera para invocar la funcionalidad de la presente invención. Adicionalmente, cualesquiera técnicas de almacenamiento utilizadas en conexión con la presente invención pueden invariablemente ser una combinación de hardware y software. Ya que la presente invención ha sido descrita en conexión con las modalidades preferidas de las varias figuras, se debe entender que otras modalidades similares pueden ser utilizadas o modificaciones y adiciones pueden ser hechas a la modalidad descrita para realizar la misma función de la presente invención sin desviarse de la misma. Por ejemplo, mientras los ambientes en red ilustrativos de la invención se describen en el contexto de un ambiente conectado en red, tal como un ambiente conectado en red par, uno con experiencia en la técnica reconocerá que la presente invención no está limitada al mismo, y que los métodos, comos se describen en la presente aplicación, pueden aplicarse a cualquier dispositivo o ambiente de computación, tal como una consola de juegos, computadora portátil, computadora portátil, etc., ya sea cableada o inalámbrica, y puede aplicarse a cualquier número de dichos dispositivos de computación conectados a través de una red de comunicaciones, e interactuar a través de la red. Además, se debe enfatizar que una variedad de plataformas de computación, incluyendo sistemas operativos de dispositivos portátiles y otros sistemas operativos de aplicaciones específicas se contemplan, especialmente como el número de dispositivos conectados en red de manera inalámbrica continúan proliferando. Aún además, la presente invención puede ser implementada en o a través de una pluralidad de chips o dispositivos de procesamiento, y el almacenamiento puede ser similarmente efectuado a través de una pluralidad de dispositivos. Por lo tanto, la presente invención no debe estar limitada a ninguna modalidad individual, sino debe ser construida en la extensión y alcance de acuerdo con las reivindicaciones anexas.

Claims (63)

REIVINDICACIONES
1. Un método para mediar la transferencia de datos entre un dispositivo y un componente seguro, que comprende: recibir dicha solicitud de datos; después de dicha recepción de una primera solicitud de datos, pasar dicha primera solicitud de datos a dicho dispositivo; después de pasar dicha primera solicitud de datos a dicho dispositivo, recibir datos de dicho dispositivo; después de recibir dicha primera solicitud de datos, enviar una señal a dicho componente seguro indicando que no hay datos disponibles; después de recibir dichos datos de dicho dispositivo, codificar dichos datos; interceptar una segunda solicitud de datos de dicho componente seguro a dicho dispositivo; y después de dicha segunda solicitud de datos, enviar los datos codificados al componente seguro.
2. El método de acuerdo con la reivindicación 1 , en donde dicha codificación se lleva a cabo utilizando una clave, y en donde dicho componente seguro comprende una porción segura comprendiendo una copia de dicha clase para la codificación.
3. El método de acuerdo con la reivindicación 1, en donde dicho dispositivo es un dispositivo USB, donde dicho componente seguro está operablemente conectado a un huésped USB, en donde dicha solicitud de datos es una ficha de ENTRADA USB, dichos datos son datos USB, y dicha señal a dicho componente seguro indicando que no hay datos disponibles en una señal NAK.
4. El método de acuerdo con la reivindicación 1, que comprende además: después de enviar dichos datos codificados a dicho componente seguro, recibir una aprobación de dicho componente seguro; después de dicha recepción de dicha aprobación del componente seguro, enviar la aprobación al dispositivo.
5. El método de acuerdo con la reivindicación 4, en donde dicho dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde la aprobación es una señal ACK.
6. El método de acuerdo con la reivindicación 1, en donde dichos datos recibidos del dispositivo pueden comprender una señal indicando que el dispositivo está en un estado de error, y en donde, después de que los datos son recibidos del dispositivo indicando que el dispositivo está en un estado de error, dicho envío de señal al componente seguro indicando que no hay datos disponibles es una señal indicando que el dispositivo está en un estado de error.
7. El método de acuerdo con la reivindicación 6, en donde el dispositivo es un dispositivo USB, el componente seguro está operablemente conectado a un huésped USB, y la señal indicando que el dispositivo está en un estado de error es una señal de DETENER.
8. Un método para mediar la transferencia de datos entre un dispositivo USB y un componente seguro operablemente conectado a un huésped USB, que comprende: interceptar los datos de dicho dispositivo USB en respuesta a una primera ficha de ENTRADA de dicho componente seguro; codificar dichos datos; interceptar una segunda ficha de ENTRADA enviada por el componente seguro de dicho dispositivo USB; y enviar los datos codificados al componente seguro.
9. El método de acuerdo con la reivindicación 8, que comprende además: después de interceptar los datos del dispositivo USB, enviar una señal NAK al componente seguro.
10. El método de acuerdo con la reivindicación 8, que comprende además: destruir dicha primera ficha de ENTRADA.
11. Un método para mediar la transferencia de datos entre un componente seguro y un dispositivo, que comprende: recibir los datos, incluyendo un primer comando de dicho dispositivo; verificar la seguridad de dicho primer comando; interceptar un segundo comando de dicho dispositivo; comparar el primer comando con el segundo comando; si el primer comando es igual al segundo comando, enviar el segundo comando de datos al dispositivo.
12. El método de acuerdo con la reivindicación 11, en donde el dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado al huésped USB, y en donde el primer comando y el segundo comando comprenden comandos de configuración.
13. El método de acuerdo con la reivindicación 11, que comprende además: después de enviar los datos del segundo comando al dispositivo, recibir una aprobación de dicho dispositivo; después de la recepción de la aprobación a dicho componente seguro, enviar dicha aprobación a dicho dispositivo.
14. El método de acuerdo con la reivindicación 13, en donde el dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde la aprobación comprende una señal ACK.
15. El método de acuerdo con la reivindicación 11, en donde dicha verificación del primer comando comprende: comparar una copia codificada de dicho primer comando con una copia no codificada de dicho primer comando.
16. El método de acuerdo con la reivindicación 11, en donde dicha verificación del primer comando comprende: verificar una firma en una copia firmada de dicho primer comando.
17. Un método para manejar de manera segura una solicitud de CONFIGURAR de un componente seguro operablemente conectado a un huésped USB para un dispositivo USB, que comprende: recibir un comando de PERMITIR de componente seguro; . después de la recepción del comando PERMITIR, recibir datos del comando; verificar dichos datos del comando; recibir el comando CONFIGURAR comprendiendo los datos del comando CONFIGURAR de dicho dispositivo USB; comparar los datos del comando CONFIGURAR con dichos datos del comando; y si los datos del comando CONFIGURAR son iguales a los datos del comando, transmitir el comando CONFIGURAR al dispositivo USB.
18. El método de acuerdo con la reivindicación 17, que comprende además: después de la recepción de los datos del comando, enviar una señal ACK al componente seguro.
19. El método de acuerdo con la reivindicación 17, que comprende además: después de la transmisión de los datos del comando, recibir una señal ACK del dispositivo USB; después de la recepción de la señal ACK del dispositivo, transmitir la señal ACL al componente seguro.
20. Un módulo de seguridad para mediar la transferencia de datos entre un dispositivo y un componente seguro, que comprende: medios para recibir dicha solicitud de datos; medios para, después de la recepción de una primera solicitud, pasar dicha primera solicitud de datos al dispositivo; medios para, después de pasar la primera solicitud de datos al dispositivo, recibir datos de dicho dispositivo; medios para, después de la recepción de la primera solicitud de datos, enviar una señal al componente seguro indicando que no hay datos disponibles; medios para, después de la recepción de los datos desde el dispositivo, codificar dichos datos; medios para interceptar una segunda solicitud de datos de dicho componente seguro a dicho dispositivo; y medios para, después de la segunda solicitud de datos, enviar dichos datos codificados al componente seguro.
21. El módulo de seguridad de acuerdo con la reivindicación 20, en donde dicho dispositivo comprende dicho módulo de seguridad.
22. El módulo de seguridad de acuerdo con la reivindicación 20, en donde dicho dispositivo comprende un concentrador.
23. El módulo de seguridad de acuerdo con la reivindicación 20, en donde una llave electrónica comprende dicho módulo de seguridad, y en donde la llave electrónica está operablemente conectada a dicho componente de seguridad.
24. El módulo de seguridad de acuerdo con la reivindicación 20, en donde la codificación se realiza utilizando una clave, en donde el módulo de seguridad comprende medios para almacenar dicha clave, y en donde el componente seguro comprende una porción segura comprendiendo una copia de dicha clave para descodificación.
25. El módulo de seguridad de acuerdo con la reivindicación 20, en donde el dispositivo es un dispositivo USB, en donde dicho componente seguro está operablemente conectado a un huésped USB, en donde la solicitud de datos es una ficha de ENTRADA USB, los datos son datos USB, y la señal a dicho componente seguro indicando que no ya datos disponibles es una señal NAK.
26. El módulo de seguridad de acuerdo con la reivindicación 20, que comprende además: medios para, después del envío de los datos codificados al componente seguro, recibir una aprobación de dicho componente seguro; medios para, después de la recepción de la aprobación de dicho componente seguro enviar dicha aprobación al dispositivo.
27. El módulo de seguridad de acuerdo con la reivindicación 26, en donde dicho dispositivo es un dispositivo USB, en donde dicho componente está operablemente conectado a un huésped USB, y en donde la aprobación es una señal ACK.
28. El módulo de seguridad de acuerdo con la reivindicación 20, en donde los datos recibidos de dicho dispositivo pueden comprender una señal indicando que dicho dispositivo está en un estado de error, y en donde, después de que los datos son recibidos de dicho dispositivo indicando que el dispositivo está en un estado de error, dicho envío de una señal a dicho componente seguro indicando que no hay datos disponibles es una señal indicando que el dispositivo está en un estado de error.
29. El módulo de seguridad de acuerdo con la reivindicación 28, en donde dicho dispositivo es un dispositivo USB, en donde dicho componente está operablemente conectado a un huésped USB, y en donde dicha señal indicando que dicho dispositivo está en un estado de error es una señal de DETENER.
30. El módulo de seguridad de acuerdo con la reivindicación 20, en donde dicho componente seguro está localizado en un primer sistema de computadora, en donde dicho dispositivo está localizado en un segundo sistema de computadora, en donde dichos primero y segundo sistemas de computadora están operablemente conectados, y en donde dicha conexión operable comprende por lo menos uno de: una red, un conductor común local, y un conductor común USB.
31. El módulo de seguridad de acuerdo con la reivindicación 20, en donde dicho componente seguro comprende un componente de software seguro corriendo en por lo menos un proceso seguro, y en donde la transferencia de datos ocurre entre uno de por lo menos un proceso seguro y dicho dispositivo.
32. Un módulo de seguridad para mediar la transferencia de datos entre un dispositivo USB y un componente seguro operablemente conectado a un huésped USB que comprende: medios para interceptar datos de dicho dispositivo USB en respuesta a una primera ficha de ENTRADA de dicho componente seguro; medios para codificar dichos datos; medios para interceptar una segunda ficha de ENTRADA enviada a través de dicho componente seguro para dicho dispositivo USB; y medios para enviar los datos codificados al componente seguro.
33. El módulo de seguridad de acuerdo con la reivindicación 32, que comprende además: medios para, después de interceptar los datos del dispositivo USB, enviar una señal NAK al componente seguro.
34. El módulo de seguridad de acuerdo con la reivindicación 32, que comprende además: medios para destruir dicha primera ficha de ENTRADA.
35. Un módulo de seguridad para mediar la transferencia de datos entre un componente seguro y un dispositivo, que comprende: medios para recibir datos incluyendo un primer comando que se va a correr en dicho dispositivo; medios para verificar la seguridad de dicho primer comando; medios para interceptar un segundo comando dirigido al dispositivo; medios para comparar dicho primer comando con dicho segundo comando; medios para, si dicho primer comando es igual a dicho segundo comando, enviar los datos del segundo comando al dispositivo.
36. El módulo de seguridad de acuerdo con la reivindicación 35, en donde el dispositivo comprende dicho módulo de seguridad.
37. El módulo de seguridad de acuerdo con la reivindicación 35, en donde dicho módulo de seguridad comprende un concentrador.
38. El módulo de seguridad de acuerdo con la reivindicación 35, en donde la llave electrónica comprende dicho módulo de seguridad, y en donde la llave electrónica está operablemente conectada a dicho componente seguro.
39. El módulo de seguridad de acuerdo con la reivindicación 38, en donde dicho dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde el primer comando y el segundo comando comprenden comandos de configuración.
40. El módulo de seguridad de acuerdo con la reivindicación 38, que comprende además: medios para, después de enviar los datos del segundo comando a dicho dispositivo, recibir una aprobación del dispositivo; medios para, después de la recepción de la aprobación a dicho componente seguro, enviar la aprobación al dispositivo.
41. El módulo de seguridad de acuerdo con la reivindicación 40, en donde dicho dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde la aprobación comprende una señal ACK.
42. El módulo de seguridad de acuerdo con la reivindicación 38, en donde dicha verificación de dicho primer comando comprende: comparar una copia codificada de dicho primer comando con una copia no codificada de dicho primer comando.
43. Un módulo de seguridad para manejar de manera segura una solicitud de CONFIGURAR de un componente seguro operablemente conectado a un huésped USB, que comprende: medios para recibir un comando de PERMITIR del componente seguro; medios para, después de la recepción del comando PERMITIR, recibir datos de comando; medios para verificar dichos datos de comando; medios para recibir un comando de CONFIGURAR comprendiendo los datos del comando CONFIGURAR para el dispositivo USB; medios para recibir un comando CONFIGURAR comprendiendo datos del comando CONFIGURAR para el dispositivo USB; medios para comparar dichos datos del comando CONFIGURAR con los datos del comando; y si dichos datos del comando CONFIGURAR son iguales a los datos del comando, transmitir el comando CONFIGURAR al dispositivo USB.
44. El módulo de seguridad de acuerdo con la reivindicación 43, que comprende además: medios para, después de recibir los datos de comando, enviar una señal ACK al componente seguro.
45. El módulo de seguridad de acuerdo con la reivindicación 43, que comprende además: medios para, después de la transmisión de los datos del comando, recibir una señal ACK del dispositivo USB; después de la recepción de la señal ACK de dicho dispositivo, transmitir dicha señal ACK al componente seguro.
46. Un medio legible por computadora para mediar la transferencia de datos entre un dispositivo y un componente seguro, dichos medios legibles por computadora teniendo instrucciones legibles por computadora las cuales, cuando se ejecutan a través de uno o más procesadores, implementan pasos que comprenden: recibir dicha solicitud de datos; después de dicha recepción de una primera solicitud de datos, pasar la primera solicitud de datos al dispositivo; después de pasar la primera solicitud de datos a dicho dispositivo, recibir datos del dispositivo; después de la recepción de la primera solicitud de datos, enviar una señal al componente seguro indicando que no hay datos disponibles; después de la recepción de los datos desde el dispositivo, codificar dichos datos; interceptar una segunda solicitud de datos de dicho componente seguro a dicho dispositivo; y después de la segunda solicitud de datos, enviar dichos datos codificados a dicho componente seguro.
47. Los medios legibles por computadora de acuerdo con la reivindicación 46, en donde dicha codificación se realiza utilizando una clave, y en donde dicho componente seguro comprende una porción segura comprendiendo una copia de dicha clave para la descodificación.
48. Los medios legibles por computadora de acuerdo con la reivindicación 46, en donde dicho dispositivo es un dispositivo USB, en donde dicho componente seguro está operablemente conectado a un huésped USB, en donde dicha solicitud de datos es una ficha de ENTRADA USB, dichos datos son datos USB, y dicha señal a dicho componente seguro indicando que no hay datos disponibles es una señal NAK.
49. Los medios legibles por computadora de acuerdo con la reivindicación 46, dichos pasos además comprenden: después de enviar los datos codificados al componente seguro, recibir una aprobación del componente seguro; después de recibir dicha aprobación de dicho componente seguro, enviar dicha aprobación a dicho dispositivo.
50. Los medios legibles por computadora de acuerdo con la reivindicación 49, en donde dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde la aprobación es una señal ACK.
51. Los medios legibles por computadora de acuerdo con la reivindicación 46, en donde los datos recibidos de dicho dispositivo comprenden una señal indicando que dicho dispositivo está en un estado de error, y en donde, después de que se reciben los datos de dicho dispositivo indicando que el dispositivo está en un estado de error, dicho envío de una señal al componente seguro indicando que no hay datos disponibles es una señal indicando que dicho dispositivo está en un estado de error.
52. Los medios legibles por computadora de acuerdo con la reivindicación 51, en donde el dispositivo es un dispositivo USB, el componente seguro está operablemente conectado a un huésped USB, y dicha señal indicando que el dispositivo está en un estado de error es una señal de DETENER.
53. Un medio legible por computadora para mediar la transferencia de datos entre un dispositivo USB y un componente seguro operablemente conectado a un huésped USB, dicho medio legible por computadora teniendo instrucciones legibles por computadora las cuales, cuando se ejecutan a través de uno o más procesadores, implementa pasos que comprenden: interceptar datos de dicho dispositivo USB en respuesta a una primera ficha de ENTRADA de dicho componente seguro; codificar los datos; interceptar una segunda ficha de ENTRADA enviada por el componente seguro para dicho dispositivo USB; y enviar dichos datos codificados a dicho componente seguro.
54. Los medios legibles por computadora de acuerdo con la reivindicación 50, dichos pasos comprenden además: después de interceptar los datos de dicho dispositivo USB, enviar una señal NAK a dicho componente seguro.
55. Los medios legibles por computadora de acuerdo con la reivindicación 50, dichos pasos comprenden además: destruir dicha primera ficha de ENTRADA.
56. Un medio legible por computadora para mediar la transferencia de datos entre un componente seguro y un dispositivo, dichos medios legibles por computadora teniendo instrucciones legibles por computadora la cuales, cuando se ejecutan a través de uno o más procesadores, implementan pasos que comprenden: recibir datos incluyendo un primer comando que se va a correr en dicho dispositivo; verificar la seguridad de dicho primer comando; interceptar un segundo comando dirigido a dicho dispositivo; comparar dicho primer comando con dicho segundo comando; si dicho primer comando es igual a dicho segundo comando, enviar dicho segundo comando al dispositivo.
57. Los medios legibles por computadora de acuerdo con la reivindicación 56, en donde dicho dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB, y en donde dicho primer comando y dicho segundo comando comprenden comandos de configuración.
58. Los medios legibles por computadora de acuerdo con la reivindicación 56, dichos pasos comprenden además: después de enviar los datos del segundo comando a dicho dispositivo, recibir una aprobación del dispositivo; después de recibir la aprobación del componente seguro, enviar dicha aprobación al dispositivo.
59. Los medios legibles por computadora de acuerdo con la reivindicación 58, en donde dicho dispositivo es un dispositivo USB, en donde el componente seguro está operablemente conectado a un huésped USB y en donde la aprobación comprende una señal ACK.
60. Los medios legibles por computadora de acuerdo con la reivindicación 56, en donde dicha verificación de dicho primer comando comprende. comparar una copia codificada de dicho primer comando con una copia no codificada de dicho primer comando.
61. Un medio legible por computadora para manejar de manera segura una solicitud de CONFIGURAR de un componente seguro operablemente conectado a un huésped USB, dichos medios legibles por computadora teniendo instrucciones legibles por computadora la cuales, cuando se ejecutan mediante uno o más procesadores, implementan pasos que comprenden: recibir un comando de PERMITIR de un componente seguro; después de la recepción del comando PERMITIR, recibir datos de comando; verificar dichos datos de comando; recibir un comando de CONFIGURAR comprendiendo datos del comando CONFIGURAR para dicho dispositivo USB; comparar dichos datos de comando CONFIGURAR con dichos datos de comando; y si dichos datos de comando CONFIGURAR son iguales a los datos del comando, transmitir el comando CONFIGURAR a dicho dispositivo USB.
62. Los medios legibles por computadora de acuerdo con la reivindicación 61, dichos pasos comprenden: después de recibir dichos datos de comando, enviar una señal ACK a dicho componente seguro.
63. Los medios legibles por computadora de acuerdo con la reivindicación 61, dichos pasos comprenden además: después de dicha transmisión de comandos de datos, recibir una señal ACK de dicho dispositivo USB; después de la recepción de dicha señal ACK de dicho dispositivo, transmitir dicha señal ACK a dicho componente seguro.
MXPA04004143A 2003-05-02 2004-04-30 Substitucion dinamica de datos usb para la codificacion/descodificacion sobre la marcha. MXPA04004143A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/428,251 US7469343B2 (en) 2003-05-02 2003-05-02 Dynamic substitution of USB data for on-the-fly encryption/decryption

Publications (1)

Publication Number Publication Date
MXPA04004143A true MXPA04004143A (es) 2005-06-08

Family

ID=32990472

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04004143A MXPA04004143A (es) 2003-05-02 2004-04-30 Substitucion dinamica de datos usb para la codificacion/descodificacion sobre la marcha.

Country Status (10)

Country Link
US (1) US7469343B2 (es)
EP (1) EP1473617A3 (es)
JP (1) JP2004362552A (es)
KR (1) KR20040094377A (es)
CN (1) CN1551003A (es)
AU (1) AU2004201804A1 (es)
BR (1) BRPI0401686A (es)
CA (1) CA2465246A1 (es)
MX (1) MXPA04004143A (es)
RU (1) RU2352986C2 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295358A (ja) * 2003-03-26 2004-10-21 Internatl Business Mach Corp <Ibm> 情報処理装置、その暗号処理システム及び外部記憶装置の制御方法
JP3632695B2 (ja) * 2003-05-06 2005-03-23 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US7712131B1 (en) 2005-02-09 2010-05-04 David Lethe Method and apparatus for storage and use of diagnostic software using removeable secure solid-state memory
US20060200612A1 (en) * 2005-03-02 2006-09-07 Laurence Hamid Method and protocol for transmitting extended commands to USB devices
US7886353B2 (en) * 2005-03-25 2011-02-08 Microsoft Corporation Accessing a USB host controller security extension using a HCD proxy
US7761618B2 (en) * 2005-03-25 2010-07-20 Microsoft Corporation Using a USB host controller security extension for controlling changes in and auditing USB topology
US7760908B2 (en) * 2005-03-31 2010-07-20 Honeywell International Inc. Event packaged video sequence
US7461246B2 (en) * 2005-05-02 2008-12-02 Nokia Corporation First-time startup device warranty user interface notification
US7945788B2 (en) * 2005-05-03 2011-05-17 Strong Bear L.L.C. Removable drive with data encryption
US20070071404A1 (en) * 2005-09-29 2007-03-29 Honeywell International Inc. Controlled video event presentation
US8135958B2 (en) 2005-11-22 2012-03-13 International Business Machines Corporation Method, system, and apparatus for dynamically validating a data encryption operation
DE102005061212A1 (de) * 2005-12-21 2007-07-05 Siemens Ag Verfahren zum Betrieb eines Automatisierungssystems
CN101652999B (zh) * 2007-02-02 2016-12-28 霍尼韦尔国际公司 用于管理实况视频数据的系统和方法
US8296240B2 (en) 2007-03-22 2012-10-23 Sony Corporation Digital rights management dongle
JP2008244558A (ja) * 2007-03-26 2008-10-09 Sharp Corp 電力線通信システムおよび電力線通信装置
US20090049307A1 (en) * 2007-08-13 2009-02-19 Authennex, Inc. System and Method for Providing a Multifunction Computer Security USB Token Device
US20110264926A1 (en) * 2008-09-12 2011-10-27 Guthery Scott B Use of a secure element for writing to and reading from machine readable credentials
NZ592063A (en) * 2008-12-24 2014-02-28 Commw Of Australia Digital video guard
WO2010099575A1 (en) 2009-03-04 2010-09-10 Honeywell International Inc. Systems and methods for managing video data
US9032058B2 (en) 2009-03-13 2015-05-12 Assa Abloy Ab Use of SNMP for management of small footprint devices
WO2010105260A1 (en) 2009-03-13 2010-09-16 Assa Abloy Ab Transfer device for sensitive material such as a cryptographic key
EP2228746A1 (en) 2009-03-13 2010-09-15 Assa Abloy Ab Realization of access control conditions as boolean expressions in credential authentications
US8275961B2 (en) * 2009-05-28 2012-09-25 Hewlett-Packard Development Company, L.P. Secure delivery of digital media via flash device
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
CN101894087A (zh) * 2010-07-08 2010-11-24 东南大学 具有usb接口的移动可信计算模块
KR101064143B1 (ko) * 2010-08-20 2011-09-15 주식회사 파수닷컴 Drm 환경에서의 클립보드 보호 시스템 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
WO2012087258A1 (en) * 2010-12-22 2012-06-28 Tamara Elektronik Muhendislik Insaat Musavirlik Sanayi Ve Ticaret Limited Sirketi Usb memory encryption device
US8566934B2 (en) * 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
US20120237024A1 (en) * 2011-03-18 2012-09-20 Wei-Ti Liu Security System Using Physical Key for Cryptographic Processes
GB2506803B (en) 2011-08-10 2020-07-01 Srivastava Gita Apparatus and method for enhancing security of data on a host computing device and a peripheral device
DE102012003009A1 (de) 2012-02-15 2013-08-22 Giesecke & Devrient Gmbh Übertragen von Datenströmen zu und von einem Sicherheitsmodul
US9654604B2 (en) * 2012-11-22 2017-05-16 Intel Corporation Apparatus, system and method of controlling data flow over a communication network using a transfer response
US9232176B2 (en) 2013-03-04 2016-01-05 Janus Technologies, Inc. Method and apparatus for securing computer video and audio subsystems
US9363836B2 (en) * 2013-04-01 2016-06-07 Silver Spring Networks, Inc. Secure management of radio transmissions in an endpoint device of a network
US11210432B2 (en) 2013-08-20 2021-12-28 Janus Technologies, Inc. Method and apparatus for selectively snooping and capturing data for secure computer interfaces
US9231921B2 (en) 2013-08-20 2016-01-05 Janus Technologies, Inc. System and architecture for secure computer devices
US9384150B2 (en) 2013-08-20 2016-07-05 Janus Technologies, Inc. Method and apparatus for performing transparent mass storage backups and snapshots
US9076003B2 (en) 2013-08-20 2015-07-07 Janus Technologies, Inc. Method and apparatus for transparently encrypting and decrypting computer interface data
US9215250B2 (en) 2013-08-20 2015-12-15 Janus Technologies, Inc. System and method for remotely managing security and configuration of compute devices
US9424443B2 (en) 2013-08-20 2016-08-23 Janus Technologies, Inc. Method and apparatus for securing computer mass storage data
US9684805B2 (en) 2013-08-20 2017-06-20 Janus Technologies, Inc. Method and apparatus for securing computer interfaces
US10140457B2 (en) * 2015-07-31 2018-11-27 Intel Corporation Secure input/output device management
TW201917594A (zh) * 2017-10-18 2019-05-01 華東科技股份有限公司 一種資料交換之導引裝置及方法
EP3502941B1 (en) * 2017-12-19 2021-01-20 Riddle & Code GmbH Dongles and method for providing a digital signature
CN111222183B (zh) * 2019-11-18 2023-07-28 天津津航计算技术研究所 一种基于usb接口的加密方法
US11809611B2 (en) * 2020-02-24 2023-11-07 Microsoft Technology Licensing, Llc Protecting device detachment with bus encryption
CN112416829B (zh) * 2020-11-25 2021-06-29 福州富昌维控电子科技有限公司 数据传输到hmi的方法以及usb hid设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
JPH10260903A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd グループ暗号方法、及びファイル暗号システム
US6094486A (en) * 1997-06-19 2000-07-25 Marchant; Brian E. Security apparatus for data transmission with dynamic random encryption
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6971048B1 (en) * 1998-06-15 2005-11-29 Sun Microsystems, Inc. Testing device driver hardening
US6389029B1 (en) * 1998-11-10 2002-05-14 Nortel Networks Limited Local area network incorporating universal serial bus protocol
US6763467B1 (en) * 1999-02-03 2004-07-13 Cybersoft, Inc. Network traffic intercepting method and system
JP4356178B2 (ja) * 1999-03-09 2009-11-04 ソニー株式会社 再生装置
WO2001031459A1 (en) 1999-10-22 2001-05-03 Aerwire Corporation Wireless universal serial bus system
JP2002288041A (ja) * 2001-03-23 2002-10-04 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
JP2003087239A (ja) * 2001-09-06 2003-03-20 Sony Corp 通信システム、通信装置および方法、記録媒体、並びにプログラム
WO2003029997A1 (en) * 2001-09-27 2003-04-10 Koninklijke Philips Electronics N.V. Bus system and bus interface

Also Published As

Publication number Publication date
BRPI0401686A (pt) 2005-01-18
JP2004362552A (ja) 2004-12-24
CN1551003A (zh) 2004-12-01
EP1473617A2 (en) 2004-11-03
CA2465246A1 (en) 2004-11-02
AU2004201804A1 (en) 2004-11-18
US20040250087A1 (en) 2004-12-09
KR20040094377A (ko) 2004-11-09
EP1473617A3 (en) 2006-05-03
RU2004113565A (ru) 2005-10-27
RU2352986C2 (ru) 2009-04-20
US7469343B2 (en) 2008-12-23

Similar Documents

Publication Publication Date Title
MXPA04004143A (es) Substitucion dinamica de datos usb para la codificacion/descodificacion sobre la marcha.
US11941134B2 (en) Data access control systems and methods
KR101122896B1 (ko) 네트워크를 통한 안전하고 동적인 신원정보 배포
JP5231230B2 (ja) 安全なデータ伝送を提供するためのシステム及び方法
US8560852B2 (en) Method and system for communication between a USB device and a USB host
RU2297037C2 (ru) Управление защищенной линией связи в динамических сетях
US7913084B2 (en) Policy driven, credential delegation for single sign on and secure access to network resources
US7650491B2 (en) Method and system for controlled distribution of application code and content data within a computer network
US6754826B1 (en) Data processing system and method including a network access connector for limiting access to the network
EP2332089B1 (en) Authorization of server operations
US6351810B2 (en) Self-contained and secured access to remote servers
US20120324545A1 (en) Automated security privilege setting for remote system users
WO2024021408A1 (zh) 一种控制设备准入的方法、装置及相关产品
JP3833652B2 (ja) ネットワークシステム、サーバ装置、および認証方法
US8904487B2 (en) Preventing information theft
US20050010818A1 (en) Communication of information via a side-band channel, and use of same to verify positional relationship
Tanwongsval Sun Ray™ Thin-Client and Smart Cards: An Old Concept With New Muscle

Legal Events

Date Code Title Description
FG Grant or registration