安全三要素CIA
就像在物理学中电子,质子和中子是构成原子的基本构件一样,安全领域也有三个构建基本其它所有方面的组件,我们把它们称作“CIA”( 保密性、完整性和可用性,Confidentiality、Integrity和Availability):
C(Confidentiality)、保密性:简而言之,该属性的意义就是在于保证内容不能泄露,不能被他人所知晓,仅有有权限的人才能够接触到这些信息。
举一个简单的例子,一份装在透明玻璃窗里的文件是没有保密性可言的,因为人人都可以透过玻璃看到它;但是一份锁在保险柜里的文件却是保密的,因为只有拥有保险柜钥匙的人才可以看到文件。
I(Intergrity)、完整性:就是要保证信息的内容是完整的没有经过他人篡改、或者意外修改过的,当然也可以是信息的被删除缺失。
相信非常多的人都听过一个关于清朝雍正帝的故事、坊间野史传闻康熙的遗诏中本来写的是“传位十四阿哥”,但是被人篡改为“传位于四阿哥”,因此才有了后来的雍正皇帝。(个人认为野史不足信,很简单,当时清朝的正式文书中一般数字会用大写,并且会有满汉两文均备,并不是那么容易修改的。)这显然就是一个凸显信息完整性的重要的例子。在我们正常的通信过程中,完整性的保护也非常重要,尤其是对于金融银行业来说,如果在数据传输或者存储的过程中被他人恶意修改了金额,将会使得金融机构产生大量损失。
A(Availablity)、可用性:即需要保证我们的系统和信息是要依据我们的需求随时可以得到的,这一点是相当重要的,否则前两个保证保密和完整将变得毫无意义。
比如我把文件藏在保险柜里然后将它沉入马里亚纳海沟(世界上最深的地方),毫无疑问它将是绝对保密且完整的,可是这也毫无用处,因为当我们需要利用这些文件去完成什么也将会变得极其困难。由此可以引申出一种特殊的安全攻击--DoS(Denial of Service)攻击,中文叫拒绝服务攻击,简单来说就是使得你的系统无法正常响应和服务的一种攻击手段。常见的DoS攻击一般出现在Web服务上,攻击者通过向网站发出大量的请求服务,导致网站的服务器处理不过来而崩溃,造成网站服务关闭。
微软STRIDE威胁分析模型
STRIDE即Spoofing、Tampering、Repudiation、InformationDisclosure、Denial of Service、Elevation of Privilege,具体的中文解释可以看到下表,这个模型主要是微软针对现今的安全威胁所建立的分析模型。
威胁 | 定义 | 对应的安全属性 | 对应技术 |
---|---|---|---|
Spoofing伪装 | 冒充他人身份 | 认证 | 认证技术 |
Tampering篡改 | 修改数据和代码 | 完整性 | 数字签名 |
Repudiation抵赖 | 否认做过的事 | 不可抵赖性 | 数字签名 |
InformationDisclosure信息泄露 | 机密信息泄露 | 机密性 | 加密 |
Denial of Service拒绝服务 | 拒绝服务 | 可用性 | 身份认证 |
Elevation of Privilege权限越界 | 未经授权获得许可 | 授权 | 身份认证 |
下面主要是想比较两个相近的概念的区别:
在我的经济学课堂上,老师曾经用过这样的一个公式用来区别风险和威胁:
$风险 =威胁*损失$
- Risk(风险):风险包含了两个方面的衡量--威胁的数量种类,造成的损失大小。
-
Threat(威胁):威胁是某种特地的攻击手段和来源,比如存在自然威胁,人为威胁,典型的,台风就是一种威胁。
白名单思想和黑名单思想
对于更多的人来说,或许黑名单的思想要来得更加熟悉,在绝大多数的社交应用例如QQ、Facebook等等均采用了黑名单的设计思路。被你列入黑名单的用户,不可以给你发送消息,不允许访问你的朋友圈等等。仔细探究社交软件这样设计的原因,我认为主要是由于社交网络是一个鼓励开放性的网络所导致的,黑名单的思想给予了绝大多数的用户更加广泛的权限和自由,但是在安全系统的设计中,我们往往讨厌这样子的自由。因此引发出了我们的白名单思想:
白名单:名单上所列出的用户/软件才是可信的,系统会认为该名单上的用户、软件执行的操作均为合理而不会再去过问,而对于不在白名单上的,一律进行屏蔽和禁止,因此给予了系统更大的安全性保护。
用户名(Username)和昵称(Nickname)
不知道大家是否考虑过为什么部分系统的设计会同时出现用户名和昵称呢?
其实这和产品设计的原理有关,具体的详情可以看简书上@平原猫的文章产品设计:ID、昵称、域名及其他
在我看来其实这和信息泄露问题也有一定的联系,对于大部分的用户来说,其用户名在一定程度上会造成账号信息泄露的问题,所以采用昵称可以避免到这点事情的发生。
浏览器是如何保证安全的
在我们平常的网络活动中,大多数人的主要时间都是花费在了网页浏览上,因此针对网页的攻击也是数不胜数。所以作为连接电脑和网页的重要桥梁的浏览器在这时候就被赋予了重任。
对于大多数网民来说,主要由以下两种有害网站:
- 木马网站:网站源码中挂载有恶意代码,用户加载网站的时候会被执行
-
钓鱼网站:刻意模仿知名网站,盗取用户信息。
对于浏览器来说,解决办法的方法无非以下几种:
1、自建网站黑名单,和安全厂商(Phish Tank等)或者机构进行合作,定期更新黑名单,例如谷歌以及微软等大公司自建平台,提供API,SafeBrowsing API,任何组织及个人均可调用。
2、采用EV SSL安全证书体系,利用白名单思想,对安全网站进行识别,这个展开讲又是一大箩筐,所以不再赘述