Web信息安全实践_1.5 SSL (secure socket layer)

为什么需要SSL?

  • 明文不安全
    • 明文传输的用户名和密码被侦听到
      • 实验:使用wireshark抓包
  • Phishing(钓鱼攻击):
    • http://item.taobao.com/
    • http.//item.taobao/auction.com/

什么是SSL?

  • 1994.网景公司(Netscape)
  • SSL位于传输层之上,应用层之下
  • 具有良好的接口,为上层应用提供服务
    • e.g.
      • http→https
      • ftp→sftp

SSL的功能:在通信双方之间提供保密性和完整性

  • 服务器认证
  • 用户身份认证(Phishing)
  • 加密通信(明文传输)

SSL协议

  • SSL握手协议:建立通信双方的可靠连接

通信双方身份认证;身份认证通过后,双方协商本次通信使用的加密协议和加密密钥。

    • 验证服务器
    • 验证用户(可选)
    • 选择加密算法
    • 确定会话密钥
  • SSL记录协议:传输数据块

SSL工作过程

验证

  • 网站提供证书,浏览器验证

e.g. 我们可以拿身份证/学生证认证自己的身份。身份证由公安系统认证,学生证由学校认证。同样的,网站提供的证书也是由第三方机构(CA)认证。

加密

  • 协商会话算法和会话密钥

Q:协商过程是明文传输还是加密传输?

A:加密传输。

Q:密钥从哪儿来?

A:非对称加密。

证书

  • 获得证书过程
    • 服务器向CA提交证书请求
    • CA验证公司身份有效,向服务器签发证书
  • 证书中包含:
    • 证书颁发者
    • 证书所有者(申请证书的公司或机构,如服务器域名)
    • 证书所有者的公钥
      • 公钥↔私钥:加解密的密钥是可以互换的,不论用哪个密钥加密,另一个密钥都可以实现解密(通过公钥加密的内容只能通过私钥解密,通过私钥加密的的内容只能通过公钥解密)
      • 公钥

(1)定义:公开的密钥

(2)说明:任何人都可以使用公钥进行加密,把密文发给公钥的所有者

      • 私钥

(1)说明:只有私钥的拥有者可对公钥加密内容进行解密(网站需保管好自己的私钥)

      • 只要服务器将自己的公钥发出去,任何用户都可以使用这个公钥把自己想发给服务器的信息加密,譬如可以传一下生成加密密钥(对称密钥)的参数。服务器收到这个加密的参数信息之后,就可以使用自己的私钥解密,然后和用户协商出来一个对称密钥,用于之后的会话加密。
    • 证书有效期
    • ……

数字签名(公钥加密,私钥签名)

非对称加密的应用,数字签名是只有信息的发送者才能产生的内容,这段内容同时验证信息的产生者以及保证信息内容没有被篡改

  • 使用私钥加密没有保密性可言
  • 使用私钥加密的内容,只有公钥可以解开
  • 用公钥解开私钥加密的内容,说明了密文是由公钥所有者加密,也相当于公私钥所有者在公开声明“这段信息是我发出去的”,即签名,起担保作用
    • CA机构给服务器签发证书:服务器把自己的证书提交给CA机构,CA验证后使用自己的私钥给该证书签名(私钥加密)
    • 服务器把加密后的证书交给浏览器
    • 浏览器本身已保存相关CA信息(包括CA公钥)。浏览器收到服务器的证书后,使用CA的公钥给该证书解密,如果解密成功,而且证书中的域名和浏览器中的域名相对应,那么说明该网站是真正的网站

证书签发流程(整理、必考)

  • 在此之后,浏览器和服务器进行密钥协商。
    • 因为浏览器成功解密了服务器的证书,而证书中包含服务器的公钥,所以浏览器可以使用服务器的公钥对协商数据进行加密。

Q:既然浏览器已经获得服务器公钥,那为什么不直接传输数据,而还要进行密钥协商呢?

A:因为RSA的加密和解密过程都是幂乘运算,而幂乘运算非常消耗内存,所以改采用对称加密算法(位操作)进行数据传输。

*注:RSA算法一般只用于身份认证、密钥协商,很少用于数据加密。

非对称加密


甲:任意想一个三位数,然后把这三位数乘以91,把乘积的末三位告诉我。

乙:193。

甲:乙想的数是123。

原理:abc ,  
例:123

X(11193)乘以11的末三位是什么,只与X的末三位有关
  • 从密码学的角度来看,相当于是“对方”和“我”两人要交换一个信息123。
  • 但是网络是不安全的,所以“对方”首先用密钥91来乘以123。然后将加密出来的数据193在网络上传输。“我”收到密文之后,使用另一个密钥11来解密。
  • 在这个系统中,加解密的密钥是不同的,就是非对称加密。
e.g. 浏览器.管理证书

原文地址:https://www.cnblogs.com/tianjiazhen/p/12235509.html

时间: 2024-10-04 06:36:47

Web信息安全实践_1.5 SSL (secure socket layer)的相关文章

Web信息安全实践_1.3 HTTP

HHTP HTTPs:HTTP/ssl,安全的http Apache:HTTP服务器 SSL:安全的套接进程,应用层和tcp层中间,提供数据加密.身份认证 OpenSSL 浏览器/服务器交互 URL+HTML+HTTP→www URL(Uniform Resource Location,全局资源定位符) ∈ URI(Uniform Resource Identifiers) URL URL可定位到物理位置一台主机上一份文件的具体位置. e.g. HTTP请求 HTTP请求 方法:Get.Post

Web信息安全实践_1.7 OpenSSL

OpenSSL 用于实现SSL协议,能实现证书生成.证书签名.密钥生成.加解密等各种操作 命令行举例 openssl version openssl prime echo "encode me" |openssl | enc -base64 /*对字符串encode me进行base64编码*/ echo "ZW5jb2RIIG1lCg==" | openssl enc -base64 -d /*对经过base64进行编码的字符串进行解码*/ 自建HTTPS(使用O

Web信息安全实践_1.6 RSA

非对称加密示例 (SSL.SSL工作过程.非对称加密) Alice和Bob进行加密传输 Bob公开自己的公钥91 Alice把三位数123乘以91,将乘积的末三位发给Bob 如123×91=11193:将193发送给Bob Bob将收到的数乘11,取后三位,得到原始信息 如:193×11=2123,:得到123,解密成功 原理:91×11=1001 RSA算法示例 挑选两个质数,如 p=61和 q=53(在实际应用中,RSA要求是大质数) 计算N = p×q = 3233 计算(p-1)× (q

Web信息安全实践_3.4 CSRF防御

错误的CSRF防御方法 (1)只接受 POST 请求 攻击者不能基于链接简单地攻击( IMG ),但是可以使用脚本创建隐藏的 POST 请求 (2)转账需要多步 e.g. 第一个请求转多少个coin,第二个请求转给谁 CSRF 攻击可以按顺序执行每个步骤 (3)检查 Referer Referer Referer报文头是网页请求头的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理. 用户正常转账:请求从

Web信息安全实践_3.2 Cookie

HTTP 持久性 (1)HTTP 是一个无状态的协议:服务器不记录请求之间的关系 e.g. 购物,提交购物车.付钱两次请求之间,http协议不记录这两个请求之间的关系 (2HTTP 如何实现会话的持久性的呢? Cookie HTTP Cookie Cookie 的用途 (1)Cookie 用户浏览器访问网站时,在用户本地存储信息 服务器设置cookie的值,本地保存 (2)Authentication cookie 存储关于用户登录状况的信息 使用 Authentication Cookie 可

Web信息安全实践_6 SQL注入

www.myzoo.com 输入示例 Login a'# 用户a登录 a' or 1# a' or 1=1# a' and 1;# d' or 1# a' or '1  思考:为什么无密码可以登录?为什么最终登录的都是a? b' or 0;#  用户b登录 profile a', Coins=100 where Username='a' ;# User c' union select 1,1,1,1,1,1,if(substring(database(),1,1)=char(119),bench

Web信息安全实践_2.5 JS语法基础

JavaScript历史 HTML页面缺乏交互性 造成带宽.时间和服务器资源的浪费 前端加入基本的检查:登录名.密码是否为空,两次密码输入是否一致... JavaScript代码嵌入在HTML中 <script> ... </script> 浏览器加载页面时执行代码,代码的动态输出和HTML的静态内容进行集成 可以在用户输入提交给远程服务器之前进行验证 JavaScript语法 1.动态数据集成 document.write:向文档流写入HTML表达式或JavaScript代码 &

Web信息安全实践_2.3css简介

CSS(Cascading Style Sheets,层级样式表) 内容和格式分离 使用方式 外部样式表 (保存在外部 .css ) 内部样式表(位于 <head> 标签内部) 内联样式(在 HTML 元素内部) css语法 选择器.属性.值 p { font-family: times; } 选择器 类选择器用于指定一组元素的样式 类选择器使用 HTML类属性,并使用“.”定义 id 选择器用于为单个唯一元素指定样式 id 选择器使用 HTML元素的id属性,并使用“#”定义 简单的元素选择

Web信息安全实践_3.3 CSRF原理

什么是 CSRF Cross-site request forgery( 跨站请求伪造 ) CSRF 利用服务器对用户浏览器的信任 被攻击网站依赖用户的身份认证 攻击者使得用户的浏览器发送 HTTP 请求到目标网站 CSRF 的步骤(用户浏览器主动完成) 攻击者确定目标网站(存在CSRF漏洞的网站:目标网站基于cookie的身份认证) 在目标站点找到表单,或者可以提交请求的 URL ,并构造攻击页面或URL 使用get方式提交表单:所有的参数直接显示在URL中,只要构造相关URL就可以了, 为所