⾝份证、⼿机号加密存储的⼀些思路
这两年国家越来越重要个⼈敏感信息的存储、传输与交换。在获取敏感个⼈信息时,例如,⼿机号、⾝份证,都需要主体的主动授权。
0x01:敏感信息泄露有哪些途径
明⽂存储,⽐如直接把⼿机号、⾝份证存储到数据库。如果数据的⽤户和密码被⼀些不应该的⼈员看到,获取;就很容易造成泄漏
明⽂传输,⽐如没有对敏感信息进⾏RSA或者AES加密,就在⽹络中进⾏传输
集团⼦公司或者与第三⽅系统进⾏系统对接时,交换敏感数据。就是把我⽅系统的⼀些敏感信息,没经授权就发⽣给了第三⽅公司
旧空调多少钱0x02:解决敏感信息泄漏的最佳途径
明⽂存储
对数据敏感信息加密后,再进⾏存储。有这样⼀个场景:有个⽤户表除了其他字段外,还有⼿机号 mobi
le_no 和⾝份证 identity_card ,这两个敏感信息存储字段。如果直接储存mobile_no和identity_card明⽂,就很容易泄漏。
可以对这两个字段进⾏对称加密或者⾮对称加密存储,分别定义两个加密字段 mobile_no_encrypted 和 identity_card_encrypted。但是进⾏加密存储到数据库必然导致以下两个问题:材料成型及控制工程就业
如何进⾏精准查询匹配
如何进⾏模糊查询匹配
如何进⾏精准查询匹配?
曹仁为了解决这个问题,还得多加⼀个字段,对于⼿机号添加 mobile_no_sha 字段,⾝份证添加 identity_card_sha 字段。这两个字段分别存储⼿机号和⾝份证的SHA-1的散列码(也可以使⽤md5算法)。这样的话,如果精准查询就直接⽐对SHA-1散列码就⾏。
select * from t_user where mobile_no_sha = sha-1(mobile_no)
如何进⾏模糊查询匹配?
对应模糊查询就有点⿇烦了
通常数据库⾃带有加解密函数,如MySQL的PASSWORD ,MD5,AES_ENCRYPT等等。对于密码等信息可以采⽤单向加密,验证的时候⽤同样的⽅式加密匹配即可。⽽对于需要⽐对原内容的模糊查询,则需要使⽤双向加密,也即可以解密,在MySQL可以使⽤⾃带的AES 加密。完成存储加密,读取解密后,就可以实现模糊搜索了:
select *
from t_user
where AES_DECRYPT(UNHEX(mobile_no_sha ),'key')
欠条的正确写法like 'xxx%';
使⽤函数还原原始内容然后使⽤like关键字匹配即可实现模糊搜索。
MySQL使⽤AES_ENCRYPT()/AES_DECRYPT()加解密的正确姿势
blog.itpub/29773961/viewspace-2142305/
明⽂传输
对于明⽂传输,⾸先的摒弃http传输协议,采⽤https传输协议。如果还想加强安全级别的话,就⾃⼰在定义⼀种加密⽅式,对敏感信息进⾏额外加密。⽐如采⽤对称加密AES或者⾮对称加密RSA进⾏⾃定义加密。
助理医师技能考试集团⼦公司或者与第三⽅系统进⾏系统对接时,交换敏感数据
这种情况⽐较⽐较⿇烦,分为集团内部⼦公司数据交换与第三⽅公司之间数据交换
集团内部⼦公司数据交换
集团公司之间是利益共同体,⽐如存在这样的场景,A集团公司有⼀个保险公司和⼀个To C的商城系统,那是不是存在这样的可能呢?保险公司需要收集⼤量个⼈的信息,然后⼤数据分析这些个⼈的情况看看哪个⼈的钱⽐较多,然后给他合理的推送保险,刚好商城做得好不错,挺多⼈注册,通过商城就能拿到很多个⼈的⼿机号之类的。
第三⽅公司之间数据交换
对于第三⽅公司系统之间,进⾏数据交换。也有可能存在接⼝调⽤时,传输敏感的信息。记得前两年,顺丰物流和菜鸟物流发⽣过这样的事,就是菜鸟物流要求顺丰物流必须上传所有物流信息,后来顺丰直接断了这两个系统的交互。
梦见棺材是什么意思
对于这两种情况,我认为都需要在明显的地⽅,给出相关的⽤户协议,当主体同意授权时,才能进⾏数据交换。但是这两种情况,⼏乎还没有任何公司按照这种渠道来做的,都是偷偷的就把数据进⾏了交换。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论