On Mar 2, 2008, at 5:08 PM, Jens Alfke wrote:
On 2 Mar '08, at 2:56 PM, Rainer Brockerhoff wrote:
Well, if your main binary is tamper-resistant with -kill,hard and
you implement some sort of checking for the other resources
inside that, producing a modified (but still signed) app becomes,
at the very least, extremely hard.
Sure. But how is the user supposed to tell whether the app is
still signed? A hacker could just strip the signature after
meddling with the binary, and the user wouldn't know the difference.
In order to achieve the nirvana of only running valid code, the
system must completely refuse to run unsigned code. Since that
would really have ruined third party developers' Leopard
experience, we don't do that in Leopard (except for the Parental
Controls and firewall cases, where we surreptitiously sign unsigned
programs when they are "enabled" to run).
Eventually you will all have signed your recent releases, and we'll
have fixed all the (important) bugs and closed all the (important)
holes, and a switch will materialize to this effect - to refuse (at
the kernel level) to run any code that isn't valid. But not in
Leopard. You can all thank me later. :-)