Symmetric key storage

后端 未结 9 1342
清歌不尽
清歌不尽 2021-01-31 18:48

My company is going to be storing sensitive data for our customers, and will be encrypting data using one of the managed .NET encryption algorithm classes. Most of the work is d

相关标签:
9条回答
  • 2021-01-31 19:17

    Depending on your application you could use the Diffie-Hellman method for two parties to securely agree on a symmetric key.

    After an initial, secure exchange, the key is agreed upon and the rest of the session (or a new session) can use this new symmetric key.

    0 讨论(0)
  • 2021-01-31 19:18

    Microsoft Rights Management Server (RMS) has a similar problem. It just solves it by encrypting its configuration with a master password. ...A password on a password, if you will.

    0 讨论(0)
  • 2021-01-31 19:26

    Use a hard-coded key to encrypt the generated key before writing it out. Then you can write it anywhere.

    Yes you can find the hard-coded key, but so long as you're assuming it's OK to store a symmetric key anywhere, it's not less secure.

    0 讨论(0)
  • 2021-01-31 19:28

    We have the same problem, and have been through the same process.
    We need to have a process start up on one computer (client) which then logs in to a second computer (database server).

    We currently believe that the best practice would be:

    • Operator manually starts the process on client PC.
    • Client PC prompts operator for his personal login credentials.
    • Operator enters his credentials.
    • Client PC uses these to login to the database server.
    • Client PC requests its own login credentials from database server.
    • Database server checks that operator's login credentials are authorised to get the client process' credentials and returns them to the client PC.
    • Client PC logs out of datbase server.
    • Client PC logs back into database server using its own credentials.

    Effectively, the operator's login password is the key, but it isn't stored anywhere.

    0 讨论(0)
  • 2021-01-31 19:29

    Your best bet is to physically secure the hardware the key is on. Also, don't ever write it to disk - find some way to prevent that section of memory from being paged to disk. When encrypting/decrypting the key needs to be loaded into memory, and with unsecure hardware there's always this venue of attack.

    There are, like you said, hardware encryption devices but they don't scale - all encryption/decryption passes through the chip.

    0 讨论(0)
  • 2021-01-31 19:31

    You can encrypt the symmetric key using another symmetric key that is derived from a password using something like PBKDF2.

    Have the user present a password, generate a new key used to encrypt the data, generate another key using the password, then encrypt and store the data encryption key.

    It isn't as secure as using a hardware token, but it might still be good enough and is pretty easy to use.

    0 讨论(0)
提交回复
热议问题