Non puoi.
Non esiste un modo sicuro per trasmetterlo se non è possibile autenticare il server e stabilire un canale sicuro. Se non è possibile autenticare il server, non si può essere sicuri se si sta parlando con il server o l'autore dell'attacco. Quindi, anche se utilizzi TLS per stabilire un canale sicuro, non ti protegge affatto dal momento che potresti parlare con l'utente malintenzionato mentre pensi che stai parlando al server.
Il certificato è essenziale. Senza di esso, o una certa conoscenza della chiave pubblica del server, non puoi essere sicuro di comunicare realmente al server in quanto un utente malintenzionato potrebbe agire come un uomo nel mezzo tra te e il server.
TLS usa Diffie-Hellman per lo scambio di chiavi. Se osservate la sezione sicurezza della pagina di Wikipedia, troverete il seguente attacco che è esattamente ciò a cui sei vulnerabile.
In the original description, the Diffie–Hellman exchange by itself
does not provide authentication of the communicating parties and is
thus vulnerable to a man-in-the-middle attack. Mallory may establish
two distinct key exchanges, one with Alice and the other with Bob,
effectively masquerading as Alice to Bob, and vice versa, allowing her
to decrypt, then re-encrypt, the messages passed between them.
Conclusione
Devi avere un certificato valido per essere in grado di autenticare il server o sarai vulnerabile all'uomo nell'attacco centrale. Un modo semplice per ottenere ciò è includere il certificato del server nella tua applicazione, noto anche come blocco dei certificati .