Descargo de responsabilidad: nunca he intentado usar el roble araña, así que solo hago lo que dicen que hacen, lo que te dijeron que hacen y cómo se ve el resultado final.
Dado que dicen estar almacenando sus datos encriptados y que nunca podrán acceder a ellos, asumo que lo único a lo que tienen acceso es en realidad la versión encriptada de sus datos. Esto significaría que la aplicación en el cliente realiza todas las operaciones de cifrado / descifrado y solo almacena los datos resultantes (y posiblemente los metadatos cifrados adicionales en el servidor).
Estos datos deben estar encriptados por algo. Ahora siguiendo su respuesta, supongo que tienen una jerarquía de teclas. Mi conjetura sería al menos 2 niveles, pero para simplificar, simplemente asumamos uno.
Esto significaría que los datos se cifran con una clave K 1 generada de forma aleatoria (en su máquina). Luego, esta clave se encripta con una clave K 2 = PBKDF (sal de 32 bytes, contraseña, 16384 rondas). Por la fea descripción anterior, quiero decir que usan el algoritmo PBKDF2 (función de derivación de clave basada en contraseña v2.) (Usando SHA-2) para generar una clave de cifrado a partir de su contraseña. Esta clave K 2 nunca se almacenará en ningún lugar (excepto la memoria del cliente). Siempre se generará sobre la marcha cuando desee acceder a sus datos.
El paquete que luego se enviaría y almacenaría en los servidores de Spider Oak sería E K 1 (datos), E K 2 (K 1 ). Cuando luego desea recuperar los datos, los datos enviados a usted se cifran y la clave que se le envía también se cifra. Cuando ingresa su contraseña, PBKDF2 se usa para generar K 2 que se usa para descifrar K 1 , que luego se usa para descifrar sus datos.
Entonces, ¿qué sucede cuando cambias tu contraseña? Bueno, el servidor envía a su cliente todos los paquetes E K 2 (K 1 ) $ para cualquier K 1 ' s tiene para sus datos. A nivel local, estos se descifran mediante la clave generada a partir de la contraseña anterior y se vuelven a cifrar mediante la clave generada a partir de la nueva contraseña, que da un nuevo K ' 2 .
Cuando llegas a un dispositivo diferente, enciendes a tu cliente y tratas de recuperar tus datos, los datos encriptados vienen acompañados por la clave encriptada con tu nueva contraseña. Usted ingresa la contraseña, PBKDF2 es mágico, y voilá descifra K 1 y luego descifra sus datos.
edit: GAH ¿cómo consigo que TeX funcione aquí en mis publicaciones?
Edit2 .: Al volver a leer la información que recibió del representante, parece que en realidad todos los nuevos K 1 también se generan. Esto parece algo sospechoso en el sentido de que, o bien hacen cifrado / descifrado en sus servidores (por lo tanto, no es totalmente de conocimiento) o le envían todos los datos cuando cambia su contraseña y su cliente la vuelve a cifrar. El primero de estos parece ser más honesto, ya que los gastos generales para el cliente serían bastante grandes. Por supuesto, también es posible que el representante no sepa realmente lo que está diciendo. He tenido que suceder varias veces.