• ricecake
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    There are different ways.

    One way is to use an encryption module on the device that, rather than storing the keys just encrypts the keys and holds an encryption key that you can’t extract, and can do various crypto operations.
    Now you ask the module to do a secure key exchange algorithm with the new device, meditated by a party the module trusts, like apple or something.
    Now both devices share a secret key, and they trust that the other is owned by the same user because the owner verified with apple who then signed the exchange messages.
    Old device decrypts with the old key, and encrypts with the new key, never letting the data leave the secure module. Send the data to the new device which can do the reverse, and both devices forget the shared password.

    Overall, minor weaknesses like storing keys in the cloud encrypted by a key derived from a password that the cloud never sees, while objective weaknesses, are still significant net improvements to security over passwords.

    • coffinwood@feddit.de
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Thank you for explaining. That’s a thing most sites leave out: tell people how the keys cannot be stolen while still working on a different device.

      • ricecake
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Big reason for that is the spec for how this all works being around for a while, giving people a lot of time to write about the core of how it works, but the viable popular implementations are far newer, so articles still haven’t been updated, and doing the key transfers is still one of the newest parts that the big vendors don’t want to talk about yet, because they still have to get their patents fully approved and everything.

        What I described above is one way to move data between two devices in a secure way with a trusted intermediary to verify identity, but I have no idea if it’s how any major vendor actually does it, because they haven’t made that data public. It’s just what’s obvious to a sufficiently informed subject matter expert.