MX2014005223A - Mecanismo de seguridad para codigo externo. - Google Patents

Mecanismo de seguridad para codigo externo.

Info

Publication number
MX2014005223A
MX2014005223A MX2014005223A MX2014005223A MX2014005223A MX 2014005223 A MX2014005223 A MX 2014005223A MX 2014005223 A MX2014005223 A MX 2014005223A MX 2014005223 A MX2014005223 A MX 2014005223A MX 2014005223 A MX2014005223 A MX 2014005223A
Authority
MX
Mexico
Prior art keywords
naf
server
specific
external code
code
Prior art date
Application number
MX2014005223A
Other languages
English (en)
Inventor
Pekka Johannes
Silke Holtmanns
Original Assignee
Nokia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corp filed Critical Nokia Corp
Publication of MX2014005223A publication Critical patent/MX2014005223A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Un procedimiento para proporcionar un mecanismo de seguridad para un código externo, en el que el procedimiento incluye recibir el código externo que comprende una solicitud para una clave de programa de arranque específica del servidor (Ks_NAF). El procedimiento también comprende determinar un identificador del servidor (NAF-Id) y una credencial de seguridad. Además, el procedimiento comprende generar la clave de programa de arranque específica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-Id) y generar una clave de programa de arranque específica de código externo (Ks_js_NAF) usando la clave de programa de arranque específica del servidor (Ks_NAF) y la credencial de seguridad. El procedimiento también comprende usar la clave de programa de arranque específica de código externo (Ks_js-NAF) para el mecanismo de seguridad del código externo.

Description

MECANISMO DE SEGURIDAD PARA CÓDIGO EXTERNO Campo técnico La presente invención se refiere en general a un mecanismo de seguridad para un código externo proporcionado por un servidor de aplicaciones web. La invención se refiere particularmente, aunque no exclusivamente, a cómo un servidor, un navegador de teléfono y un sistema operativo pueden permitir el uso seguro de credenciales de base celular desde un navegador a través del código externo, tal como código JavaScript.
Antecedentes de la técnica En la actualidad, están disponibles muchas páginas web en todo el mundo (por ejemplo, Documentos HTML) que ofrecen una gran variedad de tipos de contenidos textuales y no textuales. Al mismo tiempo, el campo de las comunicaciones y las telecomunicaciones inalámbricas más específicamente está experimentando una expansión radical. Esta expansión tecnológica permite que un pequeño dispositivo electrónico portátil, como un asistente personal digital (PDA), ordenador portátil, teléfono móvil, tableta y otros dispositivos electrónicos, se conecten a las mismas fuentes de información, como un servidor web o base de datos, como si uno lo pudiera hacer con un ordenador personal (PC) y un navegador basado en PC. Varios navegadores de cliente de pequeños dispositivos están disponibles, que muestran el contenido de la web en los dispositivos portátiles.
Se utilizan comandos de secuencias dentro del contenido web, tal como un documento HTML, escrito en JavaScript o en un lenguaje de comandos similar. Los comandos de secuencias ejecutados en un navegador basado en un PC pueden generar parte o todo el contenido de la información disponible a un usuario del navegador basado en PC.
Los nuevos terminales móviles con capacidades multimedia (teléfonos multimedia) proporcionan una plataforma de desarrollo abierto para los desarrolladores de aplicaciones, permitiendo a los desarrolladores de aplicaciones independientes diseñar nuevos servicios y aplicaciones para el entorno multimedia. Los usuarios pueden, a su vez, descargar las nuevas aplicaciones/servicios a sus terminales móviles y usarlos en los mismos. Por lo tanto, la interacción de un módulo de gestión de seguridad del terminal móvil con un servidor web de aplicaciones es importante para la seguridad general. Se necesita una solución mejorada para utilizar el módulo de gestión de seguridad del terminal móvil, para contenido web que comprende código externo, como JavaScript, recuperado de una fuente externa.
SUMARIO DE LA INVENCIÓN De acuerdo con un primer aspecto de ejemplo de la invención, se proporciona un procedimiento para proporcionar un mecanismo de seguridad para un código externo, comprendiendo el procedimiento: recibir el código externo que comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; determinar un identificador del servidor (NAF-Id) y generar la clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-Id) ; determinar un credencial de seguridad; generar una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque específica del servidor (Ks_NAF) y el credencial de seguridad; y utilizar la clave de programa de arranque específica de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo.
En una realización, el procedimiento comprende además determinar la credencial de seguridad usando un primer desafío aleatorio (RANDl) y un segundo desafío aleatorio (RAND2). El procedimiento puede comprender además transmitir el segundo desafío aleatorio (RAND2) y la clave de programa de arranque específica de código externo (Ks_js NAF) a un servidor de aplicaciones para la validación de la clave de programa de arranque específica de código externo (Ks_js_NAF). Un código de respuesta externa que comprende el segundo desafío aleatorio (RAND2) y la clave de programa de arranque específica de código externo (Ks_js_NAF) pueden transmitirse .
En una realización, el procedimiento comprende además: recibir el código externo, mediante una aplicación de navegador de un aparato, desde un servidor de aplicaciones; determinar el identificador de servidor (NAF-ld) y el segundo desafío aleatorio (RAND2), mediante una interfaz de programación de aplicaciones (JS-GBA-API) de la aplicación del navegador; solicitar la clave de programa de arranque específico del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde un módulo de programa de arranque del sistema operativo; recibir la clave de programa de arranque específica de servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones ( JS-GBA-API ) , desde el módulo de programa de arranque; y generar la clave de programa de arranque especifica de código externo (Ks_js_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API) .
Se puede establecer una seguridad de capa de transporte (TLS) entre una aplicación del navegador de un aparato y un servidor de aplicaciones. El identificador del servidor (NAF-Id) se puede determinar incluyendo un nombre de dominio (FQDN) y un identificador del protocolo de seguridad. El identificador del protocolo de seguridad se puede formar utilizando un conjunto de cifrado de una seguridad de capa de transporte (TLS) .
En una realización, el procedimiento comprende además la generación de la clave de programa de arranque especifica de código externo (Ks_js_NAF) con una función de derivación de claves. El código externo puede comprender un código JavaScript .
En una realización, el procedimiento comprende además la determinación de la credencial de seguridad usando una clave maestra de la seguridad de capa de transporte de (TLS) .
De acuerdo con un segundo aspecto de ejemplo de la invención, se proporciona un aparato, que comprende: al menos un procesador; y al menos una memoria que incluye código de programa de ordenador, estando configurados la al menos una memoria y el código de programa de ordenador para, con el al menos un procesador, hacer que el aparato al menos: reciba un código externo que comprende una solicitud de una clave de programa de arranque específica del servidor (Ks_NAF) ; determine un identificador del servidor (NAF-ld) y generar la clave de programa de arranque específica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque específica de código externo (Ks_js_NAF) con la clave de programa de arranque específica del servidor (Ks_NAF) y el credencial de seguridad; y utilice la clave de programa de arranque específica de código externo (Ks_js_NAF) para un mecanismo de seguridad del código externo .
El credencial de seguridad se puede determinar usando un primer desafío aleatorio (RANDl) y un segundo desafío aleatorio (RAND2) .
En una realización, la al menos una memoria y el código de programa de ordenador están configurados además para, con el al menos un procesador, hacer que el aparato al menos: reciba el código externo, mediante una aplicación de navegador del aparato, desde un servidor de aplicaciones; determine el identificador del servidor (NAF-ld) mediante una interfaz de programación de aplicaciones (JS-GBA-API) de la aplicación de navegador; solicite la clave de programa de arranque específica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde un módulo de programa de arranque del sistema operativo; reciba la clave de programa de arranque específica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones ( JS-GBA-API) , desde el módulo de programa de arranque; y genere la clave de programa de arranque especifica de código externo (Ks_js_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API) .
El identificador del servidor (NAF-LD) puede determinarse mediante la inclusión de un nombre de dominio (FQDN) y un identificador de protocolo de seguridad.
En una realización, la credencial de seguridad se puede determinar usando una clave maestra de seguridad de capa de transporte (TLS).
De acuerdo con un tercer aspecto de ejemplo de la invención, se proporciona un programa de ordenador incorporado en un medio legible por ordenador que comprende código de programa ejecutable por ordenador que, cuando es ejecutado por al menos un procesador de un aparato, hace que el aparato: reciba un código externo que comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; determine un identificador del servidor (NAF-ld) y genere una clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque especifica de código externo (Ks_js_NAF) con la clave especifica del servidor de programa de arranque (Ks_NAF) y el credencial de seguridad; y utilice la clave de programa de arranque especifica de código externo (Ks_js_NAF) para un mecanismo de seguridad del código externo .
De acuerdo con un cuarto aspecto de ejemplo de la invención, se proporciona un procedimiento para proporcionar un mecanismo de seguridad para un código externo, comprendiendo el procedimiento: transmitir el código externo, en el que el código externo comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; determinar un credencial de seguridad; generar la clave de programa de arranque especifica del servidor (Ks_NAF) usando un identificador del servidor (NAF-ld) ; generar una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y el credencial de seguridad; y utilizar la clave de programa de arranque especifico de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo.
En una realización, el procedimiento comprende además: solicitar la clave de programa de arranque especifica del servidor (Ks_NAF) a partir de una función de servidor de programa de arranque (BSF) ; y determinar el identificador del servidor (NAF-ld) que incluye un nombre de dominio (FQDN) y un identificador de protocolo de seguridad.
En una realización, el procedimiento comprende además: recibir una clave de programa de arranque especifica de código externo (Ks_js_NAF); y validar la clave generada de programa de arranque especifica de código externo (Ks_js_NAF) comparando con la clave de programa de arranque especifica de código externo recibida (Ks_js_NAF) para el mecanismo de seguridad del código externo .
De acuerdo con un quinto aspecto de ejemplo de la invención, se proporciona un servidor de aplicaciones, que comprende: al menos un procesador; y al menos una memoria que incluye código de programa de ordenador, la al menos una memoria y el código de programa de ordenador están configurados para, con el al menos un procesador, hacer que el servidor de aplicaciones al menos: transmita un código externo, en el que el código externo comprende una solicitud de una clave de programa de arranque específica del servidor (Ks_NAF) ; genere una clave de programa de arranque específica del servidor (Ks_NAF) usando un identificador de servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque específica de código externo (Ks_js_NAF) con la clave de programa de arranque específica del servidor (Ks_NAF) y el credencial de seguridad; y utilice la clave de programa de arranque específica de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo .
En una realización, la al menos una memoria y el código de programa de ordenador están configurados además para, con el al menos un procesador, hacer que el servidor de aplicaciones al menos a: genere la clave de programa de arranque específica del servidor (Ks_NAF) mediante la solicitud de una función de servidor de programa de arranque (BSF) .
De acuerdo con un sexto aspecto de ejemplo de la invención, se proporciona un programa de ordenador incorporado en un medio legible por ordenador que comprende código de programa ejecutable por ordenador que, cuando es ejecutado por al menos un procesador de un servidor de aplicaciones, hace que el servidor de aplicaciones: transmita un código externo, en el que el código externo comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; genere una clave de programa de arranque especifica del servidor (Ks_NAF) usando un identificador de servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque especifica de código externo (Ks_js_NAF) con la clave de programa de arranque especifica del servidor (Ks_NAF) y el credencial de seguridad; y utilice la clave de programa de arranque especifica de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo .
Cualquier medio de memoria anterior puede comprender un almacenamiento de datos digital, como un disco o disquete de datos, almacenamiento óptico, almacenamiento magnético, almacenamiento holográfico, almacenamiento óptico-magnético, memoria de cambio de fase, memoria de acceso aleatorio resistiva, memoria de acceso aleatorio magnética, memoria de electrolito sólido, memoria de acceso aleatorio ferroeléctrica, memoria orgánica o memoria de polímero. El medio de memoria se puede formar en un dispositivo sin otras funciones sustanciales que el almacenamiento de la memoria o - - puede estar formado como parte de un dispositivo con otras funciones, incluyendo pero no limitado a una memoria de un ordenador, un conjunto de chips, y un subconjunto de un dispositivo electrónico.
Diferentes aspectos y realizaciones de ejemplo no vinculantes de la presente invención se han ilustrado anteriormente. Las realizaciones anteriores se utilizan simplemente para explicar aspectos o etapas seleccionadas que pueden utilizarse en s implementaciones de la presente invención. Algunas realizaciones pueden presentarse sólo con referencia a ciertos aspectos de ejemplo de la invención. Se debe apreciar que las realizaciones correspondientes se pueden aplicar a otros aspectos de ejemplo también.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La invención se describirá, a modo de ejemplo solamente, con referencia a los dibujos adjuntos, en los cuales: La figura 1 muestra algunos detalles de la arquitectura del sistema en el que se pueden aplicar diversas realizaciones de la invención; La figura 2 muestra algunos detalles de los elementos del sistema, en el que se pueden aplicar diversas realizaciones de la invención; La figura 3 muestra un diagrama de mensajes de acuerdo con una realización de la invención; La figura 4 presenta un diagrama de bloques de ejemplo de un servidor de aplicaciones en el que se pueden aplicar diversas realizaciones de la invención; La figura 5 presenta un diagrama de bloques de ejemplo de un aparato de usuario en el que se pueden aplicar diversas realizaciones de la invención; - - La figura 6 muestra un diagrama de flujo que muestra las operaciones en un aparato de usuario de acuerdo con un ejemplo de realización de la invención; y La figura 7 muestra un diagrama de flujo que muestra las operaciones en un servidor de aplicaciones de acuerdo con un ejemplo de realización de la invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN En la siguiente descripción, números iguales indican elementos iguales.
Diversas realizaciones de la invención emplean características de una arquitectura de autenticación genérica (GAA) y una arquitectura de programa de arranque (GBA) definidas en 3GPP para autenticación de iguales y seguridad de comunicación. Las variantes de GAA/GBA están estandarizadas por Open Mobile Alliance (OMA) y CableLabs. GAA/GBA se basa en algoritmos móviles AKA (autenticación y acuerdo de clave) para 3GPP. El propósito original de los procedimientos de GAA/GBA es autentificar el equipo de usuario o un abonado. Ahora en diversas realizaciones de la invención, el GAA/GBA se utiliza para mejorar la seguridad entre un servidor de aplicaciones, un navegador de terminal móvil y un sistema operativo del terminal móvil. En una realización, el uso seguro de credenciales basadas en celular se habilita desde el navegador a través de un código externo que se descarga desde el servidor al dispositivo de usuario dentro de una página web, por ejemplo. El código externo puede comprender un código JavaScript, por ejemplo.
Una ventaja que se puede lograr mediante el uso de los mecanismos de autenticación de GAA/GBA para la autenticación de los servidores de aplicaciones, que puede evitar el uso de una cara infraestructura de clave pública, que de otro modo podrían ser necesaria. GAA/GBA es un habilitador de usos múltiples que se utiliza, por ejemplo, para TV móvil y presencia. Mediante el uso de este mecanismo existente y la infraestructura asociada, se puede lograr el beneficio de que se pueden reducir los costes administrativos y la cantidad de inversión que hay que hacer.
En la siguiente descripción, términos como aparato del usuario, servidor de aplicaciones, servidor de programa de arranque, y procedimiento de autenticación genérico se utilizan para referirse a varios elementos/mecanismos relativos a las diversas realizaciones de la invención. Cabe señalar que, además o en lugar de esos elementos/mecanismos explícitos, se puede usar algún otro elemento/mecanismo que proporciona una funcionalidad comparable.
En diversas realizaciones de la invención, un servidor de aplicaciones puede ser un servidor web que ofrece un servicio web para un usuario. El servidor de aplicaciones también puede ser que no sea de confianza por el operador de red y comprenda una función de aplicación de red (NAF) .
La figura 1 muestra algunos detalles de la arquitectura del sistema 100, en el que pueden aplicarse diversas realizaciones de la invención. El sistema comprende un aparato de usuario, tal como un equipo de usuario (UE) 110, y un servidor de aplicaciones 120 que proporciona el servicio (s) web. Además, el sistema comprende una función de servidor de programa de arranque (BSF) 130 y una base de datos de abonado 140, tal como un servidor de abonado de origen (HSS) o registro de posiciones base (HLR) . El aparato 110 comprende además un bloque de función GBA (arquitectura - - genérica de programa de arranque) 150 configurado para cooperar con la función de servidor de programa de arranque (BSF) y un cliente de función de aplicación de red (NAF) 160 configurado para cooperar con el servidor de aplicaciones 120. El cliente de función de aplicación de red (NAF) puede comprender, por ejemplo, un navegador. En GAA/GBA un servidor de aplicaciones puede ser denominado como una función de aplicación de red (NAF) . Hay una interfaz Zh definida en la GAA/GBA entre la función de servidor de programa de arranque (BSF) 130 y la base de datos de abonado 140, una interfaz de Zn entre la función de servidor de programa de arranque (BSF) 130 y el servidor de aplicaciones 120, y la interfaz de Ub entre la función de servidor de programa de arranque (BSF) 130 y el aparato de usuario 110. Además, puede haber una interfaz de Zh' entre la función de servidor de programa de arranque (BSF) 130 y el HLR 140, si se despliega un HLR. Además, puede haber una interfaz para una función de localizador de suscripción (SLF) que proporciona información de base de datos de abonado a la función de servidor de programa de arranque (BSF) .
El servidor de aplicaciones 120 se puede administrar por una parte diferente en comparación con la función de servidor de programa de arranque (BSF) 130 y la base de datos de abonado 140, o se puede administrar por la misma parte (que es normalmente el operador de la red de comunicaciones en cuestión) .
Debe tenerse en cuenta que el sistema 100 puede, y por lo general lo hace, comprender diversos otros elementos, asi, pero que no se muestran aqui en aras de la claridad.
En una realización, una función de servidor de programa de arranque genérico (BSF) 130 y el equipo de usuario (UE) 110 deberán autenticarse mutuamente utilizando la autenticación y el acuerdo de claves de protocolo (AKA) , y ponerse de acuerdo sobre las claves que se aplican posteriormente entre el equipo de usuario (UE) 110 y una función de aplicación de red (NAF) de un servidor 120. La función de aplicación de red (NAF) es un módulo funcional situado en el servidor de prestación de servicio 120. Alternativamente, si una tarjeta inteligente de legado está involucrada, la seguridad de capa de transporte (TLS) y la autenticación de legado pueden ser utilizadas. La arquitectura de programa de arranque genérico (GBA) también puede utilizar otro mecanismo de autenticación, como el lenguaje de protocolo de transferencia de hipertexto (HTTP) o el lenguaje del protocolo de iniciación de sesión (SIP) . Las funciones principales del módulo de la función de aplicación de red (NAF) del servidor 120 son de gestión de servicio/usuario (por ejemplo, la suscripción al servicio y la baja del servicio) y gestión de claves de servicio (por ejemplo, la generación y el suministro de claves de servicio) . La función de servidor de programa de arranque (BSF) 130 podrá afectar a la aplicabilidad de los materiales clave para una función especifica de aplicaciones de red (NAF) de un servidor 120 mediante el uso de un procedimiento de derivación de claves. El procedimiento de derivación de claves puede ser utilizado con múltiples funciones de aplicación de red (NAF) durante la vida útil del material de clave. La vida útil del material clave se establece de acuerdo con la política local de la función de servidor de programa de arranque (BSF) 130. A la función de servidor de programa de arranque (BSF) 130 se le permite traer cualquier - - información de autenticación requerida, información de seguridad y del perfil de abonado de un sistema local de abonado (HSS) 140. En las redes tradicionales de la función del servidor de programa de arranque (BSF) 130 puede interactuar con el registro de posiciones base (HLR) en lugar del sistema local de abonado (HSS) 140.
Puede ser una preocupación, por ejemplo, de los operadores, en relación con el uso de GBA de un código externo, tal como un código de script como JavaScript, por ejemplo. El código externo puede ser descargado en el aparato de usuario y la preocupación puede ser que el secreto del módulo de GBA se envía al servidor web tal y como es.
La figura 2 muestra algunos detalles de los elementos del sistema, en el que pueden aplicarse diversas realizaciones de la invención. El código externo puede comprender cualquier código descargado a un aparato y potencialmente utilizado o ejecutado localmente. Los códigos externos se pueden ejecutar en las aplicaciones instaladas, como navegadores o widgets, por ejemplo. Un ejemplo de códigos externos es código JavaScript. Para simplificar, los siguientes ejemplos de realización se describen utilizando el código JavaScript, pero las realizaciones no se limitan a JavaScript y puede aplicar cualquier código externo.
JavaScript se puede utilizar en la forma de JavaScript del lado cliente procesado en un equipo de usuario (UE) 110. La ejecución de JavaScript 280 puede ser implementada como parte de un navegador web 210 con el fin de proporcionar interfaces de usuario mejoradas y sitios web dinámicos. Esto permite el acceso mediante programación a los objetos computacionales dentro de un entorno de acogida. El JavaScript 280 puede también ser utilizado en aplicaciones fuera de las páginas web, por ejemplo, en los documentos, navegadores específicos del sitio y widgets de escritorio. JavaScript se utiliza también para las aplicaciones web del lado del servidor. Una interfaz de programación de aplicaciones (API) es un conjunto particular de reglas ("código") y especificaciones que los programas de software pueden seguir para comunicarse entre sí. La API sirve como interfaz entre los diferentes programas de software y facilita su interacción. Para el JavaScript 280, se puede crear una API de GBA, nombrada como JS-GBA-API 220 en la figura 2. El sistema operativo (OS) 230 de los equipos de usuario (UE) 110 puede comprender un módulo de GBA 240 que es responsable de la gestión de la seguridad de los equipos de usuario (UE) 110. El equipo de usuario (UE) 110 también puede comprender una tarjeta de circuito integrado universal (UICC) 270 que es una tarjeta inteligente utilizada en los terminales móviles en redes celulares. La tarjeta de circuito integrado universal (UICC) 270 asegura la integridad y la seguridad de todo tipo de datos personales, y que por lo general contiene aplicaciones. La tarjeta inteligente UICC también puede comprender una CPU, ROM, RAM, EEPROM y circuitos de 1/0.
El navegador 210 de los equipos de usuario (UE) 110 puede comunicar con una función de aplicación de red (NAF) de servidor 120 que opera como un servidor de servicio de aplicación para el contenido web, por ejemplo. El servidor 120 de función de aplicación de red (NAF) puede comprender un módulo de GBA NAF 250 y una aplicación de servidor 260, por ej emplo .
En una realización, la interacción de un módulo de gestión de - - seguridad de aparatos usuario (módulo de GBA, que es parte del sistema operativo) se proporciona con un servidor de aplicaciones web. El mecanismo de seguridad permite un uso seguro del módulo de gestión de la seguridad 240 desde un navegador 210 con JavaScript 280 procedente de una fuente externa 120.
Cuando se hace referencia a las claves de GBA, se piensa en las siguientes claves: Ks y NAF claves especificas derivadas de la Ks . Cuando se hace referencia a las claves especificas NAF, se piensa en las siguientes claves: Ks_ext/int_NAF (en el contexto GBA_U) y Ks_NAF (en el contexto GBA_ME) , y cualquier clave derivada de estas claves. Ks_ext_NAF es la misma clave que Ks_NAF, es decir, la clave especifica NAF utilizada en el ME. La Ks_ext_NAF se derivan en el UICC en el contexto GBA__U y dado a los ME y Ks_NAF se derivan de la ME en el contexto GBA_ME. Pueden ser ambos usados de la misma manera en el ME, independientemente del contexto. La Ks_int_NAF se deriva en UICC y se utiliza en UICC. La Ks_int_NAF nunca se da fuera de UICC. Cuando se hace referencia a la clave KsJs_NAF, se piensa en la clave de JavaScript para el código JavaScript y el servidor de aplicaciones utilizado en lugar de Ks_NAF o Ks_ext_NAF.
En una realización, antes de que se pueda iniciar la comunicación entre la UE y la función de aplicación de red (NAF) , la UE y la función de aplicación de red (NAF) primero tienen que ponerse de acuerdo si desea utilizar el GBA. Cuando un UE quiere interactuar con una función de aplicación de red (NAF) , pero no sabe si la función de aplicación de red (NAF) requiere el uso de claves compartidas obtenidas por medio de la GBA, el UE se pondrá en contacto con la función - - de aplicación de red (NAF) para obtener más instrucciones. La figura 3 muestra un diagrama de mensajería de acuerdo con una realización de la invención. No todos los mensajes y elementos mostrados, necesitan ser realizados, el orden de los mensajes puede variar, y más mensajes se pueden realizar, no limitándose a aquellos mensajes y elementos mostrados en la figura 3.
Un aparato de usuario, tal como un equipo de usuario (UE) puede iniciar la comunicación a través del punto de referencia Ua con un servidor de aplicaciones, tal como parámetros relacionados con un servidor de función de aplicación de red (NAF) sin ningún tipo de arquitectura de programa de arranque genérica (GBA) . Si la NAF requiere el uso de claves compartidas obtenidas por medio de la GBA, pero la solicitud desde el UE no incluye parámetros GBA relacionados, la función de aplicación de red (NAF) responde con un mensaje de iniciación de programa de arranque. La forma de esta indicación puede depender del punto de referencia particular Ua .
En una realización, un navegador web 210 se considera como una aplicación de confianza en el sentido de que un usuario confia en el navegador 210 para manejar las funciones relacionadas con la seguridad adecuadamente y no se filtra información confidencial como contraseñas a terceros. En la figura 3, el navegador web 210 se divide en tres bloques funcionales: un módulo de motor 310, un módulo de JavaScript 320 y un módulo de GBA-API 330.
El módulo del motor 310 se encarga de las funciones básicas del navegador web 210 como la configuración de seguridad de capa de transporte (TLS) con los servidores web 120, - - descargando recursos web, y proporcionando información de la interfaz de usuario al usuario.
El módulo API GBA 330 ofrece la interfaz de programación de aplicaciones (API) hacia cualquier código de JavaScript que se ejecuta en el navegador web 210. Como JavaScript no debe ser expresamente de confianza, el navegador web 210 y la API GBA 330 no deben revelar ninguna información sensible a JavaScript, ni deben aceptar ninguna información sensible desde el código de JavaScript más de lo necesario.
El módulo de JavaScript 320 ejecuta el código de JavaScript descargado. Cualquier código de JavaScript ejecutado en el navegador web 210 debe ser considerado no confiable y no debe concederse el acceso a los recursos sensibles o el acceso a tales recursos debe controlarse.
El diagrama de flujo de la secuencia mostrada de la figura 3 puede ser ejecutado en una seguridad de capa de transporte (TLS) autenticada por el servidor. Además, el navegador web 210 puede estar en el proceso de descarga de una página html, en el que uno de los recursos de JavaScript enlazados se llama "gba . j s" .
En el punto 0, la aplicación del navegador 210 y el servidor web 120 establecen un túnel seguridad de capa de transporte (TLS) autenticado por el servidor.
En el punto 1 de la figura 3, se solicita una descarga de contenido mediante una aplicación de navegador 210 de un aparato de usuario, tal como un equipo de usuario (UE) . El contenido puede ser, por ejemplo, una página web proporcionada por un servidor de aplicaciones 120, tal como un servidor web. La solicitud del punto 1 puede comprender, por ejemplo, una solicitud HTTP.
- - En el punto 2 de la figura 3, el servidor web 120 construye dinámicamente el archivo de código JavaScript "gba.js" mediante la generación de un desafio aleatorio del servidor (RAND1) que se va a incluir en el código JavaScript y se proporciona a la API GBA 330 del navegador 210. El RAND1 también se almacena localmente en el servidor web 120. En este código JavaScript, se puede usar una interfaz de programación de aplicaciones JavaScript GBA (API) 220 para solicitar y obtener una clave GBA especifica de JavaScript (Ks_js_NAF). Un desafio aleatorio RAND1 se incluye en la solicitud de API GBA en el punto 2. La solicitud de clave GBA especifica de JavaScript (Ks_js_NAF) se puede también enviar al módulo GBA 240 cuando se recibe en el navegador 210 y se envía por el módulo GBA 240 a la API GBA 220 para su posterior procesamiento.
La página web con un código JavaScript 280 se carga desde el servidor 120 en el punto 3, como una respuesta HTTP, por ejemplo. En el punto 4, el motor 310 del navegador web 210 comienza a ejecutar el código JavaScript "gba.js" en el módulo de JavaScript. 320 En el punto 5, el código "gba.js" de JavaScript llega a un punto en el que se realiza una llamada a la API GBA 330. La llamada contiene RAND1 como uno de los parámetros. En el punto 6, la API GBA de JavaScript 330 almacena el RAND1 recibido. La API GBA 330 también localiza la información relevante sobre el código JavaScript, por ejemplo lo que página html está ejecutando, desde qué url se descargó la página HTML y qué conjunto de cifrado TLS se utiliza en el túnel TLS. Un nombre de dominio (FQDN) del servidor web (NAF) 120 se puede extraer de la url de la página web, y el - - identificador de protocolo de seguridad Ua se puede derivar del conjunto de cifrado TLS usado. El nombre de dominio (FQDN) del servidor NAF 120 y el identificador de protocolo de seguridad Ua forman el identificador de función de aplicación de red (NAF-ld) .
En el punto 7, el módulo API GBA 330 hace una llamada al módulo GBA 240 con el NAF-ld derivado en el punto 6. En el punto 8, el módulo GBA 240 programado previamente con la función de programa de arranque (BSF) , en caso de que clave maestra Ks GBA no sea válida. A partir del Ks se deriva una clave especifica NAF (Ks_ext_NAF) utilizando el NAF-ld.
En el caso GBA_ME, el UICC 270 proporciona el CK y el IK al módulo GBA 240, que genera Ks a partir de los mismos mediante la concatenación de CK e IK, por ejemplo. Además, el módulo GBA 240 genera el Ks_NAF usando el Ks NAF-ld.
En el caso GBA_U, el UICC 270 mantiene el CK y el IK en si mismos, y genera la Ks_ext_NAF, que luego se le da al módulo GBA 240.
Por lo tanto, en el caso GBA_ME toda la funcionalidad especifica de GBA se implementa en el ME, y en el caso GBA_U parte de la funcionalidad de GBA se implementa en el UICC 270. Principalmente, Ks se mantiene en el UICC 270 y sólo la Ks_(ext)_NAF derivada se proporciona en el módulo GBA 240. En otras palabras, la "clave maestra" GBA Ks se genera en el ME (caso GBA_ME) o en el UICC 270 (caso GBA_U) .
Una aplicación para conseguir una clave GBA requerida sólo trata con el Módulo GBA 240, y la clave GBA es Ks_NAF en el caso GBA_ME o Ks_ext_NAF en el caso GBA_U, respectivamente. La aplicación puede entonces usar la clave GBA Ks_ (ext ) _NAF, independientemente de la fuente.
- - En el punto 9, el módulo GBA 240 devuelve la clave específica NAF (Ks_ext_NAF) a la API GBA 330 del navegador con un identificador de transacción de programa de arranque (B-TID) , y la duración de la clave, por ejemplo. En el punto 10, la API GBA 330 puede generar un desafío aleatorio RAND2 del lado del cliente. Una credencial de seguridad se puede determinar usando el desafío aleatorio RANDl y el desafío aleatorio RAND2. Por otra parte, una clave GBA específica de JavaScript (Ks_js_NAF) se crea utilizando la clave de programa de arranque del servidor específico (Ks_ext_NAF) y la credencial de seguridad (desafíos aleatorios RANDl y RAND2). Una función de derivación de claves (KDF) puede ser utilizada para producir la clave GBA JavaScript específica de la siguiente manera : Ks_js_NAF = KDF (Ks_ext_NAF, RANDl | | RAND2) El RANDl es el desafío aleatorio recibido desde el servidor 120 y RAND2 se genera mediante la API GBA 330. La Ks_(ext)_NAF puede ser procesada a la API GBA 330 en el nivel de JavaScript. La función de JavaScript se puede llamar por ejemplo GBA. getNAFKey (RANDl) y la función devuelve entonces Ks_j s_NAF y RAND2.
En el punto 11, la API GBA 330 retorna la clave Ks_j s_NAF específica de JavaScript, RAND2, B-TID y la duración de la clave al módulo de JavaScript de ejecución 320. El módulo de JavaScript 320 continúa, en el punto 12, para ejecutar y utilizar la clave Ks_ s_NAF de la manera que el servidor web 120 ha instruido (a través de código JavaScript "gba.js")-En el punto 13, después de ejecutar la lógica del lado del cliente, el módulo de JavaScript 320 hace una solicitud (por ejemplo, solicitud HTTP) al servidor web 120. Esta solicitud - - puede contener al menos Ks_js_NAF, RAND2, y B-TID.
En el punto 14, el servidor web 120 puede buscar el Ks_ext_NAF de la función de programa de arranque (BSF) , y luego derivar la Ks_j s_NAF con el RAND2 recibido y el RAND1 almacenado. El servidor web 120 puede comparar la Ks_j s_NAF recibida con la derivada localmente para su validación. Si la Ks_js_NAF recibida es válida, el servidor web 120 continuará procesando la solicitud formulada en el punto 13 y devolverá el resultado al módulo JavaScript 320 del navegador 120 en el punto 15.
Además, el servidor 120 de web puede continuar para ejecutar el código JavaScript.
En una realización, la clave especifica NAF (Ks_NAF) no se envia al servidor como tal, lo que mejora el mecanismo de seguridad. Por otra parte, la clave especifica de JavaScript (KsJs_NAF) se cambia cada vez que se utiliza la API GBA 330, porque RAND1 y RAND2 se cambian. Tal mecanismo proporciona más seguridad y protección de repetición, por ejemplo.
En otra realización, se utiliza un credencial de seguridad diferente. En tal realización, en el punto 2 de la figura 3, el servidor web 120 selecciona el archivo de código JavaScript "gba.js" que debe facilitarse al GBA API 330 del navegador 210. En este código JavaScript, una interfaz de programación de aplicaciones JavaScript GBA (API) 220 puede ser utilizada para solicitar y obtener una clave especifica GBA JavaScript (Ks_js_NAF) . La solicitud de clave especifica JavaScript GBA ( Ks_j s_NAF) se puede también enviar al módulo GBA 240 cuando se recibe en el navegador 210 y se remite mediante el módulo GBA 240 a la API GBA 220 para su posterior procesamiento .
- - La página web con un código JavaScript 280 se carga desde el servidor 120 en el punto 3, como una respuesta HTTP, por ejemplo. En el punto 4, el motor 310 del navegador web 210 comienza a ejecutar el código JavaScript de código "gba.js" en el módulo de JavaScript 320.
En el punto 5, el código "gba.js" de JavaScript llega a un punto en el que se realiza una llamada al GBA API 330. En el punto 6, el GBA API de JavaScript 330 localiza la información relevante sobre el código JavaScript, por ejemplo, qué página html está ejecutando, desde qué url se descargó la página HTML, y qué conjunto de cifrado de la seguridad de capa de transporte (TLS) se utiliza en el túnel TLS . Un nombre de dominio (FQDN) del servidor web (NAF) 120 se puede extraer de la url de la página web, y el identificador de protocolo de seguridad Ua se puede derivar del conjunto de cifrado TLS usado. El nombre de dominio (FQDN) del servidor NAF 120 y el identificador de protocolo de seguridad Ua forman el identificador de función de aplicación de red (NAF-ld) .
En el punto 7, el módulo API GBA 330 hace una llamada al módulo GBA 240 con la NAF-ld derivada en el punto 6. En el punto 8, el módulo GBA 240 programado previamente con la función de programa de arranque (BSF) , en caso de que no haya ninguna clave maestra Ks GBA válida. A partir de la Ks se deriva una clave especifica NAF (Ks_ext_NAF) usando la NAF-Id.
En caso GBAJ E, el UICC 270 proporciona la CK e IK al módulo GBA 240, que genera Ks a partir de los mismos mediante la concatenación de CK e IK, por ejemplo. Además, el módulo GBA 240 genera la Ks_NAF usando el Ks NAF-ld.
En caso de GBA U, el UICC 270 mantiene la CK e IK en si - - misma, y genera la Ks_ext_NAF, gue luego se proporciona al módulo GBA 240.
Por lo tanto, en el caso GBA_ME toda la funcionalidad especifica de GBA se implementa en el ME, y en el caso de GBA_U parte de la funcionalidad de GBA se implementa en el UICC 270. Principalmente Ks se mantiene en el UICC 270 y sólo la Ks_(ext)_NAF derivada se proporciona al módulo GBA 240. En otras palabras, la "clave maestra" GBA Ks se genera en el ME (caso GBA_ME) o en el UICC 270 (caso GBA_U) .
Una aplicación para conseguir una clave GBA requerida sólo trata con el Módulo GBA 240, y la clave GBA es Ks_NAF en el caso GBA_ME o Ks_ext_NAF en caso de GBA_U, respectivamente. La aplicación puede entonces usar la clave GBA Ks_ (ext ) _NAF, independientemente de la fuente.
En el punto 9, el módulo GBA 240 devuelve la clave NAF especifica (Ks_ (ext ) _NAF) al GBA API del navegador 330 con un identificador de transacción de programa de arranque (B-TID) , y la duración de la clave, por ejemplo. En el punto 10, al recibir la clave Ks_ (ext ) _NAF, el GBA API del navegador 330 puede determinar una credencial de seguridad. La credencial de seguridad (TLS_MK_Extr ) se puede extraer de la clave maestra de seguridad de la capa de transporte (TLS) usando una función exportada. La etiqueta para la función exportada puede ser "EXPORTER_3GPP_GBA_ EB" , por ejemplo. La credencial de seguridad (TLS_MK_Extr ) se puede utilizar para derivar una clave especifica Ks_j s_NAF JavaScript que se enlaza con el túnel TLS del servidor autenticado. La Ks_j s_NAF se puede derivar de la Ks_(ext)_NAF como sigue: Ks_js_NAF = KDF (Ks_(ext)_NAF, TLS_MK_Extr) La clave GBA especifica JavaScript ( Ks_j s_NAF) se crea - - utilizando la clave de programa de arranque específica del servidor Ks_ (ext) _NAF y la credencial de seguridad (TLS_ML_Extr) . Una función de derivación de claves (KDF) puede ser utilizada para producir la clave GBA de JavaScript específica. La Ks_(ext)_NAF puede procesarse en el API GBA 330 en el nivel de JavaScript.
En el punto 11, la API GBA 330 devuelve la clave específica de JavaScript Ks_js_NAF, B-TID y la clave de por vida al módulo de JavaScript de ejecución 320. El módulo de JavaScript 320 continúa, en el punto 12, para ejecutar y utilizar la clave Ks_j s_NAF de la manera que el servidor web 120 ha instruido (a través del código JavaScript "gba.js"). En el punto 13, después de ejecutar la lógica del lado del cliente, el módulo de JavaScript 320 hace una solicitud (por ejemplo, solicitud HTTP) al servidor web 120. Esta solicitud puede contener al menos Ks_js_NAF y B-TID.
En el punto 14, el servidor web 120 puede buscar la Ks_(ext)_NAF de la función de programa de arranque (BSF) y determinar la credencial de seguridad (TLS_MK_Extr ) , como se hace en el punto 10. El servidor web 120 puede entonces derivar la Ks_js_NAF con la credencial de seguridad (TLS_MK_Extr ) . El servidor web 120 puede comparar la Ks_js_NAF recibida con la derivada localmente para su validación. Si la Ks_j s_NAF recibida es válida, el servidor web 120 continuará procesando la solicitud formulada en el punto 13 y devolverá el resultado al módulo de JavaScript 320 del navegador 120 en el punto 15. Además, el servidor web 120 puede continuar para ejecutar el código JavaScript.
En una realización, la clave específica NAF (Ks_NAF) no se envía al servidor como tal, lo que mejora el mecanismo de - 7- seguridad.
La figura 4 presenta un diagrama de bloques de ejemplo de un servidor de aplicaciones 400 en el que pueden aplicarse diversas realizaciones de la invención. Esto puede ser un servidor web, un servidor de descarga de archivos o cualquier servidor que proporcione contenidos.
La estructura general del servidor de aplicaciones 400 comprende un módulo de interfaz de comunicaciones 450, un procesador 410 acoplado al módulo de interfaz de comunicaciones 450, y una memoria 420 acoplada al procesador 410. El aparato comprende además software 430 almacenado en la memoria 420 y que puede funcionar para cargarse y ejecutarse en el procesador 410. El software 430 puede comprender uno o más módulos de software y puede ser en forma de un producto de programa de ordenador.
El módulo de interfaz de comunicaciones 450 implementa al menos parte de la transmisión de datos descrita en conexión con diversas realizaciones de la invención. El módulo de interfaz de comunicaciones 450 puede ser, por ejemplo, un módulo de interfaz de radio, tal como un módulo de radio WLAN, Bluetooth, GSM/GPRS, CDMA, CDMA, o LTE (evolución a largo plazo) . El módulo de interfaz de comunicaciones 450 puede estar integrado en el servidor de aplicaciones 400 o en un adaptador, tarjeta o similar que puede insertarse en una ranura adecuada o en el puerto del servidor de aplicaciones 400. El módulo de interfaz de comunicaciones 450 puede soportar una tecnología de interfaz de radio o una pluralidad de tecnologías. La figura 4 muestra un módulo de interfaz de comunicaciones 450, pero el servidor de aplicaciones 400 puede comprender una pluralidad de módulos de interfaz de - - comunicaciones 550. El módulo de interfaz de comunicaciones 450 proporciona comunicación de datos, por ejemplo, con una función de programa de arranque (BSF) , un servidor de abonado de origen (HSS) , y un servidor de contenido externo.
El procesador 410 puede ser, por ejemplo, una unidad de procesamiento central (CPU) , un microprocesador, un procesador de señal digital (DSP), una unidad de procesamiento de gráficos, o similares. La figura 4 muestra un procesador 410, pero el servidor de aplicaciones 400 puede comprender una pluralidad de procesadores.
La memoria 420 puede ser, por ejemplo, una memoria no volátil o volátil, tal como una memoria de sólo lectura (ROM) , una memoria programable de sólo lectura (PROM), una memoria programable de sólo lectura borrable (EPROM) , una memoria de acceso aleatorio (RAM) , una memoria flash, un disco de datos, un almacenamiento óptico, un dispositivo de almacenamiento magnético, una tarjeta inteligente, o similares. El servidor de aplicaciones 400 puede comprender una pluralidad de memorias. La memoria 420 puede estar construida como una parte del servidor de aplicaciones 400 o puede insertarse en una ranura, puerto, o similar del servidor de aplicaciones 400. La memoria 420 puede servir con el único fin de almacenar los datos, o puede estar construida como una parte de un aparato que sirve otros fines, tales como el procesamiento de datos.
Un módulo general de arguitectura de programa de arranque (GBA) 440 puede comprender una función de aplicación de red (NAF) . GBA se puede usar entre la función de aplicación de red (NAF) y el UE para propósitos de autenticación, y para asegurar la ruta de comunicación entre el UE y la función de - - aplicación de red (NAF) . Después de que el programa de arranque se ha completado, el UE y la función de aplicación de red (NAF) pueden ejecutar algún protocolo para aplicaciones especificas donde la autenticación de los mensajes se basará en esas claves de sesión generadas durante la autenticación mutua entre el UE y la función de servidor de programa de arranque (BSF) .
Un experto en la materia aprecia que, además de los elementos mostrados en la figura 4, el servidor de aplicaciones 400 puede comprender otros elementos, tales como circuitos adicionales tales como circuitos de entrada/salida (E/S) , chips de memoria, circuitos integrados de aplicación especifica (ASIC) , circuitos de procesamiento para fines específicos, tales como circuitos codificación/decodificación de fuentes, circuitos de codificación/decodificación de canales, circuitos de cifrado/descifrado, y similares.
La figura 5 presenta un diagrama de bloques de ejemplo de un aparato de usuario 500 en el que pueden aplicarse diversas realizaciones de la invención. Esto puede ser un equipo de usuario (UE) , dispositivo o aparato de usuario, tal como un terminal móvil, un ordenador portátil, una tableta, u otro dispositivo de comunicación.
La estructura general del aparato de usuario 500 comprende un módulo de interfaz de comunicación 550, un procesador 510 acoplado al módulo de interfaz de comunicación 550, y una memoria 520 acoplada al procesador 510. El aparato de usuario comprende, además, software 530 almacenado en la memoria 520 y que puede funcionar para cargarse y ejecutarse en el procesador 510. El software 530 puede comprender uno o más módulos de software y puede ser en forma de un producto de - - programa de ordenador. El aparato de usuario 500 comprende además una interfaz de usuario del controlador 560 acoplado al procesador 510.
El módulo de interfaz de comunicación 550 implementa al menos parte de la radio de datos de usuario descrita en conexión con diversas realizaciones de la invención. El módulo de interfaz de comunicación 550 puede ser, por ejemplo, un módulo de interfaz de radio, tales como un módulo de radio WLAN, Bluetooth, GSM/GPRS, CDMA, WCDMA, o LTE (evolución a largo plazo) . El módulo de interfaz de comunicación 550 puede estar integrado en el aparato de usuario 500 o en un adaptador, tarjeta o similar que puede insertarse en una ranura adecuada o puerto del aparato de usuario 500. El módulo de interfaz de comunicación 550 puede soportar una tecnología de interfaz de radio o una pluralidad de tecnologías. La figura 5 muestra un módulo de interfaz de comunicación 550, pero el aparato de usuario 500 puede comprender una pluralidad de módulos de interfaz de comunicación 550.
El procesador 510 puede ser, por ejemplo, una unidad de procesamiento central (CPU) , un microprocesador, un procesador de señal digital (DSP) , una unidad de procesamiento de gráficos, o similares. La figura 5 muestra un procesador 510, pero el aparato de usuario 500 puede comprender una pluralidad de procesadores.
La memoria 520 puede ser, por ejemplo, un una memoria no volátil o volátil, tal como una memoria de sólo lectura (ROM), una memoria programable de sólo lectura (PROM), una memoria programable de sólo lectura borrable (EPROM) , una memoria de acceso aleatorio (RAM) , una memoria flash, un - - disco de datos, un almacenamiento óptico, un dispositivo de almacenamiento magnético, una tarjeta inteligente, o similares. El aparato de usuario 500 puede comprender una pluralidad de memorias. La memoria 520 puede estar construida como una parte del aparato 500 o puede insertarse en una ranura, puerto, o similar del aparato 500 de usuario por parte de un usuario. La memoria 520 puede servir con el único fin de almacenar los datos, o puede estar construida como una parte de un aparato que sirve otros fines, tales como el procesamiento de datos.
Una tarjeta de circuito integrado universal (UICC) 540 puede incluirse como una tarjeta inteligente utilizada en el aparato de usuario 500. La tarjeta de circuito integrado universal (UICC) 540 asegura la integridad y la seguridad de determinados datos personales. La tarjeta de circuito integrado universal (UICC) 540 puede contener un número de serie único, número internacional único del usuario móvil (I SI), autenticación de seguridad e información de cifrado, información temporal relativa a la red local, una lista de los servicios a los que el usuario tiene acceso y contraseñas (PIN para su uso habitual y PUK de desbloqueo) . La tarjeta de circuito integrado universal (UICC) 540 puede comprender, además, varias aplicaciones, haciendo posible que la misma tarjeta inteligente de acceso a diferentes redes, y también proporcionar un almacenamiento de una libreta telefónica y otras aplicaciones. El sistema puede utilizar un módulo de seguridad integrado para el almacenamiento y procesamiento de claves .
El controlador de interfaz de usuario 560 puede comprender circuitos para recibir la entrada de un usuario del aparato - - de usuario 500, por ejemplo, a través de un teclado, interfaz gráfica de usuario que se muestra en la pantalla del aparato de usuario 500, circuitos de reconocimiento de voz, o un dispositivo accesorio, tal como un auricular, y para proporcionar la salida al usuario a través, por ejemplo, de una interfaz gráfica de usuario o un altavoz.
Un experto en la materia aprecia que, además de los elementos mostrados en la figura 5, el aparato de usuario 500 puede comprender otros elementos, tales como micrófonos, pantallas, asi como circuitos adicionales tales como circuitos de entrada/salida (E/S), chips de memoria, circuitos integrados de aplicación especifica (ASIC) , circuitos de procesamiento para fines específicos, tales como circuitos de codificación/decodificación de fuentes, circuitos de codificación/decodificación de canales, canales de cifrado/descifrado, y similares. Adicionalmente, el aparato de usuario 500 puede comprender una batería desechable o recargable (no mostrada) para alimentar el aparato de usuario 500 cuando la energía externa si la fuente de alimentación externa no está disponible.
La figura 6 muestra un diagrama de flujo que muestra las operaciones en un aparato de usuario de acuerdo con un ejemplo de realización de la invención. En la etapa 600 se inicia el procedimiento. En la etapa 610 se recibe un código externo que comprende una solicitud de una clave de programa de arranque específica del servidor (Ks_NAF) . En la etapa 620 se determina un identificador de servidor (NAF-ld) . Una clave de programa de arranque específica del servidor (Ks_NAF) se genera en función del identificador del servidor (NAF-ld) , en la etapa 630. En la etapa 640, se determina una credencial de - - seguridad. En la etapa 650, se genera una clave de programa de arranque específica de código externa (Ks_js_NAF) con la clave de programa de arranque específica del servidor (Ks_NAF) y la credencial de seguridad. La clave de programa de arranque específica del código externo (Ks_js_NAF) se utiliza para el mecanismo de seguridad del código externo en la etapa 660. El procedimiento termina en la etapa 670.
La figura 7 muestra un diagrama de flujo que muestra las operaciones en un servidor de aplicaciones de acuerdo con un ejemplo de realización de la invención. En la etapa 700, se inicia el procedimiento. En la etapa 710, se transmite un código de secuencia de comandos que incluye una solicitud de una clave de programa de arranque específica del código de secuencia (Ks_js_NAF). Un identificador del servidor (NAF-ld) se determina en la etapa 720. En la etapa 730, se genera una clave de programa de arranque específica del servidor (Ks__NAF) utilizando el identificador del servidor (NAF-LD) . En la etapa 740, se determina una credencial de seguridad. En la etapa 740, se genera la clave de programa de arranque específica de código de secuencia (Ks_js_NAF) con la clave de programa de arranque específica del servidor (Ks_NAF) y la credencial de seguridad. La clave de programa de arranque específica del código de secuencia (Ks_js_NAF) se utiliza para el mecanismo de seguridad del código de secuencia en la etapa 760. El procedimiento termina en la etapa 770.
Varias realizaciones se han presentado. Se debe apreciar que en este documento, las palabras comprenden, incluyen y contienen se utilizan cada una como expresiones abiertas sin exclusividad prevista.
La descripción anterior se ha proporcionado a modo de - - ejemplos no limitativos de implementaciones y realizaciones de la invención de una descripción completa e instructiva del mejor modo contemplado actualmente por los inventores para llevar a cabo la invención. Sin embargo, es evidente para una persona experta en la técnica que la invención no se limita a los detalles de las realizaciones presentadas anteriormente, sino que se puede implementar en otras realizaciones utilizando medios equivalentes o en diferentes combinaciones de realizaciones sin desviarse de las características de la invención .
Además, algunas de las características de las realizaciones descritas anteriormente de esta invención se pueden usar ventajosamente sin el uso correspondiente de otras características. Como tal, la descripción anterior se debe considerar como meramente ilustrativa de los principios de la presente invención, y no como limitativa de la misma. Por lo tanto, el alcance de la invención sólo está limitado por las reivindicaciones de patente adjuntas.

Claims (20)

REIVI DICACIONES
1. Un procedimiento para proporcionar un mecanismo de seguridad para un código externo, comprendiendo el procedimiento : recibir el código externo que comprende una solicitud de una clave de programa de arranque especifica de un servidor (Ks_NAF) ; determinar un identificador de un servidor (NAF-Id) y generar la clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-Id) ; determinar un credencial de seguridad; generar una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y el credencial de seguridad; y utilizar la clave de programa de arranque especifica de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo.
2. El procedimiento de la reivindicación 1, que comprende además determinar la credencial de sequridad usando un primer desafio aleatorio (RAND1) y un segundo desafio aleatorio ( RAND2 ) .
3. El procedimiento de la reivindicación 2 , que comprende además : transmitir el segundo desafio aleatorio (RAND2) y la clave de programa de arranque especifica de código externo (Ks_js_NAF) a un servidor de aplicaciones para la validación de la clave de programa de arranque especifica de código externo (Ks_js_NAF) .
4. El procedimiento de la reivindicación 3, en el que etapa de transmisión comprende además: transmitir un código externo de respuesta que comprende segundo desafio aleatorio (RAND2) y la clave de programa arranque especifica de código externo (Ks js NAF).
5. El procedimiento de la reivindicación 1, que comprende además : recibir el código externo, mediante una aplicación de navegador de un aparato, desde un servidor de aplicaciones; determinar el identificador de servidor (NAF-ld) y el credencial de seguridad, mediante una interfaz de programación de aplicaciones (JS-GBA-API) de la aplicación de navegador; solicitar la clave de programa de arranque especifica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde un módulo de programa de arranque del sistema operativo; recibir la clave de programa de arranque especifica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde el módulo de programa de arranque; y generar la clave de programa de arranque especifica de código externo (Ks_js_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API) .
6. El procedimiento de cualquier reivindicación anterior, que comprende además: establecer un túnel de seguridad de capa de transporte (TLS) entre una aplicación de navegador de un aparato y un servidor de aplicaciones; y determinar el identificador de servidor (NAF-ld) que incluye un nombre de dominio (FQDN) y un identificador de protocolo de seguridad.
7. El procedimiento de la reivindicación 6, en el que el identificador de protocolo de seguridad se forma usando un conjunto de cifrado de una seguridad de capa de transporte (TLS) .
8. El procedimiento de cualquier reivindicación anterior, que comprende además: generar la clave de programa de arranque especifica de código externo (Ks_js_NAF) con una función de derivación de claves.
9. El procedimiento de cualquier reivindicación anterior, en el que el código externo comprende un código JavaScript.
10. El procedimiento de la reivindicación 1, que comprende además la determinación de la credencial de seguridad usando una clave maestra de seguridad de capa de transporte (TLS) .
11. Un aparato, que comprende: al menos un procesador; y al menos una memoria que incluye un código de programa de ordenador, estando la al menos una memoria y el código de programa de ordenador configurados para, con el al menos un procesador, hacer que el aparato al menos: reciba un código externo que comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; determine un identificador de servidor (NAF-ld) y genere la clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y la credencial de seguridad; y utilice la clave de programa de arranque especifica de código externo (Ks_js_NAF) para un mecanismo de seguridad de código externo .
12. El aparato de la reivindicación 11, en el que la al menos una memoria y el código de programa de ordenador están configurados además para, con el al menos un procesador, hacer que el aparato al menos: determine la credencial de seguridad usando un primer desafio aleatorio (RAND1) y un segundo desafio aleatorio (RAND2) .
13. El aparato de las reivindicaciones 11 ó 12, en el que la al menos una memoria y el código de programa de ordenador están configurados además para, con el al menos un procesador, hacer que el aparato al menos: reciba el código externo, mediante una aplicación de navegador del aparato, desde un servidor de aplicaciones; determine el identificador del servidor (NAF-ld) mediante una interfaz de programación de aplicaciones (JS-GBA-API) de la aplicación de navegador; solicite la clave de programa de arranque especifica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde un módulo de programa de arranque del sistema operativo; reciba la clave de programa de arranque especifica del servidor (Ks_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API), desde el módulo de programa de arranque; y genere la clave de programa de arranque especifica de código externo (Ks__js_NAF) mediante la interfaz de programación de aplicaciones (JS-GBA-API) .
14. El aparato de cualquiera de las reivindicaciones 11 a 13, en el que la al menos una memoria y el código de programa de ordenador están configurados además para, con el al menos un procesador, hacer que el aparato al menos: determine la credencial de seguridad usando una clave maestra de seguridad de capa de transporte (TLS) .
15. Un programa de ordenador incorporado en un medio legible por ordenador que comprende un código de programa ejecutable por ordenador que, cuando es ejecutado por al menos un procesador de un aparato, hace que el aparato: reciba un código externo que comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; determine un identificador del servidor (NAF-ld) y genere una clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y la credencial de seguridad; y utilice la clave de programa de arranque especifica de código externo (Ks_js_NAF) para un mecanismo de seguridad del código externo.
16. Un procedimiento para proporcionar un mecanismo de seguridad para un código externo, comprendiendo el procedimiento : transmitir el código externo, en donde el código externo comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks^NAF) ; determinar una credencial de seguridad; generar la clave de programa de arranque especifica del servidor (Ks_NAF) usando un identificador del servidor (NAF-ld) ; generar una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y la credencial de seguridad; y usar la clave de programa de arranque especifica de código externo (Ks_js_NAF) para el mecanismo de seguridad de código externo .
17. El procedimiento de la reivindicación 16, que comprende además : solicitar la clave de programa de arranque especifica del servidor (Ks_NAF) a partir de una función de programa de arranque del servidor (BSF) ; y determinar el identificador del servidor (NAF-ld) que incluye un nombre de dominio (FQDN) y un identificador de protocolo de seguridad.
18. El procedimiento de las reivindicaciones 16 ó 17, que comprende además: recibir una clave de programa de arranque especifica de código externo (Ks_js_NAF); validar la clave de programa de arranque especifica de código externo (Ks_js_NAF) mediante la comparación de la clave de programa de arranque especifica de código externo (Ks_js_NAF) generada con la clave de programa de arranque especifica de código externo (Ks js NAF) recibida para el mecanismo de seguridad del código externo.
19. Un servidor de aplicaciones, que comprende: al menos un procesador; y al menos una memoria que incluye código de programa de ordenador, estando la al menos una memoria y el código de programa de ordenador configurados para, con el al menos un procesador, hacer que el servidor de aplicaciones al menos: transmita un código externo, en donde el código externo comprende una solicitud de una clave de programa de arranque especifica del servidor (Ks_NAF) ; genere una clave de programa de arranque especifica del servidor (Ks NAF) usando un identificador del servidor (NAF- ld) ; determine un credencial de seguridad; genere una clave de programa de arranque específica de código externo (Ks_js_NAF) usando la clave de programa de arranque específica del servidor (Ks_NAF) y la credencial de seguridad; y use la clave de programa de arranque específica de código externo (Ks_js_NAF) para el mecanismo de seguridad de código externo .
20. Un programa de ordenador incorporado en un medio legible por ordenador que comprende un código de programa ejecutable por ordenador que, cuando se ejecuta mediante al menos un procesador de un servidor de aplicaciones, hace que el servidor de aplicaciones: transmita un código externo, en donde el código externo comprende una solicitud de una clave de programa de arranque específica del servidor (Ks_NAF) ; genere una clave de programa de arranque específica del servidor (Ks_NAF) usando un identificador del servidor (NAF-ld) ; determine un credencial de seguridad; genere una clave de programa de arranque específica de código externo (Ks_js_NAF) usando la clave de programa de arranque específica del servidor (Ks_NAF) y la credencial de seguridad; y use la clave de programa de arranque específica de código externo (Ks_js_NAF) para el mecanismo de seguridad de código externo . RESUMEN DE LA INVENCIÓN Un procedimiento para proporcionar un mecanismo de seguridad para un código externo, en el que el procedimiento incluye recibir el código externo que comprende una solicitud para una clave de programa de arranque especifica del servidor (Ks_NAF) . El procedimiento también comprende determinar un identificador del servidor (NAF-Id) y una credencial de seguridad. Además, el procedimiento comprende generar la clave de programa de arranque especifica del servidor (Ks_NAF) basada en el identificador del servidor (NAF-Id) y generar una clave de programa de arranque especifica de código externo (Ks_js_NAF) usando la clave de programa de arranque especifica del servidor (Ks_NAF) y la credencial de seguridad. El procedimiento también comprende usar la clave de programa de arranque especifica de código externo (Ks_js_NAF) para el mecanismo de seguridad del código externo .
MX2014005223A 2011-10-31 2011-10-31 Mecanismo de seguridad para codigo externo. MX2014005223A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FI2011/050953 WO2013064716A1 (en) 2011-10-31 2011-10-31 Security mechanism for external code

Publications (1)

Publication Number Publication Date
MX2014005223A true MX2014005223A (es) 2014-09-01

Family

ID=48191420

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2014005223A MX2014005223A (es) 2011-10-31 2011-10-31 Mecanismo de seguridad para codigo externo.

Country Status (18)

Country Link
US (1) US20150163669A1 (es)
EP (1) EP2774068A4 (es)
JP (1) JP2015501613A (es)
KR (1) KR20140095523A (es)
CN (1) CN104011730A (es)
AP (1) AP3955A (es)
AU (1) AU2011380272A1 (es)
BR (1) BR112014010472A2 (es)
CA (1) CA2853867A1 (es)
IL (1) IL232374A0 (es)
IN (1) IN2014CN03915A (es)
MX (1) MX2014005223A (es)
PH (1) PH12014500964A1 (es)
RU (1) RU2582863C2 (es)
SG (1) SG11201401950PA (es)
UA (1) UA108957C2 (es)
WO (1) WO2013064716A1 (es)
ZA (1) ZA201403900B (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014067543A1 (en) * 2012-10-29 2014-05-08 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for securing a connection in a communications network
US9253185B2 (en) * 2012-12-12 2016-02-02 Nokia Technologies Oy Cloud centric application trust validation
CN104348801B (zh) * 2013-07-31 2018-05-04 华为技术有限公司 认证方法、生成信任状的方法及相关装置
WO2015057116A1 (en) * 2013-10-15 2015-04-23 Telefonaktiebolaget L M Ericsson (Publ) Establishing a secure connection between a master device and a slave device
CN105814834B (zh) 2013-12-20 2019-12-20 诺基亚技术有限公司 用于公共云应用的基于推送的信任模型
US9736686B2 (en) * 2015-01-19 2017-08-15 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for direct communication key establishment
CN106487501B (zh) * 2015-08-27 2020-12-08 华为技术有限公司 密钥分发和接收方法、密钥管理中心、第一和第二网元
US10129235B2 (en) 2015-10-16 2018-11-13 Qualcomm Incorporated Key hierarchy for network slicing
CN108702615B (zh) * 2016-02-12 2022-08-05 瑞典爱立信有限公司 保护接口以及用于建立安全通信链路的过程
EP3718330B1 (en) * 2017-11-29 2024-09-25 Telefonaktiebolaget LM Ericsson (publ) Session key establishment
FR3077175A1 (fr) * 2018-01-19 2019-07-26 Orange Technique de determination d'une cle destinee a securiser une communication entre un equipement utilisateur et un serveur applicatif
CN110831002B (zh) * 2018-08-10 2021-12-03 华为技术有限公司 一种密钥推演的方法、装置及计算存储介质
US20220086632A1 (en) * 2019-01-14 2022-03-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for security
CN113015159B (zh) * 2019-12-03 2023-05-09 中国移动通信有限公司研究院 初始安全配置方法、安全模块及终端
US12500744B2 (en) * 2021-09-17 2025-12-16 Qualcomm Incorporated Securing application communication

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558957B2 (en) * 2005-04-18 2009-07-07 Alcatel-Lucent Usa Inc. Providing fresh session keys
CN100379315C (zh) * 2005-06-21 2008-04-02 华为技术有限公司 对用户终端进行鉴权的方法
CN1929370A (zh) * 2005-09-05 2007-03-14 华为技术有限公司 用户接入认证代理时确定认证使用的密钥的方法及系统
US20070101122A1 (en) * 2005-09-23 2007-05-03 Yile Guo Method and apparatus for securely generating application session keys
US20070086590A1 (en) * 2005-10-13 2007-04-19 Rolf Blom Method and apparatus for establishing a security association
US8522025B2 (en) * 2006-03-28 2013-08-27 Nokia Corporation Authenticating an application
CN103001940A (zh) * 2007-10-05 2013-03-27 交互数字技术公司 由wtru使用的用于建立安全本地密钥的方法
WO2009070075A1 (en) * 2007-11-30 2009-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Key management for secure communication
EP2399376A1 (en) * 2009-02-18 2011-12-28 Telefonaktiebolaget L M Ericsson (publ) User authentication
CN102379114B (zh) * 2009-04-01 2015-10-07 瑞典爱立信有限公司 基于ims的多媒体广播和多播服务(mbms)中的安全密钥管理
RU101231U1 (ru) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" Система управления безопасностью мобильного вычислительного устройства
EP2695410B1 (en) * 2011-04-01 2017-04-19 Telefonaktiebolaget LM Ericsson (publ) Methods and apparatuses for avoiding damage in network attacks

Also Published As

Publication number Publication date
AU2011380272A1 (en) 2014-05-22
EP2774068A4 (en) 2015-08-05
US20150163669A1 (en) 2015-06-11
WO2013064716A1 (en) 2013-05-10
BR112014010472A2 (pt) 2017-04-18
AP2014007624A0 (en) 2014-05-31
EP2774068A1 (en) 2014-09-10
SG11201401950PA (en) 2014-09-26
RU2582863C2 (ru) 2016-04-27
IL232374A0 (en) 2014-06-30
RU2014118918A (ru) 2015-12-10
JP2015501613A (ja) 2015-01-15
KR20140095523A (ko) 2014-08-01
IN2014CN03915A (es) 2015-10-16
CN104011730A (zh) 2014-08-27
AP3955A (en) 2016-12-22
UA108957C2 (uk) 2015-06-25
CA2853867A1 (en) 2013-05-10
PH12014500964A1 (en) 2014-06-30
ZA201403900B (en) 2017-05-31

Similar Documents

Publication Publication Date Title
RU2582863C2 (ru) Механизм обеспечения безопасности для внешнего кода
US10223520B2 (en) System and method for integrating two-factor authentication in a device
CN103004244B (zh) 结合Web应用和网页的通用引导架构使用
US8869252B2 (en) Methods, apparatuses, and computer program products for bootstrapping device and user authentication
US8606234B2 (en) Methods and apparatus for provisioning devices with secrets
CN111327583B (zh) 一种身份认证方法、智能设备及认证服务器
US8943321B2 (en) User identity management for permitting interworking of a bootstrapping architecture and a shared identity service
US20090271847A1 (en) Methods, Apparatuses, and Computer Program Products for Providing a Single Service Sign-On
US20110264913A1 (en) Method and apparatus for interworking with single sign-on authentication architecture
US9491624B2 (en) Public key cryptography for applications requiring generic bootstrap architecture
CN103733591B (zh) 将可移除模块绑定到接入终端
CN111343170A (zh) 电子签约方法及系统
US11570620B2 (en) Network profile anti-spoofing on wireless gateways
CN109286933B (zh) 认证方法、装置、系统、计算机设备和存储介质
US8091122B2 (en) Computer program product, apparatus and method for secure HTTP digest response verification and integrity protection in a mobile terminal
Rath et al. Encryption-based second authentication factor solutions for qualified server-side signature creation
EP3790225B1 (en) Securing user inputs in mobile device
CN101317181B (zh) 用于移动终端中安全鉴权响应的设备以及方法
KR101046102B1 (ko) 악성 코드 처리 방법 및 이를 위한 장치 및 시스템
Bourdoucen Securing Communication Channels in IoT using an Android Smart Phone
TWI454121B (zh) 安全連線式動態密碼產生方法
WO2022027673A1 (zh) 一种通用引导架构中算法协商方法及相关装置
CN108684034A (zh) 数据传输方法及装置

Legal Events

Date Code Title Description
GB Transfer or rights

Owner name: NOKIA TECHNOLOGIES OY

FA Abandonment or withdrawal