Schneier's law
expressãocriptografiasegurança
'Qualquer um consegue inventar um sistema de segurança tão engenhoso que ele próprio não sabe como quebrar.'
Bruce Schneier formulou a observação em 1998 e Cory Doctorow depois pendurou nela o nome de Schneier: a incapacidade do projetista de quebrar uma cifra é evidência sobre o projetista, não sobre a cifra. É o argumento prático a favor de revisão pública, competições abertas e da contratação de gente cujo trabalho é quebrar seus próprios projetos. Corolário na prática: nunca coloque em produção criptografia que você mesmo inventou.
Qualquer um consegue inventar um sistema de segurança que ele próprio não sabe quebrar. A formulação de Bruce Schneier é deliberadamente incisiva, porque a falha que ela nomeia não é incompetência, e sim um limite estrutural: você não consegue avaliar o próprio projeto, já que as premissas que o fizeram parecer sólido são as mesmas que você precisaria questionar.
A consequência prática é que confiança não é evidência. Uma cifra que você não sabe quebrar diz algo sobre a sua habilidade de ataque e nada sobre a cifra, e é por isso que a área funciona por revisão adversarial, feita por gente com outra formação, outras ferramentas e incentivo para achar algo. O ciclo de publicar e atacar existe justamente porque a autoavaliação não funciona.
Isso se generaliza muito além da criptografia. Um modelo de ameaças escrito pelo arquiteto deixa passar os caminhos que o arquiteto nunca considerou, um plano de resposta a incidentes testado pelo próprio autor não encontra lacunas, e um red team existe porque certeza interna não vale como garantia. A regra prática que decorre disso é desconfortável e correta: se um projeto não foi seriamente atacado por alguém que queria vê-lo falhar, seu estado de segurança é desconhecido, e não bom.