1. A method of authenticating or controlling a software application on an end user device, the method comprising: a) selecting a code signing certificate related to an application developer; b) selecting one or more clean files from a database of known clean files signed with the selected code signing certificate; c) generating an application developer identification for the application developer on the basis of data extracted from the selected one or more clean files; d) adding the generated application developer identification and the related code signing certificate to a database of trusted application developer certificates; e) comparing a signature related to a software application to be installed on an end user device with the respective application developer identification and the code signing certificate in the database for authenticating said signature; and f) in the event that authentication is successful, performing authentication of the software application code and/or controlling installation and/or operation of the software application.