Comment on Why does Play Store prompt me to update Bitwarden?
hikaru755@feddit.de 1 year agoIt’s a way to verify that an app, or any package of data really, actually comes from the source you’re expecting it to.
It’s based on some clever math, but basically, an app developer has two very large numbers that share a certain mathematical relationship, but if you only know one of them, it’s extremely hard to calculate the other one. One of those numberd (the private key) they keep securely to themselves, the other number (the public key) they publish permanently for everyone to see.
Now when the releases an app or an update to it, they put both the app and their private key into a special formula, which produces a new big number, called the “signature”. Then, they publish both the app and the signature to the play store.
Now, when your app store sees an update of the app, it won’t just blindly trust it, but first check that it’s actually legit, so that it doesn’t accidentally install a virus or something. To do that, it downloads the app and the signature, and puts them into another special function, together with the public key that was used to sign the version of the app that you currently have installed. Now the clever part is, because of the special mathematical relationship between the public key and the private key, this function can check whether the signature was in fact produced by combining the app with the private key of the developer, without actually having to know that private key. This way, it can now be sure that this app update is actually coming from the original developer - unless they have been compromised and their private key leaked.
This I very close to how (asymmetrically) encrypted messaging works, btw. If you have a key pair like above, you can encrypt a message with one of the keys in a way that it’s only decryptable with the other one. This way you can have people send you encrypted messages without anyone else knowing the encryption key, not even the sender of the message.
LinkOpensChest_wav@lemmy.one 1 year ago
This is fascinating and an excellent ELI5 of something that seems so seamless and simple from the user side. Thanks!