不多说了,全称Message Digest Algorithm 5,信息摘要算法
全称secure hash algorithm 安全散列算法
hash message authentication code 散列消息鉴别码,根据hash算法的认证协议。
HMAC的认证原理是,使用一个密钥生成一 个固定大小的小数据块,即MAC,并将其加入消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。经常用于对API参数进行请求验证:分配给授权调用方一个 密钥,授权调用方使用密钥和接口的相关信息散列计算出请求签名,然后将签名连同数据-起发给服务 方;服务方根据调用方标识,使用其密钥和同样的散列算法计算出签名和传来的签名做比较,以验证请求的合法性。
对称加密又称被为单密钥加密,是采用单钥密码系统的加密方法,同一个密钥既也可以解密。
DES,全称Data Encryption Standard,即数据加密标准,其使用64位的密钥把64位的明文输人块经过16轮替换和移位操作后变为64位的密文输出块。此算法的人口参数有3个。
PBE,全称Password-Based Encryption, 基于密码加密,是一种简便的加密方式。密钥由用户自己掌管,不借助任何物理媒体,其采用salt杂凑多重加密等方法保证数据的安全性。
非对称加密需要两个密钥,一个是公开的,称为公钥;另一个是私有的, 称为私钥。公润用来加密数据,只有私钥才能解密;私钥般用来签名, 公钥用来验证签名。非对称加密算法安全性要比对称加密算法高很多,但是其运算消耗资源多、效率慢,因此很多情况下都是结合对称加密一起使用的。
RSA,是以算法发明者的名字命名的,其安全性依赖于大数分解的困难程度,于认证和数据加解密,也可以用于密钥交换。 其一般流程如下。
1)A构建一对密钥, 将公钢公布给B.将私街保留。
2)A使用私钥加密数据并签名,发送给B.
3)B使用A的公钥、签名来验证收到的密文是否有效,有效则使用A的公钥对数据解密。
4)B使用A的公钥加密数据,发送给A,A用自己的私钥解密
DH,全称Dife Hellman算法,是一一个密 钥交换协议。其主要用来做密钥交换,一般不用来做认证和加解密数据。其般的使用流程如下。
1) A构建一对密钥,将公钥公布给B,将私钥保留。
2) B通过A公钥构建密钥对儿,将公钥公布给A,将私钥保留。
3) AB双方互通本地密钥算法。
4) AB双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以
可见相比RSA. DH要多发送一个DH公钥,并且其最终对数据的加解密依赖于本地付称加密算法。
很多时候后端应用都会直接提供HTTP接口以供浏览器、客户端、第三方来调用。但由于HTTP协议是明文传输的,且没有任何的身份认证机制和数据完整性保证,因此数据很容易被中间人劫持、监听、篡改等。虽然能够通过对传输的业务数据加密避免这点,但HTTPS才是最根本的解决方案。这也是现在好多互联网公司都在进行全站HTTPS迁移的原因,也是应用商店要求应用调用的API接口都换成HTTPS的动机所在。
可以看到,HTTPS相比HTTP多了一个安全加密层,不仅对数据进行了加密,还对数据完整性提供了保护,并且也提供了身份验证的功能。
非对称加密算法在很多情况下会与对称加密算法一起使用,而HTTP就是一个典型的应用场景。简单说就是:其中一方先生成一个对称加密密钥,然后通过对称加密的方式夹发送这个密钥,这样双方之后的通信就可以用对称加密这种高效率的法进行加解密了。
SSL和TLS都是用于保障端到端之间连接的安全性的,位于应用层和传输层之间。SSL现在已经改名为TSL,主流版本为TLS1.2:
CA是HTTPS依赖的关键组件,即Certifcate Authority,证书中心。客户端从CA获取服务器公钥,并能够保证此公钥不会被中间人篡改。
CA对公钥完整性保证依赖的一个机制就是颁发证书,证书包括以下内容。
使用CA的流程如下。
1)首先将公钥与个人信息用hash算法生成一个消息摘要,然后CA再用它的私钥对消息摘要加密,最终形成数字签名。
2)客户端接收到证书时,用同样的hash算法再次生成一个消息摘要,然后用CA的公钥对证书进行解密,之后再对比两个消息摘要即可保证数据未被篡改。
此外,为了保证CA的权咸性以及其自身公钥的权威性,CA机构有一个树形结构,父节点是信用高的CA,会对子节点的CA做信用背书。
1)客户端向服务器端发送请求,将客户端的功能和首选项传送给服务器端,包括客户端支持的SSL版本、加密组件列表等。
2)服务器端发送选择的连接参数(从客户端加密组件中筛选出的加密组件内容和压缩方法)以及证书(包含公钥等信息)给客户端。
3)客户端读取证书中的所有人、有效期等信息并进行校验,然后通过预置的CA验证证书合法性,有问题则提示。
4) 客户端生成用于数据加密的对称密钥,然后用服务器的公钥进行加密并发送给服务器端。
5)服务器端使用自己的私钥解密数据,获得用于数据加密的对称密钥。
6) 安全的通道建立完毕,后续基于对称加密算法传输数据。
虽然HTTPS安全性比HTTP要高很多,但是由于建立通信通道要先交互很多次,应用的性能受到了不小的影响,因此优化HTTPS的性能非常关键。
1)算法选择。
HTTPS的通信过程中有不少算法参与,算法的性能直接决定了HTTPS的性能。
2)TLS缓冲区。
TLS缓冲区大小即一个TLS Record的大小,在Nginx中默认值是16KB。如果HTTP的数据是320KB,那么就会被拆分为20个TLS Record,然后每个TLS Record会被TCP层拆分为多个TCP包发送给客户端。
如果此值过小,那么TLS Record Head的负载就会增加,会降低连接的吞吐量;而如果此值过大,拆分出的TCP包就比较大,传输过程中容易出现丢包,整个TLS Record到达客户端的时间就会加长。
由于在TCP慢启动的过程中TCP连接的拥塞窗口CWND较小,TCP连接吞吐量也小,因此可以把TLS Record Size设置得小一点;而在TCP连接结束慢启动之后,吞吐量上来了,TLS Record Size 可以设置得大一些。
3) TLS False Start。
主要指的是客户端这边的TLS False Start。开启此选项,那么客户端在发送ChangeCipher Spec、Finished 之后,可以立即发送应用数据,无须等待服务器端的Change Cipherpec、Finished。这样,应用数据的发送实际上并未等到握手全部完成,从而节省出一个
RTT时间,可以提高一定的性能。但开启此选项,需要满足以下条件。
Web安全问题,从大的方面可以分为:
常见的客户端安全问题有:
跨站点脚本攻击,全称Cross Site Script(XSS),顾名思义是跨越两个站点的攻击方式。
一般指的是攻击方通过“HTML”注人的方式篡改了网页,插入了恶意的脚本,从而在用户浏览网页或者移动客户端使用WebView加载时,默默地做了一些控制操作。
XSS可以说是客户端安全的首要问题,稍有不注意就会暴露出相关接口被人利用。
一个XSS攻击的例子如下。
<img src="1" onerror="alert('attack')"/>
如果脚本不是一个alert,而是换成跳转到一个具有删除操作的URL,或者脚本获取用户的Cookie,然后发送到远程服务器上,那么危害就会非常大。
防范这种攻击的常用方式有以下几种。
跨站点请求伪造,全称Cross Site Request Forgery,简称CSRF。这也是一种常见的攻击方式。
这种攻击方式,主要通过诱导用户单击某些链接,从而隐含地发起对其他站点的请求,进而进行数据操作。
一个攻击示例如下。
对于CSRF攻击的常用解决方案有以下几种。
SQL注人攻击是一个很常见的攻击方式,原理是通过发送特殊的参数,拼接服务器端的SQL字符串,从而达到改变SQL功能的目的。
一个攻击例子如下。
需要说明的是,如果服务器的请求错误信息没有做进一步封装,直接把原始的数据库错误返回,那么有经验的攻击者通过返回结果多次尝试就会有机会找出SQL注人的机会。
防范这种攻击的方案有以下几种。
基于约束条件的SQL攻击的原理如下。
如此,我们设计一个用户表(暂且忽略设计的合理性),对其中的用户名和密码字段都设置25个字符限制:
CREATE TABLE test user (user name varchar(25),
pwd varchar(25)
);
有一个user_name为user_test的用户注册,于是向数据库添加一条记录:
insert into test_user values("user test","111111");
接着,一个user_name为“user_test 1”(中间留有25个空格)的用户再来注册。一般的业务逻辑如下。
这样,由于user_name限制为25个字符,那么新用户的user_name成为了“user test”(后面是16个空格字符)。现在数据库记录如下(第二个记录后面是16个空格):
user_name pwd
user_test 111111
user_test 123456
这样,当使用user_name='user_test'和pwd='123456'登录时,能匹配到年二条记录,登录是成功的。但是用户信息使用的是第一条记录,于是攻击者就获取到了巢一个用户的操作权限。
防范这种攻击的措施如下。
DDOS,全称Distributed Denial of Service,分布式拒绝服务攻击。攻击者利用很多台村器同时向某个服务发送大量请求,人为构造并发压力,从而使得服务被冲垮,无法为正常用户提供服务。常见的DDOS攻击包括:
其中SYN food是最经典的DDOS攻击。其利用了TCP连接三次握手时需要先发送SYN的机制,通过发送大量SYN包使得服务器端建立大量半连接,这就消耗了非常多的CPU资源和内存。针对这种攻击,很多解决方案是在TCP层就使用相关算法识别异常流量直接拒绝建立连接。但是,如果攻击者控制很多机器对一个资源消耗比较大的服务接口发起正常访问请求,那么这个方式就无效了。
由于难以区分是否是正常用户的请求,因此DDOS是非常难以防范的,但仍有一些措施能够尽量地减少DDOS带来的影响,介绍如下。
String ip = Networkoti1.getclientIP (reqguest, false); // 获取 客户 端IP地址
String key="ddos."+ip;
long count = suishenRedisremplate.incr(key);//incr 不会影响expire
if (count > 10000){
throw new AccessException("access too frequently with ip:"+ StringUtils.defaultString(ip));
} else {
if (count == 1)(
suishenRedisTemplate.expire(key,10);
return true;
}
上述代码即可将同一IP的请求限制在10秒10000次。
此逻辑越靠近访问链路的前面效果越好,比如直接在Nginx中拦截,其效果就要比在业务应用中做得好。
Sesion fxation 攻击,顾名思义就是会话固定攻击。在我们平时的Web开发中都是基于Sesion做用户会话管理的。在浏览器中,Session的ID一般是存储在Cookie中的,甚至直接附带在query参数中。如果Session 在未登录变为登录的情况下不发生改变的话,Sessionfixation 攻击就形成了。
一个攻击示例如下。
这种攻击的关键点就在于Tomcat使用JSESSIONID作为Session ID。因此,防范这种攻击的核心之一就在于,不能使用客户端传来的Session ID。此外还有以下方法。
文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大
文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码
文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版
文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗
文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程
文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0
文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader
文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型
文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写
文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录
文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点
文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文