Internet History, Technology and Security (Week 8)
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 Data from Others
Security Introduction
老师举例有趣地谈论安全的话题。在密码学的世界里,有两个好人A和B,他们不想让其他人知道他们在交流什么,还有一些坏人,那就是C,中间的C会做坏事,可能想要偷听、修改A和B谈话的内容。


在第一堂课上,我们是好人,好人是视图破坏密码学的人,而坏人是哪些试图加密信息的人:比如二战中的布莱克利公园,他们破译了德军的密码,拯救了世界,他们是好人。
现在好人正在做加密,我们正试图想出越来越聪明的加密方法,而政府必须不断的想出解密的方法。

我们开始的时候,试图隐藏信息的人是坏人,而我们现在是好人,为什么我们现在是好人?因为是我们,一旦我们决定了我们,我们就是好人(emmm...)。
接下来作者给我们看了一个他前几年参观布莱克利公园的照片。

安全专家认为,完美安全是一种谬论,安全是一个成本效益分析。

Security - Encryption and Confidentiality
这里用到的术语有明文和密文。我们想要传输的信息称作是明文,例如信用卡的数字或者其他重要信息,这些信息都有对应的加密版本,我们称其为密文。密文有一定概率被暴露给第三方。

加密是将明文变成密文的操作。将密文还原为明文的操作则是解密。加密解密都需要钥匙,钥匙本质上是一些数据,通过特定的算法来实现加密与解密。

我们将讨论两种不同的钥匙:一种被称作密钥,另一种被称作公钥。

先讨论密钥:
密钥加密系统的使用从罗马时代就开始了,一直到第二次世界大战。公钥加密系统则是在20世纪60年代才开始应用。
密钥也被称作对称密钥。简单来说,加密与解密使用的是同一把钥匙。而公钥则是不对称的,即加密与解密用的钥匙不同。
密钥的缺点就是需要一个绝对安全的交流环境,需要以一个安全的方式将密钥告知对方,这个缺陷也推动了公钥加密的发明。
下面是加密的主要流程:

除非截获人知道密钥或者破译,否则他所截获的信息无法得知其正确的信息。
凯撒密码是一种最古老的、被广泛使用的一种加密形式:


采用的是替换的概念。这种加密方式被使用了很长的时间,但这种方式很容易被破解。
Insuring Data Integrity
Security - Integrity and Signatures

(百度)SHA1:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要,(但会有1x10 ^ 48分之一的机率出现相同的消息摘要,一般使用时忽略)。
(百度)MD5:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
不过以上两种都有其缺陷,只能用来加密一些不打重要的事情。SHA256优于SHA1。

首先讨论哈希密码。

在一个网站上登录输入密码,如果网站的数据库将密码以纯文本的形式进行存储,一旦网站系统被侵入,密码将十分危险,而且如果你的密码在不同网站上使用的都是相同的,情况将更加糟糕。所以对于网站来说,安全的做法是,后台通过密码散列来加密你的密码,当你再次输入密码时,系统将其与数据库中的密码散列进行比较,如果匹配则证明输入的密码正确。这样网站就不需要存储纯文本密码更显得更加安全。
这里举了一个例子:


数据库运用hash来存储用户们的密码,有两个很重要的特点是其不可逆和无冲突,不可逆是指one way operation。无冲突指的是两段不同信息经过hash加密后不能生成两端相同的digest。
接下来介绍digital signatures.


上图展示的是加密的原理。可以确认消息是否在途中被更改。

- 每一对人/系统都需要一个密钥
- 在internet中,密钥分发不能通过internet进行,因为在获得密钥之前,通信是不安全的。
- 要使因特网正常工作,我们需要一种方法,在不损害安全性的情况下,密钥可以穿越不安全的internet并被拦截。
Internet History, Technology and Security (Week 8)的更多相关文章
- Internet History, Technology and Security (Get Started)
Abstract 课程名称:互联网的历史.技术和安全 coursera地址 制作方:密歇根大学(University of Michigan) 教师:Charles Severance, Associ ...
- Internet History,Technology and Security
Internet History,Technology and Security(简单记录) First Week High Stakes Research in Computing,and Comm ...
- Internet History,Technology,and Security - History Through Supercomputing(Week2)
时间飞逝,一周又过去了,这周我们来到了Internet History, Technology and Security (Week 2)的学习,从标题就可以看出,这周主要是介绍“互联网”雏形的诞生. ...
- 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 hist ...
- Coursera: Internet History, Technology, and Security
课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing ...
- Internet History, Technology and Security (Week 9)
Week 9 Security: Web Security We are now on the second to last week of the class and finishing up ou ...
- Internet History, Technology, and Security(week1)——History: Dawn of Electronic Computing
前言: 第一次进行课程学习,在反复观看视频和查找字典翻译理解后选出了视频中个人认为较重要的概念,以下并不按照逐句翻译,中文概括大意余下自由发挥,对老师想要告诉我们的历史有一个初步的了解,顺便锻炼以下英 ...
- Internet History, Technology and Security (Week5.1)
Week5 The Transport layer is built on the Internetwork layer and is what makes our network connectio ...
- 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 co ...
- Internet History,Technology,and Security - Technology: Internets and Packets (Week5)
Week5 Technology: Internets and Packets Welcome to Week 5! This week, we’ll be covering internets an ...
随机推荐
- 使用Themeleaf时, HTML内嵌的JS代码需要注意< 和 >的问题
如果你使用了Themeleaf, 你的HTML文件又使用了内嵌的JS代码,那么一定要注意 你的JS代码必须用这样用: <script> /*<![CDATA[*/ var a = 6 ...
- Core - Provide an easy way to store administrator and user model differences in a custom store (e.g., in a database)
https://www.devexpress.com/Support/Center/Question/Details/S32444/core-provide-an-easy-way-to-store- ...
- Direct2D处理几何图形之间的碰撞检测(下)
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 上一篇文章中我们介绍了几何图形与点的碰撞检测.几何图形与点的位置关系比较简单:点在几何图形内.点在几何图形外.点 ...
- 将禅道部署到腾讯云linux 上
部署环境 :linux(腾讯云),用到了 xshell FileZilla 使用禅道集成环境lampp直接部署 1.首先下载 lampp j集成环境包.https://sourceforge.ne ...
- 开发人员常用的DOS命令
1.远程连接:mstsc /admin 2.开启服务:services.msc 3.打开注册表:regedit 4.IIS服务器重启:iisreset 5.打开记事本:notepad 6.查看系统信息 ...
- JavaScript-强制类型转换
因为没有学过其他编程语言,因此作为我的第一门编程“母语”我在这就不举其他编程语言的例子了,JavaScript这个动态类型脚本语言的变量号称是没有类型的,那么我们怎么转换他的变量呢?而且还要强行转换. ...
- dstat 性能测试工具常用选项
dstat常用的选项有: -c 显示cpu使用情况 -d 显示磁盘使用情况 -g, 显示页面数据 -i 启用中断数据 -l 平均负载统计(1分钟,5分钟,1 ...
- Netty源码分析第5章(ByteBuf)---->第10节: SocketChannel读取数据过程
Netty源码分析第五章: ByteBuf 第十节: SocketChannel读取数据过程 我们第三章分析过客户端接入的流程, 这一小节带大家剖析客户端发送数据, Server读取数据的流程: 首先 ...
- Hyperledger Fabric CA User’s Guide——配置设置(四)
配置设置 Fabric CA提供了三种方案去配置Fabric CA服务端和客户端,优先顺序是: CLI flags(标识) 环境变量 配置文件 在本文档的其余部分中,我们将对配置文件进行更改.但是,可 ...
- 高可用OpenStack(Queen版)集群-14.Openstack集成Ceph准备
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...