Author: Alan Reiner 2013-08-05 16:47:30
Published on: 2013-08-05T16:47:30+00:00
A digital signature should be added to package authentication, instead of just a checksum, to ensure better security. To implement this, a distributor public key can be hardcoded in the software, and client software will only trust signed data from that key. The private key for that data is not kept on the server distributing the signed checksums; it is ideally kept offline. A few times per year when executing an upgrade, the new checksums are signed offline and uploaded to the distribution server. Even if the server is compromised, the client-side software will not accept a bogus checksum because it won't bear the right signature. It would also be good to have some kind of revocation process that can be used in the event of the offline key being compromised. A replacement key cannot be issued as that would defeat the purpose; instead, it would be an irreversible broadcast that would force clients to start rejecting updates from that key. If the key is compromised and it is detected, the revocation can be broadcasted and users will stop auto-updating and be given a warning to manually upgrade the software through trusted channels. This method is not fail-proof but is a decent way to minimize damage if compromise is discovered early enough.
Updated on: 2023-06-07T15:24:32.438217+00:00