¿Cómo hacer que los usuarios confíen en mi sitio web? Quiero convencerlos de que es todo, 100%, totalmente de código abierto sin ninguna adición oculta

0

Supongamos que tengo un sitio web que maneja datos de otro proveedor / servicio que usan mis usuarios. Mis usuarios inician sesión a través de OAuth con el proveedor extranjero. Necesitan agregar una clave adicional, que guardaré, que a su vez me permite hacer todo tipo de cosas desagradables con su cuenta.

Mi sitio completo (será) de código abierto, sin, obviamente, las claves API y las variables de entorno, como BASE_DIR y similares.

¿Cómo podría convencer a mis usuarios de que el código que utilizan es exactamente el mismo que el de código abierto, sin ningún tipo de adición, por lo que otras personas que saben lo que está pasando pueden decir "Sí, este código es legítimo, no se preocupe "? Un mensaje simple en la parte inferior "Este código es exactamente el mismo que el que se encuentra aquí " se puede falsificar. Lo más probable es que todo sea falso, incluso entonces, ¿cuál sería la forma más confiable? ¿Existe una herramienta de terceros que verifique el contenido del servidor en un repositorio de GitHub?

    
pregunta Mave 02.06.2016 - 12:42
fuente

1 respuesta

3

No puede, a menos que el código que se ejecuta sea totalmente del lado del cliente e interpretado directamente desde la fuente, en cuyo caso pueden verificarlo de forma trivial con las herramientas de comparación de archivos estándar.

La razón es que tendría que probar que toda la pila de software del sistema era confiable, y que toda la pila de hardware era confiable, y que cada punto en la red entre su sistema y el sistema cliente era confiable. Ah, y que el sistema cliente era confiable.

Incluso con un sistema de terceros, es posible que pueda proporcionar archivos diferentes para eso y para los usuarios; consulte este artículo sobre la detección del uso de Bash pipe para un ejemplo de esto. Podría redirigir silenciosamente el servicio de terceros a una versión "buena" de su código, mientras envía a los usuarios la versión "mala", a menos que estén intentando descargar los archivos para su inspección, cuando envíe la versión "buena".

Podrías falsificar el sistema de terceros por completo y controlarlo tú mismo, afirmando que cada conjunto de archivos era idéntico. Podría interceptar la respuesta de un tercero, cambiándola para que pareciera mostrar que todo su código estaba seguro. Puede hacerlo a través de un código malicioso que se ejecuta en el sistema cliente en la primera carga, para que nunca obtengan una respuesta real del sistema de terceros, o simplemente desactive la verificación de terceros para que ni siquiera se enteren.

Ni siquiera puede verificar con total confianza que una aplicación compilada se generó a partir de un conjunto específico de código fuente, en el caso general. Consulte esta respuesta de 2010 para algunos detalles sobre por qué: es el mismo para cualquier otro código compilado, así que no tengas miedo de las referencias de VB6.

Básicamente, debes comportarte de tal manera que confíen en que no harás nada malo y estar preparado para que algunos usuarios no tengan ese nivel de confianza. Hay algunas personas que no usarán ningún software que no hayan compilado ellos mismos, en los sistemas que construyeron ellos mismos, usando compiladores escritos a mano, e incluso podrían verse afectados por instrucciones maliciosas enterradas en chips. Pasamos del punto en el que es posible verificar completamente el comportamiento de la computadora hace mucho tiempo (lea en el malvado compilador de Ken Thompson para un ejemplo), y el modelo cliente-servidor no ayuda con eso.

Por otro lado, la mayoría de las veces no importa: las personas confían en los sistemas todo el tiempo sin este nivel de seguridad.

    
respondido por el Matthew 02.06.2016 - 13:30
fuente

Lea otras preguntas en las etiquetas