当前位置:网站首页>防止数据冒用的方法
防止数据冒用的方法
2022-08-09 11:28:00 【程序员麻辣烫】
一、样例
我们看一个数据冒用的经典例子:
在一些网站成功登录后,浏览器的cookie会设置serviceToken值,服务器通过该值能获取到用户信息。
如果serviceToken被劫持,他人便可用你的身份进行各种操作。
黄牛软件大多也是利用此原理,不需要获取你的账号密码,只需要获取到serviceToken即可,然后利用这些serviceToken值便可用你的身份做各种操作。
服务端是否有方案能判断传过来的数据确实是本人传的呢?
二、方案
这个问题核心是身份识别的问题:这些数据确实属于你!
2.1前提
我们可以利用公私钥的能力。该方案的实现,需要:
请求端上需要有公私钥对
确保私钥安全,私钥不会泄露
2.2流程图
2.3说明
获取serviceToken时,服务端使用服务端私钥将(设备公钥device.pub和serviceToken)这个组合进行了签名,使得设备公钥和serviceToken关联在一起
在使用serviceToken的时候,需要传递ts_sign和设备公钥device.pub,服务端使用服务端公钥,能够验证这三个数据是否合法,如果合法,表明当时服务端加签的就是这个设备公钥device.pub和这个serviceToken
剩下最后一个要解决的问题是,服务端怎么知道这次请求就是私钥持有者发起的?因为请求数据使用设备私钥device.key做了签名req_sign,使用传过来的设备公钥device.pub进行验签,如果通过,就能确认确实是私钥持有者发送的
通过这一系列推导,我们就能实现数据防冒用的效果。
三、总结
实现这个方案需要很多前提条件,系统的复杂度也有所提升,但确实是很精巧的一种设计。你还知道哪些防止数据冒用的方案呢?
最后
大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)
我的个人博客为:https://shidawuhen.github.io/
往期文章回顾:
边栏推荐
猜你喜欢
FreeRTOS列表和列表项源码分析
End-to-End Object Detection with Fully Convolutional Network学习笔记
mysql8.0和navicat premium15下载安装
BISS绝对值编码器_TI方案_线路延迟补偿
[C language] creation and use of dynamic arrays
拍频造成的轻微震荡
FreeRTOS任务创建源码分析
七夕?程序员不存在的~
Number theory knowledge
x86 exception handling and interrupt mechanism (2) interrupt vector table
随机推荐
Fapi_StatusType Fapi_issueProgrammingCommand使用注意事项
人体解析(Human Parse)开源数据集整理
redis缓存如何保证数据一致性
Semaphore SIGCHLD use, how to make the parent that the child performs over, how to make the distinction between multiple child processes. The end
【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体
mysql + redis + flask + flask-sqlalchemy + flask-session 配置及项目打包移植部署
Notepad++安装插件
Oracle数据库的两种进入方式
x86异常处理与中断机制(2)中断向量表
TI的片上固化好的boot ROM(上电引导加载程序)退出后的去向
结构体知识点整合(前篇)
PTA习题 三角形判断
【VQA survey】视觉问答中的语言学问题
MDK添加注释模板
抗积分饱和 PID代码实现,matlab仿真实现
[现代控制理论]5_系统的可控性_controllability
Win10调整磁盘存储空间详解
Visual Studio 2017 ASP.NET Framework MVC 项目 MySQL 配置连接
ACM最长不下降子序列问题
[现代控制理论]2_state-space状态空间方程