Non puoi fidarti dell'input proveniente dal mondo esterno, che si tratti di messaggi nello schema di autenticazione o nei file di dati.
Gli aggressori possono e ti invieranno messaggi non validi per far scattare bug o perdite di informazioni nei tuoi endpoint pubblici. Saranno anche felici di falsificare le credenziali se il tuo (presumibilmente homebrew) schema di autenticazione si fida ciecamente della parte straniera.
Non esiste alcuna sicurezza o fiducia universale, tutti i meccanismi stabiliti si basano sulla creazione di relazioni di fiducia in anticipo (chiavi di pre-condivisione) o sul rinvio a fornitori di fiducia esistenti (autorità di certificazione per TLS).
L'unica cosa che differisce tra gli hacker sfruttando i tuoi protocolli e binari di reverse engineering e di origine è che è leggermente più facile per loro prendere confidenza su ciò che il tuo programma fa da codice sorgente scritto in modo decente.