Sto facendo qualche ricerca su come Silverlight protegge le chiavi AES.
Ecco lo scenario: esiste un servizio di canale crittografato dal vivo con flusso fluido. Quando accedo al servizio e sintonizzo il canale, Silverlight invia una richiesta a Playready Server per ottenere la chiave per il canale di decrittografia. Posso vedere questo traffico con Fiddler. Ecco un esempio di risposta:
< AcquireLicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols"> < AcquireLicenseResult>< Response> xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages">< LicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols">< Version>1< /Version>< Licenses>< License>WE1SAAAAAAM/6X5HwA4LSn0j/310MwSKAAMAAQAAASQAAgAEAAAAKAACADYAAAAgAAAAOQAAABjYJ2Z4psK+RI+ICK4lWwGnAAMAAgAAADIAAAANAAAACgABAAEAMgAAAAwAAAANAAEANAAAAAoAlgAAADMAAAAKAAEAAwAJAAAApgABAAoAAACetP60ZllhUkqarGroOJD6fwABAAMAgOxOMdl6Sp6BZzA71EWt/XZSwwfYdViGXft7WPQeM5y77rKFTKLXvCbUna87O7IG2uw8/ArYY6Q/HxdewsYSTFHMni+VBM5FIjM9fhvfSX8/YDNyF2A7h1rxWtNSAikxKe/7rCQF3CLUzQsLXedyace89/S5O6sS5xgNhI/zNGdyAAEACwAAABwAAQAQqY9kZb/xLmZO3v1Pmp3/gg==< /License>< /Licenses>< /LicenseResponse>< /Response>< /AcquireLicenseResult>< /AcquireLicenseResponse>
Per questo tag la documentazione Microsoft dice che è una stringa codificata Base64 (ma la stringa non può essere decodificata con decodificatori standard).
Cerco anche di scrivere un'applicazione Silverlight che decodifica questa stringa con la funzione Silverlight decode
, non è ancora possibile decodificare.
Voglio trovare alcuni dettagli, in che modo Silverlight protegge queste chiavi?
Ci sono alcuni progetti su come trovare le chiavi AES dai dump della memoria. In una tesi di master è scritto che hanno trovato le chiavi AES con il programma aeskeyfind
da un dump della memoria della macchina virtuale. Ho provato lo stesso ma non è riuscito.
Un altro progetto in GitHub dice che può trovare chiavi AES in un processo. Ho provato anche io (con l'ID di processo del browser e del plugin) ma non è riuscito.
Quindi è impossibile trovare la chiave che Silverlight ha ottenuto da PlayReady e se è così che Silverlight protegge i tasti AES?