So is there a reason why we don't check?
Perché SMTP è stato progettato in un momento in cui il mittente è stato considerato attendibile. Le origini risalgono almeno a RFC 788 del 1981, cioè in un momento in cui esistevano solo pochi nodi su Internet, le e-mail potrebbero essere facilmente ricondotte al nodo mittente per indirizzo IP e lo spoofing del mittente non era un problema.
It would seem to make sense we'd have some form of digital signature to check.
Una firma digitale richiederebbe che ogni mittente avesse un qualche tipo di chiave o certificato in primo luogo. Anche questo certificato avrebbe bisogno di essere ampiamente fidato perché altrimenti non si potrebbe realmente verificare se il mittente è quello che afferma (ad esempio i certificati autofirmati non sarebbero d'aiuto). Uno avrebbe anche bisogno di un'infrastruttura per revocare e rinnovare i certificati nel caso fossero stati compromessi.
Invece oggi è normale richiedere l'autenticazione da parte dell'utente finale. Ma dal momento che SMTP è un modello hop-hop in cui l'utente finale invia solo la posta al primo hop e l'hop successivo inoltra la posta a nome dell'utente originale, gli altri hop devono ancora avere fiducia l'un l'altro. Esistono alcuni meccanismi per garantire che l'indirizzo IP dei mittenti richiesti sia in qualche modo associato all'IP dei mittenti ( SPF ), per avere un percorso affidabile tra i server di posta ( DKIM ) e per allineare SMTP.MAILFROM con RFC822.From (cioè SMTP busta con intestazione della posta) come fatto con DMARC . Solo, questi "add-on" non sono sufficientemente impiegati per proteggere ampiamente contro lo spoofing del mittente.