-
Notifications
You must be signed in to change notification settings - Fork 390
Description
Today, there are effectively two ways to enable security in a production environment:
- Configure all applications to handle both secure and insecure Riak nodes; if a node doesn't allow
STARTTLS
, fall back to insecure requests. - Stop all applications, restart the entire cluster, start all applications in "secure mode"
The 2nd option is more secure but much more disruptive, and doesn't allow for mistakes. If an application isn't ready for security but that fact isn't discovered until the cutover, the user is entirely out of luck.
The 1st option is much more work and coordination for large environments. All applications will need to be touched, but to force them all to handle both secure and insecure operations leaves open the possibility that a misconfiguration or middleman attack could expose data in the future (plus the extra work and possibility of bugs this imposes on users).
If we had a multi-stage security enablement process, wherein security is turned on in one step, and enforced in a later step, users could manage application transitions more gracefully.
There are still security implications to that model, but I think the alternatives are worse. Last time I suggested this I was shouted down quite noisily, but I'd like it to be considered again more formally.