WO 2004/006536 A3 ! llll !MI ? ?? ???' ? II;!! I! IL 11 )11 IIL ^
For two-letter codes and other abbreviations, referto the "Cuid-ance Notes on Codes andAbbreviations" appearing at the begin-ning ofeach regular issue of the PCT Gazette.
METODO PARA EVITAR LA DISTRIBUCIÓN Y EL, USO NO AUTORIZADOS
DE CLAVES ELECTRÓNICAS UTILIZANDO UN VALOR DE
INICIALIZACIÓN DE CLAVE
CAMPO DE LA INVENCIÓN La presente invención se refiere al campo de la criptologia de interacción electrónica. De forma más especifica, la presente invención se refiere al campo de interacciones electrónicas que requieren el uso de claves electrónicas.
ANTECEDENTES DE LA INVENCIÓN Todos los dias, cientos de miles de personas interactúan electrónicamente. Por ejemplo, la gente utiliza correo electrónico (e-mail) para comunicarse entre si y para enviar información. La gente y los negocios confian rotundamente en las redes de computadoras o en otros dispositivos electrónicos para administrar, proteger, y transferir información importante. Millones de dólares son transferidos electrónicamente todos los dias a través de redes bancarias y máquinas cajeras automáticas (ATMs) . La gente utiliza teléfonos celulares y otros asistentes personales digitales (PDAs) inalámbricos para comunicarse y transferir información diariamente.
2
La llegada del Internet, comprendida de millones de computadoras interconectadas, ha acelerado la interacción electrónica de forma dramática. El Internet permite comunicación y transferencia de información de forma casi instantánea virtualmente a cualquier parte del mundo. La Red Mundial (World Wide Web) (www) es utilizada para negocios en linea, distribución de datos, mercadeo, intercambio de acciones, banca en linea, juegos, investigación, aprendizaje, y miles de otras actividades. Cuando las partes interactúan cara a cara utilizando un medio físico tal como el papel, es relativamente fácil autentificar las credenciales de aquellos que están interactuando . Por ejemplo, si una persona entra a un banco e intenta realizar un retiro, la cajera del banco puede solicitar y verificar su identificación antes de entregar los fondos solicitados. La firma de una persona en un contrato se considera suficiente para garantizar su aprobación del contrato. Asimismo, si una persona va a una tienda y compra un articulo con una tarjeta de crédito, es fácil para el cajero tomar precaucj ones de tal forma que se asegure razonablemente de que la persona es la verdadera propietaria de esa tarjeta de crédito. Sin embargo, en el reino de la interacción electrónica, tales medio físicos de autentificación no 3
pueden ser utilizados. La gente y los negocios no transferirán fondos, comprarán artículos en el Internet, o de otra forma administrar y transferir información confidencial utilizando cualquier dispositivo electrónico a menos que sientan que sus interacciones electrónicas son seguras y a salvo. De este modo, en un mundo donde las decisiones y los acuerdos son comunicados de forma electrónica, se necesitan técnicas electrónicas para proveer autentificación, seguridad, y privacidad. La criptología es el estudio de las técnicas y aplicaciones que pueden ser utilizadas para proteger información delicada, mantener privacidad en comunicaciones, autentificar usuarios en transacciones, y llevar a cabo otras medidas de seguridad en transferencia de información. El criptoanálisis es el estudio de de cómo comprometerse, o vencer, mecanismos criptográficos. Un pirata informático (hacker) , por ejemplo, es una persona que estudia y practica el criptoanálisis. La criptología es la disciplina de la criptografía y el criptoanálisis combinados . La criptografía permite transferir la confidencia que se encuentra en el mundo físico al mundo electrónico, de este modo permitiendo a la gente realizar negocios de forma electrónica sin las indebidas preocupaciones o engaños, incumplimientos en privado, o falta de seguridad.
4
El incremento perpetuo de información transmitida de forma electrónica ha llevado a una dependencia incrementada en la criptografía . Por ejemplo, las técnicas de criptografía ayudan a hacer los sitios web más seguras y las transmisiones electrónicas seguras. Esto permite a la gente realizar banca en línea, comercio en línea, y realizar compras en línea con su tarjeta de crédito sin preocuparse de que la información de su cuenta está siendo comprometida. La criptografía es muy importante para el continuo crecimiento del Internet y el comercio electrónico. La criptografía es utilizada también en teléfonos, televisiones, y una variedad de otros artículos de casa comunes. Sin la criptografía, los piratas informáticos (hackers) podrían acceder mucho más fácilmente al correo electrónico privado de alguien más, escuchar conversaciones telefónicas, intervenir compañías de cable y adquirir servicio de cable gratuito, o entrar en cuentas bancarias. Un mayor énfasis en la criptografía incluye la encriptación y la desencriptación. La encriptación es la transformación de datos en una forma que es aparentemente ininteligible y extremadamente difícil, si no imposible de acceder en una cantidad de tiempo razonable sin el conocimiento apropiado, por ejemplo, una clave.* Las claves 5
serán explicadas más adelante. El propósito de la encriptación es asegurar la privacidad al guardar información oculta de cualquier otro no deseado, aún aquellos que tienen acceso a los datos encriptados. La desencriptación es lo contrario a la encriptación; es la transformación de datos encriptados de regreso a una forma inteligible. Para que un sitio web sea seguro, por ejemplo, todos los datos transmitidos entre las computadoras donde se almacenan los datos y donde se reciben deben ser encriptados. Las computadoras receptoras deben ser entonces capaces de desencriptar los datos. Mientras la criptografía moderna está creciendo diversamente, la criptografía se basa fundamentalmente en problemas que son difíciles de resolver. Un problema puede ser difícil porque su solución requiere el uso de algún conocimiento secreto. Un problema puede ser también difícil porque es intrínsicamente difícil de completar, tal como encontrar los factores de un número extremadamente largo. Como se explicó anteriormente, la encriptación y la desencriptación exitosa dependen en algún tipo de conocimiento idealmente conocido sólo por las partes que llevan a cabo la encriptación y la desencriptación. Esta pieza de conocimiento es referida como una clave. Una clave usualmente es una secuencia de bits aleatorios o pseudo-aleatorios. De este modo, una persona sin la clave correcta 6
no podrá enviar, recibir, o interpretar la información delicada de alguien más. Las claves también se utilizan para la autentificación electrónica, · firmas digitales, cronografías digitales, y para otros propósitos de seguridad electrónicos. Como se utilizará de aqui en adelante y en las reivindicaciones agregadas, excepto algún otro específicamente denotado, el término "transacción electrónica" se utilizará para referir expansivamente a toda comunicación electrónica posible que requiera el uso de una o más claves. Actualmente, existen dos tipos de criptosistemas : la criptografía de clave secreta y la de clave pública. En la criptografía de clave secreta, también referida como criptografía de sesión simétrica, la misma clave es utilizada para encriptación y desencríptación . El reto principal de la criptografía de sesión simétrica es que el emisor y receptor estén de acuerdo en la clave de sesión simétrica sin que nadie más descubra la clave de sesión simétrica. Si se encuentran en locaciones físicas separadas, por ejemplo, deben confiar en un mensajero, sistema de teléfono, o algún otro medio de transmisión para evitar el descubrimiento de la clave de sesión simétrica. Cualquiera que por casualidad escuche o intercepte la clave en tránsito podrá después leer, modificar, y falsificar todos los mensajes encriptados o 7
autentificados utilizando dicha clave. La generación, transmisión y almacenamiento de claves se llama administración de claves. Todos los criptosistemas deber lidiar con problemas de administración de claves . Ya que todas las claves en un criptosistema simétrico deben permanecer preferiblemente secretas, la criptografía de sesión simétrica a menudo tiene problemas en proveer una administración segura de claves, especialmente en sistemas abiertos con un gran número de usuarios . Como resultado de los problemas de administración de claves asociados con la criptografía de sesión simétrica, fue desarrollada la criptografía de clave pública. En la criptografía de clave pública, cada usuario tiene una clave pública y una clave privada. La clave pública se hace pública, mientras que la privada permanece en secreto. La encriptación se lleva a cabo con la clave pública mientras que la desencriptación sólo puede llevarse a cabo con la clave privada. En la criptografía de clave pública, se elimina la necesidad de que el emisor y el receptor reciban información secreta; todas las comunicaciones suponen sólo claves públicas, y nunca se transmite o comparte una clave privada. De este modo, no es necesario confiar una clave de sesión simétrica a la seguridad de algunos medios de comunicación. Cualquiera puede mandar un mensaje confidencial con sólo utilizar 8
información pública. El mensaje sólo puede ser desencriptado utilizando una clave pública, la cual está en la sola posesión del receptor deseado. Una desventaja actual, sin embargo, con la criptografía de clave pública es que la clave privada está vinculada matemáticamente a la clave pública. Por lo tanto, es posible atacar el sistema de la clave pública derivando la clave privada desde la clave pública. Sin embargo, esto requiere típicamente de grandes cantidades de tiempo u otros recursos. Actualmente, los sistemas de claves de sesión simétrica y las claves privadas pueden almacenarse en el disco duro o en otra unidad de almacenamiento no volátil de la computadora de un usuario u otro dispositivo electrónico, tal como una consola de transmisión por cable (STB) . El usuario podrá entonces utilizar estas claves para comunicarse electrónicamente de forma segura. Sin embargo, el almacenamiento de claves en la computadora de un usuario o en otro dispositivo en control del usuario presenta varios problemas. Primero, el usuario puede copiar una clave que reside en su computadora o en otro dispositivo, por ejemplo, y distribuir la clave copiada a otras personas. Estas personas podrán asumir entonces la identidad electrónica del usuario y enviar o recibir información que está destinada para la utilización del 9
usuario original solamente. Dichas situaciones podrían ocurrir en casos en los cuales una persona paga una tarifa mensual de suscripción para recibir contenido a través de Internet o a través de un sistema de televisión por cable. Si esta persona distribuye la clave que permite el acceso al contenido pagado, múltiples usuarios podrían recibir el contenido sin pagar por él. Un segundo problema de almacenar claves en la computadora de un usuario u otro dispositivo electrónico supone manipulación y robo. Una persona no autorizada podría copiar la clave del usuario si el usuario accidentalmente deja su computadora u otro dispositivo electrónico sin atender o desprotegido electrónicamente. Esta persona no autorizada podría entonces enviar y recibir potencialmente información privada que está destinada para el usuario original. De este modo, existe la necesidad en la técnica de un método y sistema para prevenir la distribución y uso no autorizado de claves, incluyendo claves de sesión simétrica y claves privadas, utilizadas en comunicaciones electrónicas seguras. Como se utiliza en la presente posteriormente y en las reivindicaciones adjuntas, excepto lo indicado de otra manera, el término "clave" será utilizado para referirse expansivamente a todas las 10
posibles claves electrónicas de comunicación, incluyendo claves de sesión simétrica y claves privadas. Existen varios acercamientos para prevenir la distribución y uso no autorizados de claves. Un acercamiento es utilizar la administración de fraude. La administración de fraude es la detección de múltiples centrales hostiles que han asumido la misma identidad. Un ordenador base podria ser una computadora que ha sido conectada a la Internet, por ejemplo una STB conectada a una red por cable. Como se utiliza en la presente posteriormente y en las reivindicaciones adjuntas, excepto lo indicado de otra manera, el-, término wordenador base" se utilizará para referirse expansivamente a cualquier dispositivo electrónico utilizado por un usuario para comunicarse electrónicamente. Existen varias desventajas en la administración de fraude. Primero, la administración de fraude detecta el fraude después de que éste ya ha ocurrido y hace muy poco para prevenir en primer lugar el uso ilegal de claves. La administración de fraude también requiere de costos y gastos adicionales y no es infalible. Otra protección contra la distribución y uso ilegales de claves es el uso de un dispositivo de almacenamiento de claves resistente a alteraciones que podría hacer preferiblemente no factible para un pirata 11
informático (hacker) el extraer y copiar claves. El dispositivo preferiblemente destruye su contenido se abre y se escuda contra ataques utilizando radiación electromagnética. Existen muchos diseños posibles para el almacenamiento de claves resistente a alteraciones, incluyendo ordenadores base que contienen claves que son activados por el uso de una clave física especial o por la detección de un rasgo físico único de un usuario no autorizado . Sin embargo, no es actualmente viable de forma económica el requerir que cada usuario que quiera enviar y recibir información delicada tenga un dispositivo de almacenamiento de claves resistente a alteraciones. De este modo, este método de protección no es preferible para un gran número de usuarios. El hecho es que ninguna medida de seguridad para combatir la distribución y uso de claves no autorizada es completamente infalible. Esto es generalmente aceptado en el campo de la criptografía. De este modo, implementar más de una medida de seguridad para prevenir la distribución y uso no autorizado de claves proveería mejor protección que si se utilizara sólo un método de seguridad.
12
SUMARIO DE LA INVENCIÓN En una de muchas modalidades posibles, la presente invención provee un método de generar una clave electrónica utilizada en una transacción electrónica. El método comprende ejecutar una función de un sólo sentido en un ordenador base 'que deriva la clave electrónica desde un valor de inicialización de clave guardado en una unidad de almacenamiento no volátil del ordenador base y una identificación única del ordenador base que es residente en el ordenador base. La función es preferiblemente ejecutada cada vez que se lleva a cabo una transacción electrónica que requiere el uso de una clave electrónica. Otra modalidad de la presente invención provee un sistema para qenerar una clave electrónica utilizada en una transacción electrónica. El sistema comprende un ordenador base que tiene una identificación única del ordenador base que es residente en el ordenador base para llevar a cabo la transacción electrónica, una unidad de almacenamiento no volátil del ordenador base para almacenar un valor de inicialización de clave, y una función de un sólo sentido para derivar la clave electrónica del valor de inicialización de clave y la identificación del ordenador base. El ordenador base preferiblemente ejecuta la función de un sólo sentido cada vez que se lleva a cabo una 13
transacción electrónica que requiere el uso de una clave electrónica . Las ventajas adicionales y las características novedosas de la invención se establecerán en la descripción que sigue o serán aprendidas por aquellos expertos en la técnica a través de la lectura de estos materiales llevando a la práctica la invención. Las ventajas de la invención podrán lograrse a través de los medios enumerados en las reivindicaciones adjuntas.
BREVE DESCRIPCIÓN DE LAS FIGURAS Las -figuras que acompañan a la presente invención ilustran las modalidades preferidas de la misma y son parte de la especificación. Junto con la siguiente descripción, las figuras demuestran y explican los principios de la presente invención. Las modalidades ilustradas son ejemplos de la presente invención y no limitan el alcance de la invención . La figura 1 es un diagrama de bloques de una configuración ejemplar de interacción electrónica que podría ser utilizada para implementar una modalidad de la presente invención. La figura 2 es un diagrama de flujo que ilustra un método ejemplar de criptografía de sesión simétrica con la cual puede implementarse la presente invención.
14
La figura 3 es un diagrama de flujo que ilustra un método ejemplar de criptografía de clave pública con la cual puede implementarse la presente invención. La figura 4 es un diagrama de flujo que ilustra un método de la presente invención que implica almacenar un valor de inicialización de clave, en vez de una clave, en una unidad de almacenamiento no volátil del ordenador base y entonces derivar una clave basada en el valor de inicialización de clave y en la identificación única del ordenador base. La figura 5 es un diagrama de flujo que ilustra un método ejemplar de la presente invención aplicada a la criptografía de clave pública. La figura 6 es un diagrama de flujo que ilustra un segundo método ejemplar de la presente invención aplicada a la criptografía de clave pública. La figura 7 es un diagrama de flujo que ilustra un método ejemplar de la presente invención aplicada a la criptografía de sesión simétrica. ? través de las figuras, números de referencia idénticos desagrian elementos similares, pero no necesariamente idénticos.
15
DESCRIPCIÓN DETALLADA DE LAS MODALIDADES PREFERIDAS La presente invención provee un método y sistema por medio del cual un ordenador base guarda un valor de inicialización de clave en vez de una clave en una unidad de almacenamiento no volátil. El valor de inicialización de clave será explicado con más detalle más adelante en conexión con la figura 4. Para obtener una clave deseada, el usuario corre una función de un sólo sentido en el ordenador base utilizando el valor de inicialización de clave y la identificación del ordenador base (ID de-ordenador base) como entrada a la función. De este modo, la función de un sólo sentido genera solamente una clave válida en el ordenador base para la cual está destinado el uso de la clave. Ya que la clave por si misma no es almacenada en la unidad de almacenamiento no volátil del ordenador base, la clave no puede ser copiada y distribuida a otros ordenadores base. Otra ventaja de la presente invención es su costo económico de implementación relativamente bajo. Utilizando las figuras, las modalidades preferidas de la presente invención serán ahora explicadas . La figura 1 es un diagrama de bloque de una configuración ejemplar de interacción electrónica que podría ser utilizada para implementar una modalidad de la presente invención. Tal como se muestra en la figura 1, un 16
ordenador base (100) es utilizado por un cliente, o usuario, que desea interactuar electrónicamente con un servidor (101) . El ordenador base (100) puede ser una computadora personal, servidor, máquina cajera automática (ATM) , teléfono celular, consola de transmisión por cable o satélite (STB) o cualquier otro dispositivo electrónico capaz de comunicación electrónica. El servidor (101) también puede ser una puede ser una computadora personal, servidor, máquina cajera automática (ATM) , teléfono celular, extremo final de cable o cualquier otro dispositivo electrónico capaz de establecer una comunicación electrónica. Como se utilizará en la presente invención posteriormente y en las reivindicaciones adjuntas, excepto lo indicado de otra manera, el término "ordenador base" será utilizado para referirse expansivamente a todos los posibles dispositivos electrónicos de comunicación utilizados por un cliente y el término "servidor" será utilizado para referirse expansivamente a todos los posibles dispositivos electrónicos de comunicación con los cuales el cliente desea comunicarse. Tal como se muestra en la figura 1, el ordenador base (100) preferiblemente contiene una unidad de almacenamiento no volátil (103) designada para funcionar con o dentro del ordenador base (100) . La unidad de 17
almacenamiento no volátil (103) , tal como se refiere en la presente invención posteriormente y en las reivindicaciones adjuntas, puede ser, por ejemplo, un disco duro, disco flexible, disco compacto (CD) , unidad de memoria flash, o cualquier otra unidad de almacenamiento (103) capaz de almacenamiento no volátil . De conformidad con una modalidad de la presente invención y tal como se muestra en la figura 1, un valor de inicialización de clave (106) puede ser almacenada en la unidad de almacenamiento no volátil (100) . El ordenador base (100) preferiblemente contiene también accesos aleatorios de la memoria (RAM) (104) para almacenamiento temporal de información. El RAM (104) podría almacenar temporalmente una clave generada por la función, por ejemplo. El ordenador base preferiblemente también contiene un procesador (105), tal como un CPU por ejemplo, para correr la función que genera la clave. Tal como se muestra en la figura 1, el servidor (101) podría tener también una unidad de almacenamiento no volátil (103), RAM (104), y un procesador (105) que podría ser utilizado para completar una transacción electrónica con el ordenador base (100) . Ya que el ordenador base (100) y el servidor (101) pueden ser sistemas diferentes, un protocolo (102) se utiliza para facilitar la comunicación electrónica entre el ordenador base (100) y el servidor (101) , tal como se 18
muestra en la figura 1. El protocolo (102) es un conjunto formal de convenciones que regulan el formato y control de la interacción entre los dispositivos de comunicación electrónica. En otras palabras, un protocolo (102) es un método y sistema por medio del cual pueden comunicarse dos sistemas electrónicos no similares o no idénticos. En el campo de la criptologia, existe un número de diferentes protocolos (102) que pueden ser utilizados para garantizar seguridad y privacidad en el intercambio de información entre el ordenador base (100) y el servidor (101) . Cuando el intercambio está basado en una clave o claves, estos protocolos (102) que son utilizados para garantizar seguridad y privacidad en el intercambio de información entre dispositivos electrónicos pueden ser referidos como protocolos de administración de clave (102) . Ejemplos de posibles protocolos de administración de clave (102) que actualmente se utilizan son Kerberos, DOCSIS BPI+, e Intercambio de Clave de Internet (IKE) (Internet Exchange Key) . La presente invención puede implementarse utilizando cualquiera de estos protocolos (102) o cualquier otro protocolo (102) que suponga almacenar una clave en una unidad de almacenamiento no volátil. En el caso de la criptografia de clave pública, la presente invención puede implementarse utilizando protocolos (102) que permitan al valor de inicialización de clave ser generados de forma 19
aleatoria y a la clave pública derivarse de la clave privada . La figura 2 es un diagrama de flujo que ilustra un método ejemplar de criptografía de sesión simétrica con la cual puede implementarse la presente invención. Aunque el método de la figura 2 ilustra la encriptación y desencriptación de de datos confidenciales, este método puede aplicarse a cualquier otro tipo de transacción electrónica utilizando criptologia de sesión simétrica. Tal como se muestra en la figura 2, el proceso comienza con un cliente que requiere datos confidenciales desde un servidor (120) . Esta solicitud puede llevarse a cabo en una variedad de formas, incluyendo, pero no limitada a, seleccionar una opción en una página web, enviar correo electrónico, transmitir una solicitud desde un STB, realizar una llamada telefónica, o enviar una carta en papel. Después de que se ha realizado la solicitud de información confidencial, intenta desencriptar la información encriptada utilizando una clave (123) . La desencriptación exitosa depende de la el ave que el ordenador base utilice para desencriptar la información. De este modo, si la clave del ordenador base coincide con la clave utilizada por el servidor (124), la desencriptación exitosa y la recuperación de la información solicitada 20
(125) será posible. Sin embargo, si un ordenador base no tiene o utiliza una clave para desencriptar la información encriptada que es idéntica a la clave utilizada por el servidor, la información encriptada no podrá ser desencriptada y será ilegible (126) . La figura 3 es un diagrama de flujo que ilustra un método ejemplar de criptografia de clave pública con la cual puede implementarse la presente invención. Aunque la figura 3 ilustra la encriptación y desencriptación de información confidencial, este método puede aplicarse a cualquier otro tipo de transacción electrónica utilizando la criptologia de clave pública. Tal como se muestra en la figura 3, el proceso comienza con un cliente que solicita información confidencial desde un servidor (120). Esta solicitud puede llevarse a cabo en una variedad de formas, incluyendo, pro no limitada a, seleccionar una opción en una página web, enviar correo electrónico, transmitir una solicitud desde un STB, realizar una llamada telefónica, o enviar una carta en papel . Después de que se ha realizado la solicitud de información confidencial, el servidor encripta la información para enviarla al cliente utilizando una clave pública (130) asociada con el cliente que solicita la información confidencial. Entonces, el servidor envia 21
electrónicamente la información encriptada al ordenador base del cliente (122) . Una vez que el ordenador base del cliente recibe la información encriptada, intenta desencriptar la información encriptada utilizando una clave privada que corresponda a la clave pública utilizada para encriptar la información confidencial (131) . La desencriptación exitosa depende de la clave privada que el ordenador base utilice para desencriptar la información. En un criptosistema de clave pública, el ordenador base utiliza una clave privada que está relacionada matemáticamente con la clave pública utilizada por el servidor para encriptar la información. De este modo, si la clave privada del ordenador base está correctamente correlacionada a la clave pública utilizada por el servidor (123) , será posible la desencriptación exitosa y recuperación de la información solicitada (125) . Sin embarqo, como se anotó anteriormente, si se almacena una clave de sesión simétrica o una clave privada para un criptosistema de clave pública en el ordenador base de un usuario, ese usuario podrá intentar compartir esa clave secreta o privada para permitir a otros acceder a las comunicaciones desde el servidor. Adicionalmente, si se almacena una clave de sesión simétrica para un criptosistema simétrico o una clave privada para un criptosistema de clave pública en el ordenador base del 22
usuario, alguien sin el consentimiento del usuario podrá encontrar una manera de acceder al ordenador base del usuario y obtener la clave secreta o privada para asi obtener acceso a la información confidencial que se transmite desde el servidor hacia el usuario autorizado. La figura 4 es un diagrama de flujo que ilustra un método de la presente invención que implica almacenar un valor de inicialización de clave, en vez de una clave, en una unidad' de almacenamiento no volátil del ordenador base para mitigar las oportunidades de que se comprometa la clave de un usuario, con o sin la cooperación del usuario. La clave que se necesita para desencriptar las transmisiones encriptadas entrantes puede derivarse desde el valor de inicialización de clave. Este método se explicará con mayor detalle más adelante, utilizando la figura 4. Tal como se muestra en la figura 4, el proceso comienza con un ordenador base que preferiblemente almacena un valor de inicialización de clave en una unidad de almacenamiento no volátil (140) . El valor de inicialización de clave (106) es preferiblemente una secuencia de bits aleatorios utilizada para generar otra secuencia de bits. En la presente invención, el valor de inicialización de clave se utiliza para generar una clave, la cual también es una secuencia de bits. La clave puede ser tanto una clave de sesión simétrica utilizada en un criptosistema simétrico 23
como una clave privada utilizada en un criptosistema de clave pública. Después de que se la clave ha sido almacenada por el ordenador base en la unidad de almacenamiento no volátil, entonces el ordenador base corre una función de un sólo sentido que genera una clave (141) cuando se necesita que la clave lleve a cabo una transacción electrónica. La clave preferiblemente no se almacena en una unidad de almacenamiento no volátil del ordenador base y consecuentemente, la clave no será accesible para el usuario en ningún momento. De preferencia, la clave deberla ser almacenada temporalmente en una memoria de acceso aleatorios (RAM) , por ejemplo, la cual podria dificultar o hacer imposible para el cliente o cualquier otro el copiar la clave al acceder al ordenador base del cliente. La función de un sólo sentido es una función de dos entradas -el valor de inicialización de clave y una identificación de ordenador base (ID de ordenador base) . El ID de ordenador base es preferiblemente un identificador permanente y único residente en el ordenador base y es difícil o imposible cambiar sin afectar adversamente la operación del ordenador base. Muchos dispositivos electrónicos del ordenador base actualmente contienen un ID electrónico de ordenador base único que es generado y colocado en el dispositivo del ordenador base por su 24
fabricante. Dónde se almacena este ID de ordenador base y cómo podrá accederse al mismo variará dependiendo de la marca y modelo del dispositivo de ordenador base. Sin embrago, una de las habilidades en la técnica, con el beneficio de esta descripción, podrá identificar dónde está almacenado el ID de ordenador base y cómo podrá accederse al mismo para su uso por una modalidad de la presente invención dado cualquier dispositivo de ordenador base particular. Alternativamente, un ID ¦ de ordenador base puede ser generado por un algoritmo dedicado que basa al ID de ordenador base en información recopilada desde el ordenador base que define o describe el hardware y la configuración del dispositivo de ordenador base. En algunas modalidades, la función de un sólo sentido que obtiene el ID de ordenador base y el valor de inicialización de clave y que entonces genera la clave correspondiente puede ser llamada utilizando el comando general: Clave=ClaveGen ( ID de ordenador base, Valor de inicialización de Clave) . La síntesis de comando puede ser modificada para ajustarse al lenguaje del protocolo de administración de clave deseado. Una función (F) se dice que es de un sólo sentido si es difícil de invertir. En otras palabras, si el resultado de F es f, no es factible en cálculo encontrar una entrada x tal que F(x)=f, donde F(x) significa que F es 25
una función de x. En esta modalidad de la presente invención, el hecho de que la función que genera la clave es de un sólo sentido significa que es difícil, si no imposible, derivar el valor de inicialización de clave desde la clave. Por ejemplo, si se da la clave y el valor de una nueva ID de ordenador base, un pirata informático (hacker) podría obtener el nuevo valor correspondiente del valor de inicialización de clave, él o ella podría derivar posiblemente nuevas valores de inicialización de clave para muchos ordenadores base no autorizados. Estos nuevos valores de inicialización de clave podrían combinarse con sus correspondientes IDs de ordenador base para generar claves válidas que podrían utilizarse en una transacción electrónica. Una función de un sólo sentido, sin embargo, hace que sea en cálculo no factible determinar un valor de inicialización de clave, dado un valor de la clave y una ID de ordenador base. Regresando a la figura 4, si el ordenador base tiene un valor de inicialización de clave (142) correcto y una ID de ordenador base (143) correcta, la función produce una clave válida (144) que puede utilizarse en comunicación electrónica. Sin embargo, si tanto el valor de inicialización de clave como la ID de ordenador base son incorrectas, la función genera una clave no válida.
26
Una aplicación ejemplar del proceso de generación de clave que se muestra e la figura 4 es la interacción de un cliente con un sitio web en la Internet. Si, por ejemplo, un cliente ordena contenido pagado mensualmente del sitio web, los operadores del sitio web pueden enviar un valor de inicializacion de clave y una función generadora de clave al cliente para instalarla en su ordenador base. La función toma como entradas la ID de ordenador base del cliente y el valor de inicializacion de clave. Al ordenador base se le pregunta su ID de ordenador base por la función cuando asi se necesita. Si la ID de ordenador base y el valor de inicializacion de clave correctas no son acertadamente un valor de ingreso para la función, la función no generará la clave válida. El cliente de forma más preferible, corre esta función y utiliza la clave generada cada vez que desea obtener el contenido pagado mensualmente. Ya que la función solo trabaja con la ID de ordenador base del cliente y el valor de inicializacion de clave, es difícil o imposible transferir la función a un ordenador base diferente con una ID de ordenador base distinta y obtendrá una clave válida cuando se ejecuta la función. Esto es porque aún si el cliente copia el valor de inicializacion de clave y la función y las distribuye a otras personas, éstas no podrán generar una clave válida porque su ID de ordenador base son 27
diferentes de la ID de ordenador base con la cual se designa la función para trabajar y proveer una clave válida . La figura 5 es un diagrama de flujo que ilustra un método ejemplar de la presente invención aplicada a la criptografía de clave pública. De forma más específica, la figura 5 ilustra un método que puede utilizarse para generar inicialmente claves públicas y privadas con un valor de inicialización de clave privada (PKS) y entonces almacenar la PKS en la unidad de almacenamiento no volátil del cliente. En esta modalidad, el cliente genera su propio par de claves, ün par de claves preferiblemente consiste de una clave privada y una clave pública. Tal como se muestra en la figura 5, un cliente genera inicialmente una PKS (150) un su ordenador base. La PKS es preferiblemente generada aleatorios por el ordenador base. Entonces, el cliente deriva una clave privada desde la PKS (151) utilizando una función de un sólo sentido con la PKS y la ID de ordenador base como entradas a la función. Se puede solicitar la función utilizando un comando encontrado en el protocolo de administración elegido que emplea la criptografía de clave pública. Son ejemplos de protocolos Kerberos con extensión PIKNIT que permiten soporte para la criptografía de clave pública, 28
Intercambio de Clave de Internet (IKE) (Internet Key Exchange) y Seguridad de Transporte de Capas (TLS) (Transport Layer Security) . Ejemplos de algoritmos de clave que pueden utilizarse en combinación con estas funciones incluyen Algoritmo de Firma de Curva Elíptica Digital (ECDSA) (Elliptic Curve Digital Signature Algorithm) , Curva Elíptica Diffie-Hellman (ECDH) (Elliptic Curve Diffie-Hellman) y Esquema de Encriptación Autentificada de Curva Elíptica (ECAES) (Elliptic Curve Authenticated Encryption Écheme. En el caso de algoritmos basados en Curva Elíptica, el comando que genera una clave privada desde una PKS es el siguiente: "Clave Privada = PKGen(ID de ordenador base, PKS) módulo de Orden de Punto" (Prívate Key = PKGen(Host ID, PKS) modulo Point-Order) ) . El parámetro de Punto de Orden es específico a la criptografía de Curva Elíptica. Cada Curva Elíptica tiene su propio valor para el parámetro de Orden de Punto. Sin embrago, la presente invención no depende de la elección de la función PKGe ( ) . El siguiente comando general solicita la función que genera la clave privada desde la PKS: "Clave Pr ada = F (PKGen (ID de ordenador base, PKS))" (Prívate Key = F (PKGen (Host ID, PKS)), donde la función F es dependiente en un criptosistema de clave pública particular. La función preferiblemente es lo suficientemente rápida para generar de nuevo la clave 29
privada cada vez que una transacción electrónica requiere del uso de una clave privada. Regresando a la figura 5, después de que se deriva la clave privada desde la PKS (151) , el cliente preferiblemente deriva una clave pública desde la clave privada (152). Esto puede hacerse utilizando una variedad de funciones matemáticas familiares a la criptografía. Entonces se registra la clave pública con una autoridad encomendada (153) . La autoridad encomendada es referida usualmente como una Autoridad Certificadora (CA) (Certifying Authority) . La CA regresa al cliente un certificado, que testifica la validez de la clave pública generada o almacena la clave pública en una base de datos confiables (154) . Los certificados son documentos digitales que testifican la obligación de seguridad de una clave pública al cliente u otra entidad. Los certificados permiten la verificación de la reivindicación que una clave pública específica que de hecho pertenece a un cliente específico. Éstos ayudan a evitar que alguien utilice una clave telefónica para hacerse pasar por alguien más. En su forma más simple, los certificados contienen una clave pública y un nombre. Un certificado también puede contener una fecha de caducidad, el nombre de 30
la CA que expidió el certificado, la firma digital de quien expide el certificado, y tal vez otra información. Las CAs pueden ser cualquier administración central confiable que esté dispuesta a responder por las identidades de aquellos clientes a quienes expide certificados y su asociación con la clave dada. Por ejemplo, una compañía puede expedir certificados a sus empleados, o una universidad a sus estudiantes. Un Centro de Distribución de Clave (KDC) (Key Distribution Center) por ejemplo, puede extenderse para incluir la funcionalidad de una CA. Los DCs se dedican a la generación, verificación, y distribución de claves. Después de que el cliente recibe el certificado o se almacena la clave pública en una base de datos confiable (154) , tal como se muestra en la figura 5, el ordenador base del cliente almacena aleatorios las PKS generadas en una unidad de almacenamiento no volátil (155) . La PKS puede ser utilizada ahora para generar la clave privada que se utilizará en transacciones electrónicas futuras. La figura 6 es un diagrama de flujo que ilustra un segundo método ejemplar de la presente invención aplicada a la criptografía de clave pública. De forma más específica, la figura 6 ilustra un método por medio del cual un cliente preferiblemente utiliza una PKS generada aleatorios almacenada en una unidad de almacenamiento no 31
volátil para generar una clave privada que puede utilizar en una transacción electrónica. Tal como se muestra en la figura 6, el proceso comienza con la lectura del PKS por parte del ordenador base del cliente desde una unidad de almacenamiento no volátil (160) . Utilizando la misma función que se utilizó para generar inicialmente la clave privada, la cual se utilizo para generar la clave pública (explicada en conexión con la figura 5) , el cliente deriva la misma clave privada basada en la PKS (151) almacenada. Ahora, el cliente podrá preferiblemente utilizar la clave privada en una transacción electrónica (161) . Si, tal como se muestra en la figura 6, la clave privada se correlaciona correctamente con la clave pública registrada (162), el servidor y el cliente pueden utilizar el par de claves públicas y privadas para completar la transacción electrónica (163) . Por otro lado, si la clave privada no se correlaciona correctamente con la clave pública registrada, la transacción electrónica falla (164) . La figura 7 es un diagrama de flujo que ilustra un método ejemplar de la presente invención aplicada a la criptografía de sesión simétrica. De forma más específica, la figura 7 ilustra un método por medio del cual un cliente preferiblemente recibe, almacena, y utiliza un valor de inicialización de clave de sesión simétrica (SKS) para 32
generar una clave de sesión simétrica que puede utilizarse para realizar una transacción electrónica. En esta modalidad, el cliente preferiblemente genera una clave que es idéntica a la clave utilizada por un servidor con el cual el cliente desea realizar una transacción electrónica. Tal como se muestra en la figura 7, el proceso comienza con un cliente que recibe una SKS desde un KDC u otra fuente (170) . A diferencia del proceso utilizado en la criptografía de clave pública descrita en conexión con la figura 5, el cliente preferiblemente no genera el valor de inicialización de clave que se utiliza para generar una clave. En lugar de ello, el KDC envía la SKS al cliente. Después de que el ordenador base del cliente recibe la SKS desde el KDC, el ordenador base almacena la SKS en una unidad de almacenamiento no volátil (171) . Para realizar una transacción electrónica, entonces, el cliente lee la SKS desde la unidad de almacenamiento no volátil
(172) y deriva una clave de sesión simétrica desde la SKS
(173) al correr una función de un sólo sentido en el ordenador base con la SKS y la ID de ordenador base como entradas a la función. La función de un sólo sentido preferiblemente es un programa que se envía al cliente a través de un KDC, servidor, u otra fuente y se instala en el ordenador base del cliente.
33
La función puede solicitarse utilizando un comando que se encuentra en el protocolo de administración de clave elegido. Un comando general que genera una clave de sesión simétrica desde una SKS es el siguiente: "Clave de Sesión Simétrica = S Gen(ID de ordenador base, SKS)" (Symmetric Session Key = SKGen (Host ID, SKS)) . Sin embargo, la sintaxis del comando para solicitar la función puede variar dependiendo del protocolo de administración de clave elegido. La función preferiblemente es suficientemente rápida para generar la clave de sesión simétrica cada vez que una transacción electrónica requiere del uso de una clave de sesión simétrica. Ahora, el cliente puede preferiblemente utilizar la clave de sesión simétrica derivada en una transacción electrónica (174) con un servidor que también utiliza una clave de sesión simétrica. Existen varios métodos posibles de cómo el servidor obtiene la misma clave de sesión simétrica que utiliza el cliente. Un método es que el KDC ejecute la misma función de un sólo sentido que ejecuta el cliente y genera la clave de sesión desde la SKS. Este método requiere que el KDC tenga acceso a o copiar la ID de ordenador base del cliente. El KDC entonces puede enviar la clave de sesión simétrica generada al servidor. De forma alternativa, como sucede en el caso del protocolo Kerberos, el KDC puede tomar la clave de sesión simétrica y 34
encriptarla utilizando una clave de sesión simétrica utilizada por el servidor que no es conocido para ninguno de los clientes. Esta clave de sesión simétrica encriptada, junto con las identidades del cliente y el servidor y otra información relacionada, se llama boleto. El boleto puede ser enviado entonces al ordenador base del cliente. El ordenador base no puede modificar el boleto porque no conoce la clave de sesión simétrica del servidor. El cliente puede entonces enviar este boleto al servidor. El servidor utiliza entonces su clave para desencriptar el boleto y extraer su copia de la clave de sesión. Regresando a la figura 7, si la clave de sesión simétrica del cliente coincide con la clave de sesión simétrica utilizada por el servidor (175) con la cual el cliente desea completar una transacción electrónica, el servidor y el cliente pueden utilizar las claves de sesión simétrica para completar la transacción electrónica (163) . Por otro lado, si la clave de sesión simétrica derivada no coincide con la clave de sesión simétrica del servidor, la transacción electrónica falla (164) . La descripción precedente ha sido presentada sólo para ilustrar y describir la invención. No se intenta ser exhaustivo o limitar la invención a cualquier forma precisa revelada. Muchas modificaciones y variaciones son posibles a la luz de la enseñanza anterior.
35
Se eligió y describió la modalidad preferida con el fin de explicar de mejor forma los principios de la invención y su aplicación práctica. La intención de la descripción precedente es permitir a otros expertos en la técnica utilizar de mejor forma la invención en varias modalidades y con varias modificaciones conforme se adapten para el uso particular contemplado. La intención es que el alcance de la invención se defina por las siguientes reivindicaciones .