数论中有这样一个结论:如果p和q是素数,且有n = pq,z = (p-1)(q-1)则x ^ y mod n <=> x ^ (y mod z) mod n ,应用这个结论,对于x = m,y = ed, m < n,可得m ^ ed mod n = m ^ 1 mod = m
RSA算法原理(一)
RSA算法原理(二)
报文完整性 密码散列函数校验和算是比较简单的密码散列函数,因此所谓的密码散列函数以m作为输入,并计算得到一个称为散列的固定长度的字符串H(m),要求对于任意两个不同的报文x,y使得H(x) != H(y)
常见的密码散列函数有MD5加密算法
报文鉴别码发送方生成报文m,用s级联m以生成m + s,并计算散列H(m + s)。H(m + s)被称为报文鉴别码
发送方将报文鉴别码附加到报文m上,生成扩展报文(m,H(m + s)),并将该扩展报文发送给接收方
接收方收到一个扩展报文(m,h),由于知道s,计算出报文鉴别码H(m + s)。如果H(m + s) = h,那么接收方表示报文没问题。
数字签名发送方用将初始报文通过散列函数生成扩展报文,然后再用自己的私钥进行数字签名,然后发送给接收方
接收方使用公钥解密得到散列函数,再与维护在本地的散列函数表中的散列函数进行比对,如果匹配,则接收方可以确认报文的完整性以及发送方的可信任性
公钥认证服务方向CA证书颁发机构申请证书认证
客户方向服务方请求服务,服务方将证书发给客户方
客户方使用本地内置的证书公钥与服务方发送的证书中的公钥进行校对
验证通过后,再商量建立密钥建立的协议版本,加密方式等,详情见SSL。
应用场景 应用层 token用户认证组成
uid(用户唯一标识)
time(当前时间的时间戳)
sign(签名,token前几位以哈希算法压缩成的一定长度十六进制字符串)
特点
服务端无状态化、支持在多个服务间共享
安全,可以防止csrf攻击
完全由应用管理,可以避开同源策略
流程
登录
业务请求
token过期,刷新token
SSL被称为安全套接字层,SSL版本3的一个稍加修改的版本被称为运输层安全性(TLS)。
之前谈到HTTPS协议的安全性时提到了SSL,这里复述一下吧:
ssl握手过程
客户端向服务端发出加密通信的请求。这被叫做clientHello请求,
包括支持的协议版本,一个随机数用于等会生成会话密钥,支持的加密方法,支持的压缩方法
回应,serverhello,
确认加密通信协议的版本,一个随机数用于稍后生成会话密钥,确定加密方法,服务器的证书
客户端验证服务端证书是否为可信机构颁步,如果不可信会给访问者一个警告有起决定是否继续通信,
返回一个随机数用于公钥加密,编码改变通知(之后的信息都用双方商定的加密方法和密钥发生),客户端握手结束的通知
服务端收到客户端的第三个随机数后,计算生成本次会话用的“会话密钥”,然后向客户端发送下面信息:
编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。
更多信息
网络层 IPsecIPsec有两种不同的分组形式,一种是隧道模式,一种是运输模式。更为蛇和VPN的隧道模式比运输模式部署得更为广泛。
在初始IPv4数据报后面附上一个“ESP尾部”字段
使用算法和由SA规定的密钥加密该结果
在这个加密量的前面附加上一个称为“ESP首部”的字段
使用算法和由SA规定的密钥生成一个覆盖整个enchilada的报文鉴别码
该报文鉴别码附加到enchilada的后面形成载荷
生成一个具有经典IPv4首部字段的全新IP首部,该新首部附加到载荷之前
更多信息
防火墙的工作是什么linux操作系统中常见的防火墙有iptables和firewall,作为一枚小白在部署代码时在这上面可是吃尽了苦头,那么防火墙到底有什么不可或缺的理由让我们痛并快乐着呢?
传统分组过滤器分组过滤器独立地检擦每个数据报,然后基于管理员特定的规则决定该数据包应当允许通过还是应当丢弃。过滤决定取决于下列因素:
IP源或目的地址
在IP数据报中的协议类型字段如TCP,UDP,ICMP
TCP或UDP的源和目的端口
TCP标志比特:SYN、ACK
ICMP报文类型
数据报离开和进入网络的不同规则
对不同路由器接口的不同规则
状态过滤器状态过滤器通过用一张连接表来跟踪所有进行中的TCP连接,再维护一张访问控制列表来实现访问过滤。
(图37,选自计算机网络 自顶向下方法)
应用程序网关