Come funziona TLS su NFC?

3

Sto leggendo su NFC e su come la sua sicurezza possa essere migliorata. Ho letto da qualche parte che è possibile utilizzare TLS su NFC. Purtroppo, non riesco a trovare ulteriori informazioni su tale argomento.

Come funziona TLS su NFC? È qualcosa di standardizzato?

    
posta Joly 10.08.2016 - 09:28
fonte

1 risposta

1

standardizzato? Bene, questo dipende; ci sono molti standard coinvolti.

In modo divertente, qualcuno ha, infatti, ottenuto che l'IP venisse eseguito su NFC (sia UDP sotto forma di richieste DNS, sia TCP sotto forma di - avete indovinato - HTTPS)! I socket su NFC su Android sul blog di classycode.com elenca come in modo più dettagliato.

Il loro codice è su github con una licenza Apache 2.0.

I punti salienti includono:

Nel nostro caso, vogliamo scambiare questi messaggi su NFC, usando gli APDU ISO / IEC 7816-4, tra uno smartphone Android (il client socket) che supporta l'emulazione della scheda host e un lettore NFC connesso a Internet (la presa fornitore)

...

Il socket provider è un RaspberryPi con un lettore basato su PN532 collegato tramite SPI. È connesso ad internet tramite Wi-Fi. Questo si è rivelato un ottimo set per giocare con NFC. Per istruzioni brevi su come far funzionare la configurazione, vedi il mio ultimo post sul blog.

...

L'applicazione è scritta in C e usa libnfc per accedere al lettore NFC. Non ha altre dipendenze ed è abbastanza compatto. Consiste di tre moduli:

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.

...

Ora che abbiamo un provider che espone i socket tramite APDU, come lo usiamo su Android? Possiamo sfruttare un paio di cose utili:

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.

...

Abbiamo scelto okhttp come libreria client HTTP poiché HttpURLConnection di Android non fornisce un mezzo per fornire istanze SocketFactory alternative per ogni connessione. Disattiviamo anche i timeout poiché il nostro NFCSocket non li supporta ancora.

...

Android / Java non fornisce un modo per sovrascrivere la ricerca DNS, ma fortunatamente per noi, okhttp consente il DNS collegabile tramite l'interfaccia Dns:

...

Ovviamente non vogliamo scrivere il nostro client DNS, quindi usiamo invece la libreria MiniDNS.

...

L'Università di tecnologia di Graz offre un JSSE puramente Java con licenza commerciale chiamato iSaSiLk che è liberamente disponibile per progetti Open Source. Un ringraziamento speciale a Dieter Bratko per avermi fornito supporto per iSaSiLk!

...

Successo! Abbiamo scaricato la prima pagina di Hacker News tramite NFC, in modo sicuro, incluso il foglio di stile e le risorse di immagine in poco più di 30 secondi. Che è un'eternità, naturalmente.

Con un Google Pixel e il chip del lettore PN532, otteniamo una larghezza di banda di circa 1,5 KB / s. Sì, puoi navigare sul Web con questo. Puoi anche farlo in modo sicuro. Ma non ti piacerà.

    
risposta data 14.01.2018 - 08:34
fonte

Leggi altre domande sui tag