前言
应用场景:商户结算账户信息加密保存,脱敏显示
I、脱敏规范
数据类型 | 数据元素 | 敏感信息的脱敏规则 |
---|---|---|
持卡数据 | 信用卡卡号(PAN) | 信用卡号可显示前6后4,中间部分需要脱敏,可以“*”或其他字符代替 |
有效期 | 因PCI要求,有效期,验证码不可存储。 | |
验证码:CAV2/CVV2/CVC2/CID | ||
账户认证 | 账户名(UID) | 根据业务处理原则脱敏相应信息 |
账户密码(Passwd) | 对于已加密或未加密的账户密码需要使用PBKDF2加密存储; | |
安全问题 | 对于已加密或未加密的问题和答案使用PBKDF2加密存储 |
例:
1、护照号码G12345678,共9位字符,则显示为G12****78
2、身份证号码,共18位,只保留前3位和后4位,中间11位打*处理
3、电话号码:021-34064880-15518 区号和分机号不做隐藏,34064880为8位字符,则显示为34***880
4、手机号码:+8613812345678 不含区号为11位字符,则显示:+86138****678
5、地址:上海市长宁区金钟路100号B栋602室 不含省市区为13位字符,则显示:上海市长宁区金钟路1*****602室
6、 邮箱用户名或证件号等整个需要做处理的字符数长度过短,小于等于3位,则显示第一位,其余部分需要脱密可用星号替代; 绑定邮箱 预留手机 预留邮箱 证件信息 联系手机 常用地址 账户订单 订单 订单号根据业务场景选择字符的2/3进行脱敏。
订单中的个人类信息,证件、联系手机等需进行部分参照个人信息的标准进行脱敏; 日志相关 登陆日志 日志中的持卡数据、账户认证类信息、个人信息及订单信息等敏感信息应参照相应的脱敏标准进行脱敏;
对于特殊业务,如账户风控业务,处理敏感业务需求的部门,需确定敏感信息类型,对敏感信息进行脱敏; 操作日志 cookie 应用程序日志 用户行为日志
II、 相关术语: PBKDF2算法
Password-Based Key Derivation Function是一个用来导出密钥的函数,常用于生成加密的密码
通过多次hash来对密码进行加密。
原理是通过password和salt进行hash,然后将结果作为salt在与password进行hash,多次重复此过程,生成最终的密文
。
此过程可能达到上千次,逆向破解的难度太大,破解一个密码的时间可能需要几百年,所以PBKDF2算法是安全的.
使用PBKDF2算法时,HASH算法一般选用sha1或者sha256,随机盐的长度一般不能少于8字节,HASH次数至少也要1000次,这样安全性才足够高。一次密码验证过程进行1000次HASH运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提升了N个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标准与技术研究院推荐使用的算法。
DK = PBKDF2(PRF, Password, Salt, c, dkLen)
//PRF是一个伪随机函数,例如HASH_HMAC函数,它会输出长度为hLen的结果。
//Password是用来生成密钥的原文密码。
//Salt是一个加密用的盐值。
//c是进行重复计算的次数。
//dkLen是期望得到的密钥的长度。
//DK是最后产生的密钥。
see also
iOS安全规范指南之参数签名:参数按照ASCII码从小到大排序、拼接、加密(采用递归的方式进行实现)【案例:条码支付综合前置平台申请退款】 丨蓄力计划
从CSDN下载demo地址:https://download.csdn.net/download/u011018979/15483107
规则:
1、demo 数组用[]表示,对象(字典)用{} 表示进行排序拼接。
2、数组排序可选,数组内部,只对字符串元素进行排序,并不与字典key参与排序。 字典和数组独立排序
原文: https://blog.csdn.net/z929118967/article/details/115669856
应用场景:防止请求参数被恶意修改;比如在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序。