2011-02-04 11 views
10

Estoy buscando enviar datos cifrados entre un cliente de Silverlight y un servidor de código nativo (C++) usando WCF. Estaba buscando utilizar la clase AesManaged para cifrar los datos que el cliente envía de vuelta al servidor, pero me preguntaba sobre el descifrado. Existe la suposición de que si la clase AesManaged se implementa con la especificación AES, debe ser compatible cruzada con cualquier biblioteca C++ AES, pero dada la experiencia con las "interpretaciones" de especificaciones de Microsoft (y de otros proveedores) anteriormente sentí que debería confirmarlo. si es posible.¿Los datos están encriptados en Silverlight descifrable usando C++?

Mi plan es la construcción de un prototipo, pero yo estaba esperando una respuesta de alguien que tenga experiencia en esta área ya. Usar C++/CLI o C# para acceder a la clase AesManaged no es una opción, ya que estoy tratando con el código heredado al que estoy agregando funcionalidades.

Respuesta

1

Todo lo que puedo decir es que era bueno preguntar; No puedo hablar sobre esta interoperabilidad específica, pero estaba tratando de comunicarme con un software heredado que usaba una implementación nativa más antigua llamada AesLib, y estaba tratando de usar AesCryptoServiceProvider. No hablarían entre sí, aparentemente porque AesLib usa un modo sin IV o tiene un IV estático o determinístico que no pude descubrir.

Si puede obtener y hacer referencia a la implementación de AES que utiliza el servidor nativo e implementar una envoltura compatible con ICryptoServiceProvider, probablemente sea la mejor garantía de que su mensaje llegue intacto (aunque esto puede causar sus propios problemas) De lo contrario, me aseguraría de tener toda la información detectable sobre esta implementación para poder configurar AesManaged de la misma manera. Necesitará, como mínimo, la clave, IV, tamaño de bloque y modo.

0

que había utilizado con éxito C# AesManaged junto con la implementación AES de PHP hace mucho tiempo (en Silverlight 2 Beta), por lo que es ciertamente posible.

Sin embargo, es posible que desee estudiar cosas como IV, rellenos tamaños de bloque y modos cuidadosamente para realizar los ajustes de seguro para el partido de AES.

Cuestiones relacionadas