Digamos que tenemos un cliente de chat p2p de código abierto descentralizado destinado a la comunicación segura. El principal vector de ataque parece ser el mecanismo de actualización (centralizado). Qué métodos y / o técnicas se pueden usar para minimizar los ataques durante el proceso de actualización. Al final, un desarrollador malicioso siempre puede introducir un código malicioso, por lo que lo mejor que podemos hacer es minimizar esas posibilidades.
Algunos temas en los que he estado pensando simplemente para hacer rodar la pelota (pero no me siento obligado a responderlos o limitarme a ellos):
- ¿Se deben utilizar las actualizaciones automáticas? ¿Y deberían aplicarse instantáneamente o vale la pena esperar un tiempo fijo que permita que se retire en el caso de un hackeo (debido al costo de los bugs de seguridad que están abiertos durante x días)?
- ¿Basta con una conexión https simple (con certificado anclado) para evitar ataques MITM en el archivo de descarga o si se deben verificar otras cosas como una suma de comprobación descargada desde un servidor diferente?
- ¿Se pueden tomar medidas contra, por ejemplo, que el gobierno (la única parte que puede hacerlo legalmente) tome el servidor y cargue una nueva versión? (Estaba pensando en algún tipo de sistema en el que el archivo debe estar alojado en diferentes jurisdicciones o algo así)
- ¿Existen formas de requerir al menos
n
dem
parties (desarrolladores) para firmar la nueva versión?