2009-06-23 11 views
5

Ho un sito web con gli utenti e i loro dati di conseguenza.Qual è il modo più sicuro per implementare servizi Web/API?

Qual è il modo più sicuro per implementare servizi Web/API in modo tale che le credenziali di accesso degli utenti e i dati a loro volta siano sicuri? oAuth non è davvero un'opzione, perché l'utilizzo non sarà necessariamente in altre app web.

La mia preoccupazione è che avere il nome utente e la password come input è pericoloso per essere trasmesso chiaramente, e un token potrebbe anche essere rubato e riutilizzato maliziosamente.

Devo escogitare il mio metodo di crittografia e decrittografia dei dati oppure esiste già una pratica comune?

Il punto è che è il più aperto possibile per chiunque nel mondo da utilizzare, ma comunque sicuro per definizione. La documentazione sarà disponibile a tutti da utilizzare.

risposta

4

C'è sempre lo standard WS-Security:

WS-Security (Wikipedia)

NET ha le sue implementazioni in .NET 1.1 e .NET 2.0 tramite i Microsoft Miglioramenti servizi Web:

WSE 2.0 (.NET 1.1)
WSE 3.0 (.NET 2.0)

Fornisce vari metodi per crittografare la busta SOAP prima che venga inviata sul filo, in modo sicuro t ransmitting i dati all'interno.

+0

mi hai battuto per farlo ... +1 ;-) – fretje

3

Che ne è dell'utilizzo di una connessione SSL?

3

Non scrivere la propria crittografia.

Cosa c'è che non va con un po 'di SSL? Con i client "regolari" WSDL/SOAP (asmx), non è raro che si usi un'intestazione SOAP per questo (su SSL).

Con WCF, questo è formalizzato in TransportWithMessageCredential (solo ricerca). Naturalmente, è possibile utilizzare i certificati, federazione, Kerberos, ecc ...

Oltre alla sicurezza dei trasporti (SSL), WCF supporta anche la sicurezza basata su messaggi - con la caratteristica aggiunta che è possibile crittografare solo la sicurezza intestazioni. Personalmente, mi piace mantenerlo semplice, con TransportWithMessageCredential (cioè SSL).

0

Perché non usi lo standard WS-Security per quello?

Modifica: voglio solo aggiungere alla risposta di Justin, che è anche implementato in WCF.

0

Qualsiasi metodo di autenticazione condiviso con una terza parte è aperto allo sfruttamento, è necessario tracciare una linea da qualche parte. L'utilizzo dei servizi HTTP/S e WS- * per proteggere la connessione è probabilmente l'approccio migliore. Se si accede al servizio solo da sistemi noti con indirizzi IP fissi, utilizzare il firewall per proteggere ulteriormente il proprio dispositivo da interferenze esterne.

+0

Aperto con documentazione che lo supporta. –

Problemi correlati