通讯中的安全问题笔记

1.MD5消息摘要算法

(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

MD5应用

一致性验证

比如下载软件之后,对比MD5码,能够检测文件有没有被篡改,软件下载站、论坛数据库、系统文件安全等方面应用广泛。

数字签名

防止被“篡改”,写一个文档,记录MD5的值,然后别人篡改MD5值就会发生改变。

安全访问认证

MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。

算法原理 

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

2.base64 算法

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

应用

Base64编码可用于在HTTP环境下传递较长的标识信息,将一个较长的一个标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

3.aes高级加密标准

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

Rijndael密码的设计力求满足以下3条标准:

① 抵抗所有已知的攻击。

② 在多个平台上速度快,编码紧凑。 

③ 设计简单。

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图: 

å å¯æµç¨å¾

详细:https://blog.csdn.net/gulang03/article/details/81175854

SHA-1 

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数

已被破解

 

基于http的加密方案

1、敏感信息的不可见性

使用http协议传输数据很容易被抓包监听传输内容,如果这些数据中存在敏感信息的话,风险太大了。因此我们需要对我们的传输数据进行一定的加密处理

简单的方案就是对传输数据使用Base64方法转码

比较常见的做法是,发送方和接收方彼此约定密钥,发送方发送时用密钥对数据加密,接收方用密钥对数据解密。使用aes;

比如AES128加密算法

 

2.防止数据被篡改

用签名!用签名!用签名!重要的事情说三遍?例如:当数据被封装好后,我们可以用md5算法计算出待传输数据的摘要字符串作为签名。当服务器接受到数据后,同样使用md5对数据做摘要,同请求报文中的签名作比较,若不一致则说明该http请求数据已被篡改 。

1、无法轻易的根据签名推反推出当前签名所采用的算法;

2、签名算法的复杂性、可靠性;

3、不要直接对传输数据作签名,可以先对请求数据作摘要,再使用加密算法生成签名,既可以提升效率也在一定程度上提高了安全性。

3.http请求的真实性

有很多方案可以保证http请求的真实性。比如使用token来进行身份验证,可以借鉴微信的身份验证方案或者jwt实现。本次我们只做了简单的处理,在http请求头中设置了一个时间戳,当服务器接收到数据后,会取出http请求中的时间戳,同时与服务器当前时间作比较。若时间间隔过大,则认为该请求是不真实的,直接拒绝并返回!

基于websocket的加密方案

1.protobuff +AES加密

protobuf是google团队开发的用于高效存储和读取结构化数据的工具。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值