With public/private key encryption you must trust the central authority correct?
Not quite. The honest parties must have an authenticated (but not necessarily confidential) channel to obtain each other's public keys. A central authority that both parties trust is one way of fulfilling that requirement, but is not the only one. For example, public keys could instead be exchanged through a face-to-face meeting.
What can you do if you don't want to trust the centeral authority? Are there any ways around that?
for example in a chat app
Apps like Signal and WhatsApp provide two authentication methods:
- Use the service itself as a "central authority" that provides you with your contacts' public keys.
- Out-of-band contact verification through security codes, which users can compare independently to verify that the central authority is not cheating them.
From Signal's support page on this:
Each Signal conversation has a unique safety number. The safety number gets stored the first time you exchange a private message with a new contact. You will be alerted if a conversation's safety number ever changes. This can happen if someone else is pretending to be them, or if they get a new phone and reinstall Signal.
[...] The safety number on your phone should match those on your contact's phone. If the safety number is identical then you can be sure that you are communicating with the right person. If the safety number does not match, then make sure you and your contact are using updated versions of Signal, open a conversation with just that contact, and then try again.
WhatsApp has a similar feature as well:
Each of your chats has its own security code used to verify that your calls and the messages you send to that chat are end-to-end encrypted.
Note: The verification process is optional and is used only to confirm
that the messages you send are end-to-end encrypted.
This code can be found in the contact info screen, both as a QR code
and a 60-digit number. These codes are unique to each chat and can be
compared between people in each chat to verify that the messages you
send to the chat are end-to-end encrypted. Security codes are just
visible versions of the special key shared between you - and don't
worry, it's not the actual key itself, that's always kept secret.
If this is something that concerns you at all, you should be at least on occasion checking your conversations' security codes when you meet your contacts in person. For such services not to be abused for mass surveillance, a small but significant percentage of users need to periodically exercise this kind of vigilance.