¿Cómo funciona TLS sobre NFC?

3

Estoy leyendo sobre NFC y sobre cómo se puede mejorar su seguridad. Leí en alguna parte que es posible usar TLS sobre NFC. Desafortunadamente, no puedo encontrar más información sobre ese tema.

¿Cómo funciona TLS sobre NFC? ¿Es algo estandarizado?

    
pregunta Joly 10.08.2016 - 09:28
fuente

1 respuesta

1

Estandarizado? Bueno eso depende; Hay muchos estándares involucrados.

¡Sorprendentemente, alguien consiguió, de hecho, que IP se ejecutara sobre NFC (tanto UDP en forma de solicitudes de DNS como TCP en la forma de - lo has adivinado - HTTPS)! Enchufes sobre NFC en Android en el blog classycode.com enumera más detalladamente. / p>

Su código es en github con una licencia de Apache 2.0.

Los puntos destacados incluyen:

En nuestro caso, queremos intercambiar estos mensajes a través de NFC, utilizando las APDU ISO / IEC 7816–4, entre un teléfono inteligente Android (el cliente de socket) que admite la Emulación de tarjeta de host y un lector NFC conectado a Internet (el socket proveedor)

...

El proveedor de socket es un RaspberryPi con un lector basado en PN532 conectado a través de SPI. Está conectado a internet vía wifi. Esto resultó ser una gran configuración para jugar con NFC. Para obtener instrucciones breves sobre cómo hacer que la configuración funcione, consulte la última publicación de mi blog.

...

La aplicación está escrita en C y usa libnfc para acceder al lector NFC. No tiene otras dependencias, y es bastante compacto. Consta de tres módulos:

pn532_socket_tunnel.c
Manages device connection, handles incoming messages.
socket_infos.c
Encapsulates the application’s state in a fixed-size table of socket infos, i.e. open file descriptors, pending read/write results, statistics.
messages.c
Parses incoming messages and assembles outgoing messages.

...

Ahora que tenemos un proveedor que expone sockets a través de APDU, ¿cómo lo usamos en Android? Podemos aprovechar un par de cosas útiles:

java.net.Socket can be subclassed, so we can provide a NFCSocket implementation that overrides the default behavior.
javax.net.SocketFactory is a facility for providing custom socket implementations.

...

Elegimos okhttp como biblioteca del Cliente HTTP, ya que la conexión HttpURLConnection de Android no proporciona un medio para proporcionar instancias alternativas de SocketFactory por conexión. También deshabilitamos los tiempos de espera ya que nuestro NFCSocket todavía no los admite.

...

Android / Java no proporciona una forma de anular la búsqueda de DNS, pero afortunadamente para nosotros, okhttp permite DNS conectable a través de la interfaz Dns:

...

Por supuesto, no queremos escribir nuestro propio cliente DNS, por lo que simplemente usamos la biblioteca MiniDNS en su lugar.

...

La Universidad de Tecnología de Graz ofrece un JSSE de Java puro con licencia comercial, llamado iSaSiLk, que está disponible de forma gratuita para proyectos de código abierto. Un agradecimiento especial a Dieter Bratko por brindarme apoyo para iSaSiLk!

...

¡Éxito! Hemos descargado la página principal de Hacker News a través de NFC, de forma segura, incluyendo la hoja de estilos y los recursos de imagen en poco más de 30 segundos. Lo cual es una eternidad, por supuesto.

Con un Google Pixel y el chip lector PN532, obtenemos un ancho de banda miserable de alrededor de 1.5 KB / s. Sí, puedes navegar por la web con esto. Incluso puedes hacerlo de forma segura. Pero no lo disfrutarás.

    
respondido por el Anti-weakpasswords 14.01.2018 - 08:34
fuente

Lea otras preguntas en las etiquetas