api接口数据加密和身份验证
2017-07-04 10:24
148 查看
一、加密方式
对称加密和非对称加密。
对称加密:加解密是同一个密钥,速度快,数据接收方需要公布其私钥给数据传输方,安全性完全依赖于该密钥。如AES,3DES,DES等,适合做大量数据或数据文件的加解密。非对称加密:加密用公钥,解密用私钥。公钥和私钥是成对的(可借助工具生成,如openssl等),即用公钥加密的数据,一定能用其对应的私钥解密,能用私钥解密的数据,一定是其对应的公钥加密。对大量数据或数据文件加解密时,效率较低。如RSA,Rabin等,数据接收方需公布其公钥给数据传输方,私钥自己保留,安全性更高。
加密性能比较:
下面给出对称加密(AES)和非对称加密(RSA)效率的参考数据比较:对称加密(AES):
非对称加密:(RSA)
二、api加密传输方案设计
如果数据传输大,密钥不需要进行网络传输,数据不需要很高的安全级别,则采用对称加密,只要能保证密钥没有人为外泄即可;如果数据传输小,而且对安全级别要求高,或者密钥需要通过internet交换,则采用非对称加密;绝大多数场景下,一般采用两者结合的方式。即通过对称加密进行业务数据体的加密,通过非对称加密进行对称加密密钥的加密,这样,即可保证一定的效率以及数据和密钥的安全。三、数字签名
作用:保证信息传输的完整性、发送者的身份验证、防止交易中的抵赖发生。
数字签名是为了做一个客户合法性和数据完整性的校验,防止流氓软件对数据传输进行拦截,对数据篡改后再传输。一般是通过hash函数计算出一个固定长度的哈希串(如md5,一般是根据授权的用户信息和选取数据体报文的摘要作为计算规则),加密后与数据体密文一起传输给接收方,接收方在对数据解密后,以相同的规则进行hash串的计算,如果两者一样,则证明该次请求是合法的。四、api数据传输流程
以下示意图对称加密采用Aes方式,非对称加密采用RSA方式,实际使用过程中,根据实际情况做取舍。五、相关探讨
https传输中应用层的双向验证。相关文章推荐
- asp.net 的身份验证方式
- 总结两种WebService中身份验证的方法
- ASP.NET中使用Forms验证身份验证
- asp.net中的窗体身份验证(分目录验证篇)
- XFire实现身份验证(基于Xfire SOAP Header的WebService安全验证)
- 开发FORM 身份验证 Web 应用程序
- ASP.NET 身份验证机制
- 关于nancy中的身份验证
- oracle登录时的身份验证
- 一个简单的学生登陆系统的jsp实现之身份验证
- 【转】Web Service身份验证
- ASP.NET身份验证方式
- 使用Soap头自定义身份验证
- https原理:证书传递、验证和数据加密、解密过程解析
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题
- 基于身份验证票据的权限系统的实现
- 编写php应用程序实现摘要式身份验证的方法详解
- 跟开涛老师学shiro -- 身份验证
- 身份验证
- Web Service身份验证