Recientemente se han hecho algunas discusiones sobre el enfoque de seguridad de ProtonMail. Ya que hace cosas criptográficas en el lado del cliente, cargar el código javascript en el navegador del usuario, que yo sepa, incluso si ese código se publica en algún lugar de Internet, no hay garantía de que no haya sido manipulado por una entidad malvada con acceso de administrador al servidor antes de que el usuario lo use realmente.
Entonces, en términos generales, la pregunta es: ¿cómo puedo desarrollar software de código abierto y permitir que el usuario final verifique si el código detrás de ese software es el mismo que se publicó?
En el caso de software compilado puedo usar compilaciones reproducibles firmadas, pero en el caso de código interpretado (por ejemplo, JavaScript como en ProtonMail), ¿qué puedo hacer?
A partir de mi conocimiento básico de programación y criptografía, intentaría resolver esta situación agregando al código publicado la huella digital de, digamos, cada archivo de origen. Esa huella digital también debe estar firmada por el desarrollador. En este punto, cuando el usuario descarga el código mientras accede al servicio web, puede calcular la huella digital y compararla con la pública. ¿Es viable el enfoque? ¿Me estoy perdiendo algo?
Gracias de antemano!
P.S. Ya he leído algunas otras preguntas como éste y creo que todavía no Responda completamente a esta pregunta.