TLS dovrebbe essere, almeno in un senso ampio e teorico, un protocollo del livello di trasporto. Ma TLS fornisce l'autenticazione tramite certificati X.509 basati su un nome host, un nome server o qualsiasi tipo di "nome" che dovrebbe esistere solo a livello di applicazione (a meno che non si autentichi solo indirizzi ip). In pratica, TLS si estende in gran parte tra l'applicazione e il livello di trasporto. Ora mi chiedevo, ci sono motivi tecnici e pratici per cui TLS non è stato progettato per fornire semplicemente metodi di scambio chiave e la creazione di un canale di stato codificato che lascia la verifica dei certificati al livello dell'applicazione, creando un protocollo di livello di trasporto più fluido con un'interfaccia più lineare ?