A method of verifying data in a data communication system, the data communication system comprising: a data verification provider server system; and user equipment potentially comprising one or more malicious software elements that can communicate data via a first data communication channel, the method comprising the following steps at the user equipment: receiving one or more data verification software elements to be used to perform data verification for a given data verification request from a remote source via a data communication network, wherein the one or more data verification software elements vary between different data verification requests from the data verification provider server system; establishing, using the one or more data verification software elements, a second data communication channel, separate from the first data communication channel, for communicating data with the data verification provider server system; receiving, via the second data communication channel, data identifying one or more algorithms to be used to derive output data from given input data, the one or more algorithms being associated with a given data verification request from the data verification provider server system and varying between different data verification requests from the data verification provider server system; using the one or more algorithms and received input data to derive output data; and transmitting the output data derived using the one or more algorithms via the second data communication channel, whereby the data verification provider server system is operable to compare the derived output data with expected output data for the given data verification request to determine a data verification result. a data verification provider server system; and user equipment potentially comprising one or more malicious software elements that can communicate data via a first data communication channel, the method comprising the following steps at the user equipment: receiving one or more data verification software elements to be used to perform data verification for a given data verification request from a remote source via a data communication network, wherein the one or more data verification software elements vary between different data verification requests from the data verification provider server system; establishing, using the one or more data verification software elements, a second data communication channel, separate from the first data communication channel, for communicating data with the data verification provider server system; receiving, via the second data communication channel, data identifying one or more algorithms to be used to derive output data from given input data, the one or more algorithms being associated with a given data verification request from the data verification provider server system and varying between different data verification requests from the data verification provider server system; using the one or more algorithms and received input data to derive output data; and transmitting the output data derived using the one or more algorithms via the second data communication channel, whereby the data verification provider server system is operable to compare the derived output data with expected output data for the given data verification request to determine a data verification result. receiving one or more data verification software elements to be used to perform data verification for a given data verification request from a remote source via a data communication network, wherein the one or more data verification software elements vary between different data verification requests from the data verification provider server system; establishing, using the one or more data verification software elements, a second data communication channel, separate from the first data communication channel, for communicating data with the data verification provider server system; receiving, via the second data communication channel, data identifying one or more algorithms to be used to derive output data from given input data, the one or more algorithms being associated with a given data verification request from the data verification provider server system and varying between different data verification requests from the data verification provider server system; using the one or more algorithms and received input data to derive output data; and transmitting the output data derived using the one or more algorithms via the second data communication channel, whereby the data verification provider server system is operable to compare the derived output data with expected output data for the given data verification request to determine a data verification result.