Condividi tramite


Come proteggere le connessioni e autenticare le richieste (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questo argomento descrive i metodi principali usati da Windows Runtime per abilitare le app di Windows Runtime per la protezione delle connessioni e per fornire le credenziali di autenticazione necessarie per stabilire e usare connessioni di rete sicure.

Tecnologie

Creazione di connessioni socket sicure

SSL (Secure Sockets Layer) e il più recente TLS (Transport Layer Security) sono protocolli di crittografia progettati per fornire servizi di autenticazione e crittografia per le comunicazioni di rete. Questi protocolli impediscono l'intercettazione e la manomissione durante l'invio e la ricezione di dati di rete. Per gli scambi dei protocolli viene usato un modello client-server. Questi protocolli usano inoltre certificati digitali e autorità di certificazione per verificare l'identità del server. Il protocollo TLS è documentato nella RFC 5246 di IETF. Il precedente protocollo SSL era stato documentato da Netscape Communications. Il termine SSL viene spesso usato per fare riferimento a entrambi questi protocolli.

Puoi configurare un oggetto StreamSocket in modo da usare SSL/TLS per le comunicazioni tra il client e il server. Il supporto di SSL/TLS è disponibile solo quando l'oggetto StreamSocket viene usato come client nella negoziazione SSL/TLS. SSL/TLS attualmente non può essere usato da StreamSocketListener con l'oggetto StreamSocket creato durante la ricezione di una connessione per abilitare SSL/TLS nell'oggetto StreamSocket, perché la negoziazione SSL/TLS come server non è implementata per StreamSocket.

Per esempi di come creare una connessione socket sicura a un servizio di rete o eseguire l'aggiornamento a questo tipo di connessione, vedi Come proteggere le connessioni socket con TLS/SSL.

Creazione di connessioni WebSocket sicure

Come le connessioni socket tradizionali, anche le connessioni WebSocket possono essere crittografate con Transport Layer Security (TLS)/Secure Sockets Layer (SSL) quando usi le funzionalità StreamWebSocket e MessageWebSocket di Windows 8 per un'app di Windows Store. Nella maggior parte dei casi è preferibile usare una connessione WebSocket sicura. In questo modo le probabilità di riuscita della connessione aumentano, perché molti proxy rifiutano connessioni WebSocket non crittografate.

Per esempi di come creare una connessione socket sicura a un servizio di rete o eseguire l'aggiornamento a questo tipo di connessione, vedi Come proteggere le connessioni WebSocket con TLS/SSL.

Oltre alla crittografia TLS/SSL, un server potrebbe richiedere un valore di intestazione Sec-WebSocket-Protocol per eseguire l'handshake iniziale. Questo valore, rappresentato dalle proprietà StreamWebSocketInformation.Protocol e MessageWebSocketInformation.Protocol, indica la versione del protocollo della connessione e consente al server di interpretare correttamente l'handshake di apertura e i dati scambiati in seguito. Usando queste informazioni di protocollo, la connessione può essere chiusa se in qualsiasi momento il server non è in grado di interpretare i dati in ingresso in modo sicuro.

Se la richiesta iniziale dal client non contiene questo valore o fornisce un valore non corrispondente a quello previsto dal server, il valore previsto viene inviato dal server al client in caso di errore di handshake WebSocket.

Passaggio delle credenziali di autenticazione a un servizio Web

Le API di rete Windows Runtime che consentono alle app di Windows Runtime di interagire con servizi Web sicuri forniscono ognuna metodi specifici per inizializzare un client o impostare un'intestazione di richiesta con le credenziali di autenticazione per server e proxy. Ogni metodo è impostato con un oggetto PasswordCredential che indica un nome utente, una password e la risorsa per cui vengono usate le credenziali. La tabella seguente riporta un mapping delle API:

WebSockets

Background Transfer

Syndication

AtomPub

 

Argomenti correlati

Come proteggere le connessioni socket con TLS/SSL

Come proteggere le connessioni WebSocket con TLS/SSL

Connessione ai servizi di rete