Encriptación del lado del cliente, ¿pero el servicio en la nube aún puede descifrar los datos en caso de fallecimiento? es posible?

39

Me ha preocupado este administrador de contraseñas, PasswordBox que parece estar acumulando bastante vapor últimamente.

Parece que han recaudado fondos de VC y están ofreciendo una herramienta de almacenamiento y gestión de contraseñas gratis. Su equipo no parece tener una amplia experiencia de criptografía.

Lo que realmente me preocupa es que sus Seguridad menciones en la página:

  

Todos sus datos confidenciales se cifran y descifran en su computadora con una contraseña maestra > que solo tu sabes Esta contraseña maestra NO se almacena en nuestros servidores, por lo que sus datos seguros > nadie puede recuperarlo, excepto usted.

Mientras tanto, su página de características menciona que pueden proporcionar acceso a las contraseñas a sus seres queridos después de que un usuario fallece (siempre que tengan un certificado de defunción). Flujo detallado aquí

¿Cómo se puede almacenar en el cliente la clave utilizada para cifrar los datos de la contraseña y aún así permitir que un servicio de terceros pueda descifrar los datos en caso de fallecimiento? ¿Por qué alguien debería confiar en estos tipos?

    
pregunta Mallory 12.06.2013 - 17:01
fuente

5 respuestas

21

Actualizar:

PasswordBox respondió a mi consulta sobre el tema. Personalmente, realmente no pude entender de qué están hablando. Podría ser un problema en la comprensión de mi . A continuación se muestra una captura de pantalla de su respuesta

Estaesunapreguntamuyinteresante.PasswordBoxpareceafirmarquenuncapuedenteneraccesoasuscontraseñas.Segúnsupáginadepreguntasfrecuentes:

  

LosservidoresdePasswordBoxNUNCAveránsusdatosdescifrados

    

PasswordBoxnuncaveoalmacenasucontraseñamaestra,porloquenuncapodemos  Accedeatusdatos

Laúnicaposibilidadquemequeda(quesemeocurre)esquelamitaddelaclavepodríaestaralmacenadaenelclienteylaotramitadensusservidores.Porlotanto,realmentenopuedenaccederasusdatos,ycuandosolicitaaccesoalacuentadeunserquerido,tienenunaformadeenviarlamitaddelaclavedesuservidoralcliente(enlacomputadoraomóvildelapersonafallecida)y,porlotanto,losdatosdesencriptadossoloseencuentranenelpropiocliente.

Tengaencuentaquecuandodigo"la mitad de la clave" se debe a mi falta de conocimiento en criptografía. podría haber alguna forma en que dos partes puedan compartir dos partes de una clave de manera que dos partes sean realmente accesibles al secreto.

Actualización: Gracias a comentario de @ DeerHunter , parece que existe existe tal esquema, se llama Compartir secreto de Shamir Esquema. Acabo de descargar la implementación y he jugado con ella un poco. Para mí (de nuevo, un conocimiento de criptografía muy superficial) me parece que podría ser un buen candidato para el problema propuesto en su pregunta. Puedes probarlo por ti mismo .

SSSS-split(shares, threshold, secret)
SSSS-split(2, 2, "YOUR_KEY")

Acciones = 2 (una parte para usted y una parte del servicio)
Umbral = 2 (se necesitan al menos dos piezas para recuperar el secreto, aquí significa todas las piezas)

Nota: Todas las respuestas (incluida esta) son solo especulaciones. Todavía no sabemos realmente qué sucede porque PasswordBox no comparte muchos detalles técnicos. Lucas y yo ya hemos enviado correos electrónicos a PasswordBox y estamos esperando una respuesta. Una vez que recibamos una respuesta, las respuestas se actualizarán en consecuencia.

    
respondido por el Adi 12.06.2013 - 17:30
fuente
10

Observe la frase "Esta contraseña maestra NO se almacena en nuestros servidores, por lo que nadie puede recuperar sus datos seguros excepto usted". En realidad, uno no significa necesariamente el otro, según los detalles.

Considere el siguiente sistema: Se genera una clave simétrica en el software del cliente mediante la aplicación de la contraseña maestra, con suerte con algo razonablemente fuerte como un número suficiente de rondas PBKDF2. Esta clave se utilizará para cifrar simétricamente sus datos, utilizando algo como AES-128 o AES-256, dependiendo de cuánto tiempo puede generar una clave desde su contraseña. Luego, esa clave se cifra asimétricamente (RSA, ECC) utilizando una clave pública proporcionada por el servicio de almacenamiento a su cliente, y se transmite junto con sus datos cifrados. La clave privada de ese par está asegurada físicamente en un HSM encerrado en una bóveda detrás de concreto reforzado, capas de control de acceso autenticado y reglas de proceso para garantizar que ninguna persona pueda acceder sola.

Para descifrar sus datos normalmente, su contraseña maestra debe volver a aparecer en el software del cliente para obtener la clave simétrica. Si su contraseña no está disponible porque la llevó a la tumba, sus familiares deben presentar su certificado de defunción a los representantes de la empresa, quienes luego recuperan un volcado de datos de la información de su cuenta y los datos almacenados de sus servidores a algo portátil. Lo llevan a una habitación segura con acceso a la bóveda de HSM, sacan el HSM, lo conectan a la computadora y ejecutan su clave simétrica cifrada a través de ella, luego usan la clave descifrada asimétricamente para descifrar simétricamente sus datos y entregarlos. tu familia.

Su contraseña maestra, por lo tanto, nunca se almacena en sus servidores, fiel a su palabra. De manera similar, la clave necesaria para descifrar la suya tampoco está técnicamente almacenada en sus servidores; se mantiene fuera de línea para garantizar que se requiera acceso físico al dispositivo. Entonces, normalmente , usted es la única persona que puede acceder a sus datos. Pero, en el caso de su muerte, a través de un proceso auditado, su familia puede hacer que la empresa de almacenamiento recupere sus datos.

EDITAR DE COMENTARIOS: Esta es solo una posibilidad y, como se desprende de los comentarios, puede suponer más sobre los procesos internos reales de la compañía de lo que realmente existe. El OP preguntó acerca de la posibilidad de un sistema que podría tener cifrado del lado del cliente al tiempo que permite la recuperación de datos del lado del servidor y aún protege la contraseña secreta del usuario. Esta es una de esas posibilidades, y no afirmo ni niego que PasswordBox esté usando algo parecido.

    
respondido por el KeithS 12.06.2013 - 20:03
fuente
7

El flujo proporcionado carece notablemente de detalles técnicos. Proporciona el proceso de personal, pero no el técnico. Es difícil decirlo, viéndolo, lo que significa.

Mi idea original al leer las preguntas frecuentes fue que la contraseña es algo que un humano puede recordar, pero la "contraseña maestra" es un número inscrutable creado a partir de la contraseña y un proceso de acceso. Se utiliza para cifrar los datos del lado del cliente antes del transporte.

Estoy asumiendo que:

  • el beneficiario puede obtener una copia de la contraseña original (no la maestra) y luego, utilizando la máquina del propietario original, el beneficiario puede desbloquear la contraseña maestra para obtener acceso del lado del cliente.

  • son totalmente inconsistentes y hay una manera de descifrar los datos del cliente desde el servidor.

Agregaré una pequeña perorata aquí. Veo mucho esto con los "servicios de seguridad hechos para personas normales. O bien el esfuerzo por reducirlo para que el consumidor regular se sienta seguro hace que la información carezca de sentido técnico, o simplemente no lo hace. No piense lo suficiente en su diseño. De cualquier manera, me vuelve loco que una persona técnica razonablemente competente no pueda obtener una respuesta directa.

    
respondido por el bethlakshmi 12.06.2013 - 17:32
fuente
6

¡Tenga en cuenta que podría haber una diferencia entre la contraseña y la clave de cifrado!

Las primeras declaraciones dicen que no hay forma de que puedan descifrar tus cosas sin tener tu contraseña. Teniendo en cuenta la segunda declaración, creo que probablemente estén cifrando una clave de cifrado o todos sus archivos (duplicados) con su propia clave maestra / contraseña. Lo que significa que pueden descifrar tus cosas y no hay confidencialidad.

Si pueden descifrarlo, significa que tienen alguna forma de obtener su clave (cifrada) (no su contraseña) o tienen una clave maestra. Independientemente de que tengan una forma de acceder a sus datos, ya que están almacenando la clave (tienen que hacerlo si quieren descifrar los datos si alguien muere).

También puede ser que necesite proporcionar la clave de la persona después de su muerte (si la puede encontrar). O otro escenario plausible es que la clave de cifrado en sí misma está cifrada con la contraseña de la madre. Cuando la madre solicita asignar un heredero, el hijo debe proporcionar una contraseña que también cifrará la clave de descifrado de la madre. Ahora la clave de descifrado / cifrado se almacena en sus servidores, pero la clave en sí misma se cifra con una contraseña (por lo que técnicamente no pueden obtener la clave).

Ahora personalmente, prefiero que los archivos estén incrustados localmente (completamente) y que luego se envíen al servicio en lugar del servicio que contiene mi clave de descifrado cifrada con mi contraseña. Debido a que TODAVÍA tendrá acceso a la clave de descifrado (aunque esté encriptada). Quiero decir, ¿qué les impediría implementar una función que almacena una copia de su clave cifrada con su contraseña?

    
respondido por el Lucas Kauffman 12.06.2013 - 17:23
fuente
2

Parece que no puedo hacer comentarios, así que en lugar de una respuesta, con un método simple de cómo se puede lograr:

  1. Se genera la contraseña maestra larga e increíblemente difícil.
  2. El software además crea una clave simétrica completamente aleatoria (larga). Llamemos a esta clave simétrica el DeathKey (básicamente un fragmento de bytes aleatorio largo).
  3. El software utiliza DeathKey para cifrar su contraseña maestra y envía esta contraseña maestra cifrada a PasswordBox.

Ahora PasswordBox no puede "adivinar" su contraseña maestra, porque para eso necesitarían el DeathKey (por lo que nunca debe enviar este DeathKey a PasswordBox).

Si mueres, entonces PasswordBox entrega la contraseña maestra cifrada a tu pariente, quien luego usa el DeathKey almacenado en tu computadora para descifrar la contraseña maestra cifrada.

Voila: Su familiar ahora tiene la contraseña maestra.

En cuanto a la seguridad:

  • El DeathKey es inútil, siempre y cuando nadie tenga acceso a la contraseña maestra cifrada almacenada en PasswordBox. Después de todo, es solo un fragmento de un byte completamente aleatorio.
  • La contraseña maestra cifrada sin el DeathKey también es inútil. Entonces, mientras PasswordBox no tenga acceso a su DeathKey , no pueden hacer nada con eso.

Como ya se mencionó, esto también es solo un algoritmo simple de cómo hacerlo; es pura especulación si PasswordBox está utilizando este algoritmo.

Nota: por supuesto, también puedes hacerlo al revés; almacena la contraseña maestra cifrada en su computadora (cifrada con el DeathKey ) y en su lugar envía este DeathKey a PasswordBox; Una vez hecho esto, el DeathKey se borra completamente de su computadora. Ahora tiene una contraseña maestra encriptada en su computadora, pero la clave de descifrado se almacena en PasswordBox. Esto tiene aún más sentido, ya que con este escenario PasswordBox solo almacena un fragmento de byte aleatorio (el DeathKey ), que realmente no tiene nada que ver con su contraseña maestra.

    
respondido por el Ingo Blackman 13.06.2013 - 04:41
fuente

Lea otras preguntas en las etiquetas