¿Cómo puede funcionar la identificación en línea de la "memoria USB"?

70

Mi banco ha renovado recientemente su sitio web, y ha cambiado para mejor en lo que a mí respecta. Especialmente, la seguridad parece haber sido mejorada dramáticamente.

Lo más importante es que introdujeron un método de identificación bastante inusual (nunca lo había visto antes), al que llaman "certificado electrónico". Básicamente, tienes que ir al banco en persona y el tipo te da una memoria USB pequeña y barata con una capacidad muy baja. Desde este punto, se le pedirá que conecte el stick en su computadora cada vez que quiera iniciar sesión. El stick solo no es suficiente, también tiene que escribir su contraseña, básicamente, autenticación de 2 factores con un dispositivo USB siendo el segundo factor.

¿Cómo puede funcionar esto? Por supuesto, creo que la memoria USB contiene certificados / claves de cifrado de algún tipo, que se utilizan en el proceso de inicio de sesión, pero no requieren que el usuario para instalar cualquier software en la máquina. Me parece bastante espeluznante que un sitio web al que se acceda desde un explorador de arena, sin ningún complemento / módulo / aplicación / barra de herramientas instalado, pueda ver la memoria USB que acaba de conectar. Y no solo ver esta clave, pero léala y use su contenido con la suficiente profundidad para iniciar sesión en el nivel más confidencial de su aplicación de banca en línea.

Para empezar, no soy un gran fanático de conectar dispositivos desconocidos a mi computadora, y mi luz de advertencia se encendió cuando me lo explicaron, así que opté por otro método de identificación (puede elegir). Solo tengo curiosidad.

PS: la medida obviamente no se aplica a sus aplicaciones móviles, ya que los teléfonos inteligentes no tienen puertos USB, pero eso no es un gran problema porque no se puede hacer mucho con su aplicación de teléfono (es principalmente una aplicación de consulta, no es algo que Realmente puede hacer grandes pagos / transferencias con).

Editar: no se utiliza un cuadro de diálogo de abrir archivo, lo que dejaría la explicación bastante clara.

    
pregunta Zozor 06.01.2017 - 09:11
fuente

9 respuestas

63

Lo que su banco le dio es un token de seguridad USB con un certificado digital ( como estos ). Estos son dispositivos de hardware estandarizados que casi todos los sistemas operativos admiten plug & play out of the box. Son muy comunes para implementar la autenticación multifactor en sistemas de alta seguridad en TI empresarial.

Su navegador web utiliza HTTPS con certificados basados en el cliente para acceder al sitio web de su banco. Utiliza el almacén de certificados de su sistema operativo para encontrar un certificado instalado que coincida con la identidad que solicita el servidor web. Cuando tiene un token de seguridad USB estándar instalado, el sistema operativo también buscará cualquier certificado en el token.

El sistema operativo no puede hacer el proceso de verificación con el servidor web por sí mismo, porque el token no permite leer la clave privada de los certificados almacenados en él directamente. El token incluye el hardware para realizar la verificación. Así que la clave privada nunca deja la memoria USB. Eso significa que incluso si su PC se ve afectada por el malware, la clave privada del certificado no está en peligro de ser robada (pero tenga en cuenta que este método no proporciona ninguna protección después de que la autenticación fue exitosa). su navegador web).

Por cierto: ¿Qué banco es ese? Si mi banco también fuera compatible con este método de autenticación, podría incluso comenzar a hacer banca en línea.

    
respondido por el Philipp 06.01.2017 - 15:50
fuente
30

Una forma en que podría funcionar es que Chrome es compatible con FIDO U2F sin complemento. Dado que ahora Chrome es ahora el navegador más popular y que Chrome se ejecuta en Windows, Mac y Linux, no es totalmente incorrecto afirmar que "funciona en cualquier dispositivo que tenga un puerto USB, Windows, Mac, Linux y más, y para trabajar fuera de la caja ".

¿Afirmaron que funciona en cualquier navegador o simplemente en cualquier sistema operativo?

    
respondido por el Lie Ryan 06.01.2017 - 12:08
fuente
27
  

.... no requieren que el usuario instale ningún software en la máquina ...   Pensé que la capacidad de una página web para navegar libremente por el sistema de archivos sin la acción del usuario está demasiado restringida por defecto

Sí, eso definitivamente no debería ser posible sin los controladores de tarjetas inteligentes. Este es un mecanismo de seguridad fundamental de cualquier navegador. ¿Qué indica que se lee el certificado sin hacer clic en el cuadro de diálogo "abrir archivo", en el cuadro de diálogo de Java o en los controladores de instalación previa? Dijiste que elegiste otra opción de verificación.

Esto suena como la llave USB utilizada, por ejemplo, por el Banco de China. Dicha tecnología se describe aquí.

  Se dijo que

es compatible con "cualquier dispositivo que tenga un puerto USB"

Tener un certificado PKCS # 11, o un # 12 para combinar con una frase de contraseña funcionará en todos los sistemas operativos. Esta es la misma forma en que los administradores de contraseñas trabajan con keepass, combinando algo que sabes con algo que tienes para obtener 2 factores de autenticación.

    
respondido por el J.A.K. 06.01.2017 - 09:56
fuente
13

Probablemente solo sea un lector de tarjetas inteligentes USB, con una tarjeta inteligente de tamaño SIM insertada.

La instalación manual de controladores no es necesaria ya que al menos los controladores genéricos para el lector y la tarjeta ya están instalados en la mayoría de los sistemas operativos modernos.

Vea la imagen a continuación para ver un ejemplo de tal dispositivo:

Hay un certificado con clave privada almacenada en esa tarjeta inteligente SIM dentro del lector. Cuando lo conecta a la computadora, el certificado de la tarjeta inteligente se carga en el almacén de certificados del sistema operativo. A partir de ahí, se comporta básicamente como cualquier otro certificado que se guarda en la computadora y se puede usar para acceder a recursos seguros, firmar documentos / correo, cifrar cosas, etc.

Este en particular es emitido por la Autoridad de Certificación en la que confían mi banco (banca web) y el Estado (la mayoría de los cuales uso para el IRS y para solicitar documentos reales).

    
respondido por el user2720406 06.01.2017 - 16:56
fuente
11

Es muy probable que sea un dispositivo que se hace pasar por un teclado y, por lo tanto, cualquier sistema operativo lo reconozca sin necesidad de controladores especiales. Internamente, probablemente usaría HOTP (o TOTP, si tuviera un chip RTC y una batería) y simplemente "escriba" la OTP cada vez que se presiona el botón, como a Yubikey o dispositivo U2F similar.

El navegador no habla ni sabe que el USB está ahí; simplemente le indica al usuario que presione un botón físico en el dispositivo (para indicar al dispositivo que "escriba" el código, ya que el navegador no puede hablar con él) y luego interpreta las pulsaciones de teclado (hasta la longitud del código) se recibe como proveniente del dispositivo.

    
respondido por el André Borie 06.01.2017 - 10:42
fuente
9

Suena como una idea teórica que tuve hace una década.

Casi todos los sistemas operativos admiten dispositivos de red USB. Su memoria USB puede simular ser una tarjeta de red, conectada a una red local, con un servidor web en esa red también. Ese servidor web también puede tener certificados HTTPS.

Su navegador web puede realizar solicitudes HTTPS a ese servidor web y descubrir que la memoria USB y el sitio web del banco confían entre sí. Esto no se considera un escape de sandbox, porque ni el navegador ni el sistema operativo saben que el servidor web está realmente en la memoria USB.

Advertencia de IP: a mi entender, mi ex empleador tiene una patente sobre esta idea en la mayoría de las jurisdicciones. Póngase en contacto con un abogado de patentes antes de copiar esta idea.

    
respondido por el MSalters 06.01.2017 - 14:08
fuente
6

En primer lugar, permítame decirle que soy bastante escéptico ante la afirmación de un empleado no técnico de que funciona en "cualquier dispositivo que tenga un puerto USB", independientemente del navegador o sistema operativo. No me sorprendería si el sistema operativo compatible resultara ser solo un par de versiones de Windows (y, tal vez, MacOS). Sin embargo, es interesante pensar cómo podría funcionar un dispositivo de este tipo.

La mayoría de las soluciones que no requieren controladores, como la propuesta de André Borie de un teclado USB, requerirían sin embargo alguna interfaz adicional (como un botón de hardware).

Aún así, la publicación del usuario 2720406 me dio una idea para un dispositivo que de hecho funcionaría [en ciertos lugares] para cualquier dispositivo [encendido] que tenga un puerto USB:

El dispositivo usb simplemente contendría una SIM card , y la usará para acceder a Internet por su cuenta a través de GPRS / 3G. Entonces, el dispositivo simplemente enviaría mensajes firmados digitalmente de «El cliente con el token 12312121 está utilizando la banca en línea». La sesión en línea no está permitida a menos que se haya recibido una en los últimos 5 minutos (además de otros factores, como la IP del cliente que tiene una geolocalización similar a la IP del dispositivo). Por lo tanto, el puerto usb solo se usaría para energía, y el dispositivo será completamente independiente de lo que está instalado en la computadora.

    
respondido por el Ángel 06.01.2017 - 18:52
fuente
6

Como se menciona en algunas de las otras respuestas, es probable que se trate de un token de seguridad USB. Piense en ello como un lector de tarjetas inteligentes + una tarjeta inteligente incorporada (y algunas veces se implementan de esta manera). Piense en la tarjeta CAC utilizada por las organizaciones de defensa de EE. UU. Piensa en la tarjeta PGP. Algunos modelos de Yubikey también admiten que actúen como una tarjeta inteligente.

Este tipo de dispositivos es ampliamente utilizado por los bancos en China para proteger su sitio web de banca en línea / software de cliente de escritorio, y mi respuesta se basa principalmente en mi experiencia personal al usar estos tokens en China.

¿Cómo lo usas?

Cuando se registra en la banca en línea y opta por un token USB, el banco le entrega el token, crea un par de claves pública / privada y su certificado personal, y los carga en el token. Establece una contraseña en el token, que es independiente de su contraseña de inicio de sesión de banca en línea.

Instala el controlador provisto por el banco en su computadora personal, conecta el token y navega hasta el sitio web del banco. Cada vez que inicie sesión o realice una operación confidencial (transferir fondos, cambiar información de contacto, autorizar compras en línea, etc.), el navegador / sistema operativo le solicitará su contraseña de token, la luz del token parpadeará durante unos segundos y la transacción pasa por.

Espera, ¿tengo que instalar los controladores?

Sí. El sistema operativo Windows tiene una interfaz de tarjeta inteligente estándar, pero cada modelo de token USB todavía requiere un controlador. Muy raramente, Windows Update instalará los controladores correctos para usted, pero en la mayoría de los casos tendrá que descargar un paquete del sitio web del banco.

A menudo, el único sistema operativo compatible es Windows, y el único navegador compatible es IE. (Les gustan algunos ActiveX). Es ciertamente posible en general que las tarjetas inteligentes / tokens USB sean compatibles con otros sistemas operativos / navegadores, vea la tarjeta CAC arriba; tienes que verificar la compatibilidad con tu propio banco.

Entonces, ¿cómo te autentica?

El navegador le pide al sistema operativo que le pida al token que firme un pequeño dato (tal vez los detalles de su transacción). El token lo firma, utilizando su clave privada y certificado. El navegador envía la firma al banco. El banco verifica la firma y está convencido de que solo el token que le dieron tiene la clave privada para producir esta firma.

La clave privada nunca deja el token. Si se diseñó correctamente, el token nunca debe divulgar la clave privada.

    
respondido por el twisteroid ambassador 07.01.2017 - 10:04
fuente
1

Esto suena como un Yubikey. Son bien conocidos y funcionan muy bien. enlace

  • En cuanto a no necesitar controladores: el Yubikey se identifica a sí mismo como un teclado para que cualquier máquina con un controlador de teclado pueda leer la salida de texto de él.
  • Cómo funciona: presiona el botón y Yubikey emite una clave pública (desde una clave privada segura incrustada en el dispositivo). El banco puede entonces autenticarse y confirmar que tiene lo que sabe (su contraseña) y lo que tienes (tu seguro privado privado) clave).
  • Por qué es seguro: no es posible que el software en su computadora para obtener acceso a su clave privada para que el malware no pueda copiar el Clave y pretende ser tú. Tendría que ser físicamente robado de usted. (lo cual es posible, pero es por eso que lo combinas con algo que sabes)

  • Quién los usa y por qué: Google ayudó a diseñar el yubikey para que pudieran Resuelve el problema del malware en una computadora que toma credenciales locales. mientras el usuario no estaba presente. Cada ingeniero de Google tiene uno. He Las usé durante años y desplegé numerosas soluciones 2fa a su alrededor.

respondido por el jorfus 06.01.2017 - 23:44
fuente

Lea otras preguntas en las etiquetas