1、Public Key Infrastructure(公钥基础设施),是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
2、PKI的基本组成包括:公钥加密技术,CA,RA,数字证书。
1、加密和解密的密钥不同,这种算法叫做非对称加密算法,这种密钥叫非对称密钥。 2、加密密钥和解密密钥,称为一对密钥对,也叫公私钥,它们是由非对称加密算法生成的。 3、常见的非对称加密算法:RSA DH ECC(未来可能替代RSA加密,安全性一致,但是公钥更精简,可以参考淘宝的数字证书,使用的就是256bits的ECC公钥) 4、RSA非对称加密的几个核心特点:1、需要在传送数据之前提前交换公钥。2、消息发出之前,采用的是对方给我的公钥进行加密。3、此时对方收到加密后的消息,用自己的私钥解密自己的公钥。 5、RSA算法的公钥长度为1024bits或者2048bits不等,是非常长的。可以使用微软最新浏览器打开百度网站,由于网站采用了https协议,该协议是对网站数据进行加密的,点击左上角的小锁,再点击连接安全,从右上角的证书就能看出该网站使用的公钥内容。 6、公私钥互为加解密关系,但是神奇的是成对的公私钥不能互相反推! 7、非对称加密算法优点:足够安全,保证数据机密性的同时还可以完成身份验证。 8、非对称加密算法缺点:极其慢。 (这个慢是相较于对称加密算法而言的,并不是人能明显感知的)
1、张三和王五为了保证数据的传输速度,又不想让数据在传输时被泄密。此时两人想出一个办法,利用对称加密的算法AES传输数据之前,先利用非对称算法RSA将AES的密钥进行加密,保证AES的密钥被获取也无法使用。此时两人只需要加密一次密钥,再利用该加密后的AES密钥完成数据传输即可,李四由于没有RSA私钥,就算拿到了AES的密钥也无法进行解密,只要张三和李四知道密钥是什么,即只有他俩能解密数据。
1、哈希加密算法又叫hash算法,它包括MD5算法和SHA算法。HASH算法的特点为:不可逆,加密后的值很小(128位,256位,512位等) 。 2、加密后的值被称为哈希值(hash值)。 3、hash算法的优势在于它的唯一性:同样的数据,不管被加密多少次,加密结果都不变,即hash值不变;同一个hash值不管经过几次hash算法计算,结果也不会改变。 4、hash值本身被创造是用于确保数据的完整性,但是不能保证数据传输存在身份认证机制。 5、hash值在被加密之后被称为数字签名,数字签名可以作为数据身份认证的依据。
1、对于中间人在通信过程中发布虚假公钥的情况,可以使用证书颁发机构(CA)颁发数字证书的方式解决。(数字证书:携带经过国家专业机构(CA)认可的申请者公钥) 2、CA的作用:接收证书申请,证书颁发审批,证书颁发,证书吊销 3、数字证书中的指纹信息相当于CA的认证标识(数字签名)。(公章) 4、数字签名全球统一一个格式标准:x.509 5、证书包含的内容:使用者信息(域名地址,电话,联系人等等),使用者的公钥,CA的数字签名,颁发者的名称与信息,颁发日期,证书有效期。
winserver2008同时作为https服务器(web服务器)和CA服务器,win7 作为一个web客户机,选择NAT,全部能上网即可。 第一步:web服务器搭建http网站,让客户机能够成功访问
1、2008的IIS服务组件和2003的安装方式不一样,已经继承好在系统中,不需要通过光盘来安装。打开2008,计算机右键点击管理,点击角色---添加角色---勾选web服务--应用程序开发---下一步完成安装。
2、安装好之后,开始---管理工具---IIS服务器,就能看到web服务器,点开可以看到网站结构。IIS服务器会自动生成一个默认的web站点。此时打开win7的浏览器,输入http://{ip地址} 可以访问到该网站的默认主页。
3、开始---管理工具---IIS服务器,点击服务器,找到网站下的Default Web Site。该站点对应的路径为C:\inetpub\wwwroot。(本次实验期间,默认站点需要一直保持开启状态,不能修改也不能停止。因为在颁发证书的时候,默认网页要成为CA的申请页面RA)
4、此时需要新建一个网站作为给客户访问使用的网站,所以需要新建一个域名作为该网站的网址。还是在IIS服务器中选择角色---添加角色---勾选DNS服务器,选择仍要安装,下一步,安装完成。此时需要将win7网络适配器中的DNS服务器改为2008的ip,因为此时2008同时充当了DNS服务器的角色,帮助win7访问web站点时完成定向解析。
5、在2008的DNS服务器中,点击正向解析文件,新建一个区域,名字为demo.com。新建好之后右键该区域新建一个主机,名称为test,完整域名构造为test.demo.com,ip地址设置为本服务器ip。
6、此时在win7上ping test.demo.com,如果可以正常通信证明2008的新站点已经搭建成功。
7、域名解析服务建立完毕,打开web服务器,右键网站新建网站,网站名称设置为demo,物理路径要填写网站文件对应的文件路径,将demo.html放到c盘的website目录下即可(需要自己创建);绑定类型为http,ip地址设置为本机ip,端口为默的80。主机名和刚才设置的一致:test.demo.com。创建完成后,双击该网站,在右边的菜单中找到默认文档,检查一下有没有demo.html。如果没有,则需要加入该网页,做一个关联和绑定。
8、登录win7,通过网站访问 http://test.demo.com ,如果可以成功访问就证明前面的步骤没有问题。第二步:web网站所有者向CA服务器申请证书,web服务器开启https服务
1、打开IIS服务器,选择添加角色,勾选证书服务,勾选证书颁发机构和证书颁发机构web注册,其他全部默认,新建私钥时,选择RSA算法,长度2048;证书颁发机构名称默认即可,全部选择下一步,安装即可。
2、安装好之后可以在IIS服务器默认站点目录中找到CertSrv这个子站点,它就是提供数字证书颁发服务的入口(RA)。此时在2008上访问 http://{服务器ip}/CertSrv 即可访问到该子站点。下一步需要利用该界面申请证书。
3、选中服务器,右边菜单找到服务器证书,此时在最右侧选择创建证书申请来给的demo.html网站申请一个证书。通用名称需要和域名保持一致,写入test.demo.com。组织填入topsec,城市输入beijing,下一步,加密服务选择RSA,长度2048;申请保存路径选择桌面,命名为shenqing。此时桌面会生成一个shenqing.txt文件,打开会发现其中的内容是刚才申请中填写的内容,经过base64编码之后完成了存储。
4、在2008上使用IE浏览器会由于服务器开启了浏览器增强功能一直提示警告,此时可以进行关闭,避免其一直干扰我们正常访问网页。开始---管理工具---IIS服务器,选中服务器管理器,在右边列表中找到配置 IE ESC,全部选择禁用即可。
5、在2008访问 http://{服务器ip}/CertSrv ,在界面中选择申请证书---高级证书申请---使用base64编码。。。。,此时在窗口中将第三步shenqing.txt中的内容复制进去,点击提交即可。
6、开始---管理工具---证书颁发机构,在挂起的申请中可以看到刚才web网站发布者的申请,选中该证书,右键点击所有任务,选择颁发即可,才是在颁发的证书目录下可以看到该证书,证明证书颁发成功。
7、在2008访问 http://{服务器ip}/CertSrv ,在界面中选择查看挂起的证书申请,点击证书,编码选择DER编码,下载证书,证书保存到桌面,可以改名为test。
8、打开网站服务器,选中服务器,最右侧选择完成证书申请,选择test证书,名称写为test,确定即可,此时就完成了证书的导入。
9、选中test网站,在最右侧选择绑定,修改类型为https,证书选择为test,即刚才申请的证书。
10、此时使用win7访问 https://test.demo.com ,会显示此网站的安全证书有问题的提示,因为此时浏览器中不存在该CA,浏览器中内置的都是国际合法的CA,而我们的CA是服务器创建的,浏览器没有内置,因此会出现安全警告。可以选择继续访问,来正常访问该网页。此时可以在网站的地址栏看到证书错误,因为浏览器无法检测到该CA为合法的CA。
11、可以通过在win7浏览器中导入代表2008CA服务器身份的证书来解决证书信任的问题,打开浏览器选择右上角选择工具---internet选项---内容---证书,在受信任的证书颁发机构中导入,此时需要先访问 http://{服务器ip}/CertSrv ,选择下载CA证书,保存到桌面。此时用刚才的方式在浏览器中导入该证书即可。出现证书安全警告,选择是。此时重新访问 https://test.demo.com ,可以直接访问成功,不会出现安全提示。
此时客户端可以选择用 https://test.demo.com 或者http://test.demo.com 访问网站,一个是通信加密的,利用了服务器的https服务(443端口);一个是通信不加密的,利用了服务器的http服务(80端口)。此时服务器可以强制性要求客户机在只有使用https协议才能访问网站。可以在网站服务器选中test,在右边菜单中选择SSL设置,选中要求SSL,最右侧选择应用。使用win7浏览器进行访问测试,访问 http://test.demo.com 会被拒绝,只有 https://test.demo.com 可以正常访问