Design for the consequences of a breach
No responsible technology provider should promise that a system can never be compromised. A robust security architecture instead assumes that individual controls can fail and aims to prevent one failure from becoming a much larger incident.
A common approach to protecting sensitive data is to secure a database, restrict access to it and encrypt its contents. These controls matter, but they do not, by themselves, answer a critical question: if an attacker gained access to one part of the platform, how much information could they obtain - and what could they do with it?
For Step, this is a fundamental design consideration. We aim to reduce the amount of sensitive information held together, separate information that would be particularly damaging if combined, and introduce additional layers of protection around access to that information.