Domanda

Scenario:

Un servizio Web disponibile pubblicamente che ho il pieno controllo su. Ma voglio solo che questa applicazione desktop specifica (la mia applicazione pubblicata) per avere accesso al servizio Web. Potrei memorizzare una password segreta nel client desktop, ma che sarebbe facile da decifrare.

C'è qualche implementazione noto che impone questo? PKI, chiavi asimmetrico?

È stato utile?

Soluzione

Se il pubblico avrà accesso a copie di questa applicazione desktop, ogni buon invertitore sarà in grado di crack e "imitare" le sue operazioni con il server. Si doens't importa quanto è sicuro il vostro crittografia, tutto ciò che si ha bisogno di app per cifrare / decifrare i dati è incluso nei file binari, in modo il cracker ha solo bisogno di scavare fuori di esso.

L'obiettivo della crittografia è quello di proteggere i dati mentre viene trasferito, da "mediatore" hacker, ma se si ha accesso a tutti i coetanei, si può facilmente crack.

Il server non deve mai fidare di quello che viene dal lato client.

[modifica ripresa]

Nonostante non si può garanzia 100% di una presunta client al server è o non è la vostra applicazione o qualche "emulatore" fatta da thirdies, si può complicare le cose per loro. La sua una pratica comune in gioco anti-trucchi a volte, in modo casuale, rendono il client App una domanda trabocchetto come "che cosa è l'hash del vostro main.exe da compensare A per compensare B?" o "da ora in pacchetti di tipo 0x07 swap con tipo di pacchetto 0x5f". Una volta che viene rilevato un falso, server di entrare in una modalità "sciocca", agire malfunzionanti, e blacklist loro IP / account per questa modalità per diverse ore in modo che non possano avere sicuri di quello che il loro programma sta facendo male.

Se si rileva qualcuno sta costruendo un emulatore, farli cominciare tutto da capo: Jumble le tabelle di tipo di pacchetto, tavoli crittografia, modifica alcuni formati di pacchetto e la forza ai vostri clienti di aggiornare. Non vedrete cracker ti dà fastidio per un po '... LOL

Altri suggerimenti

WS-Security prevede la crittografia X509.

La parte di quella applicazione include la possibilità di dare solo client specifici la chiave pubblica generata. In questo modo, solo i vostri clienti selezionati in grado di connettersi al servizio.

Il modo più semplice è la sicurezza dei messaggi utilizzando i certificati client e server. Il modo migliore è quello di importare i certs client nelle macchine server e il codice difficile il client cert identificazione personale nel file app.config. L'altro modo è la negoziazione di certs che non ho provato prima.

Se si utilizza IIS per ospitare il servizio, allora i certificati client utilizzando SSL è un'altra opzione.

WCF Security .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top