一种基于签名算法且简单安全的API授权机制
笔者以前在做广告系统时发现对接的大多数平台的广告系统都是以token方式授权接口,而且这个token是一直不变的,由广告主提供,可以说这就是裸奔的接口,只不过这种接口对安全性要求不高,这只能防止恶意调用以及验证渠道的身份。
去年笔者写过一个API统一授权平台,为内部服务开放接口给第三方系统调用提供统一的授权管理,除了方便管理接口授权外,没有其它用途,但却要花成本部署。这应该是我做的一个最无意义的项目了。
今天介绍的API授权机制或许也是使用较为广泛的一种API接口授权机制,记得笔者以前做微信支付功能的时候,微信提供的支付接口也使用这种方式:签名。优势:简单、不影响性能、不需要额外成本。
这种授权方法的实现逻辑是,授权方为每个接入平台设置唯一的身份标识(key)以及设置独立密钥,其实也就相当于账号密码。要求接入方系统在每次发起请求都在请求头携带三个参数,分别是身份标识(key)、发起请求的时间戳、以及签名,授权方系统在接收到请求时校验签名,校验通过才放行请求。
校验签名的过程为,从请求头获取key和时间戳,再根据密钥通过相同算法生成签名(调用方与授权方使用相同签名算法),最后对比请求头获取的签名是否相等,如果是则校验成功,否则校验失败。
基于签名算法的授权方法实现过程如下:
授权方:
1.定义签名算法,提供签名生成算法给接入方,并为接入方生成密钥和身份标识;
2.在项目中拦截需要验证签名的接口,从请求头获取时间戳和身份标识,根据密钥和签名算法生成签名,将生成的签名与从请求头获取到的签名比较,如果相同则继续步骤3,否则拒绝请求;
3.请求时效性校验,用当前系统时间戳与从请求头获取到的时间戳比较,如果请求在有效时间范围内则放行请求,否则拒绝并响应签名过期。
接入方:
1.从授权方获取对接文档,并向授权方要密钥和身份标识;
2.根据文档提供的签名生成算法封装签名方法;
3.在发起请求时,将身份标识、当前时间戳、签名写入请求头。
签名生成算法可自定义,如将身份标识(key)、时间戳(timestamp)和密钥拼接在一起后,再采用一种不可逆算法对字符串进行加密生成签名,如MD5算法。规则越复杂就越不容易被破解。
签名加上时间戳有什么好处?
一是为签名添加时效性。授权方系统可根据请求时间戳与系统当前时间戳比较,限定签名只能在一秒内有效,或者五秒内有效。但要求双方系统时间必须正确。
二是安全性,如果黑客拦截了你们系统的请求,然后修改请求再发起请求,这期间肯定是要时间的吧,所以当系统接收到篡改后的请求时,签名的有效期已经过去了。如果改掉请求头传递的时间戳,那么授权方系统生成的签名就与请求头传递的签名不一样了,请求一样无效。
即便你知道授权方(肉鸡)系统的签名规则,如果你不知道密钥,也无法生成有效的签名。并且由于签名采用非对称加密算法,要想通过爆力破解出密钥几乎是不可能完成的事情。
那为什么用时间戳而不用格式化时间字符串呢?
这可能是考虑时区上的兼容吧,不同机房所在时区不同的话,时间就不同,但时间戳都相同。
为发挥这种授权方式的安全性,首先是生成签名的规则必须够复杂,然后是签名的加密算法要不可逆,千万不要使用Base64这种算法,最后是密钥要足够长足够复杂,以确保即便在知道签名生成规则的情况下,也不可能通过暴力破解出密钥。
签名规则指的是生成加密之前的签名字符串的规则,如规则:key+密钥+时间戳+key+密钥。假设key为“app”,密钥为"123",时间戳为"1111111111111",拼接生成的加密前的签名为"app1231111111111111app123",最后通过加密算法对拼接的字符串加密就能生成最终的签名。
每个接口都要写一遍签名逻辑不麻烦吗?
不需要。对于授权方,可通过过滤器或者拦截器完成签名验证逻辑;对于调用方,使用不同框架有不同的方法,但我们总能想到办法只写一次签名逻辑不是吗?
本文转载自微信公众号「Java艺术」,可以通过以下二维码关注。转载本文请联系Java艺术公众号。
推荐系统
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
相关文章
- Win 10系统如何打开自动搜索网络?打开自动搜索网络的方法
- Vista系统下无线连接时显示“用于网络的保存在该计算机上的设置与网络的要求不匹配”
- 无线连接路由器时提示“无线连接被配置为不连接到访问点网络”的解决方法(图文)
- 再次作案:影像IT巨头柯尼卡美能达遭新型勒索软件攻击
- 专栏
- Pay2Key勒索软件入侵英特尔旗下的Habana Labs并窃取了数据
- 下下下一代防火墙关键技术漫谈
- 一个被称为LogoKit的网络钓鱼工具包浮出水面
- Outlook的数据文件
- Win10系统查看网络连接详细信息的方法
- 6个个人信息与物联网设备隐私安全的方法
- 2020年网络攻击预测:将瞄准非传统系统?
- 网络安全编程:Winsock编程基础
- DedeCms V5.1 tag.php注入漏洞
- 和妹子去开房,为何我的房钱比别人贵80 | 大数据反手一巴掌系列
- 有黑客曾入侵中国网络,窃取新冠疫情情报?如今安全公司扒出真相
- IBiz E-Banking Integrator ActiveX控件WriteOFXDataFile()不安全调用漏洞
- 网络中双绞线接线的方法
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1电脑公司Ghost Win7 x64 Sp1装机万能版2019年12月(64位) ISO镜像免费下载
- 2新萝卜家园 Ghost Win7 x64 SP1 极速版2022年5月(64位) 高速下载
- 3雨林木风Ghost Win8.1 (X64) 极速纯净版2020年5月免激活) ISO镜像高速下载
- 4雨林木风Ghost Win7 x64 SP1 极速装机版2020年1月(64位) 高速下载
- 5电脑公司Ghost Win8.1 x32 喜迎国庆 精选纯净版2020年10月(免激活) ISO镜像高速下载
- 6U大师Ghost Win8.1 x64位 电脑城纯净版2018年8月(免激活) 提供下载
- 7笔记本&台式机专用系统 Windows10 企业版 版本1903 2021年12月(32位) ISO镜像快速下载
- 8深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年2月(64位) 高速下载
- 9新萝卜家园Ghost Win8.1 X64位 纯净版2022年2月(自动激活) ISO镜像高费下载
- 10电脑公司Ghost Win8.1 X64位 喜迎国庆 纯净版2021年10月(自动激活) ISO镜像快速下载