您需要备份几个步骤,并与客户协商,制定威胁模型。(是的,这是一本长达600页的书的链接;是的,我强烈建议您阅读全文。)
威胁模型首先提出以下问题
- 为什么应用程序首先需要存储此敏感数据?
- 您是否可以完全避免存储它?
- 短时间后可以扔掉吗?
- 是否确实需要多个设备访问它?
- 如果必须在多台设备上对其进行访问,是否需要将其存储在多台设备上?
- 允许谁查看每个用户的敏感数据的人是谁?
- 谁在尝试执行其工作时可能会与每个用户的敏感数据联系,但又不需要知道这些信息的人是谁?
- 可以将这个列表缩短吗?
- 是否可以使他们无法访问数据而又不损害他们的工作能力?
- 如果无法访问它,至少可以使它变得不可理解吗?(抽象地讲,这就是加密的作用:它使数据难以理解。)
- 谁是谁想要查看敏感数据但不被允许的人?
- 他们必须获得什么机会获取数据?
- 一旦拥有数据,他们想对数据做什么?
- 如果他们没有得到想要的东西,他们会有多生气?
- 他们愿意花多少钱,时间,CPU周期和人工?
- 他们是否在乎是否有人知道自己已查看数据?
- 他们是否要访问特定用户的敏感数据,还是任何人都愿意?
- 他们已经知道了什么?
- 他们已经可以访问什么?
一旦您知道了这些问题的答案,您将可以在一个更好的地方找出解决方法。
请记住,每组问题都可能有多个答案,尤其是与攻击者(那些想要敏感数据但不允许拥有这些数据的人)打交道的问题。如果您不能想到至少有六种不同的原型攻击者,动机,目标和资源不同,那么您可能会错过一些东西。
还请记住,如果攻击成功,那么造成您(和/或客户)麻烦最多的攻击者最有可能在媒体上引起巨大轰动,或者造成的累计损失最大。不是攻击者,如果攻击成功,它们会对单个用户造成最大伤害。您客户的公司在理智上更关心总体损失,而用户在理智上更关心对自己的伤害。