Progettazione TLS / SSL e modello OSI

1

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 ?

    
posta Claudio P 14.07.2018 - 13:44
fonte

1 risposta

3

I protocolli del livello di trasporto come UDP, TCP, SCTP ... sono tradizionalmente implementati nel kernel del sistema operativo. Mentre sarebbe probabilmente possibile progettare un protocollo che esegue la crittografia a livello di trasporto (o livello di rete come IPSec), l'adozione del protocollo richiederebbe quindi modifiche a tutto il sistema operativo pertinente. Ciò significa che l'adozione del protocollo sarebbe probabilmente molto lenta.

All'epoca in cui è stato inventato SSL, Netscape non solo ha creato il browser principale, ma anche un importante software per server. Era quindi molto più facile e veloce aggiungere il trasporto protetto direttamente nel software applicativo (sia client che server) invece di cercare di ottenere un approccio forse più accademicamente pulito nei vari sistemi operativi.

A parte questo modello OSI e il modello TCP / IP sono solo viste astratte su come funzionava la rete al momento della creazione di questi modelli. Mentre in questo momento la complessità era in gran parte agli strati inferiori, la complessità oggi è agli strati superiori e il modello OSI e TCP / IP non affronta più la complessità di oggi. Basta prendere QUIC, HTTP / 2 o anche WebSocket che implementano le attività del livello di trasporto all'interno del livello dell'applicazione.

    
risposta data 14.07.2018 - 14:19
fonte

Leggi altre domande sui tag