¿Cómo puedo probar que mi software es seguro para aquellos que están interesados en instalarlo?

6

He escrito un programa de bloqueo de contraseña para Microsoft Windows que encripta su contenido en la máquina local. La única forma de obtener los datos es con la clave de cifrado que el usuario conoce. Utiliza las API existentes en el sistema operativo para realizar el cifrado.

Creo que es seguro y no he escrito ninguna puerta trasera en él, pero no obtengo ningún impulso en su distribución porque la gente no confía en que tal aplicación no sea backdoored o bien cifrado.

¿Qué puedo hacer para asegurar adecuadamente a los posibles usuarios que el software es seguro de usar?

    
pregunta János Tigyi 02.03.2016 - 17:28
fuente

3 respuestas

14

Probar es una palabra fuerte y, para ser honesto, no es la palabra que estás buscando. Lo que realmente quieres es confianza. Desea que los usuarios (o los usuarios potenciales, en este caso) confíen en que su software es lo suficientemente seguro como para que los usen para proteger sus datos más confidenciales. Hay varias formas en que puedes hacer esto.

  • Abra el código fuente del software. Si los usuarios tienen la capacidad de revisar el código fuente, es más probable que los usuarios técnicos confíen en él, incluso si nunca hacen revisan el código fuente, o en muchos casos ni siquiera están calificados para revisar el código fuente .
  • Obtenga una opinión independiente de un tercero calificado. En otras palabras, una auditoría que le brinde a su software una factura limpia de salud.

  • Presentación profesional. Si su software se encuentra en un sitio web que parece haber sido creado por un aficionado en su tiempo libre, muchas personas aceptarán esa calidad para todas sus funciones, incluida la seguridad. Si se presenta profesionalmente, y parece estar respaldado por alguien profesional, correctamente o no, la gente lo considerará mejor. Tal es la psicología.

Por último, es probable que su mayor desafío no esté en su propia oferta, sino en la competencia. Hay un montón de software de administrador de contraseñas por ahí. Lo tuyo no solo tiene que parecer de alta calidad y seguridad, sino al menos tan alta y segura como la de ellos.

    
respondido por el Xander 02.03.2016 - 23:03
fuente
5

Si se toma en serio la presentación de pruebas de seguridad (dudaría en usar la palabra "prueba"), entonces para el mercado estadounidense, Programa de Validación de Módulo Criptográfico NIST (CMVP) es lo que necesitaría.

Tenga en cuenta que obtener la validación es un proceso largo, arduo y costoso, y puede requerir inversiones y cambios significativos.

También tenga en cuenta que si pasa, no solo obtiene publicidad gratuita de el Gobierno de los EE. UU. , pero su producto es elegible para la compra por parte de las agencias y empresas a las que se les exige usar solo productos validados según FIPS 140-2.

Más allá de eso, una auditoría de terceros pública y de confianza sería al menos alguna evidencia; Le costará, pero no tanto como validarlo.

    
respondido por el Anti-weakpasswords 03.03.2016 - 04:36
fuente
1

No podrá convencer a los posibles usuarios de que su aplicación de administración de contraseñas es segura y confiable sin especificar suficientes detalles de la arquitectura para que los usuarios puedan tomar una decisión informada.

En primer lugar, debe decir qué algoritmo de cifrado se está utilizando y la fuerza de la clave. Con suerte, sea lo que sea, es actual y generalmente aceptado como irrompible contra las tácticas modernas.

También debe hablar sobre cómo su código maneja el descifrado de datos. En la plataforma Windows tiene la clase SecureString que hace un trabajo razonablemente bueno para evitar que los datos no cifrados se almacenen en la memoria en texto plano y / o en la memoria más tiempo del necesario. No sería bueno si los usuarios descubren que si la aplicación anula los datos se encuentran en el archivo de volcado de caída en texto sin formato.

Los detalles de las pruebas de penetración que se han realizado deben proporcionarse junto con los detalles. Lo ideal es que solicites probadores de penetración competentes para mejorar tu aplicación y revelar cualquier debilidad. ¿Qué defensas activas tiene la aplicación contra los métodos de ataque comunes, p. Ej. ¿detectará y rechazará trabajar si alguna de las aplicaciones más comunes de keylogger se está ejecutando?

Por último, no olvides el elemento humano. ¿Qué sucede cuando el usuario olvida su clave o es más probable que la aplicación corrompa o pierda la mitad? ¿Hay una función de recuperación? ¿Cuál es el proceso alrededor de eso? Si los datos simplemente se han ido sin ninguna forma de recuperarlos, eso no se aceptará muy bien. Si hay un proceso para recuperar los datos, entonces ese proceso debe ser examinado. No será bueno si puedo recuperar datos cifrados simplemente encontrando a la madre de mi objetivo en Facebook y sabiendo el nombre de soltera.

No intentar desalentar, pero es un riesgo para el marketing una aplicación de esta naturaleza. Estará compitiendo con compañías que han estado en este negocio durante décadas y tiene los recursos para contratar las mentes más importantes del mundo para desarrollar y / o probar el producto.

Incluso si pudieras hacer eso, necesitarías un descargo de responsabilidad legal muy estricto para protegerte de la responsabilidad. ¿Qué pasaría si se despertara una mañana y estuviera en las noticias de que las clases de cifrado en .Net se explotaron de una manera que hace que su aplicación sea vulnerable? Es posible que haya hecho todo exactamente en su código y en los procesos de soporte, pero depende de bibliotecas de clases fuera de su control directo.

    
respondido por el Thomas Carlisle 07.03.2016 - 21:05
fuente

Lea otras preguntas en las etiquetas