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 these next two weeks. You won‘t know enough to be an expert - but many of the security issues that you read about going forward will make a lot more sense to you.

The topics we’re covering are encrypting and signing. Using simple examples, we examine how to shield data from prying eyes and make sure that the data was not altered while in transit.

互联网技术层次已经讲完了,接下来就轮到安全方面了,这周我们要学习的是加密和签名。


Hiding Date from Ohters

Security Introduction

Alice and Bob是密码学、博弈论、物理学等领域中的通用角色之一。Alice(代表A)Bob(代表B)一般是形容好人的,用来描述通讯双方。通讯中也会出现一些不怀好意的人(People with bad intent),比如窃听者(Eve),E代表。

至于Alice and Bob的来源是Rivest、Shamir、Adleman这三位密码学家在1977年4月撰写了一篇论文《数字签名与公钥密码学》中的主人公,因此后世的密码学等领域举例时通常都会用Alice and Bob。

对于安全这回事,是没有所谓的绝对安全的。教授把安全比作一种充满妥协的权衡,,并且提到了网络安全性的成本效益分析问题。比如信用卡的时候,总有可能会出现信息泄露导致的财产损失问题。但是否每个人就应该雇一个保镖来保证信用卡上50美元的安全呢?Charles认为应该通过比较项目的全部成本和效益来评估项目价值,以此来提供安全性的服务。这让我想起了我看过的哈佛公开课《公正该如何做是好》中有一节教授举过的一个例子。在美国二十世纪七十年代,有一种车叫福特平车,它是一种小型,次紧凑型车,风靡一时,但它有一个缺点,油箱就装在车的尾部,发生追尾是,就会发生爆炸,造成严重伤亡,当时公司开了一个会议来决定是否值得装上一面特殊的隔板,以保护油箱,防止油箱爆炸,当时他们做了一项成本分析,结果现实他们不必安装该装置。我想这应该是同一种思路。

对于安全性,这里还要提到两个术语,Confidentiality and Integrity

  • Confidentiality:保密性,指信息的泄露,如果我想把一个信用卡号码发送给某人查看,除了这个我想看到它的人之外,没有人能得到它,那就说明是保密的。
  • Integrity:可靠性,指信息的完整,你收到的信息要跟发送者所发送的信息是一样的,而不能被他人修改。

Security - Encryption and Confidentiality



在Confidentiality中,我们主要讨论的是密码学方面的知识,加密解密、明文暗文等。

Plaintext(明文是指待加密的信息,即加密前能够让人理解的原始数据。

Ciphertext(密文)是明文加密后的版本,只有加密的人知道如何破解。

密钥(key),指的是一种机制或算法,能够将明文通过这套机制转换生成暗文。这种过程叫做加密(encrypt),反之叫解密(decrypt)

密钥分为私钥公钥私钥(private key)是指私有的密钥。公钥(public key)是指密钥是公开的。

密钥有分对称性和非对称性。一般来说,秘密的密钥是对称的,加密解密用的是同一套。而公钥一般非对称的较多,得用一套加密,再用另一套解密。比较著名的公钥算法我知道的是RSA算法。

这里有一个古老且著名的密钥是凯撒密码,是把26个英文字母按照字母表顺序以移动一定的位数来加密和解密。是非常古老的方法,而且应用了特别长的时间。机制很简单,所以保密性不高,很容易被破解,不能保障通讯的安全性。这里还有一个例子,来说明凯撒密码还可以特解。

Uryyb, zl anzr vf Puhpx naq V arrq zbarl naq n wrg!

英文有特定的局限性。例如上图,出现了单个的大写字母,那么其对应的明文有极大概率是“I”;出现了单个的小写字母,那么有可能就是对应“a”。据此,我们不用从头到尾一个个试验过去,而是根据那个单一的字母去推测是按照移动多少位来加密的。同时英文每个单词必须要有间隔,这是很明确的一个暗示。这让我想到了中文就没有这样的局限性,且也没有大小写。

Insure Date Integrity and Signatures



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

因此我们需要一个技术来确保信息的可靠性。而这个技术就是Cryptographic Hash,Cryptographic Hash(密码散列表)是一种广泛使用的信息安全技术,将任意数据转换成定长的比特串,可以用来保密明文和验证完整性。

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

数据库运用hash来存储用户们的密码,有一个很重要的特点,哪就是不可逆性。密码可以通过Hash加密成digest,但通过digest不能得出用户名的密码。而正是由于这种特殊性,才能避免数据的泄露。因此在你忘记密码的时候,你只能通过邮件来重设密码而并不能要求得知你原来的密码。

众所周知的密码散列技术,你可能听说过,比如SHA1或MD5,它们能接受信息并创建摘要,这是一种科学的、数学的研究努力。

Digital Signature Message Integrity

Digital Signature(数字签名)是只有信息的发送者才能生成的他人无法伪造的一段数字串,一般用于明文发送时确认发送方和验证信息完整性,是非对称密钥加密技术密码哈希技术的应用。数字签名中存在对公钥密码的逆运用,即用私钥加密,用公钥解密。用私钥加密的消息称为签名,只有拥有私钥的用户可以生成签名。用公钥解密签名这一步称为验证签名,所有用户都可以验证签名。

如下图,Alice要给Bob发信息“Eat More Ovaltine”(多吃点阿华田),二人约定了一个Secret,即末尾的Santa。当信息发送时先将Eat More OvaltineSanta连起来Hash加密得到a79540,将其与之前的Eat More Ovaltine连起来,因此发送方发送的其实是Eat More Ovaltinea79540。而接收方接收信息时将二者拆分,重新分成了Eat More Ovaltinea79540,由于只有他们二人知道SecretSanta,因此如果信息被修改过,即信息已经不是Eat More Ovaltinea,那么加上SantaHash加密后得到的就一定不是a79540。

原文地址:https://www.cnblogs.com/fcw245838813/p/12081106.html

时间: 2024-07-31 01:34:57

Internet History,Technology,and Security -Security: Encrypting and Signing(Week8)的相关文章

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

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 (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 (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】第八讲心得

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

关于iOS9中的App Transport Security相关说明及适配(转)

原文:http://my.oschina.net/vimfung/blog/494687 iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输.这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输.原文如下: App Transport Security App Transport Security (ATS) enforces best practices in the secure co

Spring Security 动态url权限控制(三)

一.前言 本篇文章将讲述Spring Security 动态分配url权限,未登录权限控制,登录过后根据登录用户角色授予访问url权限 基本环境 spring-boot 2.1.8 mybatis-plus 2.2.0 mysql 数据库 maven项目 Spring Security入门学习可参考之前文章: SpringBoot集成Spring Security入门体验(一)https://blog.csdn.net/qq_38225558/article/details/101754743

Spring Security教程之Jsp标签(四)

目录 1.1     authorize 1.2     authentication 1.3     accesscontrollist Spring Security也有对Jsp标签的支持的标签库.其中一共定义了三个标签:authorize.authentication和accesscontrollist.其中authentication标签是用来代表当前Authentication对象的,我们可以利用它来展示当前Authentication对象的相关信息.另外两个标签是用于权限控制的,可以