Estoy investigando cómo Silverlight protege las claves AES.
Aquí está el escenario: hay un servicio de canal encriptado en vivo y sin interrupciones. Cuando inicio sesión en el servicio y sintonizo el canal, Silverlight realiza una solicitud a Playready Server para obtener la clave para descifrar el canal. Puedo ver este tráfico con Fiddler. Aquí hay un ejemplo de respuesta:
< AcquireLicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" > < AcquireLicenseResult > < Respuesta > xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages" > < LicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" > < Versión > 1 < / Versión > < Licencias > < Licencia > WE1SAAAAAAM / 6X5HwA4LSn0j / 310MwSKAAMAAQAAASQAAgAEAAAAKAACADYAAAAgAAAAOQAAABjYJ2Z4psK + RI + ICK4lWwGnAAMAAgAAADIAAAANAAAACgABAAEAMgAAAAwAAAANAAEANAAAAAoAlgAAADMAAAAKAAEAAwAJAAAApgABAAoAAACetP60ZllhUkqarGroOJD6fwABAAMAgOxOMdl6Sp6BZzA71EWt / XZSwwfYdViGXft7WPQeM5y77rKFTKLXvCbUna87O7IG2uw8 / ArYY6Q / HxdewsYSTFHMni + VBM5FIjM9fhvfSX8 / YDNyF2A7h1rxWtNSAikxKe / 7rCQF3CLUzQsLXedyace89 / S5O6sS5xgNhI / zNGdyAAEACwAAABwAAQAQqY9kZb / xLmZO3v1Pmp3 / gg == < / Licencia > < / Licencias > < / LicenseResponse > < / Respuesta > < / AcquireLicenseResult > < / AcquireLicenseResponse >
Para esta etiqueta, la documentación de Microsoft dice que es una cadena codificada en Base64 (pero la cadena no se puede decodificar con decodificadores estándar).
También trato de escribir una aplicación Silverlight que descodifique esta cadena con la función Silverlight decode
, aún no se puede descodificar.
Quiero encontrar algunos detalles, ¿cómo protege Silverlight estas claves?
Hay algunos proyectos sobre cómo encontrar claves AES desde volcados de memoria. En una tesis de maestría está escrito que encontraron claves AES con el programa aeskeyfind
de un volcado de memoria de la máquina virtual. Intenté lo mismo pero falló.
Otro proyecto en GitHub dice que puede encontrar claves AES en un proceso. Lo intenté también (con el identificador de proceso del navegador y el complemento) pero también falló.
Entonces, ¿es imposible encontrar la clave que Silverlight obtuvo de PlayReady y si es así como Silverlight protege las claves AES?