ES2631578T3 - Métodos y aparatos para evitar daños en ataques de red - Google Patents
Métodos y aparatos para evitar daños en ataques de red Download PDFInfo
- Publication number
- ES2631578T3 ES2631578T3 ES11862337.0T ES11862337T ES2631578T3 ES 2631578 T3 ES2631578 T3 ES 2631578T3 ES 11862337 T ES11862337 T ES 11862337T ES 2631578 T3 ES2631578 T3 ES 2631578T3
- Authority
- ES
- Spain
- Prior art keywords
- key
- naf
- context
- specific
- web server
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000009795 derivation Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 22
- 238000012795 verification Methods 0.000 claims abstract description 18
- 230000009471 action Effects 0.000 description 61
- 230000006870 function Effects 0.000 description 31
- 238000013515 script Methods 0.000 description 27
- 239000000243 solution Substances 0.000 description 18
- 235000014510 cooky Nutrition 0.000 description 11
- 230000015654 memory Effects 0.000 description 8
- 238000002347 injection Methods 0.000 description 7
- 239000007924 injection Substances 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0431—Key distribution or pre-distribution; Key agreement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/061—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Un método en un terminal de cliente (100) para permitir una comunicación segura con un servidor web (106), comprendiendo el método: - la obtención (202) de una página web que comprende un formulario HTML y un JavaScript procedentes del servidor web en una sesión con el servidor web, - la determinación (204) de un conjunto de parámetros de contexto, P1,...Pn que pertenecen a dicha sesión y/o página web, - la derivación de una clave específica de aplicación, Ks_NAF, basándose en una Clave maestra, Ks, - la creación (206) de una clave específica de contexto, Ks_NAF', basándose en dichos parámetros de contexto y en la clave específica de aplicación, Ks_NAF, - el envío de la clave específica de contexto, Ks_NAF', al JavaScript utilizando una API de JavaScript, de manera que (208) la clave específica de contexto Ks_NAF' creada puede ser utilizada para la verificación por el cliente en el servidor web de si una clave específica de contexto determinada en el servidor web coincide con la clave específica de contexto creada por el terminal de cliente.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Metodos y aparatos para evitar danos en ataques de red Campo Tecnico
La presente descripcion se refiere generalmente a metodos y aparatos para permitir la comunicacion segura entre un terminal de cliente y un servidor web, evitando danos que puedan ocurrir de otro modo cuando una clave de seguridad es robada del cliente.
Antecedentes
La denominada "Arquitectura Generica de Arranque de un Sistema Operativo" (GBA) es una tecnologla estandarizada en el Proyecto de Asociacion de Tercera Generacion (3GPP), que permite a un cliente en una red de comunicaciones establecer una clave secreta compartida, por ejemplo indicada como “Ks_NAF”, con una Funcion de Aplicacion de Red (NAF) ubicada en un servidor web conectado a la red.
Un uso tlpico de la GBA es para la autentificacion de clientes. Como muchas aplicaciones existentes actualmente estan basadas en la web, es decir disponibles sobre la Internet publica o una intranet, la autentificacion de cliente es particularmente interesante cuando es realizada desde un navegador utilizado por el cliente. Un escenario tlpico es aquel en el que el cliente es un terminal de comunicacion equipado con un navegador operado por un usuario. Para permitir a la GBA ser utilizada junto con el formulario de Lenguaje de Marcado de Hipertexto (HTML) basandose en la autentificacion - que es un metodo de autentificacion ampliamente utilizado en Internet -se ha propuesto anadir una interfaz de programa de aplicacion (API) de JavaScript en el cliente para la GBA en las aplicaciones basadas en la web. La API de JavaScript es ejecutada a continuacion por el navegador del cliente y puede considerarse como parte del mismo. Tal escenario es descrito por ejemplo en el documento de Nokia Corporation: "GBA usage with Web Browser", 3GPP TSG-SA3 (Security); S3- 110107; SA3#62, 17 de enero de 2011, XP 050636351, Ljublijana, Eslovenia.
La API de JavaScript puede ser utilizada en el cliente segun las acciones siguientes 1:1-1:4.
Accion 1:1. El navegador en el cliente descarga una pagina de inicio de sesion procedente de un servidor web sobre "HTTPS", refiriendose este ultimo al Protocolo de Transferencia de Hipertexto (HTTP) sobre la seguridad de capa de transporte (TLS) o la Capa de Conexion Segura (SSL). La pagina de inicio de sesion es una pagina web que contiene un "formulario HTML" con campos para "nombre de usuario" y "contrasena".
Accion 1:2. La pagina web descargada contiene tambien una pieza de JavaScript, en lo sucesivo denominada “secuencia de comandos” para abreviar. La secuencia de comandos obtiene un parametro denominado "Identidad de Transaccion de Arranque de Sistema Operativo, B-TID" que identifica al cliente. La secuencia de comandos obtiene ademas una clave secreta compartida denominada "Ks_NAF", llamando a la API de JavaScript GBA proporcionada por el cliente.
(B-TID, KS_NAF) = window.document.getGBAKey().
La B-TID actua como una forma de alias para una IMSI (Identidad de Abonado de Movil Internacional) del cliente y la Ks_NAF esta asociada con el servidor web y posiblemente con otros servidores web as! como utilizando la misma NAF. La Ks_NAF es as! una clave compartida con el servidor web, que es utilizada en la Accion 1:4 posterior. En la Accion1:2 actual, la API de JavaScript devuelve la Ks_NAF y la B-TID a la secuencia de comandos.
Accion 1:3. La secuencia de comandos rellena el formulario HTML con la B-TID obtenida como nombre de usuario y la Ks_NAF obtenida como contrasena. El formulario HTML resultante es a continuacion enviado desde el cliente al servidor web.
Accion 1:4. El servidor web, es decir la NAF, autentifica al cliente validando el nombre de usuario y la contrasena. En mas detalle, la NAF rescata la Ks_NAF utilizada por el cliente procedente de una Funcion de Servidor de Arranque de Sistema Operativo (BSF) asociada con el cliente, presentando la B-TID recibida desde el cliente en la Accion 1:2 a la BSF. La BSF deriva la Ks_NAF, desde una clave compartida con el cliente denominada la "clave maestra, Ks". Esto es as! la misma clave secreta que el cliente obtuvo en la accion 1:2. La Ks_NAF es unica para cada NAF y Ks.
Sin embargo, la propuesta existente para anadir una API de JavaScript en el cliente es vulnerable a los as! llamados "ataques de inyeccion de secuencia de comandos". Encontrando caminos de inyeccion de secuencias de comandos maliciosos en paginas webs, un atacante puede obtener privilegios de acceso elevado, o acceso, al contenido sensible de la pagina, cookies, y una variedad de otra informacion que puede mantenerse por el navegador en nombre del usuario. Si una pagina web es susceptible a la inyeccion de secuencia de comandos de esta manera o no depende de su contenido y las atenuaciones de seguridad son implementadas por el propietario del servidor web, que efectivamente es el propietario de la pagina.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se ha identificado un problema con la propuesta anterior en el que la clave secreta compartida Ks_NAF devuelta por la API de JavaScript al cliente en el procedimiento anterior tiene un alcance muy amplio de uso. Una clave "robada" por un atacante a traves de la inyeccion de secuencia de comandos puede permanecer valida y util a traves de un tipo de dominio Sistema de Nombres de Dominio (DNS), por ejemplo "naf.com", y a traves de diferentes sesiones HTTP con el servidor/servidores que utilizan esa NAF.
Para ilustrar esto, se considerara un ejemplo con un anfitrion "naf.com" que es un servidor web que tiene dos paginas web accesibles indicadas como "login.html" y "vulnerable.html". La primera pagina login.html ha sido meticulosa y completamente codificada y es en si misma invulnerable a cualquier tipo de ataque. La segunda pagina vulnerable.html, por otro lado, contiene un defecto sutil que la hace efectivamente susceptible a la inyeccion de codigo. Dandose cuenta de esto, un atacante inyecta la siguiente secuencia de comandos "maliciosa " en la segunda pagina web:
<SCRIPT type=”text/javascript”>
(B-TID Ks_NaF) = window.document.getGBAKey();
... upload (B-TlD, Ks_NAF) to attacker ...
</SCRIPT>
El siguiente usuario que visita la segunda pagina web naf.com/vulnerable.html y obtiene la clave compartida segun el procedimiento anterior, cargara inconscientemente su clave obtenida al atacante por medio de la secuencia de comandos maliciosa anterior inyectada en la segunda pagina web. Como resultado, el atacante puede a su vez utilizar esa clave para iniciar sesion en naf.com/login.html y ser autentificado correctamente.
En otro ejemplo, un documento HTML vulnerable descargado es procesado en un navegador de cliente. El documento contiene un comando que instruye al navegador para descargar y ejecutar una secuencia de comandos de un tercero que puede ser un anuncio, un contador de visitantes u otra aplicacion aparentemente inofensiva. La secuencia de comandos del tercero sin embargo contiene tambien una llnea que rescata la Ks_NAF y la B-TID del cliente, que es consiguientemente llevado a cabo cuando es ejecutada la secuencia de comandos. La secuencia de comandos anade tambien un enlace a la pagina web procesada que es un comando para cargar la Ks_NAF y la B- TID a un tercero "malvado". Por lo tanto, el tercero obtiene la Ks_NAF y la B-TID del cliente para un uso posterior illcito.
Es as! un problema que un atacante puede obtener informacion sensible de un cliente particular tal como una clave secreta compartida, y utilizar esa informacion para autentificacion y verificacion falsa en proximas sesiones con servidores web donde esa informacion es valida.
Sumario
Es un objeto de la invention abordar al menos algunos de los asuntos y problemas antes resumidos. Es posible conseguir estos objetos y otros utilizando metodos y aparatos como se ha definido en las reivindicaciones independientes adjuntas.
Segun un aspecto, se ha proporcionado un metodo en un terminal de cliente para permitir la comunicacion segura con un servidor web. En este metodo, el terminal de cliente obtiene una pagina web desde el servidor web en una sesion con el servidor web, determina un conjunto de parametros de contexto, P1,...Pn que pertenecen a dicha sesion y/o pagina web, y crea una clave especlfica de contexto, Ks_NAF', basandose en los parametros de contexto. El terminal de cliente utiliza a continuation la clave especlfica de contexto Ks_NAF' creada para la verificacion del cliente en el servidor web si una clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el terminal de cliente.
Segun otro aspecto, un terminal de cliente es configurado para permitir la comunicacion segura con un servidor web. El terminal de cliente comprende un modulo de reception adaptado para obtener una pagina web desde el servidor web en una sesion con el servidor web, una clave que crea el modulo adaptado para determinar un conjunto de parametros de contexto, P1,...Pn que pertenecen a dicha sesion y/o pagina web, y para crear una clave especlfica de contexto Ks_NAF', basandose en los parametros de contexto, y un modulo de envlo adaptado para enviar una solicitud de inicio de sesion que indica la clave especlfica de contexto Ks_NAF' creada para el servidor web. Por lo tanto, la verificacion del cliente es permitida si una clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el terminal de cliente.
En esta solution, la clave especlfica de contexto es hecha as! especlfica de contexto para ser util para la autentificacion o verificacion solamente en el contexto actual e inutil de manera efectiva, es decir invalida, para autentificacion o verificacion en otro contexto. Por lo tanto, se puede evitar el dano en el caso en que la clave especlfica de contexto es robada en un ataque de red o similar.
El metodo anterior y el terminal de cliente pueden ser configurados e implementados segun diferentes realizaciones opcionales. En una realization posible, la clave especlfica de contexto Ks_NAF' creada es indicada en una solicitud
5
10
15
20
25
30
35
40
45
50
55
60
65
de inicio de sesion para el servidor web. Los parametros de contexto pueden incluir al menos uno de: un componente de trayecto de un Localizador Universal de Recursos, URL, de la pagina web, una identidad de sesion HTTP actual de la sesion, y una identidad de sesion de seguridad de capa de transporte, TLS / capa de conexion segura, SSL de la sesion.
En otra realizacion posible, la clave de contexto especlfica Ks_NAF' es creada aplicando una Funcion de Derivation de Clave, KDF, predefinida, a los parametros de contexto, siendo conocida la Funcion de Derivacion de Clave para el servidor web. En este caso, un parametro agregado, S puede ser creado basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave puede ser aplicada utilizando como entrada el parametro agregado S y una clave especlfica de aplicacion, Ks_NAF, de tal manera que
Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn))
Ademas, la clave especlfica de aplicacion Ks_NAF puede haber sido derivada a partir de una clave maestra, Ks, obtenida procedente de una Funcion de Servicio de Arranque de Sistema Operativo. Los parametros de contexto pueden ser determinados en comunicacion con el servidor web que tiene una Funcion de Aplicacion de Red.
Segun otro aspecto, se ha proporcionado un metodo en un servidor web para permitir la comunicacion segura con un terminal de cliente. En este metodo, el servidor web envla una pagina web al terminal de cliente en una sesion con el terminal de cliente, y recibe una solicitud de inicio de sesion procedente del terminal de cliente que indica una clave especlfica de contexto, Ks_NAF', creada por el terminal de cliente. El servidor web determina a continuation un conjunto de parametros de contexto P1,...Pn, que pertenecen a dicha sesion y/o pagina web, y determina una clave especlfica de contexto, Ks_NAF', basandose en los parametros de contexto. El servidor web puede verificar a continuacion el cliente si la clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto recibida desde el terminal de cliente.
Segun otro aspecto, un servidor web es configurado para permitir la comunicacion segura con un terminal de cliente. El servidor web comprende un modulo de envlo adaptado para enviar una pagina web al terminal de cliente en una sesion con el terminal de cliente, y un modulo de reception adaptado para recibir una solicitud de inicio de sesion procedente del terminal de cliente que indica una clave especlfica de contexto, Ks_NAF', creada por el terminal de cliente. El servidor web comprende tambien un modulo de verification adaptado para determinar un conjunto de parametros de contexto, P1,...Pn, que pertenecen a dicha sesion y/o pagina web, determinar una clave especlfica de contexto, Ks_NAF', basandose en los parametros de contexto, y verificar el cliente si la clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto recibida desde el terminal de cliente.
El metodo y el servidor web anteriores pueden ser configurados e implementados segun las diferentes realizaciones opcionales. En una realizacion posible, los parametros de contexto incluyen al menos uno de: un componente de trayecto de un Localizador Universal de Recursos de la pagina web, una identidad de sesion HTTP actual de la sesion y una identidad de sesion TLS/SSL actual de la sesion. Como en el terminal de cliente anterior, la clave especlfica de contexto, Ks_NAF' puede ser creada aplicando una Funcion de Derivacion de Clave, KDF, predefinida, para los parametros de contexto, siendo as! conocida la Funcion de Derivacion de Clave para el terminal de cliente. En ese caso, un parametro agregado, S, puede ser creado basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave puede ser aplicada utilizando como entrada el parametro agregado S y una clave especlfica de aplicacion, Ks_NAF, de tal manera que
Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn).
La clave especlfica de aplicacion Ks_NAF puede obtenerse a partir de una Funcion de Servicio de Arranque de Sistema Operativo asociada con el terminal de cliente.
Otras caracterlsticas y beneficios posibles de esta solution se pondran de manifiesto a partir de la description detallada siguiente.
Breve descripcion de los dibujos
La invention sera ahora descrita en mas detalle por medio de realizaciones ejemplares y con referencia a los dibujos adjuntos, en los que:
La figura 1 es un diagrama de bloques que ilustra un escenario de comunicacion para verificar un cliente, segun algunas realizaciones posibles.
La figura 2 es un diagrama de flujo que ilustra un procedimiento en un terminal de cliente, segun otras realizaciones posibles.
La figura 3 es un diagrama de flujo que ilustra un procedimiento en un servidor web, segun otras realizaciones posibles.
La figura 4 es un diagrama de bloques que ilustra un terminal de cliente y un servidor web en mas detalle, segun otras realizaciones posibles.
5
10
15
20
25
30
35
40
45
50
55
60
65
La figura 5 es un diagrama que ilustra acciones en un ejemplo de como un cliente puede ser verificado en un servidor web en la practica, segun otras realizaciones posibles.
Description detallada
incluso si no se impide que ocurra un ataque de inyeccion de codigo como tal como se ha descrito anteriormente, se sugiere ahora una solution para limitar el dano resultante del ataque configurando una funcion tal como una API de JavaScript GBA en un terminal de cliente de una manera novedosa como sigue. El dano que puede ser causado cuando una clave secreta es expuesta cuando se esta accediendo a una pagina web, por ejemplo de la manera antes descrita, se puede evitar asegurando que la clave secreta devuelta por la API de JavaScript en el cliente es especlfica de contexto e inutil de manera efectiva, es decir invalida, para autentificacion o verification en otro contexto. Esto puede lograrse vinculando la clave anterior Ks_NAF a una o mas de: la pagina web actual, la sesion HTTP actual, la sesion TLS/SSL actual, o cualquier combination de las mismas. Por lo tanto, se obtiene una clave especlfica de contexto que puede ser utilizada para la autentificacion del cliente en el contexto actual solamente pero no en otros contextos o sesiones.
Para construir la clave especlfica de contexto, el terminal de cliente puede realizar el siguiente procedimiento con las acciones 2:1-2:4 con el fin de comunicar con un servidor web que tiene una NAF:
Action 2:1. En algun punto, el terminal de cliente obtiene una clave maestra "Ks" en una comunicacion de arranque de sistema operativo con una BSF.
Accion 2:2. El terminal de cliente deriva una clave NAF especlfica de aplicacion "Ks_NAF" a partir de la clave maestra Ks.
Accion 2:3. El terminal de cliente contacta con la NAF en el servidor web y determina un conjunto de n parametros de contexto P1,...Pn utilizando un procedimiento predefinido. Cualquier numero n de parametros de contexto puede ser utilizado para esta solucion, incluyendo n=1.
Accion 2:4. El terminal de cliente crea una clave especlfica de contexto, indicada aqul como Ks_NAF', aplicando una "Funcion de Derivation de Clave" KDF predefinida con la Ks_NAF y los parametros de contexto P1,...Pn como entrada. En una realization posible, esta operation puede ser realizada de tal manera que
Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn).
donde S(P1,...Pn) es un parametro creado basandose en los n parametros de contexto P1,...,Pn de una manera predeterminada. Por ejemplo, el parametro S puede ser una cadena de octetos que contiene una concatenation de los parametros de contexto P1,...Pn. En esta descripcion, el termino "Funcion de Derivacion de Clave" es utilizado generalmente para representar cualquier funcion que crea la clave especlfica de contexto con al menos los parametros de contexto como entrada de manera que la clave especlfica de contexto esta limitada efectivamente a los parametros de contexto. Por ejemplo, la Funcion de Derivacion de Clave KDF puede ser una agregacion de varias funciones de tal manera que la salida de una funcion es utilizada como entrada para otra funcion, y as! sucesivamente.
Por ejemplo, las acciones 2:1 y 2:2 pueden ser realizadas de la misma manera que en un procedimiento GBA ordinario mientras las acciones 2:3 y 2:4 son realizadas para obtener la clave especlfica de contexto. El terminal de cliente puede utilizar a continuation la clave especlfica de contexto para la autentificacion correcta hacia el servidor web. En este proceso, el servidor web puede determinar la clave especlfica de contexto de la misma manera, es decir utilizando los mismos parametros de contexto P1,...Pn y la KDF y verificar as! la clave cuando es recibida procedente del terminal de cliente. El terminal de cliente utiliza la clave especlfica de contexto Ks_NAF' creada para la verificacion indicandoselo al servidor web de una manera adecuada. Por ejemplo, la Ks_NAF' como tal, o una representation de la misma tal como un identificador de autenticacion asociado con la clave especlfica de contexto Ks_NAF', puede ser enviada al servidor web en una solicitud de inicio de sesion que inicia el procedimiento de autentificacion en el servidor web. En cualquier caso, la solicitud de inicio de sesion indica basicamente la clave especlfica de contexto Ks_NAF' creada.
En la figura 1, se ha ilustrado una arquitectura para utilizar la GBA en un navegador de un cliente que puede ser empleada para la solucion descrita aqul. En esta figura, un terminal de cliente 100 comprende un Modulo de Identidad de Abonado, SIM, 100a y un cliente 100b GBA que puede comunicar con una BSF 102 sobre una interfaz Ub y utilizar una unidad de entrada/salida "I/O" 100c. La BSF 102 tiene acceso a la information de cliente en un Servidor de Abonado Domestico (HSS) o una entidad de Registro Domestico de Ubicacion (HLR) 104 sobre una interfaz Zh. La SIM 100a contiene informacion de identidad del cliente.
El terminal de cliente 100 comprende tambien un navegador 100d que puede comunicar con una NAF de un servidor web 106 sobre una interfaz Ua y utilizar la unidad de entrada/salida I/O 100c. Como es indicado en la figura, tanto el terminal de clientes 100 como la NAF en el servidor web 106 son configurados con la KDF antes descrita y el
5
10
15
20
25
30
35
40
45
50
55
60
65
parametro S(P1,...Pn) que son conocidos as! por ambas partes que pueden crear y determinar la misma clave especlfica de contexto Ks_NAF' a partir de ellas. Ademas, la NAF en el servidor web 106 tiene acceso a la information de cliente desde la BSF 102 sobre una interfaz Zn. Dependiendo de la implementation, la clave especlfica de contexto Ks_NAF' puede ser creada en el terminal de cliente 100 por el navegador 100d o por un bloque funcional separado, no mostrado, que esta conectado al mismo. En la siguiente description, el termino "cliente" o "terminal de cliente" se puede referir a cualquier unidad funcional adecuada para realizar las acciones y funciones descritas en el terminal de cliente.
Se describira a continuation un procedimiento ejecutado en un terminal de cliente para permitir la comunicacion segura con un servidor web, con referencia al diagrama de flujo en la figura 3. Este procedimiento puede ser aplicado en el terminal de cliente 100 descrito para la figura 1 anterior. En una primera action 200, el terminal de cliente establece una sesion con el servidor web, por ejemplo sobre la Internet publica o una intranet. En esta sesion, el terminal de cliente obtiene una pagina web desde el servidor como es mostrado en una siguiente accion 202.
El terminal de cliente a continuacion, determina un conjunto de parametros de contexto, P1,...Pn, que pertenecen a la sesion en curso y/o la pagina web obtenida, en otra accion 204. Por ejemplo, los parametros de contexto pueden ser cualquier numero de parametros que incluyen al menos uno de: un componente de trayecto de un Localizador Universal de Recursos (URL) de la pagina web, una identidad de sesion HTTP actual de la sesion, una identidad de sesion TLS/SSL actual de la sesion, que sera descrito en mas detalle a continuacion.
En una siguiente accion 206, el terminal de cliente crea una clave especlfica de contexto, Ks_NAF', basandose en los parametros de contexto determinados anteriormente. Por ejemplo, la Ks_NAF' puede ser creada aplicando una Funcion de Derivation de Clave, KDF, predefinida, a los parametros de contexto, siendo conocida la Funcion de Derivation de Clave para el servidor web tambien. Como se ha mencionado antes, la KDF puede ser una sola funcion o agregada desde varias funciones. Ademas, un parametro agregado, S(P1,...Pn), puede ser creado basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave puede ser aplicada utilizando el parametro agregado S(P1,...Pn) y una clave especlfica de aplicacion, Ks_NAF como entrada, de tal manera que
Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn)).
Ademas, el terminal de cliente puede haber derivado la clave especlfica de aplicacion Ks_NAF desde una clave maestra, Ks, obtenida desde una BSF, como la BSF 102 mostrada en la figura 1. El terminal de cliente puede determinar tambien los parametros de contexto en comunicacion con una NAF en el servidor web por ejemplo para obtener la informacion de sesion para ser utilizada como parametros de contexto.
Una accion 208 final ilustra que el terminal de cliente utiliza la clave especlfica de contexto Ks_NAF' creada para la verification del cliente en el servidor web, por ejemplo enviando al servidor web una solicitud de inicio de sesion que indica la clave especlfica de contexto Ks_NAF' creada incluyendo la clave especlfica de contexto como tal o una representation de la misma. Por ello, el servidor web es capaz de verificar el cliente si una clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto indicada por el terminal de cliente, que sera descrito en la siguiente figura.
Un procedimiento ejecutado en un servidor web para permitir la comunicacion segura con un terminal de cliente, sera ahora descrito con referencia al diagrama de flujo en la figura 3. Este procedimiento puede ser aplicado en el servidor web 106 descrito para la figura 1 anterior, y/o en combination con el procedimiento de la figura 2. En una primera accion 300, el servidor web establece una sesion con el terminal de cliente, que corresponde a la accion 200 anterior. En una siguiente accion 302, el servidor envla una pagina web al terminal de cliente durante la sesion, que corresponde con la accion 202 anterior.
En algun punto en la sesion, el servidor web recibe una solicitud de inicio de sesion desde el terminal de cliente, en una siguiente accion 304, donde una clave especlfica de contexto, Ks_NAF', creada por el terminal de cliente, es indicada en la solicitud de inicio de sesion. Esta accion corresponde as! a la accion 208 anterior. El servidor web determina a continuacion un conjunto de parametros de contexto, P1,...Pn, que pertenecen a la sesion actual y/o a la pagina web anterior, en una accion 306, y determina una clave especlfica de contexto, Ks_NAF', basandose en los parametros de contexto determinados anteriormente, en otra accion 308.
Las acciones 306 y 308 son realizadas de la misma manera que las acciones 204 y 206 realizadas por el terminal descritas para la figura 2 anterior, y la clave especlfica de contexto resultante deberla por tanto ser la misma tanto en el terminal como en el servidor. En una siguiente accion 310, el servidor web comprueba si la clave recibida en la solicitud de inicio de sesion de la accion 304 coincide con la clave determinada en la accion 306. Si no es asl, el terminal de cliente se considera que no es fiable y la solicitud de inicio de sesion es rechazada en una accion 312. Por otro lado, si las claves coinciden, es decir la clave Ks_NAF' determinada por el servidor web corresponde con la clave Ks_NAF' creada por el terminal de cliente, el cliente es fiable y puede ser verificado en una accion 314.
5
10
15
20
25
30
35
40
45
50
55
60
65
La figura 4 es un diagrama de bloques que ilustra un terminal de cliente 400 y servidor web 402 configurado para emplear la solucion antes descrita segun otro ejemplo ilustrativo pero no limitativo. El servidor web 402 tiene tambien una NAF implementada. El terminal de cliente 400 y el servidor web 402 pueden ser configurados para actuar como sigue.
Un modulo de recepcion 400a en el terminal de cliente 400 esta adaptado para obtener o descargar una pagina web desde un modulo de envlo 402a en el servidor 402 durante una sesion. La pagina web puede ser una pagina de inicio de sesion. Un modulo de creacion de clave 400b en el terminal de cliente 400 esta adaptado para determinar un conjunto de n parametros de contexto P1,...Pn que pertenece a la sesion actual y/o a la pagina web obtenida. Los parametros de contexto pueden ser determinados utilizando un procedimiento predefinido configurado en el cliente.
El modulo de creacion de clave 400b esta adaptado ademas para crear una clave especlfica de contexto Ks_NAF' aplicando una KDF, y opcionalmente un parametro agregado S(P1,...Pn), por ejemplo como se ha descrito antes, al menos para dicho conjunto de parametros de contexto. En mas detalle, el parametro agregado S es creado basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivation de Clave es aplicada utilizando como entrada el parametro agregado S(P1,...Pn) y opcionalmente tambien una clave especlfica de aplicacion, Ks_NAF, como se ha descrito tambien anteriormente para la figura 2.
Un modulo de envlo 400c en el terminal de cliente 400 esta adaptado para enviar una solicitud de inicio de sesion, indicando la clave especlfica de contexto creada, a un modulo de recepcion 402b en el servidor 402. Como se ha mencionado antes, la clave especlfica de contexto puede ser indicada en la solicitud de inicio de sesion incluyendo la Ks_NAF' como tal o una representation de la misma, tal como un identificador de autentificacion asociado con la clave especlfica de contexto, en la solicitud de inicio de sesion.
En respuesta a ello, un modulo de verification 402c en el servidor 402 esta adaptado para determinar una clave especlfica de contexto para el cliente, que se puede hacer determinando los parametros de contexto P1,...Pn y aplicando la KDF, y opcionalmente el parametro agregado S(P1,...Pn) al menos a los parametros de contexto determinados. El modulo de verificacion 402c es adaptado a continuation para verificar el cliente del terminal 400 si la clave especlfica de contexto en el servidor web 402 coincide con la clave especlfica de contexto creada por el terminal de cliente 400.
Deberla observarse que la figura 4 ilustra simplemente distintos modulos o unidades funcionales en el servidor web 402 y el terminal de cliente 400 en un sentido logico, aunque la persona experta es libre de implementar estas funciones en la practica utilizando medios de software y hardware adecuados. Asl, este aspecto de la solucion no esta limitado generalmente a las estructuras mostradas del servidor web 402 y del terminal de cliente 400, mientras sus modulos funcionales 402a-c y 400a-c pueden ser configurados para funcionar segun las caracterlsticas descritas para cualquiera de las figuras 1-3 anteriores, donde sea apropiado.
Los modulos funcionales 402a-c y 400a-c descritos antes pueden ser implementados en el servidor web 402 y el terminal de cliente 400, respectivamente, como modulos de programa de un programa informatico respectivo que comprende medios de codigo que, cuando se ejecutan por un procesador "P" en cada uno del servidor web 402 y del terminal de cliente 400 hace que realicen las acciones anteriormente descritas. Cada procesador P puede ser una sola Unidad de Procesamiento Central (CPU), o podrla comprender dos o mas unidades de procesamiento. Por ejemplo, el procesador P puede incluir microprocesadores de proposito general, procesadores de conjunto de instrucciones y/o conjuntos de chips relacionados y/o microprocesadores de proposito especial tal como Circuitos Integrados Especlficos de Aplicacion (ASIC). El procesador P puede comprender un almacenamiento para propositos de almacenamiento en memoria cache.
Cada programa informatico puede ser llevado por un producto de programa informatico bien en el servidor web 402 o bien en el terminal de cliente 400, respectivamente, en la forma de una memoria "M" conectada a cada procesador P. El producto de programa informatico o memoria M comprende un medio legible por ordenador sobre el cual es almacenado el programa informatico. Por ejemplo, la memoria M puede ser una memoria flash, una Memoria de Acceso Aleatorio (RAM), una Memoria de Solo Lectura (ROM) o una ROM Programable Electricamente que se Puede Volver a Grabar (EEPROM), y los modulos del programa podrlan ser distribuidos en realizaciones alternativas sobre diferentes productos de programa informatico en la forma de memorias dentro del servidor web 402 y del terminal de cliente 400.
Seran ahora descritos en mas detalle algunos ejemplos posibles pero no limitativos para implementar la solucion para un cliente que utiliza un navegador en un terminal de comunicacion.
La clave especlfica de contexto puede ser creada como sigue, segun algunas realizaciones posibles. En vez de devolver la clave secreta compartida Ks_NAF a la secuencia de comandos, por ejemplo como la action 1:2 anterior, la API de JavaScript GBA en el navegador devuelve una clave especlfica de contexto Ks_NAF' que esta limitada a un conjunto predefinido de n parametros de contexto "P1,...Pn". Los valores de esos parametros de contexto pueden ser determinados por el servidor web para la sesion actual y/o para la pagina web. A menos que los parametros de
5
10
15
20
25
30
35
40
45
50
55
60
65
contexto sean identicos cuando la clave especlfica de contexto es creada y cuando es utilizada, la clave Ks_NAF' sera rechazada por el servidor web como invalida si es utilizada por un cliente en otro contexto.
El vinculo de la clave especlfica de contexto Ks_NAF' con los parametros de contexto puede ser hecho utilizando una funcion de derivacion de clave KDF adicional para calcular/crear Ks_NAF' como:
Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn))
donde S(P1,...Pn) es una cadena de octetos construida a partir de los n parametros de contexto, que puede ser vista como un parametro agregado.
El proceso de agregacion S para construir la cadena de octetos S(P1,...Pn) a partir de los n parametros de contexto es predefinido as! y ha sido configurado en el terminal del cliente. Como se ha mencionado antes, algunos ejemplos de tales parametros de contexto P1,...Pn que pueden ser utilizados para crear la clave especlfica de contexto en esta solucion incluyen, pero no estan limitados a, los siguientes:
• Un componente del trayecto de un URL (Localizador Universal de Recursos) de la pagina web.
• Una cookie de ID (Identidad) de sesion o alguna otra cookie basada en HTTP enviada desde el servidor web al terminal de cliente, que en esta descripcion se denomina "identidad de sesion HTTP".
• Un unico valor asociado con una sesion TLS/SSL establecida entre el servidor web y el terminal de cliente, sobre la cual es descargada la pagina web, por ejemplo el “ID de sesion" TLS/sSl, un "master_secret" ("maestra secreta"), un "Mensaje finalizado", o algun otro valor aleatorio generado como parte de un procedimiento de configuracion de conexion TLS/SSL. En esta descripcion, este valor se denomina como una "identidad de sesion TLS/SSL".
Es posible utilizar solamente uno o dos parametros de contexto, es decir n=1 o n=2, respectivamente. Por ejemplo, es posible vincular la clave especlfica de contexto a la pagina de inicio de sesion y a la sesion TLS/SSL en curso utilizando el trayecto de URL de la pagina de inicio de sesion y el ID de Sesion TLS/SSL actualmente utilizado por el cliente.
La funcion de derivacion de clave KDF y la construccion del parametro agregado S(P1,...Pn) puede ser realizado como sigue, segun otras realizaciones posibles. Aunque puede haber distintas opciones posibles para elegir una funcion de derivacion de clave KDF y una construccion de S(P1,...Pn) para esta solucion, reutilizar la KDF y el S(P1,...Pn) definidos en la GBA podria ofrecer algunos beneficios con respecto a la implementacion.
A modo de ejemplo, el 3GPP especifica la KDF y la construccion del S(P1,...Pn) generalmente como:
KDF(key, S(P1,...Pn)) = HMAC-SHA-256(key, S(P1,...Pn))
En este caso, la construccion de la cadena de octetos S(P1,...Pn) a partir de los n parametros de entrada es ademas especificada por el algoritmo siguiente:
S(P1,...Pn) = FC || P1 || L1 || ... || Pn || Ln
donde
FC es un solo octeto utilizado para distinguir diferentes ejemplos del algoritmo,
P1,...Pn son las n codificaciones del parametro de contexto,
L1,...L2 son las longitudes de las codificaciones de parametros de contexto de entrada correspondientes P1,...Pn, y || indica concatenacion
Deberia observarse que la indexacion de n parametros de entrada utilizados antes difiere de la indexacion de n+1 parametros de entrada utilizados en el apendice B.2 de referencia [1]. Las definiciones anteriores de KDF y S pueden ser utilizadas asi para esta solucion.
Algunos ejemplos de seleccion de parametros de contexto para utilizar en esta solucion seran ahora descritos, segun otras realizaciones posibles. Como se ha mencionado previamente, uno de los problemas con la propuesta de 3GPP existente es que la clave secreta compartida devuelta por la API de JavaScript al cliente es tipicamente valida a traves de un dominio DNS completo, por ejemplo "naf.com". Esto puede ser evitado segun esta solucion utilizando una clave especifica de contexto en su lugar, como se ha descrito anteriormente.
Se describira ahora como una clave especifica de contexto puede ser limitada a un componente del trayecto de una URL de pagina web, segun otras realizaciones posibles. Utilizando el ejemplo anterior de nuevo donde un anfitrion "naf.com" tiene dos paginas web "login.html" y "vulnerable.html", una clave ordinaria obtenida desde la pagina web naf.com/vulnerable.html de una manera convencional puede ser utilizada despues por un atacante para iniciar sesion mediante naf.com/login.html por medio de la secuencia de comandos maliciosa anteriormente descrita. Esta
5
10
15
20
25
30
35
40
45
50
55
60
65
amenaza puede ser mitigada vinculando una clave especlfica de contexto al componente del trayecto de la URL del servidor web, donde la clave especlfica de contexto es calculada a partir de un parametro de contexto "Pi" que esta basado en la URL de la pagina web:
Pi = abs_path
donde abs_path es especificado en HTTP 1.1.
Se describira ahora como una clave especlfica de contexto puede ser limitada a una sesion HTTP actualmente utilizada por el terminal de cliente, segun otras realizaciones posibles. Los servidores web utilizan tlpicamente los ID de sesion para gestionar el estado del cliente a traves de las solicitudes HTTP. El ID de sesion es almacenado en el navegador y es incluido tambien en cada solicitud para paginas web desde el navegador- normalmente en la forma de una cookie. Asl, la clave puede ser limitada a la sesion HTTP actual configurando un parametro del contexto "Pi" como:
Pi = HTTP Session identity
Sin embargo, diferentes lenguajes de servidor web tienden a utilizar diferentes nombres para la cookie de ID de sesion. Ejemplos de nombres que utilizan algunos lenguajes de programacion cuando nombran su cookie incluyen JESSIONID (JSP), PHPSESSID (PHP), y ASPSESSIONID (Microsoft ASP). Esto puede ser manejado incluyendo el nombre en la llamada funcion API. Otra alternativa posible es utilizar una cookie estandarizada que lleva una copia del ID de sesion o algun otro valor aleatorio.
Preferiblemente, la cookie puede ser marcada como "solamente HTTP" con el fin de impedir que cualquier secuencia de comandos del lado del cliente modifique o extraiga un valor. La seguridad puede ser mejorada ademas marcando la cookie como "no persistente", ya que una cookie no persistente es almacenada tlpicamente en la memoria del navegador y es borrada al salir.
Se describira ahora como una clave especlfica de contexto puede ser limitada a la sesion TLS/SSL, segun otras realizaciones posibles. Algunos sitios seguros conocidos, por ejemplo bancos etc., utilizan el ID de sesion TLS/SSL en vez de cookies para mantener el seguimiento de las sesiones con clientes. En este caso la sesion HTTP completa, que incluye cualesquiera solicitudes HTTP y respuestas entre el navegador y el servidor web, ocurren dentro de una sola sesion TLS/SSL.
Existen distintas razones por las que el seguimiento de sesion web mediante TLS/SSL es poco comun, incluyendo por ejemplo:
• Algunos servidores web no soportan el seguimiento mediante TLS/SSL (la capa HTTP es en gran medida independiente de la capa TLS/SSL)
• Algunos sitios mas grandes utilizan descargas TLS/SSL por razones de rendimiento. En este caso la gestion TLS/SSL es manejada por un servidor separado (con hardware de proposito especial) enfrente del servidor web.
• Los navegadores no siempre se comportan como se espera. Los navegadores a menudo limitan el numero de conexiones abiertas (por ejemplo n conexiones maximas por pestana y m conexiones en total) y manejan funciones de tiempo de espera de manera diferente.
Para sitios web que soportan el seguimiento mediante TLS/SSL, vincular la clave a un ID de sesion TLS/SSL o master_secret, o a algun otro parametro especlfico de sesion, puede ser un modo util de limitar los efectos del robo de la clave. Un parametro de contexto Pi para utilizar en esta solucion puede ser asl configurado como:
Pi = TLS/SSL Session ID / master_secret / other session-specific parameter
Utilizar la master_secret u otro parametro especlfico de sesion en vez del ID de Sesion podrla ser incluso mas seguro, pero extraer tales valores puede requerir cambios de la implementacion TLS/SSL.
Un beneficio de utilizar una AP de JavaScript para la GBA en el cliente es que se puede conseguir simplicidad. Con tal API preparada, cualquier aplicacion web podrla comenzar utilizando la gBa con un mlnimo de esfuerzo.
Entre otras cosas, esta novedosa solucion puede proporcionar la ventaja de defenderse contra uno de los ataques mas comunes en Internet, a saber la inyeccion antes descrita de la secuencia de comandos maliciosa. Devolviendo una clave que es especlfica de contexto en vez de una clave general/convencional, una clave especlfica de contexto robada sera efectivamente invalida para el atacante en su otro/otros contextos.
La figura 5 es un diagrama de acciones tomadas por un terminal de cliente y un servidor web que ilustra otro ejemplo para emplear la solucion antes descrita en un cliente y en un servidor web (NAF), respectivamente. Esta figura muestra asl diferentes acciones posibles que implican al terminal de cliente 500 y al servidor web 502,
5
10
15
20
25
30
35
40
45
50
respectivamente, que pueden proporcionar una comunicacion segura entre los dos nodos basandose en una verificacion correcta y fiable del cliente en el servidor web 502. Este diagrama ilustra principalmente como la misma clave especlfica de contexto puede ser creada en ambos nodos como una base para la verificacion del cliente de terminal 500.
Una primera accion 5:1 ilustra que el terminal de cliente 500 obtiene una pagina web que contiene una secuencia de comandos procedente del servidor web 502. El terminal 500 ejecuta a continuacion la secuencia de comandos proporcionada en la pagina web, en una accion 5:2. Por lo tanto, la secuencia de comandos solicita una clave especlfica de contexto Ks-NAF' procedente del cliente en una accion 5:3, por ejemplo llamando a una API de GBA en el terminal 500. En respuesta a ello, el cliente obtiene una clave maestra Ks valida en una siguiente accion 5:4. En esta accion, el cliente puede comprobar primero si existe una clave maestra valida en el terminal que no ha expirado. Si tal clave maestra valida no esta disponible, el cliente contactara con una BSF y realizara un procedimiento de arranque de sistema operativo para obtener una clave maestra valida desde la BSF.
En una siguiente accion 5:5 el cliente deriva una NAF de clave especlfica Ks_NAF a partir de la clave maestra Ks, y determina un conjunto de parametros de contexto predefinidos en otra accion 5:6, basicamente de la manera descrita para los ejemplos anteriores. El cliente es capaz ahora de crear la clave especlfica de contexto Ks_NAF' solicitada basandose en la clave especlfica NAF determinada anteriormente Ks_NAF y los parametros de contexto predefinidos, en una siguiente accion 5:7. Este proceso puede ser realizado como se ha descrito antes lo cual no sera repetido aqul.
En una siguiente accion 5:8, el cliente devuelve la clave especlfica de contexto Ks_NAF' solicitada a la secuencia de comandos que a continuacion envla por consiguiente la clave Ks_NAF' junto con el parametro B-TID al servidor web 502 en otra accion 5:9. Como se ha mencionado antes, el parametro B-TID identifica al cliente, el cual el servidor 502 utiliza para obtener la clave NAF especlfica Ks_NAF a partir de la BSF en otra accion 5:10.
El servidor 502 es capaz ahora de determinar los mismos parametros de contexto predefinidos en otra accion 5:12 y de determinar la misma clave especlfica de contexto Ks_NAF' basandose en la clave NAF especlfica descrita anteriormente Ks_NAF y los parametros de contexto predefinidos, en una siguiente accion 5:12. El servidor 502 realiza las acciones 5:11 y 5:12 basicamente de la misma manera que el cliente ha realizado las acciones 5:6 y 5:7, as! para proporcionar la misma clave especlfica de contexto Ks_NAF' resultante. Finalmente, el servidor 502 puede verificar o autentificar al cliente en una accion 5:13, si la clave Ks_NAF' creada en la accion 5:12 coincide con la clave Ks_NAF' recibida en la accion 5:9.
La solucion segun cualquiera de las realizaciones y ejemplos descritos anteriormente permite a un navegador de cliente y a un servidor web establecer una clave secreta compartida, es decir la clave especlfica de contexto anterior, de una manera facil y segura. La seguridad proviene parcialmente de que la clave esta limitada al contexto de navegacion particular lo que impide de manera efectiva a un atacante robar una clave en un contexto, por ejemplo, a traves de la inyeccion de secuencia de comandos, y utilizarla en otro contexto. La solucion puede ser utilizada as! con la secuencia de comandos de lado del cliente y la GBA, como se ha descrito anteriormente.
Ademas, la clave especlfica de contexto puede ser utilizada tambien para otros propositos de seguridad dentro del contexto y sesion actual con el terminal y el servidor web, tal como para encriptacion de datos y mensajes comunicados. La seguridad es proporcionada ya que no se puede utilizar otra clave en esta sesion/contexto, tal como una clave robada procedente de otro contexto o sesion.
Aunque la invention ha sido descrita con referencia a realizaciones ejemplares especlficas, la description esta solamente destinada de manera general a ilustrar el concepto inventivo y no deberla ser tomada como limitativa del alcance de la invencion como es definida por las reivindicaciones adjuntas.
Claims (18)
- 5101520253035404550556065REIVINDICACIONES1. - Un metodo en un terminal de cliente (100) para permitir una comunicacion segura con un servidor web (106), comprendiendo el metodo:- la obtencion (202) de una pagina web que comprende un formulario HTML y un JavaScript procedentes del servidor web en una sesion con el servidor web,- la determinacion (204) de un conjunto de parametros de contexto, P1,...Pn que pertenecen a dicha sesion y/o pagina web,- la derivacion de una clave especlfica de aplicacion, Ks_NAF, basandose en una Clave maestra, Ks,- la creacion (206) de una clave especlfica de contexto, Ks_NAF', basandose en dichos parametros de contexto y en la clave especlfica de aplicacion, Ks_NAF,- el envlo de la clave especlfica de contexto, Ks_NAF', al JavaScript utilizando una API de JavaScript, de manera que (208) la clave especlfica de contexto Ks_NAF' creada puede ser utilizada para la verificacion por el cliente en el servidor web de si una clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el terminal de cliente.
- 2. - Un metodo segun la reivindicacion 1, en donde la clave especlfica de contexto Ks_NAF' creada es indicada en la solicitud de inicio de sesion en el servidor web.
- 3. - Un metodo segun la reivindicacion 1 o 2, en donde dichos parametros de contexto incluyen al menos uno de: un componente de trayecto de un Localizador Universal de Recursos (URL) de dicha pagina web, una identidad de sesion HTTP actual de dicha sesion, y una identidad de sesion de Seguridad de Capa de Transporte (TLS)/Capa de Conexion Segura (SSL) actual de dicha sesion.
- 4. - Un metodo segun una cualquiera de las reivindicaciones 1-3, en donde la clave especlfica de contexto Ks_NAF' es creada aplicando una Funcion de Derivacion de Clave, KDF predefinida, a dichos parametros de contexto y a la clave especlfica de aplicacion, Ks_NAF, siendo conocida la Funcion de Derivacion de Clave por el servidor web.
- 5. - Un metodo segun la reivindicacion 4, en donde un parametro agregado, S, es creado basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave es aplicada utilizando como entradas dicho parametro agregado S y la clave especlfica de aplicacion, Ks_NAF, de tal manera queKs_NAF' = KDF(Ks_NAF, S(P1,...Pn)).
- 6. - Un metodo segun la reivindicacion 5, que comprende ademas la obtencion de la clave maestra, Ks, a partir de una Funcion de Servicio de Arranque de Sistema Operativo, BSF.
- 7. - Un metodo segun una cualquiera de las reivindicaciones 1-6, en donde los parametros de contexto son determinados en comunicacion con el servidor web que tiene una Funcion de Aplicacion de Red, NAF.
- 8. - Un terminal de cliente (100) configurado para permitir la comunicacion segura con un servidor web (106) estando adaptado el terminal de cliente para llevar a cabo:la obtencion de una pagina web que comprende un formulario HTML y un JavaScript procedente del servidor web en una sesion con el servidor web,la determinacion de un conjunto de parametros de contexto, P1,...Pn, que pertenecen a dicha sesion y/o pagina web,la derivacion de una clave especlfica de aplicacion, Ks_NAF, basandose en una Clave maestra, Ks, la creacion de una clave especlfica de contexto, Ks_NAF', basandose en dichos parametros de contexto y en la clave especlfica de aplicacion, Ks_NAF,el envlo de la clave especlfica de contexto, Ks_NAF', al JavaScript utilizando una API de JavaScript, de manera que la clave especlfica de contexto Ks_NAF' creada puede ser utilizada para la verificacion por el cliente en el servidor web de si una clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el terminal de cliente.
- 9. - Un terminal de cliente segun la reivindicacion 8, adaptado ademas para crear la clave especlfica de contexto Ks_NAF' aplicando una Funcion de Derivacion de Clave, KDF, predefinida, a dichos parametros de contexto y a la clave especlfica de aplicacion, Ks_NAF.
- 10. - Un terminal de cliente segun la reivindicacion 9, adaptado ademas para crear un parametro agregado, S, basandose en los parametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave es aplicada utilizando como entradas dicho parametro agregado S y la clave especlfica de aplicacion, Ks_NAF, de tal manera que51015202530354045505560Ks_NAF' = KDF(Ks_NAF, S(P1,...Pn)).
- 11. - Un terminal de cliente segun una cualquiera de las reivindicaciones 8-10, adaptado ademas para determinar los parametros de contexto en comunicacion con el servidor web que tiene una Funcion de Aplicacion de Red, NAF.
- 12. - Un metodo en un servidor web (106, 402) para permitir la comunicacion segura con un terminal de cliente (100, 400) comprendiendo el metodo:- el envlo (302) de una pagina web que comprende un formulario HTML y un JavaScript al terminal de cliente en una sesion con el terminal de cliente,- la recepcion (304) de una solicitud de inicio de sesion procedente del terminal de cliente que indica una clave especlfica de contexto, Ks_NAF', creada por el terminal de cliente,- la determination (306) de un conjunto de parametros de contexto, P1,...Pn, que pertenecen a dicha sesion y/o pagina web,- la determinacion (308) de una clave especlfica de contexto, Ks_NAF', basandose en dichos parametros de contexto y en una clave especlfica de aplicacion, Ks_NAF,- la verification (314) por el cliente de si la clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el terminal de cliente.
- 13. - Un metodo segun la reivindicacion 12, en donde dichos parametros de contexto incluyen al menos uno de: un componente de trayecto de un Localizador Universal de Recursos (URL) de dicha pagina web, una identidad de sesion HTTP actual de dicha sesion, y una identidad de sesion de seguridad de capa de transporte (TLS)/Capa de Conexion Segura (SSL) actual de dicha sesion.
- 14. - Un metodo segun la reivindicacion 12 o 13, en donde la clave especlfica de contexto Ks_NAF' es creadaaplicando una Funcion de Derivation de Clave, KDF, predefinida, a dichos parametros de contexto y a la claveespeclfica de aplicacion, Ks_NAF, siendo conocida la Funcion de Derivacion de Clave por el terminal de cliente.
- 15. - Un metodo segun la reivindicacion 14, en donde un parametro agregado, S, es creado basandose en losparametros de contexto P1,...Pn de una manera predeterminada, y la Funcion de Derivacion de Clave es aplicadautilizando como entradas dicho parametro agregado S y la clave especlfica de aplicacion, Ks_NAF, de tal manera queKs_NAF' = KDF(Ks_NAF, S(P1,...Pn))
- 16. - Un servidor web (402) configurado para permitir la comunicacion segura con un terminal de cliente (400), estando adaptado el servidor web para llevar a cabo:el envlo de una pagina web que comprende un formulario HTML y un JavaScript al terminal de cliente en una sesion con el terminal de cliente,la recepcion de una solicitud de inicio de sesion procedente del terminal de cliente que indica una clave especlfica de contexto, Ks_NAF', creada por el terminal de cliente,la determinacion de un conjunto de parametros de contexto, P1,...Pn, que pertenecen a dicha sesion y/o pagina web,la determinacion de una clave especlfica de contexto, Ks_NAF', basandose en dichos parametros de contexto y en una clave especlfica de aplicacion, Ks_NAF,la verificacion por el cliente de si la clave especlfica de contexto determinada en el servidor web coincide con la clave especlfica de contexto creada por el cliente.
- 17. - Un servidor web segun la reivindicacion 16, adaptado ademas para crear la clave especlfica de contexto Ks_NAF' aplicando una Funcion de Derivacion de Clave, KDF, predefinida, a dichos parametros de contexto y a la clave especlfica de aplicacion, Ks_NAF.
- 18. - Un servidor web segun la reivindicacion 17, adaptado ademas para crear un parametro agregado, S, basado en los parametros de contexto P1,...Pn de una manera predeterminada, y aplicar la Funcion de Derivacion de Clave utilizando como entradas dicho parametro agregado S y la clave especlfica de aplicacion, Ks_NAF, de tal manera queKs_NAF' = KDF(Ks_NAF, S(P1,...Pn)).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161470709P | 2011-04-01 | 2011-04-01 | |
US201161470709P | 2011-04-01 | ||
PCT/SE2011/050916 WO2012134369A1 (en) | 2011-04-01 | 2011-07-06 | Methods and apparatuses for avoiding damage in network attacks |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2631578T3 true ES2631578T3 (es) | 2017-09-01 |
Family
ID=46929131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES11862337.0T Active ES2631578T3 (es) | 2011-04-01 | 2011-07-06 | Métodos y aparatos para evitar daños en ataques de red |
Country Status (8)
Country | Link |
---|---|
US (2) | US8903095B2 (es) |
EP (2) | EP2695410B1 (es) |
CN (2) | CN103444215B (es) |
DK (1) | DK2695410T3 (es) |
ES (1) | ES2631578T3 (es) |
PT (1) | PT2695410T (es) |
SG (2) | SG10201602471QA (es) |
WO (1) | WO2012134369A1 (es) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140095523A (ko) * | 2011-10-31 | 2014-08-01 | 노키아 코포레이션 | 외부 코드에 대한 보안 메커니즘 |
US9432321B2 (en) * | 2011-12-19 | 2016-08-30 | Alcatel Lucent | Method and apparatus for messaging in the cloud |
DE102013227087A1 (de) * | 2013-12-23 | 2015-06-25 | Siemens Aktiengesellschaft | Gesichertes Bereitstellen eines Schlüssels |
CN104135494B (zh) * | 2014-08-22 | 2017-09-22 | 北京京东尚科信息技术有限公司 | 一种基于可信终端的同账户非可信终端登录方法及系统 |
US10079821B2 (en) * | 2015-04-13 | 2018-09-18 | Ilantus Technologies Pvt. Ltd. | System and method for web single sign-on through a browser extension |
GB2538774A (en) * | 2015-05-28 | 2016-11-30 | Vodafone Ip Licensing Ltd | Setting a password on a device |
US11146397B2 (en) * | 2017-10-31 | 2021-10-12 | Micro Focus Llc | Encoding abelian variety-based ciphertext with metadata |
CN111404867A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 基于会话密钥的处理方法、装置、相关设备及存储介质 |
WO2020152140A1 (en) * | 2019-01-21 | 2020-07-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods for authentication and key management in a wireless communications network and related apparatuses |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3657745B2 (ja) * | 1997-07-23 | 2005-06-08 | 横河電機株式会社 | ユーザ認証方法及びユーザ認証システム |
US7711122B2 (en) * | 2001-03-09 | 2010-05-04 | Arcot Systems, Inc. | Method and apparatus for cryptographic key storage wherein key servers are authenticated by possession and secure distribution of stored keys |
JP2004355471A (ja) | 2003-05-30 | 2004-12-16 | Canon Inc | 不正アクセス防止方法 |
GB0409704D0 (en) * | 2004-04-30 | 2004-06-02 | Nokia Corp | A method for verifying a first identity and a second identity of an entity |
CN1299537C (zh) * | 2004-06-28 | 2007-02-07 | 华为技术有限公司 | 应用通用鉴权框架对接入拜访网络的用户实现管理的方法 |
US8726023B2 (en) * | 2005-02-03 | 2014-05-13 | Nokia Corporation | Authentication using GAA functionality for unidirectional network connections |
US7628322B2 (en) * | 2005-03-07 | 2009-12-08 | Nokia Corporation | Methods, system and mobile device capable of enabling credit card personalization using a wireless network |
US7558957B2 (en) * | 2005-04-18 | 2009-07-07 | Alcatel-Lucent Usa Inc. | Providing fresh session keys |
WO2007008120A1 (en) * | 2005-07-07 | 2007-01-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for authentication and privacy |
US20070101122A1 (en) * | 2005-09-23 | 2007-05-03 | Yile Guo | Method and apparatus for securely generating application session keys |
US7987509B2 (en) * | 2005-11-10 | 2011-07-26 | International Business Machines Corporation | Generation of unique significant key from URL get/post content |
CN101371550B (zh) * | 2005-11-30 | 2012-01-25 | 意大利电信股份公司 | 自动安全地向移动通信终端的用户供给在线服务的服务访问凭证的方法和系统 |
EP1961153B1 (en) * | 2005-12-15 | 2019-02-20 | Nokia Technologies Oy | Method, device, and computer program product for network-based remote control over contactless secure storages |
WO2007072237A1 (en) * | 2005-12-21 | 2007-06-28 | Nokia Corporation | Key derivation method, system and devices for ims based application |
US8522025B2 (en) * | 2006-03-28 | 2013-08-27 | Nokia Corporation | Authenticating an application |
US7885640B2 (en) * | 2007-01-11 | 2011-02-08 | Nokia Corporation | Authentication in communication networks |
US20080216153A1 (en) * | 2007-03-02 | 2008-09-04 | Aaltonen Janne L | Systems and methods for facilitating authentication of network devices |
CN101675677B (zh) * | 2007-05-15 | 2013-02-20 | 诺基亚公司 | 用于密钥更新的方法、装置、系统 |
JP5432156B2 (ja) * | 2007-10-05 | 2014-03-05 | インターデイジタル テクノロジー コーポレーション | Uiccと端末との間のセキュア通信方法 |
ES2589112T3 (es) * | 2007-11-30 | 2016-11-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Gestión de claves para comunicación segura |
EP2235913B1 (en) * | 2008-01-24 | 2016-04-20 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for controlling a multimedia gateway comprising an imsi |
ES2687238T3 (es) * | 2008-02-25 | 2018-10-24 | Nokia Solutions And Networks Oy | Método de arquitectura de arranque de seguro basado en autenticación de resumen basada en contraseña |
EP2394452B1 (en) * | 2009-02-05 | 2017-12-06 | Telefonaktiebolaget LM Ericsson (publ) | Network unit of a device management network system for protection of a bootstrap message, and corresponding device, method and computer program |
EP2399376A1 (en) * | 2009-02-18 | 2011-12-28 | Telefonaktiebolaget L M Ericsson (publ) | User authentication |
US20100332832A1 (en) * | 2009-06-26 | 2010-12-30 | Institute For Information Industry | Two-factor authentication method and system for securing online transactions |
US8943321B2 (en) * | 2009-10-19 | 2015-01-27 | Nokia Corporation | User identity management for permitting interworking of a bootstrapping architecture and a shared identity service |
EP2534810B1 (en) * | 2010-02-09 | 2014-04-16 | InterDigital Patent Holdings, Inc. | Method and apparatus for trusted federated identity |
US8661257B2 (en) * | 2010-05-18 | 2014-02-25 | Nokia Corporation | Generic bootstrapping architecture usage with Web applications and Web pages |
WO2012040198A1 (en) * | 2010-09-20 | 2012-03-29 | Interdigital Patent Holdings, Inc. | Identity management on a wireless device |
US8627422B2 (en) * | 2010-11-06 | 2014-01-07 | Qualcomm Incorporated | Authentication in secure user plane location (SUPL) systems |
-
2011
- 2011-07-06 PT PT118623370T patent/PT2695410T/pt unknown
- 2011-07-06 CN CN201180069660.XA patent/CN103444215B/zh active Active
- 2011-07-06 EP EP11862337.0A patent/EP2695410B1/en active Active
- 2011-07-06 WO PCT/SE2011/050916 patent/WO2012134369A1/en active Application Filing
- 2011-07-06 SG SG10201602471QA patent/SG10201602471QA/en unknown
- 2011-07-06 DK DK11862337.0T patent/DK2695410T3/en active
- 2011-07-06 SG SG2013065156A patent/SG192990A1/en unknown
- 2011-07-06 US US13/177,385 patent/US8903095B2/en active Active
- 2011-07-06 ES ES11862337.0T patent/ES2631578T3/es active Active
- 2011-07-06 EP EP17159302.3A patent/EP3193523A1/en not_active Withdrawn
- 2011-07-06 CN CN201710871043.0A patent/CN107484163A/zh active Pending
-
2014
- 2014-11-04 US US14/532,272 patent/US9338173B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2695410A1 (en) | 2014-02-12 |
DK2695410T3 (en) | 2017-06-26 |
US9338173B2 (en) | 2016-05-10 |
PT2695410T (pt) | 2017-05-23 |
SG192990A1 (en) | 2013-10-30 |
CN107484163A (zh) | 2017-12-15 |
CN103444215B (zh) | 2017-10-27 |
CN103444215A (zh) | 2013-12-11 |
SG10201602471QA (en) | 2016-04-28 |
US20150058980A1 (en) | 2015-02-26 |
EP3193523A1 (en) | 2017-07-19 |
EP2695410A4 (en) | 2014-09-24 |
US8903095B2 (en) | 2014-12-02 |
WO2012134369A1 (en) | 2012-10-04 |
EP2695410B1 (en) | 2017-04-19 |
US20120254997A1 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2631578T3 (es) | Métodos y aparatos para evitar daños en ataques de red | |
CN111949974B (zh) | 一种认证的方法、装置、计算机设备及存储介质 | |
CN105917630B (zh) | 使用单点登录自举到检查代理的重定向 | |
ES2564128T3 (es) | Un sistema implementado por ordenador para proporcionar a los usuarios acceso seguro a servidores de aplicaciones | |
CN103139200B (zh) | 一种Web service单点登录的方法 | |
ES2687238T3 (es) | Método de arquitectura de arranque de seguro basado en autenticación de resumen basada en contraseña | |
CN107579991B (zh) | 一种对客户端进行云端防护认证的方法、服务器和客户端 | |
CN104378376A (zh) | 基于soa的单点登录方法、认证服务器和浏览器 | |
CN106576041A (zh) | 客户端与服务器之间相互验证的方法 | |
KR101744747B1 (ko) | 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법 | |
TW200810488A (en) | Policy driven, credential delegation for single sign on and secure access to network resources | |
CN111865882B (zh) | 一种微服务认证方法和系统 | |
CN102624737A (zh) | 单点登录系统中针对Form身份鉴别的单点登录集成方法 | |
Bojjagani et al. | PhishPreventer: a secure authentication protocol for prevention of phishing attacks in mobile environment with formal verification | |
US20160241536A1 (en) | System and methods for user authentication across multiple domains | |
Manulis et al. | Secure modular password authentication for the web using channel bindings | |
Huang et al. | A token-based user authentication mechanism for data exchange in RESTful API | |
Schwarz et al. | Feido: Recoverable FIDO2 tokens using electronic ids | |
Mortágua et al. | Enhancing 802.1 X authentication with identity providers using EAP-OAUTH and OAuth 2.0 | |
CN114826692A (zh) | 信息登录系统、方法、电子设备及存储介质 | |
CN104917755B (zh) | 一种基于移动通信终端和短信的登录方法 | |
Yu et al. | SALVE: Server authentication with location verification | |
KR102322447B1 (ko) | 인증서 투명성 시스템 | |
WO2009066978A9 (en) | Method and system for generating a proxy digital certificate to a grid portal in distributed computing infrastructure by data transfer across a public network | |
Lin et al. | Enhancing the session security of zen cart based on HMAC-SHA256 |