网站首页 > 技术文章 正文
客户端通过http协议获取系统重要敏感信息时,很容易造成敏感信息泄露。攻击者可以利用收集的重要敏感信息有针对性的制定计划对系统进行攻击。如何防护呢?首先应根据业务特点定义出系统存储的敏感信息,另外敏感信息在存储、传输、显示时应进行加密或脱敏处理。
1、敏感数据上传
客户端将敏感数据加密后上传至服务端,敏感信息Data采用对称加密算法进行加密传输,对称加密密钥Key采用非对称加密传输。具体步骤如下所示。
1)服务端生成有效密钥对,并将PublicKey返回给客户端。公私钥在一个会话周期内有效,若重新登录或会话更新,则密钥对也要随之更新;
2)客户端生成一次有效密钥Key,用于对敏感数据Data对称加密,这样能有效防止本地js脚本泄露从而导致秘钥Key值泄露,密钥Key一次有效保证了即使获取本地js脚本,但不能破解其他客户端或其他请求的加密数据,因为每次数据加密的密钥key值是不同的;
3)客户端使用AES对称加密算法以及密钥Key对敏感字段加密,encryptdata=AES.encrypt(Data,Key);
4)客户端使用RSA非对称加密算法以及公钥PublicKey对密钥Key加密,encryptkey=RSA.encrypt(Key,PublicKey);
5)加密后的Data和Key以POST请求方式发送到服务端,Data=encryptdata&Key=encryptkey;
6)服务端接收到客户端发送的表单请求后,根据用户会话读取对应私钥PrivateKey,使用RSA+PrivateKey对encryptkey进行解密,得到Key=RSA.decrypt(encryptkey,PrivateKey);
7)服务端用步骤6得到的Key,使用AES算法对encryptdata进行解密得到原始敏感数据,Data=AES.decrypt(encryptdata,Key);
8)依据项目需求,对敏感数据Data作加密处理,调用统一的加解密算法存入数据库。
2、敏感数据查询
客户端从服务端读取敏感数据,在对数据加密传输的同时,对敏感数据进行脱敏处理。具体执行步骤如下所示。
1)服务端接收到客户端请求后,将请求的敏感数据从数据库取出;
2)服务端对数据库中的数据作解密得到原始数据Data;
3)服务端对敏感信息进行脱敏处理,使用*号替换原敏感信息字符的一部分,将脱敏后的数据传回给客户端;
4)若客户端需要查看完整敏感信息,发送二次请求查看数据原文;
5)服务端使用AES算法对原始数据Data进行对称加密并发送到客户端,对称加密密钥可以采用用户唯一标识USRID;
6)服务端从用户会话读取USRID,encryptdata=AES.encrypt(Data,USRID);
7)客户端接收到服务端的响应后,从前端读取USRID进行解密,Data=AES.decrypt(encryptdata, USRID),获取原始数据回显在客户端。
3、敏感数据显示
对敏感数据进行脱敏处理,脱敏的基本原则为保持原有数据特征,隐藏后的位数和隐藏前保持一致。敏感数据包括但不限于姓名、身份证号码、社会保险号码、信用卡号码、电子邮件地址、电话号码、邮政编码等。
脱敏隐藏方法如,姓名:隐藏姓氏,张三(*三)、张三水(*三水)、长孙无忌(**无忌);身份证号:隐藏后四位;信用卡、银行卡号码:显示前四位和后四位,中间全部隐藏;电子邮件:显示前三位、@及@后的字符,中间全部隐藏;电话号码:隐藏后四位。
另外在敏感信息处理方面,还应注意以下几点:
1)敏感信息不应使用GET方式提交到服务器;
2)口令为最高级敏感信息,在存储/传输/显示时都必须加密;
3)根据业务场景需要选择可靠的加密算法。
4)系统与第三方系统有交互时,应保证本系统页面调用本系统的接口,避免前端页面直接调用第三方服务接口。
猜你喜欢
- 2025-05-24 常见加密方式及Python实现
- 2025-05-24 pdf怎么加密
- 2025-05-24 aes256 加密 解密 (python3) 「二」
- 2025-05-24 深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 2025-05-24 Springboot实现对配置文件中的明文密码加密
- 2025-05-24 JavaScript常规加密技术
- 2025-05-24 信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 2025-05-24 SpringBoot与Jasypt整合,实现数据库字段自动加密解密功能
- 2025-05-24 安全性能爆表!Win10 TH2引入XTS-AES加密算法
- 2025-05-24 请尽快更新:新漏洞可攻破微软Win10/Win11 BitLocker加密防线
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 552℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)