【Internet History, Technology, and Security】第八讲心得

  结束了网络协议的介绍后,本周要介绍的是网络安全。

Security Introduction

  网络安全其实离我们并不遥远,这里有个简单的例子。假设有两个人叫做爱丽丝(Alice)和鲍勃(Bob),也许是因为异地的原因,他们希望在网络上交流一些比较私密的信息,但这时候,可能会存在着一个心怀不轨的人,我们把他称之为C。爱丽丝和鲍勃希望自己发送的一些信息不会被打扰,然而C就在那里偷听,又或是有别的不轨的企图。如何让A与B安全的交流?这就是网络安全要做的事。

  这个简单的例子应该可以让你明白安全的重要性,而在我们的日常生活中,我们也会面临信用卡信息被盗的风险,毕竟金钱才是最具有诱惑力的东西,不过如果你是一个政客,那么就会有一堆人试图窃取你的电子邮箱,因为这里面存放的信息价值大于金钱。因为意识到了安全的重要性,很多公司会把越来越多的钱花在安全上,但这样又是一种错误,因为安全也只是一种成本效益的分析,它并不存在完美解答。

  对于安全性,这里要提到两个术语,一是Confidentii,保密性,指信息的泄露,如果我想把一个信用卡号码发送给某人查看,除了这个我想看到它的人之外,没有人能得到它,那就说明是保密的;另一个问题是可靠性(Integrity),也就是说,在某种意义上,你知道A,你得到的信息来自于你认为它来自的人,它没有在路上被修改过,所以像数字签名这样的东西就属于这一类,以及之后要讨论的其他机制。

Security - Encryption and Confidentiality

  二战时,布莱切利园(Bletchley Park)的工作就是负责加密以及解密,这里要提到两个术语:明文(plaintext)与密文(ciphertext),无论是文本信息或者是其他类型的信息,我们想要传输的信息被称作明文,例如信用卡信息、数字或者是其他的重要信息,这些信息有相对应的加密版本,我们称之为密文。对于密文,有可能会被第三方截取,所以加密者自然希望破译密文这一过程会十分困难,加密是将明文变成密文的操作,将密文还原为明文的操作则是解密,加密解密还需要钥匙,钥匙本质上是一些数据,通过特定的算法来实现加密与解密,讲到这,就又引出了两个术语:密钥(private key)和公钥(public key)。

  首先我们要讨论的是密钥,密钥加密系统的使用从罗马和凯萨时代开始,一直到第二次世界大战,密钥也被称作对称密钥,意味着发送方与接收方都拥有同样的信息,简单来说,加密与解密使用同一把钥匙,那么密钥的缺陷在于,你需要一个绝对安全的交流环境,例如双方坐在同一个房间里,你直接把密码本递给对方,无论如何,你需要一个安全的方式来传递密钥。加密的主要流程是这样的:你有一段明文,比方说Alice想发送“candy”这个单词,你将通过字母的替换来加密,把每个字母替换成下一个字母,我们得到了D-B-O-E-Z,这就是Alice加密后的密文,Alice通过路由器或者是莫尔斯电码,把这段密文发送到外界,这样这段信息可能被第三方C截获。他并不能截获明文,我们假设加密解密的过程是安全的,只有中间传输的区域是危险的,我们只担心C获知明文的内容。同时,由于Bob知道密钥,他可以解密密文从而得到明文,另一方面,C并不知道密钥的内容,他只有截获的密文。她不得不像布莱切利园一样,推算出密钥或明文。凯撒密码是一种最古老的、被广泛使用的加密形式,采用的是替换概念,比如前面所说的就是规则为1的替换,这种加密方式被使用了很长的时间(视频中同时演示了破解的方法)。

  可以说,如果你知道某段明文的内容,你只需要解密一个字母就可以破解全部,我们可以猜测这个发信人可能会发送什么明文,这就导致了信息的泄露,这与密钥的数学严谨性无关,这是另一种形式的信息泄露,第三方则可以利用这一点发送错误信息。

  在Facebook跟Twitter诞生之前,有个叫做新闻组的东西,他们是一些电子邮箱地址的集合。在80年代,这被用于存储转发网络,就像今天的Facebook一样,意味着你要花四个小时才能看到个人状态的更新,但有些人仍旧订阅了这些内容,因为其中有一些荤段子(笑),然而在这些荤段子里系统并不允许使用脏字,有软件会自动过滤文本中的脏字。如果你在荤段子里使用了脏字,你将不能发送你的信息,所以发送者必须想办法加密含有脏字的信息,

  于是他们用了一个简单的凯撒密码来解决这个问题。

  而公钥则在20世纪60、70年代才开始应用,公钥则是不对称的,意味着加密与解密用的钥匙不同,公钥加密系统能使用不安全的媒介实现钥匙的传递。

Security - Integrity and Signatures

  讲完了保密性,接下来就是可靠性。在罗马时代,人们寄信时都会用特制的印章来密封信件,他们会把它戴在脖子上,以确保没有人偷它,在计算机世界里,我们自然也需要相同的“防伪”,来保证发送的消息的可靠性。

  这种技术叫做密码散列(Cryptographic Hashing),它是一种计算机软件、一种代码,它将一大块数据重组成固定长度的数字,就像是它消化了这些信息,然后给了你这个小小的数字签名。众所周知的密码散列技术,你可能听说过,比如SHA1或MD5,它们能接受信息并创建摘要,这是一种科学的、数学的研究努力。

  而密码散列技术在我们生活中最直接的用途就是各类网站的登陆。在过去,用户的信息是以纯文本被存放在数据库中的,但很显然,这是一种很危险的方式,因为如果数据库被破坏了,那么所有的坏人都会得到所有的明文密码。所以当密码散列技术诞生后,这些网站就开始将用户的信息进行哈希加密并储存,这样在你下次登陆的时候,系统就会根据算法,将你的信息与数据库中已经被加密的信息进行匹配。

  接下来谈谈数字签名,我们要如何使用它来验证消息完整性?数字签名的作用从某种意义上来说,就是在你输入密码的时候,验证线路另一端就是你要联系的人,就像你的驾驶证一样,数字签名是验证身份的方式。

  一个小例子可以加深你对这个概念的理解:如图所示,在圣诞节,我们收到了来自安妮的信息,她希望吃更多的Ovaltine(一种饮料),那么我们要怎么确认这个信息来自安妮?这是一条公开的信息,它可能会被其他人篡改,并重新寄给你,就像是安妮本人寄来的一样。所以,假设现在我们和安妮一起住在一个共用的房间里,她告诉我们在她发送的信息中会添加怎样的签名,那这样我们就能很容易地判断,这条信息是不是她本人发出的。

  就像下图一样,我们与安妮约定“Santa”为结尾,作为数字签名,然后通过SHA-1计算来运行它,安妮将想要发送的信息与这个签名一起加密,可以看到,这时候签名加密计算的结果为a79540。当我们收到这条消息的时候,就可以进行核对是否被修改。

  就像这样,如果在途中存在有心之人,截取了这条消息,并试图传达错误的消息给另一端时,哈希加密就会呈现出不一样的结果,很神奇吧?

  可以看到,数字签名实际上非常简单,不需要很多复杂的技术就可以很容易地完成,这里唯一复杂的技术实际上是,使这些密码散列有效工作的聪明的数学。它是一个秘密的简单串联,但归根结底,数字签名的概念实际上是一个简单且相当优雅和美丽的概念,它以一种非常酷的方式真正利用了密码缓存的概念。

  本次课程的例子非常生动形象,听完以后有种想网购Ovaltine的冲动(笑)。

原文地址:https://www.cnblogs.com/ptolemy/p/11108011.html

时间: 2024-11-09 19:58:04

【Internet History, Technology, and Security】第八讲心得的相关文章

Internet History, Technology and Security (Week 2)

Week 2 History: The First Internet - NSFNet Welcome to week 2! This week, we'll be covering the history of the first internet: NSFnet. In the 1960s and 1970s, there was a great deal of research done to build the first wide-area packet switched networ

【Internet History, Technology, and Security】第六讲心得

结合第五周的课程,依照TCP/IP网络架构从下往上,这周主要讲解的是传输层. Transport Layer 如果说前面都只是IP层的内容,那从传输层开始,就是TCP层面的内容了,TCP层的目的是补偿IP层中可能出现的错误,并最大限度地利用可用资源.TCP/IP组网是为了有效地共享,所以我们需要知道我们的网络是快还是慢,这就是我们用TCP层要解决的问题.底层网络的速度有多快,可靠性有多高,如果出现问题,我们应该如何处理.因此,TCP/IP协议的核心思想就是在发送数据时,将数据分成多个包,然后将每

【Internet History, Technology, and Security】第七讲心得

这一讲来到了应用层,同时也是协议体系中的顶层. Application Layer 其实从之前的课程中可以发现,每一个层次都会依赖它的下一层,应用层也一样,它将会应用TCP层的服务,TCP层的服务为应用层提供了可靠.有序的端到端数据流.可以从一台电脑中一个应用程序开始,到另一台电脑的应用中结束并可提供双向交流.在我们得到了这样的框架后,我们应该怎么去使用它?在日常通信中,我们该如何请求数据? 课程中的图给出了很好的答案,左端表示客户端,而右端则为服务端,客户端给我们信息,而服务器负责给客户端提供

Internet History, Technology and Security (Week 4)

Week 4 History: Commercialization and Growth We are now moving into Week 4! This week, we will be covering commercialization and growth. The late 1990's saw the web and Internet used increasingly to revolutionize how business was done. Companies like

Internet History, Technology and Security (Week 7)

Week 7 Technology: Application Protocols Welcome to Week 7 of IHTS. This week has less material than other weeks. I like to think of it as a "seventh inning stretch" - where you get a little breather. This week wraps up the three weeks of "

Internet History,Technology,and Security -Technology: Application Protocols(Week7)

Week7 Technology: Application Protocols This week, we’ll be covering application protocols. With reliable “pipes” available from the Transport layer, we can build applications like web browsers, file transfer applications, or email clients and server

Internet History,Technology,and Security -Security: Encrypting and Signing(Week8)

Week 8 Security: Encrypting and Signing This week we start two weeks of Internet Security. It is a little technical but don't worry - we stay at a very high level and I am confident that if you are still keeping up with the class that you will enjoy

Internet History, Technology and Security (Week 3)

Week 3 History: The Web Makes it Easy to Use Welcome to week 3! This is our fourth and final week of History where we make the connection from those early innovations of the modern Internet we are using for this class. Up next we move into looking at

Internet History, Technology, and Security(week8)——Security: Encrypting and Signing

Hiding Date from Ohters Security Introduction Alice and Bob是密码学.博弈论.物理学等领域中的通用角色之一.Alice(代表A)和Bob(代表B)一般是形容好人的,用来描述通讯双方.通讯中也会出现一些不怀好意的人(People with bad intent),比如窃听者(Eve),用E代表. Security is Always a Tradeoff,安全总是一种充满妥协的权衡.对于安全这回事,几乎不存在所谓的Perfect Secur