Method to detect a cloned software to be used on a client user unit communicating with a server for requesting a service by sending a request from the user unit to the server, the latter being connected to a database comprising client records, each of these records comprising at least a tag value (t c), said method comprising an initialization phase and an operating phase, a) the initialization phase comprising the steps of: - defining said tag value (t c) as being equal to an initial value, - opening a new record storing said tag value (t c) at the server, - introducing said tag value (t c) into the client user unit, b) the operating phase comprising the steps of: - preparing, on the user unit side, a client message for the server comprising said request and said tag value (t c), then - sending this client message, from the user unit to the server, - performing an access condition test, on the server side, by checking if the tag value (t c) of said client message is comprised in the database, in negative outcome: deny the requested service, in positive outcome: - sending a server message to the user unit, as a response to said request, - calculating on the server side and on the user unit side a new tag value (t' c) using a hash function configured to use the last tag value (t c) and at least a part of the client message or a part of the server message as input data of said hash function and to provide said new tag value (t' c) as output data of said hash function, - updating said tag value (t c), both on the server side and on the user unit side, by replacing it by the new tag value (t' c), - storing the new tag value (t' c) in the record of the database of the server and in the user unit. a) the initialization phase comprising the steps of: - defining said tag value (t c) as being equal to an initial value, - opening a new record storing said tag value (t c) at the server, - introducing said tag value (t c) into the client user unit, - defining said tag value (t c) as being equal to an initial value, - opening a new record storing said tag value (t c) at the server, - introducing said tag value (t c) into the client user unit, b) the operating phase comprising the steps of: - preparing, on the user unit side, a client message for the server comprising said request and said tag value (t c), then - sending this client message, from the user unit to the server, - performing an access condition test, on the server side, by checking if the tag value (t c) of said client message is comprised in the database, in negative outcome: deny the requested service, in positive outcome: - sending a server message to the user unit, as a response to said request, - calculating on the server side and on the user unit side a new tag value (t' c) using a hash function configured to use the last tag value (t c) and at least a part of the client message or a part of the server message as input data of said hash function and to provide said new tag value (t' c) as output data of said hash function, - updating said tag value (t c), both on the server side and on the user unit side, by replacing it by the new tag value (t' c), - storing the new tag value (t' c) in the record of the database of the server and in the user unit. - preparing, on the user unit side, a client message for the server comprising said request and said tag value (t c), then - sending this client message, from the user unit to the server, - performing an access condition test, on the server side, by checking if the tag value (t c) of said client message is comprised in the database, in negative outcome: deny the requested service, - sending a server message to the user unit, as a response to said request, - calculating on the server side and on the user unit side a new tag value (t' c) using a hash function configured to use the last tag value (t c) and at least a part of the client message or a part of the server message as input data of said hash function and to provide said new tag value (t' c) as output data of said hash function, - updating said tag value (t c), both on the server side and on the user unit side, by replacing it by the new tag value (t' c), - storing the new tag value (t' c) in the record of the database of the server and in the user unit.