Hi Christian,
I uploaded patch [1] which shows implementation of VerifySignature class to perform verification of remote files.
This patch contain class SignatureCheck which contain method canExecute. Depending upon return value, we can chose to execute/not execute remote script. It takes into account preference while computing result.
I am taking two kinds of files while performing check. Script on remote server and script on local machine.
Following is the flow within canExecute method
- if script is a remote
- if can execute remote without signature (depending upon preference)
- if signature is not present
- else (signature is present)
- else
- else (script is local)
- if can execute local script without signature (depending upon preference)
- if signature is not present
- else (signature is present)
- else
What should happen when user has set preferences for executing script without signature and scripts is containing signature? In cases when signature is present and file is modified, it is more harmful than scripts that don't contain signature at all because, here we are catching a possible malicious intent.
For this reason, I have placed a check for signature even when user has specified via preference to execute files that don't contain signature but script contain signature.
Thanking you,