安全架构设计思想

安全三要素

- 机密性

机密性(Confidentiality)要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。

- 完整性

完整性(Integrity)要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名。

- 可用性

可用性(Availabity)要求资源是“随需而得”。

设计原则

Security by default原则

设计安全方案中最基本的就是“Security by default”,一个方案设计得是否足够安全,与有没有应用这个原则有很大的关系。该原则也可归纳为白名单、黑名单的思想,如果更多地使用白名单,那么系统就会变得更安全。

黑名单、白名单

 

最小权限原则

最小权限也是安全设计的基本原则之一,最小权限原则要求系统只授予主体必要的权限,而不要过度授权,这样就能有效地减少系统、网络、应用、数据库出错的机会。

- 纵深防御原则

纵深防御包含两层含义:首先,要在各个不同层面、不同方面实施安全方案、避免出现疏忽,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。

- 数据与代码分离原则

数据与代码分离原则广泛适用于各种由于“注入”而引发的安全问题的场景。如XSS、SQL Injection、CRLF Injection、X-Path Injection等,此类问题可以根据“数据与代码分离原则”设计出真正安全的解决方案,因为该原则抓住了漏洞形成的本质原因。

- 不可预测性原则

我们无法要求运行的系统完全没有漏洞,因此可采取让攻击失效的办法,大大提高攻击的门槛,经过实践检验,证明这个思路确实是有效的,即使无法修复code,但是如果能够使得攻击的方法无效,那么也可以算是成功的防御。

不可预测原则可以巧妙地用在一些敏感数据上,该原则的的实现往往需要用到加密算法、随机数算法、哈希算法等。

欢迎关注技术公众号:架构师成长营

安全架构设计思想_第1张图片

 

你可能感兴趣的:(安全)