网站开发哪些专业,宣传平台,wordpress页面内容调用,成都有哪些做网站的文章目录 一、概念铺垫1.Session ID2.明文与密文3.公钥与私钥4.HTTPS结构 二、加密方式1. 对称加密2.非对称加密3.CA证书 总结尾序 一、概念铺垫
1.Session ID Session ID#xff0c;即会话ID#xff0c;用于标识客户端与服务端的唯一特定会话的标识符。会话#xff0c;即客… 文章目录 一、概念铺垫1.Session ID2.明文与密文3.公钥与私钥4.HTTPS结构 二、加密方式1. 对称加密2.非对称加密3.CA证书 总结尾序 一、概念铺垫
1.Session ID Session ID即会话ID用于标识客户端与服务端的唯一特定会话的标识符。会话即客户端登录时与服务端进行交互的界面。客户端不止一个服务端可能要对多个客户端提供服务即产生多个会话因此要描述相同的信息用适合的数据结构进行管理以便于降低管理成本。 回顾cookie的原理 使用cookie时可能会携带一些敏感信息比如那些不为人知的隐私~如果被人窃取到了就跟小时候裤子被扒一样那滋味 ~同理来回在互联网中传输cookie无异于在网络中来回裸奔。
如何保证我们的隐私数据安全呢
这时session id就来了 第一次浏览器发送cookie时服务端初次收到会创建一个会话并根据cookie信息使用加密算法生成一个唯一的session id之后服务端将这个session id返回之后再进行交互这个session id 就 相当于 cookie这样不用来回裸奔了不过还是有一定的隐患因为如果采用http的话第一次的数据没有加密还是可能被黑客窃取。 补充 cookie 转 session id的变化在状态行SetCookie: [字段]的字段有所体现。 加密算法哈希算法如MD5SHA等UUID随机数组合算法等。 一般来说session id 一般会保存在Cookie文件当中。 比如登录CSDN我们可以在一大堆Cookie文件中翻到session_id。 优点具有唯一性安全性持久性简便(易管理)性。 关于Session ID的疑问 如果session id被窃取之后是否可以替代原用户访问服务器 答会话ID是有被窃取的风险的在被窃取之后服务端可通过检测ip地址归属地等信息来进行检测是否是原先用户进而保护用户数据的安全。 黑客是否可以通过攻击服务器来获取用户的隐私数据呢 答可以但要考虑攻破成本。如果黑客攻克服务器的成本远远大于用户数据产生的价值的话那么黑客是不会做这种傻事的况且一般来说服务端代表着一个公司公司有相应的负责网络安全的人员保护数据不被窃取。 拓展
数据摘要通过哈希加密算法比如MD5将一整段数据(原始数据)转换成一个固定长度的摘要。一旦原始数据修改那么数据摘要就会发生变化一般用于检查数据的完整性。数据指纹一种通过某种方式来确定唯一性的标识符数据摘要就是一种数据指纹身份证号防盗水印等亦可看作数据指纹。
2.明文与密文
明文指的是没有加密过的原始数据获取之后可直接通过阅读的方式进行理解。一般来说HTTP协议采取的就是明文传输因此不安全。密文即将明文进行加密后的数据不易通过直接阅读的方式进行理解。本篇所谈及的HTTPS采取的就是密文传输因此极大提高了安全性。
举个例子在清代有一场政变史称 “辛酉政变”此后慈禧太后开始掌握最高权力开启了长达将近50年的统治。
听闻慈禧在有一天收到奕䜣亲王的密信然后解密出了关键信息 当心肃顺端华戴恒。 这几个人都是当时最大的权臣都是慈禧的死对头。后来这几个人的下场都很惨肃顺被斩端华和戴恒被赐死。树倒猢狲散这几个人死了之后自然没有人敢跟慈禧做对自然就坐稳了权力的王座。
3.公钥与私钥
密钥即用来加密和解密的钥匙。一般分为对称密钥非对称密钥。对称密钥也被称之为共享密钥。用于数据的加密与解密。非对称密钥有一对密钥即公钥和私钥。 公钥即公开的钥匙其它人都可进行使用。通常使用公钥将数据加密然后将数据在网络中进行传输。私钥即私密的钥匙只有持有者(一般为服务端)可进行使用。通常服务端通过私钥将数据解密获取明文数据然后提供对应的服务。
话接上个例子奕䜣亲王在写完明文数据即 当心肃顺端华戴恒。 之后通过再写一段文字加密写成一封密信即可简单理解为使用公钥将数据加密中间传递的过程没人能够读懂真正的意思只有到了慈禧手中然后用相应的方式进行解析这里我们即可理解为使用私钥解密之后就得到了明文数据。慈禧看完之后肯定心想 你们这几个小子既然赶着上路那我就送你们一程~。
4.HTTPS结构 加密层一种传输控制层协议即保证数据的安全也就是对发送的数据进行加密对接收的数据解密。因此所谓的HTTPS 其实就在HTTP的基础上多了加密层即HTTPS HTTP S。常见的加密协议SSL/TLSSSHOpenVPNPGPS/MIME。HTTPS采用SSL/TLS协议进行加密由于SSL存在一些安全漏洞因此现代一般采用TLS加密协议。TLS一般涉及密钥交换数据完整性验证身份验证等方式来保证数据安全。
二、加密方式
下面我们举一个臭名昭著的运营商劫持事件让读者理解加密的重要性。
运营商提供语音通话数据传输互联网访问等服务的企业或者组织国内三大运营商 —— 移动联通电信。运营商劫持一般是通过获取到你的网络请求进而识别检查甚至篡改你的请求。一般涉及HTTPDNSSSLBGP等劫持方式。 HTTP劫持运营商劫持到客户的请求或者服务端的响应之后可以在其中添加广告等信息从而达到盈利的目的。DNS劫持将请求或者响应中访问的域名进行解析进而获取其中的IP地址然后重定向到错误的IP地址以达到流量控制等目的。BGP劫持伪造IP网段欺骗路由器修改网段将原本发送到A的数据发送到B进而达到控制流量发送的目的。TSL劫持通过HTTPS工具拦截用户的流量进而解密查看甚至篡改流量中的数据内容。 可见我们的数据并不总是安全的以前发生过一个运营商(HTTP)劫持的例子
在正常未被劫持时
劫持后 这里我们可以发现网址应用名称安装包的大小都发生了变化显然是运营商动了手脚。
原理 像这种事件一般是没办法从明面上解决的即让三大运营商不要劫持数据成本太高。我们只能尽量避免让自己的数据不被劫持如何不被劫持呢对数据进行进行加密让运营商识别不出你的数据。 类似数据在网络中传输并不总是安全的因此避免他人的干扰就显得愈发的重要在下文博主会逐步介绍加密的几种方案让数据从危险慢慢地走向安全。
1. 对称加密
计算机有一种运算具有非常对称的性质没错就是异或运算。比如双方协商使用7作为密钥加密方式为异或我们要发送5这个明文数据那么密文数据就为 5 ^ 7。服务端收到密文数据使用密钥异或计算进行解密得到明文数据5 ^ (7 ^ 7) 5 ^ 0 5。 异或的运算法则任何数与0异或得任何数。相同数进行异或得0。原理都来自于两数异或相同为0相异为1。 那所谓的对称加密就与之类似双方共同协商共享一把密钥然后之后用传输数据用此密钥将数据加密与解密进而生成密文或明文。 具体过程 密钥生成双方事先协商密钥生成的方式然后将同一把密钥进行共享。生成的方式有随机数生成加密函数等途径。共享的方式有通信前一方向令一方发生密钥协商生成密钥生成的方式中间厂商给双方发送相同密钥等。加密数据发送方使用密钥对明文数据加密形成密文然后通过网络发送到对应服务端。解密数据接收方使用密钥对数据进行解密获取明文数据进行处理。 图解原理 说明下图中的key为对称加密的密钥。 优点 对称加密方式的加密和解密的速度快适合数据量大的数据进行加密与解密。对称加密的实现方式较为简单实现的成本较低。 缺点 密钥在共享的过程中由于未被加密也无法加密(套娃)因此容易被窃取。密钥的管理较为困难具体涉及生成存储更新销毁等方面保证安全是一大难题。
假如我是攻击者 说明攻击者在通信的前后始终保持透明状态即客户端和服务端都无法察觉。 2.非对称加密
所谓的非对称加密其实就是采用两把钥匙一把称为公钥用于公开给发送端用于对数据进行加密形成密文一把称为私钥只有接收端持有一般用于对数据进行解密获取明文。
优点公钥可以公开避免了密钥在共享中被窃取的问题只有私钥持有方才能进行解密提高了数据传输的安全性。缺点由于非对称加密算法的复杂度较高因此加密和解密的效率很低进而导致了通信的效率降低。
一般来说只采取非对称加密有两种方式
第一种只有一方采取非对称加密。 说明服务端和客户端不管哪一方都行这里博主就用服务端使用非对称加密了。 具体步骤 生成密钥服务端采用相应的密钥生成方式生成私钥和公钥。一般的生成方式有RSA、DSA、ECC等。公开公钥服务端向发送请求的客户端发送公钥。一般的发送方式有直接发送通过安全通过或者协商发送或者通过证书发送。加密数据客户端使用公钥加密数据向服务端发送请求密文。服务端用私钥将数据进行加密向客户端发送响应密文。解密数据客户端使用公钥将响应密文解密服务端使用私钥将请求密文解密。 图解 说明下图为非对称加密生成一对密钥其中public_key为的公钥private_key为密钥。 假如我是黑客 说明没有密钥因此客户端发送的请求无法进行解密截取公钥之后可以对服务端用私钥加密的数据进行解密。 因此这种存在服务端信息泄露的危险如果是只有客户端一方采用非对称加密那么客户端的请求就存在信息泄露的风险。
第二种双方都采用非对称加密。
图解 说明下图为非对称加密的两对密钥对其中pc_key为客户端的公钥sc_key为客户端的密钥ps_key为服务端的公钥sc_key为服务端的密钥。p(public)c(client)s(server)s(secret)。 假如我是一般的黑客 看似这是一堵密不透风的墙那我偷梁换柱呢 假如我是更高级一点的黑客 这通常被称之为中间人攻击。 这就引出了一个问题 如何确定客户端收到的公钥是服务端发送的这个问题先放一放将在下文的证书部分进行解决。 由于非对称加密的复杂度很高这种加密方式有一种更为致命的缺陷那就是加密与解密时间的效率太低了如果再被截取黑客中间还要进行加密和解密消耗的时间就更长了估计黑客都把等急了~当然这是开玩笑的这里说的时间慢是相比较与对称加密来说的。不过一般来说非对称加密方式加密的时间比解密的时间短加密在几微秒到几十毫秒不等解密在几毫秒到几百毫秒不等。 先解决时间效率低的问题下面引入对称加密与非对称加密结合的方式 具体步骤 只需在通信之前进行将公钥进行传输。客户端收到公钥之后用公钥将对称加密方式的密钥加密然后发送给服务端服务端用私钥解密获得非对称的密钥。此后通信只需要用对称加密的密钥进行通信即可。 因此这种方式只在传输对称密钥时可能会消耗一点时间不过之后用的都是非对称的密钥进行的通信大大加快了通信的效率。
上述的加密方式都有无法确定客户端收到的公钥是服务端发送的硬伤因此黑客都可通过中间人攻击进行破解下面我们引入一味良药 —— 证书。
3.CA证书 CA, 全称Certificate Authority即是负责发放和管理数字证书的权威机构。并作为受信任的第三方承担公钥的合法性检验的责任。 那所谓的CA证书就是CA机构发放的证书那这个证书的主要作用就是防止公钥在网络传输过程中被篡改确保公钥的合法性。
先来见一见证书基本有啥 在浏览器设置中搜索证书即可查看相应的证书的内容。 如何实现呢
客户端生成一对密钥填写符号要求的CSR文件里面含有发送给服务端的公钥域名国家省份公司名等认证信息。CA机构接收客户端发来的CSR文件并使用相关工具查看其中的信息并对信息的有效性合法性状态等信息进行检查。如果检查无误确认合法CA机构就会生成数字证书然后发给客户端。客户端之后会将证书发给服务端目的是让服务器获取公钥。服务端接收客户端发来的证书检测是否是CA机构颁发的证书如果是保留客户端发来的公钥如果不是就将其丢弃或采取相应措施比如联系相应的机构对非法证书进行溯源并进行处理。 如果感兴趣推荐一个免费生成CSR文件的网址: 点击进入 CA机构生成证书的具体过程 利用已经确认合法的CSR文件中的信息先形成对应数字证书的数据。使用摘要算法比如MD5形成一段固定长度的数据摘要从而确保数据的唯一性和完整性。CA机构使用私钥(仅持有者拥有)对数据摘要再进行加密从而形成数字签名确保是CA机构的。证书的数据与数字签名共同形成独属于CA机构的数字证书。 图解 服务端验证证书的具体过程 使用在电脑出厂时内置在操作系统的CA机构的公钥将证书中的数字签名解密得到数据摘要设为x。使用对应的数据摘要算法将证书的数据(不包含数字签名)形成固定长度的数据摘要设为y。如果x y则说明数字证书是有效的保留公钥如果x ! y则说明证书非法进行相应的处理。 图解 图解过程 图解完整过程非对称加密 对称加密 证书认证 说明C_s_key为CA机构的密钥C_p_key为CA机构的公钥。 最后我们再简单的讨论一下以上的加密方式中间人攻击的方式还行不行的通
中间人使用的操作系统肯定也内置了CA机构的公钥那么有了公钥就可以对网络中的数字签名进行解密因此解密可以获取到客户端的公钥但是由于没有私钥因此无法篡改与解析数据进而形成新的数字签名因此发送到服务端的证书肯定是CA机构的。因此中间人攻击在证书这个buff的加持下是走不通的只会让中间人束手无策无处遁形。
不过这个世界有白就有黑随着技术的发展双方都在进行着军备竞赛因此没有绝对的安全需要我们辩证的看待安全。
总结
本篇我们先对 Session ID, 数据摘要数据指纹明文密文密钥公钥私钥HTTPS结构进行了铺垫。我们从加密方和破解方由浅入深讨论了对称加密非对称加密(两种方式)对称加密与非对称加密证书学习了比较成熟的加密方法。
希望这篇文章能对读者产生一定的帮助
下篇彩蛋可靠与不可靠这是一个值得的思考的问题。
尾序
我是舜华期待与你的下一次相遇