web安全day12:PKI
1、概述
PKI:公钥基础设施。public key instruction。作用是通过加密技术和数字签名保证信息的安全。PKI是一套安全架构的总称,并非特指某一个软件或者某一台设备,其组成包括公钥加密技术、数字证书、CA(证书颁发机构)、RA(注册机构)
那么PKI保证了哪些信息的安全性呢?在此之前,我们需要简单了解一下信息安全这个概念。我们讨论信息安全的时候,一般使用三个主要要素来定义我们的信息或者信息系统是否安全。
2、信息安全三要素
机密性:防止信息被不该知道的人知道
完整性:防止信息被不该修改的人修改
可用性:保证信息被应该知道的人知道
这些要素可以看作是衡量指标,同时也是我们的目标和需求,那么为了实现我们的以上需求,我们可以通过加密/解密技术以及签名/认证技术来分别实现。
3、应用领域
1)SSL/HTTPS
网站运营、电商银行支付
2)IPSecV*P*N
3)部分远程访问V*P*N
4、公钥加密技术
作用是实现对信息的加密、数字签名等安全动作。
公钥加密的加密算法主要有RSA等非对称算法。这种算法的特点是加密密钥和解密密钥是不同的,我们不需要向对方通告我们的私钥,而只需要向对方通告对应的公钥,这样我们使用我们的私钥进行加密(也叫签名),对方就可以使用对应的公钥进行解密(也叫认证)来对信息的发送方也就是我们的身份进行验证,防止公鸡者给我们发送虚假信息或者我们事后对发送过的信息进行抵赖。
RSA的核心在于一个公钥只能对应一个私钥,但是持有一种密钥很难推断出其对应密钥的具体数值。
我们通过一张图简单了解一下rsa的工作原理。
关于公钥加密体系的更多内容,可以移步https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
讲的非常清楚。
5、数字证书
通过公钥加密技术,我们已经可以实现身份的认证。但是作为认证方,我们也会产生疑问,公钥是否真的属于被认证方呢?如果有人冒充了我们的被认证方,即替换了公钥信息,我们如何验证呢?
我们想到,可以建立一个所有人都信任的机构,专门用来存放大家的公钥信息,存放的同时,还可以对大家的身份进行确认,即为公钥做认证,这个机构就是CA(certificate authority),证书中心。具体的方法就是同样使用公钥加密技术,为公钥进行签名,签名时使用该机构的私钥,而将机构的公钥公之于众,便于大家使用它对别人的公钥进行验证。这个被CA的私钥签名后的用户公钥就是数字证书,它的真实性由CA为其背书。
证书的格式遵循X.509标准,证书包含:使用者的公钥值、使用者的标识信息(如名称和电子邮件地址)。
6、CA
证书机构CA用于创建和发布证书,它通常为一个称为安全域(security domain)的有限群体发放证书。创 建证书的时候,CA系统首先获取用户的请求信息,其中包括用户公钥(如果用户端是个人使用或者测试用,则公钥一般由用户端产生,如电子邮件程序或浏览器等 或者使用第三方开发的具有独立CSP的智能终端如USBkey),CA将根据用户的请求信息产生证书,并用自己的私钥对证书进行签名。其他用户、应用程序或实体将使用CA的公钥对证书进行验证。如果一个CA系统是可信的,则验证证书的用户可以确信,他所验证的证书中的公钥属于证书所代表的那个实体。
一句话说:就是CA是权威的证书颁发机构,为了公正“公钥”的合法性。
7、RA
注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认用户身份的功能。这里指的用户,是指将要向认证中心(即CA)申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。注册管理一般由一个独立的注册机构(即RA)来承担。它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。因此,RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认识部门等。当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成,而不设立独立运行的RA。但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI国际标准推荐由一个独立的RA来完成注册管理 的任务,可以增强应用系统的安全。
8、实验一:部署http服务
我们需要一台windows7客户机和一台windows2008服务器,我们将windows7的ip地址设置为10.1.1.4/24,将windows2008的ip地址设置为10.1.1.5/24,并且将windows2008设置为我们实验环境的dns服务器,即在windows7中将dns指向10.1.1.5,特别需要注意的是我们的服务器和客户机都需要关闭防火墙。
测试防火墙是否关闭最简单的方式是ping,防火墙打开时默认会deny ping数据包。
我们希望使用windows2008搭建一个网页服务器。
根据我们今天的实验,我们需要勾选应用程序开发这一项。
安装完毕后,同样在开始--管理工具--iis管理器中打开。
我们可以尝试在windows7中检查iis服务有没有正常运行。
出现以上界面说明服务正常开启。
我们尝试添加一个网站,在网站右键新建网站。
为了能够在windows7中访问该网页,还需要配置dns服务。此处略过。
最终,我们的windows7中可以访问该网站。
9、实验二:升级https服务
点击服务器管理器--添加角色--active directory证书服务
我们知道证书颁发机构就是ca,但是只有ca还不够,还需要证书颁发机构web注册。
企业选项适用于存在域的情况,而独立是没有域的情况。
指定ca类型--选择根ca
设置私钥--选择新建私钥
为ca配置加密--默认不变
配置ca名称
设置有效期--表示ca的权威性的有效期
配置证书数据库--保持不变
安装完成
进行验证
开始--管理工具--证书颁发机构
申请证书
点击服务器证书--创建证书申请
完成后会产生一个加密后的申请文本
在浏览器中输入ca的站点即本iis ip地址加certsrv
选择申请证书--高级证书申请--使用base64编码的cmc或者pkcs提交申请--然后将此前的txt文本内容复制粘贴到内,点击提交申请。
回到开始--管理工具--证书颁发机构--挂起的申请--颁发
就可以为我们的iis服务器颁发证书了。
作为iis服务器,我们再次回到ca申请网站。
点击查看挂起的证书申请状态--保存的申请证书--下载证书,将其保存到我们本地。
这就是我们的证书了,它里面包含了ca的签名和我们iis服务器的信息和公钥。现在需要将证书导入iis中。
iis管理器--服务器证书--完成证书申请
右键网站xdf--点击编辑绑定
添加https的网站类型
点击ssl设置
点击应用。
回到windows7中进行验证。
出现此界面说明此前的配置正确。点击继续就可以正常浏览网页。
为什么会出现这个界面呢?因为作为客户机, 我们并不知道ca的存在,即为服务器颁发证书的ca在我们这里是不权威的。那么为什么百度这些网站是没有问题的呢?因为我们本地已经保存了它们的证书。
web安全day12:PKI相关推荐
- Web 安全:PKI 扫盲
个人博客 在互联网世界,我们广泛采用 TLS 来保护通信安全,这里的安全主要包含两部分内容:身份鉴别.通信加密.身份鉴别是一切的基础,特别当发送消息比较敏感需要加密时,对接收方必然有一个身份" ...
- Java web学习day12 Cookie
Cookie Cookie是服务器通知客户端保存键值对的一种技术 客户端有了Cookie后,每次请求都发送给服务器 每个Cookie的大小不能超过4kb Cookie的创建 package com.t ...
- Linux 基础(2)
DAY 1............................................................................................... ...
- 基于Django中间件引发的编程思想
文章目录 基于Django中间件引发的编程思想(==重点==) importlib模块使用 编程思想 基于Django中间件引发的编程思想(重点) importlib模块使用 能够以字符串的形式导入模 ...
- 关于PKI架构(使用证书)保护Web访问的安全实现SSL的基本理论
当您正在使用电子商务.电子银行转存帐,可能您的Web页面需要经过安全加密处理,那么,此时您就必须用到https,其中的s是secure(安全保护的意思)https是在安全套接层(SSL)之上使用htt ...
- PKI证书签发系统(web版)新
原来的项目进行翻新功能维护 采用新的加密算法和生成证书方式. pki-new 新版本 一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信息存入数据库,同时也是一个学 ...
- PKI证书签发系统(web版)
这几天没事干,学校安排小学期做一个pki证书签发系统,班上的学霸美女一组,哈哈!虽然90%的活都是我做的,但是帮帮女生也是可以得嘛!扯远了!看看效果吧!用的是ssh框架做的一个签发证书网站,有普通用户 ...
- 撩课-每天刷Web面试题(前10天汇总)-Day12
一.算法题部分 1. 如何获取浏览器URL中查询字符串中的参数 function getParamsWithUrl(url) {var args = url.split('?');if (args[0 ...
- 撩课-Web大前端每天5道面试题-Day12
1. 请写出至少5个html5新增的标签,并说明其语义和应用场景? section:定义文档中的一个章节;nav:定义只包含导航链接的章节; header:定义页面或章节的头部; 它经常包含 logo ...
- WEB SSH Ajaxterm客户端配置(1)
Ajaxterm是一款基于Web的SSH客户端软件,它是采用Python编写的,这也就保证了它能在多种Linux发行版的系统中使用,同时它的安装非常简单. 实验环境: ...
最新文章
- solr/lucence和关系数据库的混合使用
- 数据结构实验之查找七:线性之哈希表
- 程序员应如何理解高并发中的协程
- (47)Xilinx VIO IP核配置(八)(第10天)
- 关于权限的数据库设计
- Leetcode Insertion Sort List
- Android Gradle manifestPlaceholders 的妙用
- 一元函数积分学的概念与性质
- 电脑删除的文件去哪了?删除的数据恢复,居然有3个方法…
- C语言 由拼音字串获取拼音数量
- 2019年最新版,百度云不限速下载工具,亲测好用!
- 【力扣刷题】121.买卖股票的最好时机(python)
- 抖音直播流量怎么来?四大渠道告诉你
- matlab把图像进行网格化,或者是在图像中画网格
- Android 实战项目汇总
- 什么是Java / JVM中的-Xms和-Xms参数(已更新至Java 13)
- RDBMS(关系型数据库)与HBase的对比
- Eclipse安装SVN插件的几种方法
- 浅谈游戏中BOSS设计的思路
- n-queens(n皇后问题)
热门文章
- 【GNN】一份简短入门《图神经网络GNN》笔记小册
- 【科研】施一公:我有6个办法提高英文科研写作能力
- 训练加速3倍!字节跳动推出业界首个NLP模型全流程加速引擎
- 每日算法系列【LeetCode 309】最佳买卖股票时机含冷冻期
- NLP学习—8.模型部署—Flask、Docker
- bug-Both weights and assigned values must be a sequence of numbers when assigning to values of <clas
- 每周荐书:云原生、Docker、Web算法(评论送书)
- 悟道魔兽世界,《榜样魔兽》横空出世
- 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
- 19【推荐系统11】FM与深度学习模型的结合