读普林斯顿计算机公开课13隐私和安全

1. 隐私和安全
1.1. 数字技术给我们带来了很多好处,如果没有它,我们的生活将会贫乏得多
1.2. 国家安全
- 1.2.1. 从整体上保护国家免受恐怖袭击和其他国家的行动等威胁
1.3. 对于个人来说,安全常常与隐私混为一谈,因为如果你个人生活的大部分方面都广为人知或很容易被发现,你就很难感到安全
2. 密码学
2.1. 一种“秘密书写”的艺术,从很多方面来说,是我们抵御隐私攻击的最佳防御手段
2.2. 加密算法需要抵御各种各样的攻击。频率分析主要用于研究和计算每个符号出现的次数
2.3. 要抵御频率分析,加密算法必须要做到让密文中所有符号都以大致相等的机会出现,这样就没有模式可供分析
2.4. 利用已知的明文,即已知使用目标密钥加密的消息,或者利用选定的明文,诱使被攻击者用待破解密钥加密这段明文,从而进行对照,达到破解的目的
2.5. 密码系统必须假定攻击者知道并完全理解密码系统的工作原理,从而将所有的安全性都寄托在密钥上
-
2.5.1. 与此相反的做法是假定对手不知道系统用什么加密方案、如何破解,这被称为隐匿式安全(security by obscurity),即使可以工作,也不会长久
-
2.5.2. 如果有人鼓吹他们的加密系统十分安全,却不愿说出其工作原理,那就可以确信它并不安全
2.6. 加密系统的开放式开发至关重要。密码系统需要尽可能多的专家的经验,以探查漏洞
2.7. 典型的浏览器知道数量惊人的证书颁发机构
-
2.7.1. Firefox版本中有将近80个
-
2.7.2. Chrome版本中有超过200个
2.8. Let's Encrypt(让我们加密)是一个非营利性的证书权威机构,它向任何人提供免费的证书,其理念是,如果获得证书很容易,最终所有网站都将使用HTTPS,所有流量都将被加密
2.9. 密码学是现代技术的重要组成部分;它是保护我们使用互联网时隐私和安全的基本机制
-
2.9.1. 密码学能帮助所有人,而不仅仅是好人
-
2.9.2. 意味着犯罪分子、恐怖分子、儿童色情犯、贩毒集团和政府都将使用密码技术,以牺牲你的利益为代价来增进他们的利益
2.10. 加密代码大多是开源的,任何人都可以使用
- 2.10.1. 试图在任何国家禁止密码学都不太可能阻止它的使用
2.11. 密码学本来就是极其困难的,如果加上故意设置的弱点,无论如何精心设计,都会导致更大的失败
- 2.11.1. 最根本的问题是我们不能在不削弱所有人加密安全性的情况下削弱恐怖分子使用的加密
2.12. 强大的加密是普通人抵御政府过度干预和犯罪入侵的为数不多的防御手段之一
2.13. 在任何安全系统中,最薄弱的环节是相关人员,他们会无意或有意地破坏过于复杂或难以使用的系统
2.14. 即使每个人都努力确保安全,一个坚定的对手总是可以利用4B,即贿赂(bribery)、勒索(blackmail)、盗窃(burglary)、野蛮(brutality)来获得访问权
- 2.14.1. 政府可以用坐牢来威胁那些在被要求泄露密码时拒绝的人
3. 密钥加密
3.1. 历史较长的密钥加密(secret-key cryptography),也称对称密钥加密,因为加密和解密要使用相同的钥匙
3.2. 蛮力攻击(brute force attack),即尝试所有可能的密钥,以找出用来加密的那个
3.3. 字典攻击(dictionary attack)就是尝试用“password”和“123456”这些常见单词和数字进行攻击
- 3.3.1. 如果人们选择密钥时偷懒或粗心,这种攻击就可以很容易成功
3.4. 在任何情况下,DES总是使用56位密钥,随着计算机的运算速度越来越快,56位的长度被证明太短了
- 3.4.1. 到1999年的时候,一台相当便宜的专用计算机,就可以用一天时间使用蛮力攻击破解DES密钥。这导致了具有更长的密钥的新算法的产生
3.5. AES支持128、192和256位三种密钥长度,潜在的密钥数量非常多,用蛮力攻击就算很多年也不会有结果,除非能发现该算法的某个弱点
3.6. 密钥扩散(key proliferation):要想和不相关的各方进行独立的秘密对话,就要为每组会话准备不同的密钥
- 3.6.1. 导致密钥分发更加困难
4. 公钥加密
4.1. 公钥加密采用了与密钥加密完全不同的思想,是怀特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)于1976年在斯坦福发明的,借鉴了拉尔夫·默克尔(Ralph Merkle)的一些思想
- 4.1.1. 迪菲和赫尔曼因为这项工作共同获得了2015年的图灵奖
4.2. 这个想法由詹姆斯·埃利斯(James Ellis)和克利福德·科克斯(Clifford Cocks)在更早的几年前独立发现,他们是英国政府通信总部的密码学家,但他们的工作被一直保密到1997年,所以他们不能发表该成果,因此也与大部分荣誉失之交臂
4.3. 在公钥加密系统里,每个人都有一个密钥对(key pair),包含一个公钥和一个私钥
-
4.3.1. 这对密钥是在数学上有关联的整数,具有如下性质:用其中一个密钥加密过的消息只能用另一个密钥解密,反之亦然
-
4.3.2. 公钥是真正很公开的:任何人都能拿到,一般是公布在网站上
-
4.3.3. 私钥则一定要严格保持私密,是一个只有这个密钥对的主人才知道的秘密
4.4. 公钥加密是在互联网上进行安全通信的关键要素
4.5. 公钥加密的一个缺点是其算法的运算速度慢,比AES这种密钥加密算法要慢好几个数量级
4.6. 通常不会用公钥加密算法加密全部数据,而是分两步走:先用公钥加密协商出一个临时的密钥,再使用AES传输大量的数据
4.7. 公钥加密方案也并非完美无缺
4.8. 前向保密(forward secrecy)的技术
- 4.8.1. 每条消息都使用如上所示的一次性密码进行加密,然后该密码被丢弃
4.9. 最被广泛使用的公钥加密算法称为RSA
-
4.9.1. 这个算法是麻省理工学院的三位计算机科学家罗纳德·李维斯特(Ronald Rivest)、阿迪·沙米尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1978年发明的,RSA就是这三位发明人姓氏的首字母缩写
-
4.9.2. RSA实验室是持有RSA专利的公司,曾于1991年到2007年举办过分解素因子大赛
-
4.9.3. 它公布了一个包含着长度越来越长的巨大合数的列表,设立奖金给第一个能对每个合数进行因数分解的人
-
4.9.4. 最小的合数有100多位,很快就被分解了
-
4.9.5. 2007年这个竞赛停办之时,分解出来的最大合数有193位(二进制640位),奖金是2万美元
-
4.9.6. 2019年,RSA-240(240位,795位)被分解
5. 消息摘要
5.1. 消息摘要(message digest)或密码散列(cryptographic hash)
5.2. 其创建方法是用某种算法把任意输入的比特流加密成固定长度的比特流,也就是摘要或散列,最终得到的结果具有如下特性:无法通过计算找到别的输入来生成同样的摘要
5.3. 罗纳德·李维斯特开发的MD5,它生成128位的摘要
5.4. SHA-1,来自NIST(美国国家标准技术研究所),生成160位的摘要
5.5. 研究表明MD5和SHA-1都有弱点,因此不赞成使用它们
5.6. SHA-2是美国国家安全局开发的一系列算法,目前还没有已知的弱点
5.7. SHA-2和SHA-3支持从224位到512位不等的摘要大小
6. 匿名
6.1. Tor以及Tor浏览器
-
6.1.1. “洋葱路由器”的缩写,隐喻着当对话从一个地方传递到另一个地方的过程中,围绕着这些对话的层层加密
-
6.1.2. 使用加密技术通过一系列中继结点发送互联网上的流量,这样每个中继结点只知道路径上紧邻的中继结点的身份,而不知道其他中继结点的身份
-
6.1.3. 在任何时候,全世界大约有7000个中继结点
-
6.1.3.1. Tor应用程序随机选择一组中继结点并设置路径,该路径不时更改,甚至在单个会话期间也会更改
-
6.1.4. Tor浏览器是使用Tor的最常见方式,Firefox的一个版本已经被配置为使用Tor进行传输,Tor还能适当地进行Firefox的隐私设置
6.2. TAILS的系统
-
6.2.1. “失忆隐身实时系统”,它是在Linux系统上运行的,能安装在DVD、USB驱动器或SD卡等可引导设备上
-
6.2.2. 在启动后能运行Tor技术和Tor浏览器,并且不会在运行它的电脑上留下任何痕迹
-
6.2.3. 软件在TAILS的运行下使用Tor连接到因特网,所以你应该是匿名的
-
6.2.4. 不在本地二级存储上存储任何东西,而只是使用主内存
-
6.2.5. 当计算机在TAILS会话之后关闭的时候,内存中的内容将被清除
6.3. 比特币
-
6.3.1. 发送和接收资金是另一个高度重视匿名性的领域
-
6.3.2. 现金是匿名的,如果你使用现金支付,那么既没有记录,也没有办法识别当事人
-
6.3.3. 巧妙的密码学可以用来创造匿名货币
-
6.3.4. 比特币是一种去中心化的数字货币或加密货币
-
6.3.4.1. 它不由任何政府或其他政党发行或控制,不像传统货币的纸币和硬币,它也没有实体形式
-
6.3.5. 比特币使用点对点协议,让双方在不使用中介或可信的第三方的情况下交换比特币,这是一种模拟现金的方式
-
6.3.6. 比特币维护着一个名为区块链的所有交易的公共账本,而交易背后的各方是匿名的,只能通过一个实际上是加密公钥的地址来识别
-
6.3.7. 区块链是完全公开的
-
6.3.7.1. 比特币的匿名性更像是“冒名”的,因为每个人都知道与特定地址相关的所有交易,但他们不知道这个地址是你的
-
6.3.8. 比特币是一种“虚拟货币”,但可以与传统货币进行兑换
浙公网安备 33010602011771号