WebApp Sec mailing list archives
Re: Code Signing ???
From: Devdas Bhagat <devdas () dvb homelinux org>
Date: Mon, 15 Aug 2005 03:13:40 +0530
On 13/08/05 22:25 -0700, Saqib Ali wrote:
I am a regular reader of Bruce Schneier's Blog, Articles, and Books, and I really like what he writes. However I recently read his book titled "Secret and Lies" and I think he has done some in-justice to the security provided by the "Code Signing". On page 163 of his books, he (Bruce Schneier) basically states that "Code signing, as it is currently done, sucks". Even though I think that Code Signing has its flaws, it does provide a fairly good mechanism for increasing security in an organization. The following are the reasons that he (Bruce Schneier) gives: Bruce's Argument #1) Users have no idea how to decide if a particular signer is trusted or not. My comments: True. However in an organization is the job of the IT/security dept to make that determination. It shouldn't be left up to users. The IT dept should know not to trust "Snake Oil Corp.", however anything from "Citrix Corp" should be fairly safe. Moreover
Assuming that it isn't terribly difficult to obtain such a certificate.
Windows XP SP2 provides provides a mechanism to create a Whitelist of certain trusted signers, and reject everything else. This is a very powerful security mechanism, and greatly increase the security in a corporate environment, if the workstations are properly configured. Having said that, this feature may not be that useful for home user, who can not tell the difference between Snake Oil and Citrix Corp.
And we have had Verisign issuing a certificate to random people in the name of Microsoft[1]. Also, even the IT department cannot trust a random binary, unless it comes over a trusted channel and from a trusted source. "It does only this, and does not send out personal information to tthe world". It does nothing to protect home users, who do not have an IT department and a firewall to protect them. On the other hand, with MS marketing signed code as trustworthy and safe, they are even more at risk from signed executables dropping in spyware and adware. With the increased crap on their systems spewing out data on the network, users who actually care about security are affected.
Bruce's Argument #2) Just because a component is signed doesn't mean that it is safe. My Comments: I fully agree with this. However Code Signing was never intended for this purpose. Code signing was design to prove the authenticity and integrity of the code. It was never designed to certify that the piece is also securely written.
It only proves that someone was willing to spend some money on getting a certificate in that name. Can you give a single good reason to trust a CA who you do not personally know? And a million other people trust them is not a good reason. A web of trust is far more useful than a simple tree.[2]
Bruce's Argument #3) Just because two component are individually signed does not mean that using them together is safe; lots of accidental harmful interactions can be exploited. My comment: Again Code Signing was was never designed to accomplish this.
And that is a large reduction in security. Remember, you cannot blame the vendor (EULA). So the code signing merely proves that the code did, in fact, come from that vendor. Which is of no use, since there is no compensation for bad code.
Bruce's Argument #4) "safe" is not all-or-nothing thing; there are degrees of safety. My comment: I agree with this statement. Bruce's Argument #5) The fact that the evidence of attack (the signature on the code) is stored on the computer under attack is mostly useless: The attack could delete or modify the signature during the attack, or simple reformat the drive where the signature is stored. My comments: I am not sure what this statement mean. I think this type of attack is outside the realm of Code Signing.
If I can compromise the system, I can change the executable and delete the signature. Since the executable will work fine without the signature, it isn't really effective. Devdas Bhagat [1] Verisign has claimed that it has fixed its practices since that event. [2] IIRC, OpenCA is attempting something similar for TLS certificates.
Current thread:
- Code Signing ??? Saqib Ali (Aug 14)
- Re: Code Signing ??? Devdas Bhagat (Aug 14)
- Re: Code Signing ??? Saqib Ali (Aug 15)
- Re: Code Signing ??? Saqib Ali (Sep 04)
- Re: Code Signing ??? Olaf Reitmaier Veracierta (Sep 05)
- Re: Code Signing ??? Saqib Ali (Sep 05)
- Re: Code Signing ??? Saqib Ali (Aug 15)
- Re: Code Signing ??? Devdas Bhagat (Aug 14)