Aquí está nuestra historia: estamos desarrollando un software (escrito en C # / .NET) y ya estamos firmando los ensamblajes con nombres sólidos, lo hago en Visual Studio con un archivo pfx que está protegido por una contraseña.
Como paso de seguridad adicional, me gustaría firmar los ensamblados o al menos el ejecutable con Authenticode.
El problema es: los objetivos para nuestra implementación no tendrán acceso a Internet ni podemos obtener nuestro propio certificado verificado por CA en este momento. Tenemos un control completo sobre el destino de la implementación durante la fase de implementación, elegimos el hardware, instalamos el sistema operativo, etc., pero una vez que nuestro producto (que es una combinación de hardware y software) esté "disponible", nos gustaría proporcionar tanta seguridad como podamos.
Por supuesto, entendemos que no podemos controlar lo que sucede en la naturaleza, pero también hemos tomado medidas para poder ver si el hardware ha sido manipulado. Si es así, sabemos que no podemos confiar en el software y no lo veremos.
Para volver a nuestro problema principal: ¿Tiene sentido crear nuestro propio certificado "falso" (no verificable) para firmar los ensamblajes? ¿Necesitamos poner estos certificados en la tienda de Windows? Estoy tratando de evitar que nuestros ejecutables sean reemplazados por otros ejecutables, por ejemplo, a través de una unidad flash USB o algo similar.
¿Cuál es la mejor manera de lidiar con este problema? Gracias de antemano.