A method of detecting whether an attacker has re-programmed a Programmable Logic Controller in a Supervisory Control And Data Acquisition (SCADA) system in order to send false information back to a Human Machine Interface, the method comprising comparing values of data signals (10, A, 12, B) sent from at least one sensor (10a, 10b, 10c, 10d) to the PLC to values of data signals (2, A, 12, B) that the PLC sends to the HMI and issuing an alert if the values of the data signals (10, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) have been altered, the method being characterized in that it comprises the steps of: a. sending the values of the data signals (10, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) to the PLC; b. adding a passive tap in the communication channel between the at least one sensor (10a, 10b, 10c, 10d) and the PLC to monitor the sensor data (10, A, 12, B) that is received by the PLC; c. sending the monitored data (10, A, 12, B) to a monitoring Hash Sensor that is connected via a one way link to the PLC; d. using software on the Hash Sensor to determine cryptographic values (F1BB32A8) of the sensor data (10, A, 12, B) by computing a cryptographic message authentication code function on the monitored data (10, A, 12, B); e. sending the cryptographic values (F1BB32A8) to the PLC; f. sending the cryptographic values (F1BB32A8) and the values of the data signals (2, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) via the PLC to the HMI; and g. using software in the HMI to encrypt the data signals (2, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) via the PLC to the HMI and comparing them against the cryptographic values (F1BB32A8) sent from the Hash Sensor via the PLC to the HMI; wherein the HMI issues an alert if the encrypted data signals (2, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) via the PLC to the HMI are different than the cryptographic values (F1BB32A8) sent from the Hash Sensor via the PLC to the HMI. a. sending the values of the data signals (10, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) to the PLC; b. adding a passive tap in the communication channel between the at least one sensor (10a, 10b, 10c, 10d) and the PLC to monitor the sensor data (10, A, 12, B) that is received by the PLC; c. sending the monitored data (10, A, 12, B) to a monitoring Hash Sensor that is connected via a one way link to the PLC; d. using software on the Hash Sensor to determine cryptographic values (F1BB32A8) of the sensor data (10, A, 12, B) by computing a cryptographic message authentication code function on the monitored data (10, A, 12, B); e. sending the cryptographic values (F1BB32A8) to the PLC; f. sending the cryptographic values (F1BB32A8) and the values of the data signals (2, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) via the PLC to the HMI; and g. using software in the HMI to encrypt the data signals (2, A, 12, B) sent from the at least one sensor (10a, 10b, 10c, 10d) via the PLC to the HMI and comparing them against the cryptographic values (F1BB32A8) sent from the Hash Sensor via the PLC to the HMI;