Protezione su funzionamento librerie
Home › Forum › Informazioni ambiente di sviluppo LogicLab › Protezione su funzionamento librerie
- Questo topic ha 10 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 5 mesi fa da
Sergio Bertana.
-
AutorePost
-
Settembre 19, 2013 alle 9:37 am #35415
Maurizio
PartecipanteStò valutando la possibilità di scrivere una libreria in LogicLab. Mi piacerebbe che questa libreria potesse funzionare esclusivamente sul PLC sul quale è installata. Il codice di attivazione, da me fornito, sarebbe comunicato alla libreria attraverso una comunicazione proveniente dall’esterno, in modbus.
A questo proposito, ho visto che è possibile utilizzare un DID, che normalmente è utilizzato da voi per la licenza delle vostre librerie. E’ disponibile una funzione che estrae il DID (o qualunque numero interno identificativo del prodotto, come ad esempio il MAC address) e lo rende disponibile per ulteriori elaborazioni ?
Settembre 19, 2013 alle 1:02 pm #37782Sergio Bertana
Amministratore del forumPer proteggere le nostre librerie esistono due metodi il Manufacturer ID (MID) ed il Device ID (DID) vedi FAQ. Questi metodi sono gestibili solo dalla Elsist, non è possibili estenderne l’utilizzo ai clienti.
Però facendo seguito alla tua domanda vengo con una soluzione realizzabile direttamente dal cliente, la variabile di sistema SysUniqueID identifica in maniera univoca ogni sistema (Estratto manuale). Nelle tue Functions o FBs di libreria puoi controllare se il valore di una variabile (Impostabile con modbus) coincide con il valore di SysUniqueID, e se diversi ne blocchi il funzionamento.
Naturalmente il controllo non sarà una semplice eguaglianza ma potrebbe essere frutto di un algoritmo, ti do ad esempio una semplice XOR utilizzando la variabile PCode allocata in DB 100.2048 per averla come variabile tampone.
IF ((PCode XOR 16#FFFFFFFF) <> SysUniqueID) THEN RETURN; END_IF;
Ma potrai sbizzarrirti con algoritmi più complessi. La variabile PCode potrà essere impostata da Modbus, in debug, o creando una pagina web apposita (Stampa e Download programma).
Settembre 19, 2013 alle 1:27 pm #37783Sergio Bertana
Amministratore del forumAggiungo che in alternativa alla variabile PCode puoi utilizzare la variabile SysCustomerCode Codice customer, questo codice può essere impostato dall’utente che ha accesso come amministratore al sistema. In questo modo accedendo al sistema da Telnet con il comando SysConfig -cc xxxxxxxx potrai impostare il valore della variabile SysCustomerCode, ecco lo screenshot di Toolly.
Settembre 19, 2013 alle 4:20 pm #37785Maurizio
PartecipanteGrazie delle delucidazioni. In effetti, pensavo proprio di usare un algoritmo di codifica, come hai proposto. La possibilità del customer code non mi soddisfa pienamente, perchè desidero una sicurezza maggiore. Tuttavia buono a sapersi, può essere molto utile in altre applicazioni.
E a proposito di questo, è possibile acquisire tramite una funzione (sono anche disposto a scrivermela, se mi dai le informazioni necessarie) il MAC address dell’interfaccia Ethernet ?
Settembre 20, 2013 alle 6:09 am #37786Sergio Bertana
Amministratore del forumIl MAC address è una informazione di sistema, viene gestita esclusivamente dal sistema operativo, non esiste nessun modo per conoscerlo da programma utente.
Settembre 23, 2013 alle 10:57 am #37790Maurizio
PartecipanteOk, il SysUniqueID è comunque ottimo per i miei scopi. Grazie per le indicazioni.
Dicembre 18, 2013 alle 3:13 pm #37933Maurizio
PartecipanteHo provato, con successo, a utilzzare il SysUniqueID. Ancora una domanda: in quale range mi devo aspettare questo numero?
Dovendo scrivere una funzione che cripta il numero, ho bisogno di avere questa informazione per impostare la funzione dei calcolo in modo che non generi errori.
Dicembre 18, 2013 alle 5:28 pm #37934Sergio Bertana
Amministratore del forumCome vedi dal manuale (Estratto), il numero continua a crescere in funzione del tipo prodotto e della matricola. Il massimo valore di tipo prodotto è 9999 che abbinato al massimo valore di matricola (99999), produce un UniqueID massimo di 1310688927 (0x4E1F869F).
Gennaio 16, 2014 alle 10:20 am #37995Lauro
PartecipanteVolevo chiederVi se mi sto perdendo qualcosa io, la variabile di sistema SysUniqueID è presente dal Target MPS046B in poi. Esso mi indica un codice univoco sul prodotto (combinazione di PT Type e di SN) e vale anche per i MPS046A. Ma che senso ha se tale variabile di sistema non è presente con il Target 8 (max target per i PLC MPS046A) ?
Gennaio 16, 2014 alle 10:24 am #37996Sergio Bertana
Amministratore del forumLa possibilità di avere un numero di identificazione univoco per i vari prodotti è una richiesta che ci è pervenuta da svariati clienti, il che ci ha indotti ad inserirla nei nostri sistemi. Ecco quindi che la variabile SysUniqueID è stata introdotta dalla versione SFW184 del sistema operativo che è utilizzabile solo sui prodotti MPS046 serie B.
Credo tu ti riferisca al fatto che nell’estratto del manuale sono indicati anche i prodotti MPS046A, in effetti in quella pagina si è voluto riepilogare il PType di tutti i nostri prodotti questo indipendentemente dal fatto che poi fosse realmente disponibile la variabile SysUniqueID.
Novembre 23, 2015 alle 7:30 am #39201Sergio Bertana
Amministratore del forumVisto che nei posts di questo topic si faceva riferimento alla possibilità di conoscere il MAC address del dispositivo, ritengo utile ricordare che dalla versione SFW184B000 è stata introdotta la funzione SysOSIDValue che permette di accedere a variabili di sistema operativo. Tra le variabili che è possibile leggere vi è anche il MAC address del dispositivo.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.