懂防必先懂攻
信息安全是世界永恒不变的需求
安全三要素
- 机密性:
要求保证数据内容不能泄露,加密是实现机密性要求的常见手段。要求保证数据内容不能泄露,加密是实现机密性要求的常见手段。常见的加密算法有DES,3DES,MD5,BASE64,AES,RSA,SHA-xxx等(以后会写密码学相关部分的加密算法部分)。 - 完整性:要求保证数据内容是完整的,没有被篡改的。常见的保证一致性的手段是数字签名。数字签名保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
- 可用性:要求保护资源是“随需而得”。涉及到的常见的是拒绝服务攻击(DoS)。拒绝服务攻击破环的是安全的可用性。
- 后续要素:可审计性,不可抵赖性等。
实施安全评估的步骤:
互联网的核心问题就是数据安全问题,数据无价。
资产等级划分:一个组织看重的是什么然后将其视作什么的地位来划分等级。
威胁分析:尽可能的将威胁找出来。微软威胁建模STRIDE模型(6个单词的首字母缩写)。
风险分析:权衡事件发生的可能性,以正确的判断出风险。微软风险建模DREAD模型。
风险有高低:Risk=Probability*Damage Protential
此次区分威胁和风险的区别,不能将其视作一物:一盗贼可能要来偷我包里的一百块钱,我将盗贼视作威胁,而我可能会失去一百块钱,我将这种损失视作风险。
确认解决方案:安全评估的产出物就是解决方案。
设计解决方案的一些基本原则
- Secure By Deafault原则:黑名单,白名单,最小权限原则。
- Defense in Depth(纵深防御)原则:首先从不同层次,不同角度设计解决方案,然后要在正确的地方做正确的事情。
- 数据与代码分离原则:写过几亿行代码的你懂的。