Algoritmo per generare codice PIN

Messaggioda aurigo » 07/01/2020, 21:47

Buonasera, sono un programmatore di PLC.
Vorrei chiedere qualche consiglio per la generazione di un piccolo algoritmo. (Possibilmente molto semplice)
Stò realizzando un programma dove il mio cliente ha chiesto di poter abilitare alcune funzioni della macchina per un determinato periodo di tempo (giorni) inserendo un codice PIN.
Il codice PIN verrà fornito al manutentore o all’utilizzatore della macchina quando necessario .
Il codice, verrà generato sulla base di tre elementi:
1) ID univoco che identificherà o la macchina o il tecnico manutentore (Questo lo si deciderà successivamente), ma credo che faccia poca differenza se uno o l’altro. La lunghezza dell’ID sarà indicativamente composto da 2 - 3 cifre
2) Giorno e mese di inizio della validità del codice
3) Giorno e mese di fine validità del codice.

E’ la prima volta che mi trovo a gestire una tipologia di un codice del genere, e non ho idea di come farlo. Potreste aiutarmi gentilmente a comprendere come creare un piccolo algoritmo di codifica – decodifica del codice?
Non necessitano un sistema inattaccabile. Solo un sistema semplice ed efficiente.
La macchina lavorerà in modalità stand-alone, quindi non ha collegamenti in rete o altro.
Ringrazio anticipatamente.
aurigo
Starting Member
Starting Member
 
Messaggio: 1 di 14
Iscritto il: 07/01/2020, 14:53

Re: Algoritmo per generare codice PIN

Messaggioda axpgn » 07/01/2020, 22:39

Penso che dovresti far spostare il thread nella stanza di Informatica, riceverai più risposte e sicuramente più significative.
Però devi chiedere ad un moderatore, solo lui può farlo.

Cordialmente, Alex
axpgn
Cannot live without
Cannot live without
 
Messaggio: 14680 di 40640
Iscritto il: 20/11/2013, 22:03

Re: Algoritmo per generare codice PIN

Messaggioda Raptorista » 09/01/2020, 11:29

Ciao, credo che tu stia cercando una cosa come una funzione hash o una checksum intelligente.
Il codice PIN dev'essere inserito solo una volta, per esempio il primo giorno, giusto?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 5373 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Algoritmo per generare codice PIN

Messaggioda aurigo » 09/01/2020, 16:47

Ciao e grazie della risposta.
In realtà cerco qualche cosa tipo OTP "one-time password" (almeno credo che si chiama cosi).
Il codice deve essere inserito tutte le volte che l'operatore autorizzato deve intervenire sulla macchina.
Se l'operatore (in genere il manutentore) si allontana dalla macchina su cui stà facendo manutenzione, il programma dopo un tempo X lo disconnette. Per riaccedere deve re-inserire il codice.
Grazie
aurigo
Starting Member
Starting Member
 
Messaggio: 2 di 14
Iscritto il: 07/01/2020, 14:53

Re: Algoritmo per generare codice PIN

Messaggioda Raptorista » 10/01/2020, 11:30

Allora è già deciso cosa ti serve.
La cosa più semplice è di usare gli standard per OTP:
https://en.wikipedia.org/wiki/HMAC-base ... _algorithm
https://en.wikipedia.org/wiki/Time-base ... _algorithm

Ci sono applicazioni per smartphone gratuite, come Google Authenticator, che possono generare i codici di accesso.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 5374 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Algoritmo per generare codice PIN

Messaggioda vict85 » 10/01/2020, 11:50

aurigo ha scritto:1) ID univoco che identificherà o la macchina o il tecnico manutentore (Questo lo si deciderà successivamente), ma credo che faccia poca differenza se uno o l’altro. La lunghezza dell’ID sarà indicativamente composto da 2 - 3 cifre


2 o 3 cifre? Mi pare piuttosto corso come numero identificativo. L'identificativo è relativo alla singola azienda?

Comunque, riguardo al tuo problema, se il PIN rimane lo stesso per un tempo medio-lungo non è necessario usare la complessità di un OTP. Insomma potresti persino richiedere al manutentore di decidere lui il pin e richiederli di cambiarlo ogni X giorni.
vict85
Moderatore
Moderatore
 
Messaggio: 10034 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Algoritmo per generare codice PIN

Messaggioda aurigo » 10/01/2020, 14:22

2 o 3 cifre? Mi pare piuttosto corso come numero identificativo. L'identificativo è relativo alla singola azienda?

L'ID è relativo al tecnico o macchina all'interno dell'azienda. In realtà avrei pensato di inserire una chiave che potrebbe anche essere il codice cliente, per verificare che ci sia corrispondenza tra codice cliente e macchina, ma in realtà non so come creare l'algoritmo.
Ho pensato a qualcosa, ma mi viene fuori un password troppo lunga.
potresti persino richiedere al manutentore di decidere lui il pin e richiederli di cambiarlo ogni X giorni.

Il manutentore non deve essere a conoscenza della chiave o di come generarla, sopratutto se interno all'azienda.
aurigo
Starting Member
Starting Member
 
Messaggio: 3 di 14
Iscritto il: 07/01/2020, 14:53

Re: Algoritmo per generare codice PIN

Messaggioda vict85 » 10/01/2020, 17:14

Mi sembra effettivamente che tu abbia bisogno più di un sistema di licenza che un PIN (generamente usato semplicemente per controllare che chi acceda sia abilitato a farlo).
vict85
Moderatore
Moderatore
 
Messaggio: 10037 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Algoritmo per generare codice PIN

Messaggioda aurigo » 10/01/2020, 17:24

Si Sergio, in linea di massima quello che tu hai scritto è corretto.
Per maggior chiarezza, nelle macchine vi sono parametri che possono essere modificate solo da personale qualificato. Ad esempio il reset delle ore di funzionamento, che per ovvi motivi può essere paragonato al conta chilometri dell'auto. Vi sono macchine che se date in affitto gestione, la remunerazione viene quantificata in funzione della loro produttività, oppure se è necessario bypassare delle sicurezze sul funzionamento ecc. Questi solo solo alcuni esempi.
Come ID avrei pensato ad un ID a solo due cifre che identifica la macchina in quell'azienda. Normalmente in un'azienda possono esserci più macchine identiche, ma parliamo di un numero limitato. Normalmente massimo una decina. Poco importa se esistono più macchine con lo stesso ID. L'importante che esse non siano nella medesima azienda.
Avrei pensato di creare un codice a 7 cifre tipo questo:
Giorno di partenza di validità (2 cifre)
Mese di partenza della Validità (2 Cifre)
Durata di validità del codice (1 cifra). Permette di avere una validità fino a 9 giorni partendo dalla data su indicata. 9 Giorni direi più che sufficienti. Se poi dovesse essere necessario, viene creato un nuovo codice valido per altri 9 giorni.
ID della macchina (2 cifre)
Una Chiave di crittografia comune a tutte le macchine presenti in quell'azienda, che potrebbe essere anche ad esempio il codice cliente. Ovviamente la chiave di crittografia è conosciuta (inserita nelle macchine) in quell'azienda perchè identifica l'azienda e dal costruttore o chi dovrà generare la chiave.
Ciò che mi manca è la modalità su come crittografare o de-crittografare il codice.
aurigo
Starting Member
Starting Member
 
Messaggio: 4 di 14
Iscritto il: 07/01/2020, 14:53

Re: Algoritmo per generare codice PIN

Messaggioda axpgn » 10/01/2020, 17:27

@Sergio
Testo nascosto, perché contrassegnato dall'autore come fuori tema. Fai click in quest'area per vederlo.
Sergio ha scritto:In fondo, la codifica/decodifica del PIN è la parte più semplice, perché gestire aspetti quali la modifica dell'elenco degli ID validi richiede anche la messa a punto di idonei processi organizzativi.

Il problema è che questa parte del "lavoro" non la conosce nessuno (in pochi, diciamo … ), quello che "conta" sono i programmi e i costi … detto da uno che ha lavorato "qualche anno" a realizzare "idonei processi organizzativi" :D
Scusate l'intromissione.


Cordialmente, Alex
axpgn
Cannot live without
Cannot live without
 
Messaggio: 14718 di 40640
Iscritto il: 20/11/2013, 22:03

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite