Pregunta

Escenario:

Una disposición del público de servicios Web que tengo un control total sobre. Pero sólo quiero esta aplicación de escritorio específico (mi aplicación publicada) para tener acceso al servicio Web. Yo podría almacenar una contraseña secreta en el cliente de escritorio, pero que sería fácil de descifrar.

¿Hay alguna aplicación conocida que hace cumplir esto? PKI, claves asimétricas?

¿Fue útil?

Solución

Si el público tendrá acceso a copias de esta aplicación de escritorio, cualquier buen inversor será capaz de romperlo y "imitar" sus transacciones con el servidor. Doens't importa qué tan seguro es su criptografía, todo lo que necesita la aplicación para encriptar / desencriptar datos se incluye en los archivos binarios, por lo que el cracker sólo tiene que sacarlo de ella.

El objetivo de la criptografía es la protección de los datos mientras se están transfiriendo, de los piratas informáticos "medio-hombre", pero si usted tiene acceso a cualquiera de los compañeros, puede fácilmente crack.

Su servidor nunca debe confiar en lo que viene del lado del cliente.

[editar reanudación]

A pesar de que no se puede garantizar el 100% de un supuesto cliente a su servidor es o no es su aplicación o algún "emulador" hecha por thirdies, puede complicar las cosas para ellos. Es una práctica común en el juego anti-tramposos a veces, al azar, hacen que el cliente de App una pregunta con trampa como "cuál es el hash de su main.exe desde el desplazamiento de A a B compensado?" o "de ahora en el tipo de paquete 0x07 intercambios con el tipo de paquete 0x5F". Una vez que se detecta una falsificación, servidor de entrar en un "modo de tonto", actuar disfuncional, y la lista negra de su IP / cuenta a este modo durante varias horas, por lo que no pueden tener seguro de lo que su programa está haciendo mal.

Si detecta que alguien está construyendo un emulador, hacer que empezar todo de nuevo: mezclar las tablas de tipo de paquete, mesas de criptografía, cambia algunos formatos de paquetes y forzar a sus clientes a actualizar. No verá galletas le está molestando por un tiempo ... LOL

Otros consejos

WS-Security proporciona para el cifrado X509.

Parte de que la aplicación incluye la posibilidad de que sólo dan los clientes específicos de la clave pública generada. De esa manera, solamente sus clientes seleccionados puede conectarse al servicio.

La forma más sencilla es la seguridad de mensajes usando certificados de cliente y servidor. La mejor forma de hacerlo es importar los certificados de clientes en sus máquinas de servidor y el cliente codificar cert huella digital en el archivo app.config. La otra forma es la negociación de los CERT que no he probado antes.

Si está utilizando IIS para alojar el servicio a continuación, los certificados de cliente mediante SSL es otra opción.

WCF Seguridad .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top