Door Anoniem: Niet beide,
Security by design betekent dat je nieuwe functionaliteit ontwerpt met security als primair uitgangspunt.
Blijkt het vervolgens niet veilif te kunnen, dan komt die nieuwe functionaliteit er niet.
Functionaliteit zou te allen tijden ondergeschikt moeten zijn aan security! Kan het niet veilig? Dan kan het dus niet.
Er zijn eisen en wensen. Een eis moet, onvoorwaardelijk. Een wens hoeft niet per se, en door prioriteiten aan je wensenlijstje te hangen kan je bepalen waar je voorrang aan geeft boven wat. Maar eisen zijn niet onderhandelbaar, dat zijn showstoppers als ze niet gerealiseerd kunnen worden.
Security overtreft functionaliteit niet, security is een eis, en overtreft wel wensen maar niet andere eisen, die er natuurlijk ook zijn.
Ik schreef eerder:
Die beperking moet een functionele eis zijn, en dan zijn alle securitymaatregelen onderdeel van de implementatie van die functionele eis.
Even rondneuzend zie ik dat ik te lang uit het actieve vak weg ben en word ik eraan herinnerd dat men dit een niet-functionele eis zou noemen (ik heb altijd al de neiging gehad om soms wat anders tegen dat soort dingen aan te kijken dan de ware functioneuten, in mijn ogen is de eis dat een systeem een functie als toegang geven aan een indringer
niet uitvoert een eis over de functies en dat zou ik een functionele eis noemen, maar dat is kennelijk mijn afwijking).
Maar het verandert niets aan de afweging, ook een niet-functionele eis is niet optioneel, als iets optioneel is is het per definitie een wens. En wat je bouwt is nooit alleen maar gedefinieerd in termen van wat je niet wil, het wordt gebouwd vanwege de dingen die je wel wil. Als je alleen maar ongeoorloofde toegang wilt buitensluiten als eis aan een nieuw systeem dan hoef je dat hele systeem niet te bouwen. Het is niet de reden voor het nieuwe systeem.