各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!
计算机为了安全,要实现三性。
保密性:只有有权限的人,才能读取计算机系统和数据。
完整性:只有有权限的人,才能使用和修改系统和数据。
可用性:有权限的人,可以随时访问计算机系统和数据。
为了实现这三个目标,安全专家会从 \N 抽象层面想象“敌人”可能是谁,这叫“威胁模型分析”,模型会对攻击者有个大致描述:\N 能力如何,目标可能是什么,可能用什么手段,攻击手段又叫“攻击矢量”,“威胁模型分析”让你能为特定情境做准备,不被可能的攻击手段数量所淹没。很多安全问题可以总结成两个:你是谁?你能访问什么?
What you know. 你知道什么 ex、用户名和密码。
What you have. 你有什么。
What you are. 你是什么。
不能向上读取,不能向下写入。
安全内核应该有一组尽可能少的操作系统软件,和尽量少的代码。
最有效的验证手段。
优秀的开发人员,应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度,并且不让它危害到计算机上其他东西,这叫“隔离”。要实现隔离,我们可以“沙盒”程序,这好比把生气的小孩放在沙箱里,他们只能摧毁自己的沙堡,不会影响到其他孩子,方法是给每个程序独有的内存块,其他程序不能动。一台计算机可以运行多个虚拟机,如果一个程序出错,最糟糕的情况是它自己崩溃,或者搞坏它处于的虚拟机。
欺骗别人获得信息,或让人安装易于攻击的系统。
——来避免输错密码后等待。
——一种常见的漏洞利用。
——防止缓冲区溢出的手段,金丝雀,留出一些不用的空间,当空间变少时,说明有攻击者乱来。
把代码注入到程序中,造成混乱。
当软件制造者不知道软件有新漏洞被发现了,这个漏洞被称为“零日漏洞”。
如果有足够多的电脑有漏洞,让恶意程序可以在电脑间互相传播,这种恶意程序叫做蠕虫。
如果黑客掌握足够多电脑,那他们可以组成“僵尸网络”。
凯撒加密 Caesar cipher——一种替换加密,Substitution cipher,把字母替换成其他字母。
移位加密 Permutation cipher。
列移位加密 Columnar transposition cipher如下图。
德国 Enigma 加密机 一种进阶的替换加密,每一次的映射都不同。
1977 年“数据加密标准” - Data Encryption Standard (DES)。
2001 年“高级加密标准” - Advanced Encryption Standard (AES)。
用颜色来举例“单向函数”和“密钥加密”的原理如下:
实例:迪菲-赫尔曼密钥交换 - Diffie-Hellman Key Exchange
用模幂计算来得到秘钥。
以上的例子,双方用一样的秘钥加密和解密信息,叫对称解密。也可以人们用公钥加密信息,只有有私钥的人能解密,或者反过来,这叫非对称解密。最有名的非对称加密算法是RSA。