No tengo experiencia en la firma de código, pero estaba pensando en esto: como saben, existen varias herramientas para la generación de certificados digitales autofirmados (como makecert desde Windows u OpenSSL). Ahora, sería genial si un desarrollador de malware pudiera firmar el código de su malware de una CA de confianza. Solo puede firmarlo de dos maneras:
- Paga a una CA de confianza para generar un certificado con el cual firmará su malware;
- Crea un certificado autofirmado donde, por razones obvias, la autoridad que otorga el certificado es igual al nombre del sujeto
En particular, el segundo punto tiene que ver con mi pregunta: si se conoce el algoritmo para generar un certificado digital , podría escribir mi propio generador de certificados para firmar mi solicitud, donde el Emisor es un nombre de CA bien conocido; luego agrego el certificado recién generado en Trusted Root Certificate Authority (en el sistema operativo Windows). Ahora, cuando alguien abre la aplicación, el certificado se instala en el TRCA y luego se inicia el malware. El malware se firma con el certificado que se acaba de agregar y parece que proviene de una fuente bien conocida debido al nombre de la AC. Sé que, si pudiera ser posible, la CA y todas las cosas de la criptografía no existirían y sería muy sencillo generar un certificado por mi cuenta donde el liberador es una CA. Entonces mi pregunta es: ¿por qué no hay manera de generar un certificado autofirmado donde el Emisor sea diferente del Asunto?