I concetti di sicurezza ed affidabilità sono quelli che differenziano il semplice Internet of Things dall’Industrial Internet of Things.
E’ evidente che un conto è gestire l’accensione di una luce domestica o cambiare la temperatura dell’ufficio in base alle notifiche di sensori o utenti, un altro conto è garantire l’efficienza produttiva di un sito industriale in cui lavorano centinaia di persone, che produce beni quotidianamente per diversi milioni di euro e che deve garantire la qualità che altrimenti potrebbe avere impatti negativi sui consumatori.
Per questi motivi, i protocolli di comunicazione industriali devono prevedere opportuni criteri di sicurezza ed affidabilità, anche se in un contesto come quello di IoT.
A prescindere dal protocollo, che naturalmente deve essere sicuro ed affidabile, la prima regola della sicurezza sta nel progetto, e nella gestione del processo. Ancora prima dell’integrità del dato, viene la buona progettazione, che deve essere eseguita in base al rischio che un eventuale errore di trasmissione o di comunicazione può comportare. Sta al progettista quindi implementare verifiche, controlli, doppie sicurezze, ridondanze, watch dog e qualsiasi altro elemento di progetto che preveda la sicurezza delle operazioni più rischiose, soprattutto quando il danno può essere causato alle persone umane (settore farmaceutico, trasporti, alimentare, cosmetico, infrastrutture, ecc.).
La scelta di un protocollo IIoT deve tenere conto del livello di sicurezza e del tipo di rischio a cui ci si espone. Ad esempio, occorre valutare se il protocollo utilizza criteri di controllo dell’integrità dei dati, se permette di criptare i telegrammi qualora vi siano dati sensibili, se espone i dispositivi ad attacchi di hacker o problemi di cyber security. E’ bene ricordare tuttavia che, tanto maggiore sarà il livello di sicurezza implementato, tanto maggiore sarà la riduzione delle performance a l’aumento del “peso” del protocollo.
Il protocollo che garantisce la maggiore sicurezza è sicuramente il protocollo OPC UA.
AUTENTICAZIONE E AUTORIZZAZIONE DEGLI UTENTI.
Nello stabilire una connessione, l’utente si identifica attraverso:
- 509 certificati
- Nome utente/password
- oppure Kerberos
Così tutti i comuni sistemi di amministrazione degli utenti, come ad esempio Microsoft Active Directory, sono supportati. Inoltre, i diritti di accesso (per esempio per la lettura e la scrittura dei valori) può essere specificato e adattato in maniera particolare per ogni utente.
INTEGRITÀ.
La firma dei messaggi impedisce a terzi di modificare il contenuto di un messaggio. Questo impedisce, ad esempio, che il contenuto di un messaggio possa essere cambiato da un potenziale hacker e che questo possa cambiarne il contenuto impostando una variabile ad un valore non consentito o impostandola ad un valore consentito ma diverso dal contenuto originale del messaggio.
RISERVATEZZA
La riservatezza delle informazioni scambiate è protetta dalla crittografia dei messaggi scambiati. Per questo vengono utilizzati algoritmi moderni di crittografia. Nuovi algoritmi più potenti e più moderni possono in seguito essere aggiunti ad una applicazione senza cambiare il protocollo in modo da poter far fronte alle esigenze di sicurezza future. È sufficiente firmare i messaggi per alcune aree selezionate in modo da evitare modifiche effettuate da terzi, mentre per altre aree e possibile implementare ulteriori codifiche dei messaggi in modo che non possano essere letti anche da terzi.
AUTENTICAZIONE E AUTORIZZAZIONE DELLE APPLICAZIONI
Le applicazioni OPC UA si identificano tramite l’ausilio di un certificato software. Un OPC UA Client può ottenere l’accesso ad un OPC UA Server tramite il suo certificato software e quindi ottenere l’accesso alle informazioni contenute nell’OPC UA server. Tramite l’utilizzo dei certificati software si può configurare un OPC UA Server in modo che accetti
la comunicazione solo da certi e particolari OPC UA Clients. Allo stesso tempo un OPC UA Client tramite la verifica del certificato software dell’OPC UA Server può controllarne la sua autenticità (allo stesso modo di come funziona un Web Browser). Questi comportamenti sono configurabili, vale a dire un server OPC UA può concedere lo stesso accesso ad ogni cliente, in base ai diritti degli utenti.
Il protocollo MQTT ha introdotto, nella versione 3.1, alcuni requisiti che ne incrementano il livello di sicurezza, anche se questo protocollo non può garantire un livello di sicurezza e di robustezza come l’OPC UA. L’uso del protocollo MQTT, proprio per la sua “leggerezza” e semplicità, non può quindi garantire un livello di sicurezza dei dati elevato. E’ possibile utilizzare il protocollo su SSL, quindi a prescindere dal protocollo in sé, oppure è possibile aggiungere ulteriori sicurezze nella gestione dei dati, essendo un protocollo aperto, ma si uscirebbe dallo standard e ci si complicherebbe la vita.
L’utilizzo dell’infrastruttura PubNub garantisce un buon livello di sicurezza, in quanto supporta nativamente gli standard di sicurezza AES e TLS/SSL, permettendo quindi la gestione dei permessi e dei certificati nella trasmissione dei dati tra i dispositivi o le applicazioni. Inoltre dispone di un “Access Manager” per gestire al meglio la pubblicazione e la sottoscrizione dei permessi tra dispositivi o applicazioni. Infine PubNub garantisce la sicurezza fisica dei propri server con le proprie policies basate su SSAE16.
Occorre però prevedere l’utilizzo di queste funzioni nell’utilizzo delle API di gestione agli accessi all’infrastruttura nel proprio progetto.