On 9 Dec, 2011, at 2:08 PM, Steven Bellovin wrote:

> 
> On Dec 9, 2011, at 3:46 18PM, Jon Callas wrote:
> 
>> 
>> On 8 Dec, 2011, at 8:27 PM, Peter Gutmann wrote:
>> 
>>> In any case getting signing certs really isn't hard at all.  I once managed 
>>> it 
>>> in under a minute (knowing which Google search term to enter to find caches 
>>> of 
>>> Zeus stolen keys helps :-).  That's as an outsider, if you're working 
>>> inside 
>>> the malware ecosystem you'd probably get them in bulk from whoever's 
>>> dealing 
>>> in them (single botnets have been reported with thousands of stolen keys 
>>> and 
>>> certs in their data stores, so it's not like the bad guys are going to run 
>>> out 
>>> of them in a hurry).
>>> 
>>> Unlike credit cards and bank accounts and whatnot we don't have price 
>>> figures 
>>> for stolen certs, but I suspect it's not that much.
>> 
>> If it were hard to get signing certs, then we as a community of developers 
>> would demonize the practice as having to get a license to code.
>> 
> Peter is talking about stolen certs, which for most parts of the development
> community aren't a prerequisite...  But there's an interesting dilemma here
> if we insist on all code being signed.
> 
> Assume that a code-signing cert costs {$,€,£,zorkmid}10000/year.  Everyone but
> large companies would scream.  Now assume the cost is {$,€,£,zorkmid}.01/year
> or even free.  At that price, it's a nuisance factor, and would be issued via
> a simple web interface.  Simple web interfaces are scriptable (and we all know
> the limits of captchas), which means that malware could include a "get a cert"
> routine for the next, mutated generation of itself.  In fact, they're largely
> price-insensitive, since they'd be programmed with a stash of stolen credit
> cards....

Well said, Steve, and that's largely my point. Any code signing system that 
wants to survive the scrutiny of people like us has to essentially hand out 
certs for free. (And there are regimes that in fact do that, and work well.)

Therefore, you must assume that any given cert might have been stolen or simply 
issued to a bad person. The sketch I gave previously about how code-signing is 
useful even with zero trust on the signing certs. You detect malware by 
signatures, hashes, and keys, and *then* by content scanning, and build up 
whitelists and blacklists. It isn't perfect, but it works better than mere 
content scanning alone.

Any code-signing system that assigns worth to the developers based upon 
certificate issuance is effectively agreeing with those who think that 
evil-doing can be stopped by ID cards and an attendant ban on 
anonymity/pseudonymity.

There is, however, a way to surpass the loosie-goosy signature system. If the 
software marketplace itself were to issue signatures, then you'd have a way to 
get an improvement. You'd really want to back up the mere digital signature 
with an assurance system. If the marketplace enforced code reviews, and backed 
up the code reviews with a capability-based OS so that they could enforce some 
practices (for example, you could keep a Disgruntled Birds game from turning on 
the microphone and camera with capabilities and a code review), then you would 
expect such a software marketplace to have a dramatically lower rate of 
malware. 

They'd have that lower malware rate because in that system, the digital 
signature is an assurance mark on top of an actual assurance system. The debate 
that we're having boils down to wringing our hands over how to make an 
assurance mark that assures quality with no underlying assurance evaluation and 
enforcement.

If someone actually built such combination of OS and marketplace, it would work 
for the users very well, but developers would squawk about it. Properly done, 
it could drop malware rates to close to nil.

But anyway, you're absolutely right, and that's really my point. A code signing 
system that operates on its own has to assume that certs get lost, stolen, or 
handed out to bad (or misguided) people, and have that as part of its threat 
model.

        Jon

_______________________________________________
cryptography mailing list
[email protected]
http://lists.randombit.net/mailman/listinfo/cryptography

Reply via email to