Chiavi chiamate WCF Silverlight sicure

1

Ho un'applicazione Silverlight che usa Entity Framework.

L'applicazione è protetta con un accesso effettuato in ASP, quindi solo gli utenti validi ottengono il file xap.

Devo proteggere le chiamate WCF a Entity Framework? Devo effettuare chiamate su https, ma posso assicurarmi che solo gli utenti validi possano ottenere dati dal servizio WCF?

Grazie Jakob

    
posta user1741807 10.02.2013 - 07:26
fonte

1 risposta

1

Non è facile. In definitiva, stai distribuendo l'applicazione Silverlight agli utenti e, se questi utenti desiderano esaminare le sue comunicazioni, possono farlo.

Se non fai nulla per proteggerlo, è semplice come eseguire un proxy come Fiddler e basta vedere quali URL colpisce e quali parametri passa.

Se fai fai dei passi per proteggerlo, tieni presente che, poiché gli utenti hanno l'eseguibile, possono eseguirne il reverse engineering. Non ho smontato un'applicazione Silverlight ma presumo che, come altri assembly .NET, non è un processo particolarmente difficile.

Ma se vuoi mettere un ostacolo all'ingresso che garantisca almeno che solo le persone disposte a fare un vero sforzo possano decodificarlo, fai qualcosa di simile:

  • Coppia di chiavi pubblica / privata; la chiave pubblica è nell'app, la chiave privata sul tuo server
  • Tutte le chiamate WCF includono un parametro che è gli altri parametri concatenati e quindi crittografato con la chiave pubblica
  • Il server verifica questo parametro su tutte le chiamate

Se vuoi fare un altro passo per proteggersi dagli attacchi di replay, aggiungi un parametro di timestamp a tutte le chiamate di servizio. Anche questo timestamp (che è concatenato insieme agli altri parametri prima della crittografia) viene controllato; consentire un margine di manovra per gli orologi che non sono sincronizzati, ma se è diverso da qualche minuto rispetto all'orologio del server, rifiuta la chiamata.

Ma prima di passare troppo tempo a fare tutto questo, ancora una volta, non aspettarti che sia infallibile.

    
risposta data 10.02.2013 - 10:15
fonte

Leggi altre domande sui tag