Protezione del codice QR, Eddystone e NFC contro lo spoofing

2

Diciamo che ho il seguente scenario. Ho QR Code, Eddystone e / o NFC che contiene l'indirizzo IP, con il quale, la mia applicazione lato client comunica. Diciamo che questo indirizzo IP può variare da utente a utente (o diciamo da entità a entità, può essere più utenti). C'è un modo per proteggere questi "titolari di dati" (QR Code, Eddystone e / o NFC) dallo spoofing, cioè un utente malintenzionato non sarà in grado di sostituire il mio codice QR con il proprio, senza che la mia applicazione lo noti?

Limiti dimensioni

  • Eddystone - 17 byte (tutti usati: - /)
  • Codice QR - 4.296 caratteri (+ - 60 usati)
  • NFC - 125 byte (+ - 60 usati)

Ogni indirizzo IP può avere il proprio certificato che non conosco in anticipo. Il server è mio ma il certificato può essere sostituito da admin che non controllo.

    
posta Dávid Kaya 28.03.2017 - 09:39
fonte

2 risposte

0

È possibile inserire una chiave pubblica nell'applicazione per verificare la firma relativa all'indirizzo IP.

  • Questa firma può essere inserita nel QR / Edystone / NFC se c'è spazio sufficiente per collocarla (i certificati ECC possono essere piccoli);
  • oppure potresti ospitare un servizio su questo IP rispondendo a una sfida (l'app fornisce un nonce, il servizio lo firma, quindi l'app controlla la firma);
  • oppure potresti fornire un servizio su HTTPS sull'indirizzo IP e controllare il certificato HTTPS con la nostra chiave pubblica.

Avrai anche bisogno di un modo per proteggere la chiave privata. Posso pensare a due soluzioni:

  • È possibile avere un modo per revocare le chiavi private distribuite con i servizi sull'indirizzo IP (ad esempio mediante l'aggiornamento dell'applicazione) nel caso in cui una chiave privata venga utilizzata in modo improprio o trapelata.
  • L'alternativa è fornire il servizio di firma da un servizio Web di tua proprietà in modo da poter garantire che la chiave privata non perda. Questo secondo schema funziona in questo modo: l'applicazione invia una richiesta al servizio, il servizio si autentica sul server e inoltra la richiesta, il server firma la richiesta e il servizio restituisce la firma all'applicazione.
risposta data 28.03.2017 - 10:03
fonte
0

I codici QR sono solo un modo per ottenere il testo dalla tua fotocamera, in modo che l'utente possa inviare qualsiasi cosa. Nulla impedirebbe all'utente di creare e scansionare un codice QR per inserire il testo desiderato.

Anche i codici QR si restringono rapidamente dai 4.296 caratteri massimi che hai citato quando usano una codifica di caratteri diversa (se hai bisogno di simboli) e vuoi che siano facili da scansionare (forse 300 caratteri sono più realistici a seconda di come li stai scansionando) .

Questo è un codice QR di carattere ish 2000 e penso che sia troppo piccolo per la maggior parte degli scanner per la scansione.

Quindic'èunpo'dispazioperincluderequalchesegretoconl'indirizzo,maquestoQRdovrebbeesseretenutonascostoperchéchiunqueloleggepotrebbeanchevederequelsegreto.PotrestiavereilcodiceQRcontenenteunURLcasualeprivatocheconsenteaunutentedicreareunapassword,quindichiederglidiusarequellapassworddaquelmomentoinpoi.

link

    
risposta data 28.03.2017 - 10:31
fonte

Leggi altre domande sui tag