@inyourbits in the sense of making secure defaults harder; my experience is:
1. a tool/system comes with secure defaults
2. a user/demo needs a set of exceptions that are contextually reasonable/acceptable
3. the tool/system grows the ability to set "policies," and declaring a custom policy implicitly overrides *all* secure defaults instead of just the ones explicitly overridden
@yossarian something related that I'm getting convinced of is that in e.g. crypto/tls we should do profiles instead of config options.
We take responsibility for the defaults, but then we say "if they don't fit, here are all the dials". Instead, we should have opinionated FIPS 140, compatibility, modern, etc. profiles, just like we have the default profile.
@neverpanic @siosm @yossarian @monk supporting a policy format at the end of the day would be just another way to expose all the dials, as they can still all be turned orthogonally and from the outside.
The difference with profiles is that we'd be able to reason around a few discrete and evolving configurations, based on the user's stated goal.
@filippo @siosm @yossarian @monk and that's precisely what SECLEVEL started out as, targeting a specific security level in bits, adjusted while algorithms were broken. And it's a really bad way to configure things.
Profiles are a good idea, but as I said, details matter. Do you plan on having a profile for what BSI recommends? Or NSA, NIST, something similar to Mozilla's ssl config generator? What do you do when somebody shows up asking for a profile conforming to Chinese standards?
@neverpanic @siosm @yossarian @monk it'd definitely not be about security levels in bits, I don't believe in them anyway.
Mozilla's SSL config generator is what I was thinking about for the compatibility/default/modern profiles. We already effectively have the FIPS 140 profile. Maybe a PQ one? For other profiles, we'd apply the same scrutiny we currently apply to deciding whether to implement those standards at all: IF we implement Chinese algos, it makes sense to have a profile (but we don't).
@filippo @yossarian Have you seen how S2N-TLS handles this?
I did find the lack of a Config.LetMeShootMyselfInTheFoot
option annoying, but I just got them to add a customized policy for my use case...
But don't you like to compromise the security of your entire system when you have to enable SSL3 to connect to that one legacy embedded device that everyone forgot about for the last 15-20 years?