Overview
This proposal is about redesigning the mechanism for encrypting LeaseSets.
Motivation
Current encrypted LS is horrendous and insecure. I can say that, I designed and implemented it.
Reasons:
- AES CBC encrypted
- Single AES key for everybody
- Lease expirations still exposed
- Encryption pubkey still exposed
Design
Goals
- Make entire thing opaque
- Keys for each recipient
Strategy
Do like GPG/OpenPGP does. Asymmetrically encrypt a symmetric key for each recipient. Data is decrypted with that asymmetric key. See e.g. [RFC-4880-S5.1] IF we can find an algo that's small and fast.
Trick is finding an asymmetric encryption that's small and fast. ElGamal at 514 bytes is a little painful here. We can do better.
See e.g. http://security.stackexchange.com/questions/824...
This works for small numbers of recipients (or actually, keys; you can still distribute keys to multiple people if you like).
Specification
- Destination
- Published timestamp
- Expiration
- Flags
- Length of data
- Encrypted data
- Signature
Encrypted data could be prefixed with some enctype specifier, or not.