IT201900015701A1 - Computer-implemented method and system for secure identification of disconnected objects and their locations. - Google Patents

Computer-implemented method and system for secure identification of disconnected objects and their locations. Download PDF

Info

Publication number
IT201900015701A1
IT201900015701A1 IT102019000015701A IT201900015701A IT201900015701A1 IT 201900015701 A1 IT201900015701 A1 IT 201900015701A1 IT 102019000015701 A IT102019000015701 A IT 102019000015701A IT 201900015701 A IT201900015701 A IT 201900015701A IT 201900015701 A1 IT201900015701 A1 IT 201900015701A1
Authority
IT
Italy
Prior art keywords
enrollment
generation
user
string
code
Prior art date
Application number
IT102019000015701A
Other languages
English (en)
Inventor
Angelo Colesanto
Fabio Melen
Original Assignee
Foodea Lab S R L
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 Foodea Lab S R L filed Critical Foodea Lab S R L
Priority to IT102019000015701A priority Critical patent/IT201900015701A1/it
Priority to EP20768407.7A priority patent/EP4026026A1/en
Priority to JP2022513575A priority patent/JP2022547829A/ja
Priority to CA3148324A priority patent/CA3148324A1/en
Priority to PCT/IB2020/058245 priority patent/WO2021044356A1/en
Priority to US17/639,513 priority patent/US11985120B2/en
Priority to CN202080064363.5A priority patent/CN114424496B/zh
Publication of IT201900015701A1 publication Critical patent/IT201900015701A1/it

Links

Classifications

    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/61Time-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/77Graphical identity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Description

Descrizione dell’invenzione industriale dal titolo:
“METODO INFORMATICO E SISTEMA PER L’IDENTIFICAZIONE SICURA E LA LOCALIZZAZIONE DI OGGETTI DISCONNESSI”
DESCRIZIONE
CAMPO DELLA TECNICA
La presente invenzione riguarda un metodo informatizzato e il sistema per l’identificazione sicura di oggetti disconnessi e della loro posizione, basato su codici grafici (o multidimensionali) implementati con tecnologia OTP.
STATO DELLA TECNICA
Le tecnologie basate su One-Time (OTP) sono ben note per l’autenticazione sicura di identità digitali al fine di accedere a un server o in generale a una rete privata.
Esistono tecniche per fornire accesso alle reti private attraverso reti pubbliche e per fornire trasmissioni sicure e cifrate di messaggi e dati tra dispositivi di utenti e la rete privata attraverso la rete pubblica.
La rete privata può essere configurata per prevenire accessi di utenti non autorizzati e consentire solo agli utenti autorizzati di accedere alla rete privata e/o a informazioni conservate nella rete privata. Il riconoscimento di questi utenti autorizzati tipicamente si basa sulla verifica dell’identità dell’utente, ad esempio, autenticando l’utente sulla rete. Tipicamente, a un utente può essere chiesto di fornire username e OTP (opzionalmente combinato con una password o un PIN) al fine di autenticare l’utente e accedere alla rete privata.
Inoltre, codici multidimensionali (come i QRcode) sono largamente utilizzati per connessioni o attivazioni di processi offline (non connessi) per applicazioni su apparati in mobilità e sono tipicamente valori statici o etichette/cartellini posizionati in un posto specifico e connessi a una funzionalità (si veda fig.2) per esempio per attivare una funzione. A causa della natura statica dei codici multidimensionali, la sicurezza delle implementazioni basate su queste tecnologie può essere messa a rischio quando si attivano processi critici. Un potenziale attaccante può provare a indovinare i codici e attivare il sistema da remoto o fotografare il codice e usarlo successivamente, attivando procedure non previste.
Per garantire la sicurezza, il codice multidimensionale dovrebbe essere cambiato con una certa frequenza, portando allo stesso paradigma delle password statiche.
Negli ultimi anni, la rapida crescita delle minacce in rete ha evidenziato le inadeguatezze delle password statiche come mezzo principale di autenticazione su Internet.
Le One Time Password sono certamente una delle più semplici e popolari forme di autenticazione a due-fattori per la sicurezza dell’accesso alla rete. Per esempio, nelle grandi aziende, gli accessi tramite Virtual Private Network spesso richiedono l’uso di token di One Time Password per l’autenticazione di utenti remoti. Le One Time Password sono spesso preferite perché non richiedono l’installazione di alcun software sulla macchina degli utenti, permettendo quindi a questi ultimi di usare più macchine, inclusi home computer, dispositivi e assistenti digitali personali.
Inoltre, nel processo ordinario gli OTP sono usati per processi di autenticazione forte dove l’OTP è generato da un dispositivo fisico o software come prova del possesso di un secondo fattore di autenticazione (qualcosa che l’utente ha) in aggiunta a credenziali statiche (es. username e password o PIN, qualcosa che l’utente conosce).
Come descritto nel diagramma di flusso in fig.1 cercando di autenticarsi in un’applicazione o in un sistema, in un primo passo, all’utente sono richieste le credenziali, quindi dopo averle fornite, il dispositivo OTP genera una stringa OTP e la visualizza all’utente. Quindi l’utente invia le credenziali e l’OTP all’applicazione/sistema che le verifica e, se sono valide, l’utente è autenticato alla prossima sessione sulla rete privata; se non sono valide, l’utente non è autenticato.
Oggigiorno il solo dispositivo OTP è usato solitamente come secondo fattore per sistemi di autenticazione forte e non può essere identificato se posizionato in una specifica posizione, o non può identificare un’identità associata o un oggetto posizionato in una specifica posizione. L’algoritmo di validazione dell’OTP richiede di conoscere in anticipo l’utente cui l’OTP è associato, diversamente l’algoritmo di verifica dovrebbe verificare l’OTP nei confronti di tutti i potenziali valori validi, ciò diventa assolutamente inefficiente (o impossibile) al crescere del numero degli utenti. In aggiunta, essendo l’OTP basato su algoritmi MAC/hash (in cui una stringa di dimensione ridotta è ottenuta dai valori originali forniti all’algoritmo) non possono essere escluse collisioni dei valori generati con OTP validi differenti, trasformandosi nell’impossibile determinazione della corrispondenza esatta. Ciò, allo stesso modo, porta al medesimo problema di identificazione della posizione del dispositivo stesso.
In aggiunta, i sistemi OTP basati sulla sincronizzazione temporale tra il server di autenticazione e il dispositivo utente che fornisce la one-time-password (l’OTP è valido solo per un periodo di tempo prefissato e generalmente conosciuto), sono più sicuri quanto minore è il tempo concesso per la validazione, in quanto questo riduce il tempo a disposizione di un potenziale attaccante per indovinare l’OTP. Al contrario, l’esperienza utente e il consumo di batterie per dispositivi disconnessi sono migliorati da un periodo di tempo più lungo, esponendo così il sistema a vulnerabilità di sicurezza.
In effetti sistemi OTP basati sul tempo sono tipicamente correlati a hardware (o implementazioni software equivalenti) chiamate token di sicurezza capaci di generare onetime password, ad es. un numero che cambia periodicamente. All’interno del token un orologio accurato è stato sincronizzato con l’orologio del sistema server di autenticazione cui appartiene. In questi sistemi OTP, il tempo è parte dell’algoritmo di generazione della password, poiché la generazione della nuova password è basata sul tempo corrente piuttosto che, o in aggiunta, alla password precedente o a una chiave segreta (anche conosciuta come seed, seme). Il token può essere un dispositivo proprietario, o un dispositivo mobile o similare o un dispositivo che esegue software proprietario, freeware o open-source. Un esempio di OTP a sincronizzazione temporale standard è il Timebased One-time Password Algorithm (TOTP).
Pertanto, è necessario affrontare le sfide di sicurezza sopra menzionate e migliorare il processo di autenticazione.
SCOPI DELL’INVENZIONE
Lo scopo primario della presente invenzione è di ottenere un metodo informatizzato capace di identificare e localizzare un dispositivo disconnesso se posizionato in una specifica posizione.
Un secondo scopo della presente invenzione è di rendere questa identificazione sicura e non vulnerabile ad attacchi malevoli, incrementando la sicurezza globale.
Un ulteriore scopo è di ottimizzare il metodo informatizzato al fine di ridurre il consumo di batteria del dispositivo che implementa il metodo durante la fase operativa.
Un ulteriore scopo della presente invenzione è di fornire al dispositivo che implementa il metodo informatizzato un metodo per ripristinarlo semplicemente se compromesso. Uno scopo della presente invenzione è anche ti mantenere semplice l’esperienza utente evitando di usare tecnologie non disponibili su ogni dispositivo mobile, per una larga e immediata adozione.
Il sistema dovrebbe essere implementato con semplicità su dispositivi mobili a basso costo richiedendo solo una videocamera e non necessitando di alcuna specifica tecnologia di prossimità come BLE (Blue Tooth Low Energy) o tecnologie contactless come (ad es.
NFC) o tecnologie similari.
BREVE DESCRIZIONE DELL’INVENZIONE
Conformemente al primo aspetto di questa invenzione relativa a un metodo informatico per l’identificazione sicura di dispositivi che sono stati associati a specifiche posizioni, permettendo così all’utente di attivare una procedura connessa alla specifica posizione dove il dispositivo è posizionato, essendo il detto dispositivo disconnesso da internet, comprende i seguenti passi:
-effettuare un processo di attivazione (enrollment) tramite un’applicazione in esecuzione su un dispositivo mobile al fine di associare i parametri dell’hardware del dispositivo alla specifica posizione e registrare e memorizzare questi dati su un’applicazione centralizzata (back-end) in esecuzione su un sistema centrale,
-generare e visualizzare sul dispositivo un codice grafico basato su OTP con una validità temporale limitata,
-acquisire da parte dell’utente tramite l’applicazione in esecuzione sul dispositivo mobile detto codice grafico, ottenendo così una prova di prossimità dell’utente alla specifica posizione dove il dispositivo è posizionato,
-attraverso l’applicazione e una connessione internet inviare il codice grafico acquisito all’applicazione di back-end in esecuzione sul sistema centrale
-verificare tramite l’applicazione di back-end in esecuzione sul sistema centrale, una volta convertito in una stringa di tipo OTP, se è validato o meno tramite un algoritmo di validazione per OTP.
- se il codice grafico ricevuto e basato su OTP è validato questo conferma la prossimità dell’utente alla specifica posizione dove il dispositivo è posizionato, la validazione del codice grafico consente così all’utente di attivare la procedura connessa alla specifica posizione.
Questo metodo informatizzato abilita l’identificazione sicura del dispositivo e della sua posizione, essendo detto dispositivo univocamente associato a una specifica posizione ed essendo disconnesso da internet, permettendo così all’utente di attivare, tramite il proprio dispositivo mobile una procedura connessa alla specifica posizione dove il dispositivo è posizionato.
Conformemente al secondo aspetto, la presente invenzione si riferisce al metodo informatizzato e comprende i seguenti processi:
- processo di enrollment (attivazione)
comprendente i seguenti passi eseguiti sul dispositivo:
generazione di un valore casuale per il tempo di attivazione (enrollment time) del dispositivo disconnesso e di un valore casuale per il seed (seme),
ottenere parametri identificativi dell’hardware del dispositivo (hardware ID), combinare i valori per ottenere una stringa di enrollment,
crittografare la stringa di enrollment
convertire la detta stringa di enrollment crittografata in un codice grafico visualizzare il codice grafico di enrollment
e comprende inoltre i seguenti passi eseguiti sul dispositivo mobile
acquisizione del detto codice grafico di enrollment
conversione di detto codice grafico di enrollment nella detta stringa di enrollment crittografata e invio di quest’ultima tramite connessione internet all’applicazione di back-end sul sistema centrale
acquisizione da parte dell'utente dei dati di posizione specifici del dispositivo e comprende inoltre i seguenti passi eseguiti dall’applicazione di back-end sul sistema centrale
ricezione e decifratura della detta stringa di enrollment crittografata
separazione dei valori di hardware ID, seed, enrollment time
calcolo del valore di differenza temporale (time difference), detto time difference ottenuto come differenza tra il tempo locale sul sistema centrale e l’enrollment time;
associazione e memorizzazione dei valori di hardware ID, seed, enrollment time, time difference e dei dati di posizione specifici del dispositivo
- processo di generazione (generation) in esecuzione sul dispositivo e comprendente i seguenti passi
generazione di una stringa generation OTP sulla base del seed e del tempo del dispositivo
combinazione della stringa generation OTP con il valore di hardware ID del dispositivo ottenendo una combined generation string,
cifratura della detta combined generation string ottenendo una encrypted combined generation string
creazione di un generation graphical code (codice grafico) corrispondente alla detta encrypted combined generation string;
- processo di validazione (validation)
comprendente i passi sul dispositivo mobile di
acquisizione di detto generation graphical code tramite l’applicazione in esecuzione sul dispositivo mobile
conversione di detto generation graphical code nella detta encrypted combined generation string e invio di quest’ultima attraverso connessione internet all’applicazione di back-end sul sistema centrale
e comprende inoltre i seguenti passi eseguiti sull’applicazione di back-end sul sistema centrale
ricezione e decifratura della detta encrypted combined generation string separazione dei valori di hardware ID, OTP generation string
recupero dei valori di time difference, seed, hardware ID e del tempo locale (local time) del sistema centrale
verifica che la OTP generation string sia validata usando un algoritmo di validazione di OTP fornendo come parametri di ingresso l’OTP generation string ricevuta, il seed e second time difference, dove detto second time difference è la differenza tra tempo locale sul sistema centrale e time difference, quindi se l’OTP generation string è validata, consente l’identificazione del dispositivo e conferma la sua posizione al tempo locale corrente del sistema centrale che corrisponde al generation time del dispositivo, quindi consente all’utente di attivare una procedura connessa alla posizione dove il dispositivo è stato posizionato al generation time del dispositivo che corrisponde al tempo locale del sistema centrale.
Questo abilita il dispositivo ad aumentare la durata della batteria e incrementare la sicurezza globale del Sistema; di fatto la finestra temporale dove opera il dispositivo (enrollment-time) è definita come un valore casuale durante il processo di enrollment e condivisa con l’applicazione di back-end.
Conformemente al terzo aspetto, questa invenzione si riferisce al metodo informatizzato comprendente i passi di generazione dell’enrollment control code (codice di controllo), che abilita il sistema centrale a verificare se per un dispositivo sia stato avviato un nuovo processo di enrollment inaspettato.
Conformemente al quarto aspetto, questa invenzione si riferisce al metodo informatizzato comprendente i passi per acquisire ulteriori dati dall’utente e per autenticare lo stesso, al fine di associare queste informazioni alle altre acquisite durante l’operazione del metodo. Conformemente al quinto aspetto, questa invenzione si riferisce al metodo informatizzato dove il codice grafico è un QR code o simile al fine di rendere il sistema facilmente implementabile su dispositivi a basso costo richiedendo solo una videocamera.
Conformemente al sesto e settimo aspetto, questa invenzione si riferisce al sistema e al dispositivo configurato per eseguire il metodo informatizzato divulgato consentendo così l’identificazione sicura di un dispositivo associato in una posizione specifica, consentendo quindi all’utente di attivare una procedura connessa alla posizione specifica in cui è posizionato il dispositivo.
Conformemente all’ottavo aspetto, questa invenzione si riferisce a un dispositivo con interruttore di ripristino per eseguire un ripristino del dispositivo, qualora il dispositivo fosse compromesso.
Conformemente all’ultimo aspetto, questa invenzione si riferisce all’uso di un metodo informatizzato in un locale dove si può ordinare cibo, dove il dispositivo è connesso a un tavolo o a una seduta del locale, quindi il dispositivo viene associate in modo univoco e accoppiato a detto tavolo o seduta in cui l’utente desidera effettuare un ordine, consentendo così all’utente, usando il proprio dispositivo mobile, di scansionare il codice grafico di generazione, che una volta validato, consente all’utente di accedere a un’applicazione di ordinazione che identifica il tavolo o la seduta in cui il cibo deve essere consegnato.
BREVE DESCRIZIONE DELLE FIGURE
Le caratteristiche strutturali e funzionali della presente invenzione e i suoi vantaggi rispetto alla tecnica nota precedentemente, diventeranno ancora più chiari dalle rivendicazioni sottostanti, e in particolare da un esame della seguente descrizione, fatta con riferimento alle figure allegate che mostrano una forma di realizzazione schematica preferita ma non limitata a questa, del metodo informatico inventato, del sistema e del dispositivo, in cui:
La Figura 1 illustra una generica struttura (framework) per l’autenticazione di un client su un server usando un OTP dello stato dell'arte di un metodo informatizzato;
La Figura 2 illustra una generica struttura (framework) per l’attivazione di funzioni usando codici multidimensionali (o grafici) dello stato dell'arte;
La Figura 3 illustra una struttura (framework) per l’identificazione di un dispositivo e della posizione del dispositivo in uno specifico posto usando il metodo informatizzato con codice grafico One Time della presente invenzione;
La Figura 4 illustra lo schema hardware del dispositivo usato nel metodo informatizzato della presente invenzione;
La Figura 5 illustra un diagramma di flusso dei passi della generazione del codice grafico del metodo informatico implementato secondo la presente invenzione;
La Figura 6 illustra un diagramma di flusso dei passi della validazione del codice grafico del metodo informatico implementato secondo la presente invenzione.
La Figura 7 illustra un diagramma di flusso dei passi del processo di attivazione (enrollment) del metodo informatico implementato secondo la presente invenzione. DESCRIZIONE DETTAGLIATA DELL’INVENZIONE
In generale, questa divulgazione descrive un metodo informatizzato, un sistema per identificare e autenticare un dispositivo a un sistema centrale usando una one-time password (OTP), in particolare usando codici grafici (preferibilmente QRcode o simili) di tipo One Time (usabili una sola volta), detto metodo informatizzato essendo in grado di identificare un dispositivo e localizzare il dispositivo in uno specifico posto.
Il dispositivo è configurato per generare codici grafici di tipo One Time almeno in parte comprendenti attributi del dispositivo. Gli attributi del dispositivo possono includere, ma non sono limitati a, impostazioni del dispositivo (sia software che hardware).
Generalmente, gli attributi del dispositivo sono tipicamente specifici dello stesso e non possono essere duplicati su altri dispositivi.
Il sistema conformemente alla presente invenzione comprende un dispositivo fisicamente connesso a un oggetto in una precisa posizione o generalmente posizionato in una specifica posizione, un sistema centrale configurato per identificare il dispositivo e la sua posizione e un dispositivo mobile.
In merito al metodo informatizzato della presente invenzione il dispositivo che implementa parte del metodo informatizzato, al primo avvio, necessita un di processo di attivazione (enrollment, il processo di enrollment sarà spiegato di seguito), consentendo al dispositivo di essere assegnato a un oggetto cui il dispositivo è fisicamente connesso o a una posizione dove il dispositivo è rispettivamente posizionato.
Dopo che il processo di enrollment è stato effettuato, il metodo informatico secondo la presente invenzione, come mostrato in Figura 3, può essere avviato con un utente preventivamente autenticato (se richiesto dall’applicazione, può essere opzionale). Quindi detto utente vuole attivare una procedura connessa a un oggetto o una posizione dove il dispositivo è posizionato (essendo detto oggetto o posizione conosciuto al sistema centrale della presente invenzione).
Successivamente il dispositivo genera codici grafici, per esempio QRcode o simili, detti codici grafici con durata temporale limitata al fine di fornire una prova di prossimità dell’utente a detto dispositivo mentre l’operazione desiderata sta avvenendo.
L’utente, una volta che il codice grafico è stato generato dal dispositivo, acquisisce il codice grafico, per esempio con la videocamera fornita dal proprio dispositivo mobile, come prova di prossimità e lo invia, tramite l’applicazione mobile in esecuzione sul dispositivo mobile, all’applicazione di back-end, in esecuzione sul sistema centrale, per verificare il codice grafico.
Successivamente, se il codice grafico è ritenuto valido, allora l’utente può interagire con l’oggetto/la posizione dove è fisicamente posizionato il dispositivo. Diversamente, se il codice grafico non è ritenuto valido, allora l’utente non potrà interagire con l’oggetto/la posizione dove è fisicamente posizionato il dispositivo.
Il codice grafico ha durata temporale limitata ed è univoco per lo specifico oggetto o la specifica posizione cui il dispositivo è fisicamente connesso o dove il dispositivo è effettivamente e rispettivamente posizionato.
Come menzionato in precedenza il dispositivo necessità di essere accoppiato con un oggetto fisico o una posizione.
L’associazione di un oggetto o una posizione è effettuata durante il processo di enrollment, quindi implementata nel sistema della presente invenzione.
Il dispositivo genera tutte le informazioni richieste e le fornisce al sistema centrale in forma di codice grafico di enrollment, che è letto dall’applicazione in esecuzione sul dispositivo mobile e inviato al sistema centrale.
Il processo di enrollment, che non richiede connettività di rete per operare, permette al dispositivo di essere associato a un oggetto o una posizione nel sistema inventato e rappresentato in fig.7 e comprende i seguenti passi:
- il dispositivo calcola:
- un hardware-id univoco, basato sull’hardware del dispositivo e immutabile finché l’hardware è lo stesso, anche se viene effettuato un nuovo processo di enrollment; - un valore casuale del seed per l’algoritmo di generazione OTP;
- un valore casuale del enrollment-time (tempo di avvio del processo di enrollment); - un valore casuale del control-code (può essere opzionale);
- il dispositivo memorizza localmente tutti valori precedentemente calcolati;
- il dispositivo combina tutti i valori precedentemente calcolati, ottenendo una enrollment string;
- il dispositivo cifra l’enrollment string con un algoritmo di crittografia asimmetrico, usando la public-key condivisa con il dispositivo durante l’assemblaggio o la configurazione iniziale, ottenendo l’encrypted enrollment string;
- il dispositivo converte l’encrypted enrollment string in codice grafico (graphical enrollment code);
- il dispositivo visualizza il graphical enrollment code;
- un utente, usando il dispositivo mobile, scansiona il graphical enrollment code;
- l’applicazione converte il graphical enrollment code nella stringa encrypted enrollment string e la invia all’applicazione di back-end sul sistema centrale;
- l’applicazione di back-end decifra l’encrypted enrollment string ed estrae, separandoli, i valori calcolati dal dispositivo;
- il valore ricevuto di control-code è usato come enrollment-control-code (può essere opzionale); - l’applicazione di back-end calcola il valore time-difference come differenza tra il tempo locale del sistema centrale e l’enrollment-time del dispositivo, condiviso durante il processo di enrollment;
- l’applicazione richiede all’utente di definire nome e parametri (names e parameters) da assegnare al dispositivo e i dati di posizione specifica del dispositivo (può essere opzionale);
- l’applicazione di back-end associa e memorizza i valori definiti per names e parameters ai valori calcolati dal dispositivo (può essere opzionale):
(names, parameters, device specific location data)�(hardware-id, seed, time-difference, enrollment-controlcode (può essere opzionale)).
Tutte i valori di date e orari nel presente documento sono rappresentati in formato epoch/unix (numero di secondi a partire dall’1/1/1970) sul fuso orario GMT. Anche se l’hardware-id può potenzialmente essere usato come seed, è sconsigliato di usarlo, così come ogni derivato dell’hardware poiché facili da indovinare, essendo tipicamente seriali o con intervalli assegnati per lo stesso produttore di hardware. Inoltre, usare hardware-id richiede che l’hardware sia sostituito qualora il seed sia compromesso. Per questa ragione, l’utilizzo di seed con valori casuali e completamente disconnessi dall’hardware assegnato è fortemente preferito, questo permette anche di creare un nuovo seed se il dispositivo fosse compromesso o riusato per un nuovo scopo.
Qualora il dispositivo fosse compromesso deve essere ripristinato a uno stato sicuro tramite un interruttore di ripristino. Ogni volta che il dispositivo viene ripristinato, il dispositivo crea un nuovo processo di enrollment, con un nuovo seed, generato come valore casuale e condiviso durante il processo di enrollment con il sistema centrale. Per quanto riguarda il processo di generazione (generation) del codice grafico effettuato dal dispositivo, di seguito è riportata una implementazione di riferimento (reference implementation) usando pseudocode (pseudocodice, da non intendersi come formalmente valido o come codice sorgente funzionante) come menzionato sotto, considerando che QuID sta per Quick Identifier (identificatore rapido) e corrisponde a ciò che è indicato in questa descrizione come codice grafico:
Il processo di generazione del codice grafico/QuID è effettuato sul dispositivo a intervalli regolari e comprende i seguenti passi:
- il dispositivo recupera i valori memorizzati di seed, hardware-id e control-code (può essere opzionale), definiti durante il processo di enrollment;
- il dispositivo recupera il valore del device-time; durante l’esecuzione, il valore di device-time è in realtà il valore casuale di enrollment-time, calcolato durante il processo di enrollment, più il tempo trascorso dalla generazione del valore (device-time = enrollment-time tempo di esecuzione del dispositivo in secondi);
- il dispositivo usa un algoritmo per la generazione di OTP per creare l’OTP generation string, basata su valore del seed e valore del device-time (tempo corrente del dispositivo); - il dispositivo combina l’OTP generation string con le altre informazioni statiche generate durante il processo di enrollment (hardware-id, control code (può essere opzionale)) creando la combined generation string;
- il dispositivo recupera la public-key (chiave pubblica), accoppiata alla private-key (chiave privata) dell’applicazione di back-end (in esecuzione sul sistema centrale) durante le fasi di assemblaggio/configurazione, dalle informazioni memorizzate localmente;
- il dispositivo cifra la combined generation string insieme a hardware-id e control-code (può essere opzionale) con un algoritmo di crittografia asimmetrico per incrementare il livello di protezione anche dei valori statici, generando una encrypted combined generation string;
- la encrypted combined generation string è visualizzata dallo schermo del dispositivo in forma di codice (graphical generation code), preferibilmente un QR code (poiché i QR code sono estremamente diffusi).
Sebbene la connessione a internet non sia necessaria affinché il dispositivo sia identificato, quindi il dispositivo è disconnesso da internet, se disponibile (su base continuativa o discontinua), la connessione a internet può essere usata per correggere la deriva temporale del dispositivo, usando il Network Time Protocol (NTP) o per recuperare aggiornamenti e informazioni in modo sicuro dal sistema centrale, usando l’implementazione del codice/QuID per l’autenticazione.
Il dispositivo include una batteria; per rendere la vita della batteria più lunga, la finestra temporale di validità degli OTP implementata nel metodo informatizzato può essere allargata per ridurre il numero di OTP generate per ogni ora e risparmiare sulla durata temporale della batteria, ma questa configurazione può portare a un problema di sicurezza per la globalità del sistema. Infatti, allargando la finestra temporale dell’OTP per ridurre il consumo di batteria può introdurre un potenziale rischio di sicurezza, poiché questo fornisce più tempo a un potenziale attaccante per tentare di forzare (indovinare) il seed. Per mitigare questo rischio oltre ad usare una stringa lunga come seed, la finestra temporale dove opera il dispositivo (enrollment-time), è definita come un valore casuale durante il processo di enrollment e condivisa con l’applicazione di back-end. In questo modo oltre al solito valore da indovinare (il seed) un potenziale attaccante ha bisogno di conoscere il valore dell’enrollment-time del dispositivo, incrementando la sicurezza globale.
Nel processo può essere usato ogni algoritmo di generazione OTP. Per la maggioranza dei casi d’uso è suggerita l’implementazione di TOTP, e la IETF-RFC6238 è un’opzione valida. L’algoritmo di cifratura suggerito per efficienza e consumo di risorse è ECC (Elliptic-curve cryptography) / ECIES (Elliptic Curve Integrated Encryption Scheme). Ogni algoritmo di cifratura asimmetrica può essere usato, ad es. RSA. La rappresentazione esadecimale di stringhe dei valori cifrati è anche adatta al trasporto su protocollo HTTP. Inoltre, in funzione dello scenario posso essere usate alternativamente sia una validazione One-Time (singolo utilizzo) pura che una validazione Limited-Time (utilizzo limitato temporalmente). In caso di validazione One-Time, il sistema centrale, quando il primo OTP valido è stato ricevuto per la finestra di validità temporale corrente, memorizzerà l’informazione che l’OTP correntemente valido è stato consumato e rifiuterà le future validazioni dello stesso OTP. Per la validazione Limited-Time, ogni OTP valido per la finestra temporale corrente sarà validato.
Un esempio di come funziona il processo di generazione (generation) sul dispositivo è descritto di seguito usando pseudocode (pseudocodice, da non intendersi come formalmente valido o come codice sorgente funzionante) come menzionato sotto, considerando che QuID sta per Quick Identifier (identificatore rapido) e corrisponde a ciò che è indicato in questa descrizione come codice grafico.
Esempio di processo di generazione (generation) del codice grafico, in esecuzione sul dispositivo:
Dati di output
In merito al processo di validazione del codice grafico, il processo di validazione (validation) effettuato dall’applicazione di back-end è illustrato in fig.6 e può essere scritto in ogni linguaggio di programmazione, di seguito è riportato come referenza di implementazione usando pseudocode (pseudocodice, da non intendersi come formalmente valido o come codice sorgente funzionante) come menzionato sotto, considerando che QuID sta per Quick Identifier (identificatore rapido) e corrisponde a ciò che è indicato in questa descrizione come codice grafico:
Il processo di validazione (validation) del codice grafico/QuID sull’applicazione di backend comprende i seguenti passi:
- l’utente scansiona il graphical generation code con l’applicazione in esecuzione sul dispositivo mobile;
- l’applicazione converte in encrypted combined generation string il codice grafico (graphical generation code) e lo invia all’applicazione di back-end;
- l’applicazione di back-end recupera la private-key (accoppiata alla corrispondente publickey condivisa con il dispositivo durante l’assemblaggio o la configurazione iniziale) dalle informazioni memorizzate localmente;
- l’applicazione di back-end decifra l’encrypted combined generation string del codice grafico usando la private-key, con un algoritmo di cifratura asimmetrico;
- l’applicazione di back-end separa i valori decifrati ottenendo l’hardware-id, l’OTP generation string e il control-code (può essere opzionale);
- l’applicazione di back-end verifica (può essere opzionale) se il control-code è identico all’enrollment-control-code (condiviso durante il processo di enrollment) e se è differente il processo termina ed è richiesto un nuovo processo di enrollment per il dispositivo, diversamente, se i valori sono identici, il processo continua;
- l’applicazione di back-end recupera dalle informazioni memorizzate localmente i valori di seed e di time-difference associate all’hardware-id e recupera il valore del tempo locale del sistema centrale (local-time);
- l’applicazione di back-end verifica se (usando l’algoritmo di validazione dell’OTP, in funzione dell’implementazione selezionata) l’OTP è validato usando come parametri di ingresso il valore ricevuto di OTP generation string, il valore del seed (dello specifico hardware-id) il valore di second time difference definito dal local-time del sistema centrale meno il valore memorizzato di time-difference.
Per identificare se il dispositivo ha eseguito nuovamente il processo di enrollment, il metodo informatizzato implementa la generazione di un valore casuale di control-code durante il processo di enrollment. Se il valore di control-code memorizzato durante l’enrollment nel sistema centrale (enrollment-control-code) è differente dal valore ultimo ricevuto di control- code, questo identifica che il dispositivo ha inaspettatamente eseguito il processo di enrollment (può essere opzionale).
Un esempio di come funziona il processo di validazione (validation) sull’applicazione di back-end è descritto di seguito usando pseudocode (pseudocodice, da non intendersi come formalmente valido o come codice sorgente funzionante) come menzionato sotto, considerando che QuID sta per Quick Identifier (identificatore rapido) e corrisponde a ciò che è indicato in questa descrizione come codice grafico.
Esempio di processo di validazione ȋvalidationȌ del codice grafico sull’applicazione di back-end in esecuzione sul sistema centrale:
Dati di Input
Dati di output
Tutte le possibili attività e funzioni eseguite sull’applicazione di back-end in esecuzione sul sistema centrale potrebbero anche essere create o implementate nell’applicazione in esecuzione sul dispositivo mobile.
Come menzionato in precedenza la fig. 4 mostra uno schema hardware del dispositivo utilizzato nel metodo informatizzato inventato.
Il dispositivo comprende una unità core (preferibilmente a 32 o 64 bit CPU) e una memoria (RAM e ROM, preferibilmente 520 KiB RAM), una batteria, preferibilmente a lunga durata per rendere la durata più lunga e un display per visualizzare il codice grafico. Inoltre, il metodo informatizzato può essere implementato in un dispositivo fornito di display LCD, preferibilmente con un display a inchiostro digitale (e-paper, e-ink), che dopo aver visualizzato il codice grafico, può essere spento e il dispositivo messo a dormire (modalità risparmio energetico), per risparmiare consumo di batteria, in attesa di calcolare il nuovo codice grafico alla fine dell’intervallo temporale.
Inoltre, il dispositivo dovrebbe comprendere un acceleratore crittografico hardware, per ottimizzare le prestazioni, a sua volta comprendente funzioni SHA (Secure Hash Algorithm), funzioni AES (Advanced Encryption Standard), funzioni ECC (Elliptic-curve cryptography), funzioni RNG (Random Number Generator).
Opzionalmente il dispositivo può comprendere un’unita di controllo RTC (che supporti modalità deep-sleep, sonno profondo) capace di identificare selettivamente le componenti hardware da spegnere, una unità PMU (Power Management Unit), un coprocessore ULP (Ultra Low Power) e una memoria di ripristino.
Scenari di utilizzo potenziale del metodo informatizzato, sistema e dispositivo secondo la presente invenzione, includono, ma non sono limitati ai seguenti:
- Ordine di cibo (al tavolo, al bancone, alla seduta, ecc.): il dispositivo può essere connesso al tavolo o alla seduta e identificare uno specifico tavolo o seduta in un ristorante o ogni tipo di locale in cui sia servito cibo dove l’utente vuole effettuare un ordine. L’utente scansiona il codice grafico e accede all’applicazione di ordinazione identificando il tavolo o la seduta dove il cibo deve essere consegnato.
- Code/lista d’attesa: Il dispositivo può essere connesso a un totem in un locale per immettersi nella coda o nella lista d’attesa. L’utente scansiona il codice grafico e l’applicazione di gestione di code e liste d’attesa fornisce all’utente informazioni come: numero di prenotazione, priorità acquisita, tempi d’attesa, ecc.
- Noleggio di un veicolo (auto, ciclo, scooter, etc.) o un oggetto in generale: Il dispositivo può essere connesso al veicolo (o all’oggetto in generale) per avviare/concludere (chekin/chek-out) il noleggio del veicolo (o dell’oggetto in generale). L’utente scansiona il codice grafico e l’applicazione di gestione del noleggio avvia/conclude il processo di noleggio.
- Sbloccare/aprire una porta o un cancello (di un’abitazione, di un hotel, di un garage, di un parcheggio, ecc.): Il dispositivo può essere connesso a una porta o a un cancello per aprire/chiudere e/o avviare/concludere un noleggio di un alloggio, un’abitazione, un parcheggio, etc.. L’utente scansiona il codice grafico e l’applicazione di gestione apre/chiude la porta o il cancello e/o avvia/conclude un noleggio (chek-in/chek-out).

Claims (12)

  1. RIVENDICAZIONI 1. Metodo informatico per l’identificazione sicura di un dispositivo associato a una specifica posizione, permettendo così all’utente di attivare una procedura connessa alla specifica posizione dove il dispositivo è posizionato, detto dispositivo essendo disconnesso da internet, comprendente i seguenti passi: - effettuare un processo di enrollment tramite un’applicazione in esecuzione su un dispositivo mobile al fine di associare i parametri hardware del dispositivo alla specifica posizione e memorizzare e conservare questi dati su un’applicazione di back-end in esecuzione su un sistema centrale, - generare e visualizzare sul dispositivo un codice grafico basato su OTP con durata temporale limitata, - acquisire dall’utente, tramite l’applicazione in esecuzione sul dispositivo mobile detto codice grafico, ottenendo così una prova di prossimità dell’utente alla specifica posizione dove il dispositivo è posizionato, - tramite l’applicazione e una connessione internet inviare il codice grafico acquisito all’applicazione di back-end in esecuzione sul Sistema centrale, - verificare con l’applicazione di back-end in esecuzione sul sistema centrale se il codice grafico basato su OTP ricevuto, una volta convertito in stringa, è validato o meno tramite un algoritmo di validazione OTP - se il codice grafico basato su OTP ricevuto è validato, confermando così la prossimità dell’utente alla specifica posizione dove il dispositivo è posizionato, validando il codice grafico si consente così all’utente di attivare la procedura connessa alla specifica posizione.
  2. 2. Metodo informatico secondo la rivendicazione 1 comprendente i seguenti passi: - processo di enrollment comprendente i seguenti passi eseguiti sul dispositivo: generazione di un valore casuale dell’enrollment time del dispositivo disconnesso e valore casuale del seed, recupero di identificati hardware univoci del dispositivo, combinazione di questi fattori per ottenere una enrollment string, cifratura della detta enrollment string, conversione della detta encrypted enrollment string in enrollment graphical code, visualizzazione dell’enrollment graphical code, e inoltre comprendente i seguenti passi eseguiti sul dispositivo mobile acquisizione del detto enrollment graphical code tramite dispositivo mobile, conversione del detto enrollment graphical code in encrypted enrollment string e invio tramite connessione internet all’applicazione di back-end sul sistema centrale, acquisizione dall’utente di dati specifici sulla posizione, e inoltre comprendente i seguenti passi eseguiti sull’applicazione di back-end in esecuzione su sistema centrale ricezione e decifratura della detta encrypted enrollment string, divisione dei valori di hardware ID, seed ed enrollment time, calcolare il valore della time difference, detta time difference valorizzata come la differenza tra il tempo locale del Sistema centrale e enrollment time, associare e memorizzare valori di hardware ID, seed, enrollment time, time difference e di dati specifici sulla posizione; - processo di generazione in esecuzione sul dispositivo comprendente i seguenti passi: generazione di una OTP generation string sulla base del seed e del tempo locale del dispositivo, combinazione di detta OTP generation string con il valore del hardware ID del dispositivo ottenendo una combined generation string, cifratura di detta combined generation string ottenendo una encrypted combined generation string, creazione di un generation graphical code corrispondente a detta encrypted combined generation string; - processo di validazione comprendente i seguenti passi eseguiti sul dispositivo mobile: acquisizione del detto generation graphical code tramite l’applicazione in esecuzione sul dispositivo mobile, conversione di detto generation graphical code nella detta encrypted combined generation string e invio della stessa tramite connessione internet all’applicazione di back-end sul sistema centrale, e inoltre comprendente i seguenti passi eseguiti dall’applicazione di back-end sul sistema centrale ricezione e decifratura della detta encrypted combined generation string, divisione dei valori di hardware ID, OTP generation string, recupero dei valori di time difference e seed di hardware ID e del tempo locale sul sistema centrale, verifica se l’ OTP string è validata usando un algoritmo di validazione OTP e usando come parametri di ingresso il valore ricevuto di OTP generation string, il seed e la second time difference, dove detta second time difference è la differenza tre il tempo locale del sistema centrale e time difference, così se la OTP generation string è validata, permette l’identificazione del dispositivo e conferma la sua localizzazione al tempo locale del sistema centrale corrispondente alla generation time del dispositivo, permettendo così all’utente di attivare la procedura connessa alla posizione dove il dispositivo è posizionato al tempo di generazione del dispositivo corrispondente al tempo locale del Sistema centrale.
  3. 3. Metodo informatico secondo la rivendicazione 2 comprendente i seguenti passi: riguardo al processo di enrollment generazione di un control code con valore casuale eseguito dal dispositivo, combinazione del valore del control code con i valori di hardware ID, seed ed enrollment time, ottenendo l’enrollment string eseguito sul dispositivo, una volta che l’enrollment string è decifrata dall’applicazione di back-end dividendo il control code, quest’ultimo è usato come enrollment control code eseguito sul sistema centrale, associazione e memorizzazione anche dell’enrollment control code con gli altri parametri di hardware id, seed, time difference, eseguito sul sistema centrale, riguardo al processo di validazione decifratura di detta generation string comprendente anche il control code, eseguito sul sistema centrale, dall’applicazione di back-end verificando se il control-code è identico all’enrollmentcontrol-code condiviso durante il processo di enrollment e se sono differenti il processo termina ed è richiesto un nuovo processo di enrollment del dispositivo, diversamente, se sono identici, il processo continua, permettendo così di verificare se sul dispositivo è stato inaspettatamente eseguito il processo di enrollment.
  4. 4. Metodo informatico secondo ognuna delle rivendicazioni precedenti in cui il processo di enrollment comprende anche le fasi di: - inserire nell’applicazione in esecuzione sul dispositivo mobile valori di ingresso come nomi e parametri forniti dall’utente - inserire nell’applicazione di back-end names e parameters per associarli e memorizzarli con gli altri parametri di hardware-id, seed, enrollment control code, time difference.
  5. 5. Metodo informatico secondo ognuna delle rivendicazioni precedenti in cui l’utente sia precedentemente autenticato sull’applicazione in esecuzione sul dispositivo mobile.
  6. 6. Metodo informatico secondo ognuna delle rivendicazioni precedenti in cui il codice grafico sia un QR code.
  7. 7. Sistema per l'identificazione sicura di un dispositivo associato in una posizione specifica, consentendo così all'utente di attivare una procedura connessa alla posizione in cui si trova il dispositivo, detto dispositivo essendo disconnesso da Internet, comprendente un dispositivo mobile, un sistema centrale e ciascuno di essi comprendente a sua volta un dispositivo di interfaccia, un processore accoppiato a detto dispositivo di interfaccia, una memoria accoppiata al processore, la memoria che ha immagazzinato su di esso istruzioni eseguibili per computer che, quando eseguite, configurano il processore per eseguire le corrispondenti fasi del metodo di una qualsiasi delle rivendicazioni da 1 a 6.
  8. 8. Dispositivo associato in una posizione specifica, configurato per consentire all'utente di attivare una procedura connessa alla posizione specifica in cui è posizionato il dispositivo, detto dispositivo essendo disconnesso da Internet, detto dispositivo comprende un display, un processore accoppiato a detto display, una memoria accoppiata al processore, la memoria che ha immagazzinato su di essa istruzioni eseguibili per computer che, quando eseguite, configurano il processore per eseguire i corrispondenti passi del metodo di una qualsiasi delle rivendicazioni da 1 a 6.
  9. 9. Uso del metodo informatizzato secondo una qualsiasi delle rivendicazioni da 1 a 6 e il sistema secondo la rivendicazione 7 e il dispositivo secondo le rivendicazioni da 1 a 8, in cui il dispositivo è collegato a un posto specifico in un negozio per ordinare alimenti quindi il dispositivo essendo associato in modo univoco e accoppiato a detto luogo specifico in cui l'utente desidera effettuare un ordine, consentendo così all'utente, utilizzando il suo dispositivo mobile su cui esegue l'applicazione secondo una qualsiasi delle rivendicazioni da 1 a 6, di scansionare il codice grafico di generazione visualizzato sul dispositivo , detto codice grafico di generazione una volta convalidato dal processo di convalida secondo una delle rivendicazioni da 1 a 6, rende l'utente in grado di accedere a un'applicazione di ordinazione che identifica il luogo specifico in cui deve essere consegnato il cibo.
  10. 10. Uso del metodo informatizzato secondo una qualsiasi delle rivendicazioni da 1 a 6 e il sistema secondo la rivendicazione 7 e il dispositivo secondo le rivendicazioni da 1 a 8, in cui il dispositivo è collegato a un bene da affittare in un luogo specifico o in un negozio di noleggio pertanto il dispositivo essendo associato in modo univoco e accoppiato a detto bene in un luogo specifico in cui l'utente deve lasciare il bene noleggiato, consentendo così all'utente, utilizzando il suo dispositivo mobile su cui viene eseguita l'applicazione secondo una qualsiasi delle rivendicazioni da 1 a 6, di scansionare il codice grafico di generazione visualizzato sul dispositivo, detto codice grafico di generazione una volta convalidato dal processo di convalida secondo una delle rivendicazioni da 1 a 6, rende l'utente in grado di avviare o terminare il processo di noleggio.
  11. 11. Uso del metodo informatizzato secondo una qualsiasi delle rivendicazioni da 1 a 6 e il sistema secondo la rivendicazione 7 e il dispositivo secondo le rivendicazioni da 1 a 8, in cui il dispositivo è collegato a un luogo specifico in cui un utente deve richiedere di immettersi in una coda o una lista di attesa, in tal modo il dispositivo essendo associato in modo univoco e accoppiato a detto luogo specifico, consentendo così all'utente, utilizzando il suo dispositivo mobile su cui viene eseguita l'applicazione secondo una qualsiasi delle rivendicazioni da 1 a 6, di scansionare il codice grafico di generazione visualizzato sul dispositivo, detto codice grafico di generazione una volta convalidato dal processo di convalida secondo una delle rivendicazioni da 1 a 6, rende l'utente in grado di ricevere informazioni come: numero di prenotazione, priorità, tempo di attesa.
  12. 12. Uso del metodo informatizzato secondo una qualsiasi delle rivendicazioni da 1 a 6 e il sistema secondo la rivendicazione 7 e il dispositivo secondo le rivendicazioni da 1 a 8, in cui il dispositivo è collegato a una specifica porta o uno specifico cancello che un utente deve aprire/chiudere, quindi il dispositivo essendo associato in modo univoco e accoppiato a detta porta o cancello specifico, consentendo così all'utente, utilizzando il suo dispositivo mobile su cui esegue l'applicazione secondo una qualsiasi delle rivendicazioni da 1 a 6, di scansionare il codice grafico di generazione visualizzato sul dispositivo, detto codice grafico di generazione una volta convalidato dal processo di convalida secondo una delle rivendicazioni da 1 a 6, rende l'utente in grado di aprire/chiudere la porta o il cancello.
IT102019000015701A 2019-09-05 2019-09-05 Computer-implemented method and system for secure identification of disconnected objects and their locations. IT201900015701A1 (it)

Priority Applications (7)

Application Number Priority Date Filing Date Title
IT102019000015701A IT201900015701A1 (it) 2019-09-05 2019-09-05 Computer-implemented method and system for secure identification of disconnected objects and their locations.
EP20768407.7A EP4026026A1 (en) 2019-09-05 2020-09-04 Computer-implemented method and system for secure identification of disconnected objects and their locations
JP2022513575A JP2022547829A (ja) 2019-09-05 2020-09-04 未接続状態のオブジェクトおよびその位置を安全に認証するためのコンピュータ実施方法およびシステム
CA3148324A CA3148324A1 (en) 2019-09-05 2020-09-04 Computer-implemented method and system for secure identification of disconnected objects and their locations
PCT/IB2020/058245 WO2021044356A1 (en) 2019-09-05 2020-09-04 Computer-implemented method and system for secure identification of disconnected objects and their locations
US17/639,513 US11985120B2 (en) 2019-09-05 2020-09-04 Computer-implemented method and system for secure identification of disconnected objects and their locations
CN202080064363.5A CN114424496B (zh) 2019-09-05 2020-09-04 用于安全识别断开连接的对象及其位置的计算机实现的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000015701A IT201900015701A1 (it) 2019-09-05 2019-09-05 Computer-implemented method and system for secure identification of disconnected objects and their locations.

Publications (1)

Publication Number Publication Date
IT201900015701A1 true IT201900015701A1 (it) 2021-03-05

Family

ID=69173235

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000015701A IT201900015701A1 (it) 2019-09-05 2019-09-05 Computer-implemented method and system for secure identification of disconnected objects and their locations.

Country Status (6)

Country Link
EP (1) EP4026026A1 (it)
JP (1) JP2022547829A (it)
CN (1) CN114424496B (it)
CA (1) CA3148324A1 (it)
IT (1) IT201900015701A1 (it)
WO (1) WO2021044356A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160036809A1 (en) * 2011-09-08 2016-02-04 Amazon Technologies, Inc. Passwordless strong authentication using trusted devices
US20170019413A1 (en) * 2014-03-12 2017-01-19 Thales Method of controlling access to a reserve zone with control of the validity of an access entitlement installed in the memory of a mobile terminal
WO2018022993A1 (en) * 2016-07-29 2018-02-01 Trusona, Inc. Anti-replay authentication systems and methods

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2598984A4 (en) * 2010-07-29 2017-04-19 Nirmal Juthani System and method for generating a strong multi factor personalized server key from a simple user password
CN103780397B (zh) * 2014-02-25 2016-09-14 中国科学院信息工程研究所 一种多屏多因子便捷web身份认证方法
CN104519066B (zh) * 2014-12-23 2017-11-28 飞天诚信科技股份有限公司 一种激活移动终端令牌的方法
EP3065366B1 (en) * 2015-03-02 2020-09-09 Bjoern Pirrwitz Identification and/or authentication system and method
CN108616359B (zh) * 2016-12-12 2022-04-22 北京握奇智能科技有限公司 一种基于二维码的otp认证方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160036809A1 (en) * 2011-09-08 2016-02-04 Amazon Technologies, Inc. Passwordless strong authentication using trusted devices
US20170019413A1 (en) * 2014-03-12 2017-01-19 Thales Method of controlling access to a reserve zone with control of the validity of an access entitlement installed in the memory of a mobile terminal
WO2018022993A1 (en) * 2016-07-29 2018-02-01 Trusona, Inc. Anti-replay authentication systems and methods

Also Published As

Publication number Publication date
EP4026026A1 (en) 2022-07-13
CN114424496A (zh) 2022-04-29
CA3148324A1 (en) 2021-03-11
WO2021044356A1 (en) 2021-03-11
JP2022547829A (ja) 2022-11-16
CN114424496B (zh) 2024-03-15
US20230179592A1 (en) 2023-06-08

Similar Documents

Publication Publication Date Title
CN108092776B (zh) 一种基于身份认证服务器和身份认证令牌的系统
CN110995642B (zh) 使用预共享密钥提供安全连接
JP6668183B2 (ja) 通信装置、通信方法、通信システムおよびプログラム
US8572684B1 (en) Authentication using one-time passwords and associated indicia for plural sequences
US7725928B2 (en) System and method for establishing temporary and permanent credentials for secure online commerce
US9762567B2 (en) Wireless communication of a user identifier and encrypted time-sensitive data
CN109075965B (zh) 使用口令码验证的前向安全密码技术的方法、系统和装置
JP2013509840A (ja) ユーザー認証の方法及びシステム
WO2006043904A1 (en) One time passcode system
KR101686167B1 (ko) 사물 인터넷 기기의 인증서 배포 장치 및 방법
JP2005269656A (ja) コンピューティングシステムの効率的かつセキュアな認証
US8397281B2 (en) Service assisted secret provisioning
WO2015130734A1 (en) Two-factor authentication systems and methods
JP4823704B2 (ja) 認証システムおよび同システムにおける認証情報委譲方法ならびにセキュリティデバイス
WO2015055120A1 (zh) 用于安全性信息交互的装置
CN116015807A (zh) 一种基于边缘计算的轻量级终端安全接入认证方法
JP6378424B1 (ja) 無欠性及び保安性が強化された使用者認証方法
US20210336781A1 (en) Network device, method for security and computer readable storage medium
CN105577650A (zh) 一种动态令牌的远程时间同步方法及系统
CN108737412A (zh) 一种实现数据请求的方法及终端
IT201900015701A1 (it) Computer-implemented method and system for secure identification of disconnected objects and their locations.
US11985120B2 (en) Computer-implemented method and system for secure identification of disconnected objects and their locations
KR100993333B1 (ko) 인터넷 접속 도구를 고려한 사용자 인증 방법 및 시스템
JP2019527518A (ja) 署名付きメッセージを用いるトークンベースの認証
Moon et al. Device authentication/authorization protocol for home network in next generation security