The Offline Private Key Protocol (OPKP) is a cryptographic protocol to prevent unauthorized access to back up or archive data. The protocol results in a public key that can be used to encrypt data and an offline private key that can later be used to decrypt that data.
The protocol is based on three rules regarding the key. An offline private key should:
not be stored with the encrypted data (obviously)
not be kept by the organization that physically stores the encrypted data, to ensure privacy
not be stored at the same system as the original data, to avoid the possibility that theft of only the private key would give access to all data at the storage provider; and to avoid that when the key would be needed to restore a backup, the key would be lost together with the data loss that made the restore necessary in the first place
To comply with these rules, the offline private key protocol uses a method of asymmetric key wrapping.
Security
As the protocol does not provide rules on the strength of the encryption methods and keys to be used, the security of the protocol depends on the actual cryptographic implementation. When used in combination with strong encryption methods, the protocol can provide extreme security.
Operation
Initially:
a client program (program) on a system (local system) with data to back up or archive generates a random private key PRIV
program creates a public key PUB based on PRIV
program stores PUB on the local system
program presents PRIV to user who can store the key, e.g. printed as a trusted paper key, or on a memory card
program destroys PRIV on the local system
When archiving or creating a backup, for each session or file:
program encrypts the (optionally padded) key OTRK using PUB to OTRKCR
program stores the OTRKCR and the encrypted data to a server
program destroys OTRK on the local system
program destroys OTRKCR on the local system
the server stores OTRKCR and stores the encrypted data
To restore backed up or archived data:
user feeds PRIV into program
program downloads data with the respective OTRKCR
program decrypts OTRKCR using PRIV, giving OTRK
program can destroys PRIV on the local system
program decrypts data using OTRK
References
This page is based on this Wikipedia article Text is available under the CC BY-SA 4.0 license; additional terms may apply. Images, videos and audio are available under their respective licenses.