1. 安全是什么?
任何应用最本质的东西其实都是数据,安全的本质就是保护数据被合法地使用。
机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),我们可以简称为 CIA 三元组,是安全的基本原则。
机密性用一句话来说就是,确保数据只被授权的主体访问,不被任何未授权的主体访问。
完整性就是确保数据只被授权的主体进行授权的修改。
可用性就是确保数据能够被授权的主体访问到。
通常来说,在互联网企业发展初期,可用性的优先级较高。
如果涉及金钱相关的业务,则完整性的优先级更高;
而涉及个人隐私相关的业务,则保密性的优先级更高。
2. 如何解决安全问题?
有一个安全解决方案框架叫做“黄金法则”,它从认证(Authentication)、授权(Authorization)、审计(Audit)这三个层面去解决安全问题。
事前防御属于认证,事中防御属于授权,事后防御属于审计。
2.1 认证
认证其实包括两个部分:身份识别和认证。
- 身份识别其实就是在问“你是谁”,你会回答“你是你”。
- 身份认证则会问“你是你吗”,那你要证明“你是你”这个回答是合法的。
身份识别和认证通常是同时出现的一个过程。身份识别强调的是主体如何声明自己的身份,而身份认证强调的是,主体如何证明自己所声明的身份是合法的。
比如说:
- 当你在使用用户名和密码登录的过程中,用户名起到身份识别的作用,而密码起到身份认证的作用;
- 当你用指纹、人脸或者门卡等进行登入的过程中,这些过程其实同时包含了身份识别和认证。
认证形式可以大致分为三种。按照认证强度由弱到强排序,分别是:
- 你知道什么(密码、密保问题等);
- 你拥有什么(门禁卡、安全令牌等);
- 你是什么(生物特征,指纹、人脸、虹膜等)。
2.2 授权
在确认完“你是你”之后,下一个需要明确的问题就是“你能做什么”。
除了对“你能做什么”进行限制,授权机制还会对“你能做多少”进行限制。
比如:
- 手机流量授权了你能够使用多少的移动网络数据。
- 我们申请签证的过程,其实就是一次申请授权的过程。
2.3 审计
当你在授权下完成操作后,安全需要检查一下“你做了什么”,这个检查的过程就是审计。
当发现你做了某些异常操作时,安全还会提供你做了这些操作的“证据”,让你无法抵赖,这个过程就是问责。
3. 参考
《安全攻防技能30讲》–何为舟