首页
社区
课程
招聘
[分享]我觉着这样似乎可以彻底防住拖库
发表于: 2022-7-27 10:03 21260

[分享]我觉着这样似乎可以彻底防住拖库

2022-7-27 10:03
21260

琢磨了一个防拖库的方法,做了个原型系统。因为密码这块一直停留在应用层面,对算法原理没有做过太深入的研究,贸然尝试实现防拖库,担心变成井里面的小青蛙,所以希望有机会与看雪的大虾大神们探讨一下。

 

我的实现思路如下:

  1. 加密
    采用RSA2048私钥无填充加密原始数据的关键字段,生成密文比对库;
  2. 比对
    采用密文库同密钥加密查询条件,获得查询条件密文,然后以密文条件在密文比对库中进行等值查询;
  3. 特殊处理
    密钥对生成时即丢弃公钥;
    私钥写入硬件密码卡,不留存副本;
    前述加密过程由密码卡使用内置密钥完成;
  4. 预期效果
    密文不可逆(没有公钥)
    密文不可破解(不确定公私钥都没有的情况下是否可以对密文暴破)
    密文库脱离密码卡环境无法比对(唯一的私钥在密码卡里拿不走)

关键字段做了不可逆的加密,所以拖库了也没法解密还原;查询依赖特定密码卡对查询条件加密,所以拖库了数据也没法用起来;不考虑把服务器搬回家的情况,这算不算彻底把拖库给防住了?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1771
活跃值: (1445)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
效率你是一点都不要啊
2022-7-27 10:34
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
是的,效率确实是短板,不过可以通过并发提升,密码卡本身是多通道Gbps级处理能力的,可以并发;还可以多卡、多机集群,并发数和响应时间应该是可以满足常规应用要求的,只是硬件投入肯定会有所增加。
2022-7-27 11:16
1
雪    币: 4038
活跃值: (5740)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

你扔了公钥,查询出来的关键字段还怎么使用了,既然不想还原的数据,直接搞个hash算法存吧。rsa的作用就是加解密的,感觉你这样用偏离方向了。私钥不留副本,万一不可抗力因素卡坏了,连加密都用不了,还比对啥,数据不就都废了,还不如hash可靠。

最后于 2022-7-27 20:49 被guduzhe编辑 ,原因:
2022-7-27 20:47
0
雪    币: 185
活跃值: (396)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那你的安全性和效率都寄托在那个专用的加密硬件上,感觉这对于大企业来说风险有点不可接受,不大可能这些人都愿意花成本把自己搞得像是一个CA一样。另外其实我感觉,大企业未必很在意安全...(个人看法,比如带FPGA的某个仪器,它甚至懒得在FPGA上判断一下,甚至用的Sentinel 都可以直接patch掉,上位机还没壳,防篡改就是验证下数字签名...)生意做的下去就行了,不是法律或者舆论要求,怕是没人会主动给自己添麻烦,也许这就是以前普遍明文存密码的原因吧。
2022-7-27 20:52
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
guduzhe 你扔了公钥,查询出来的关键字段还怎么使用了,既然不想还原的数据,直接搞个hash算法存吧。rsa的作用就是加解密的,感觉你这样用偏离方向了。私钥不留副本,万一不可抗力因素卡坏了,连加密都用不了,还比对 ...
我说的关键字段是指身份证、银行卡之类的标识性字段,仅用于关联其他数据不用来显示。确实就是把RSA加密当hash在用,目的有两个,一是实现脱离硬件没法比对的效果;二是防止解密原文,hash虽然不能直接解密,但是对于像身份证号码这类强规律的短数据,暴破应该不难。密码卡损坏可以更换,私钥可以提前写入备用卡,公钥是真丢了,这样设计的目的就是把对数据的保护置换为对硬件的保护,如果硬件都成套的被弄走,那就不是技术防御的范畴了,哈哈哈
2022-7-28 09:37
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
纯质阳炎 那你的安全性和效率都寄托在那个专用的加密硬件上,感觉这对于大企业来说风险有点不可接受,不大可能这些人都愿意花成本把自己搞得像是一个CA一样。另外其实我感觉,大企业未必很在意安全...(个人看法,比如带 ...
兄弟你这是说到这个产品市场价值的关键上了!这个系统的应用场景确实比较窄,最初尝试搞这个就是源于一个挺特殊的数据安全需求,但是还是有不少企业和单位的某些数据一旦被拖走后果真的是很严重的。
2022-7-28 09:49
0
雪    币: 2985
活跃值: (6741)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
安全和效率是矛盾的存在, 想安全就低效率, 想高效率那安全就无法保障.
2022-7-28 10:45
0
雪    币: 4038
活跃值: (5740)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
既然真想用RSA,为啥不扔掉私钥,只用公钥呢,公钥运算指数小效率高不少吧,没有私钥照样也无法解密吧。安全性也高一些,私钥万一泄露,公钥就知道了,就可以解密了;公钥泄露了推导私钥公认的难题。
2022-7-30 10:52
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
guduzhe 既然真想用RSA,为啥不扔掉私钥,只用公钥呢,公钥运算指数小效率高不少吧,没有私钥照样也无法解密吧。安全性也高一些,私钥万一泄露,公钥就知道了,就可以解密了;公钥泄露了推导私钥公认的难题。
丢公钥确实是更完美的方案,暂时选择丢公钥是原型实现方便一点,不过这个也是我一直没弄明白的一点,看很多文章谈的RSA爆破原理,都是说怎么从公钥推导私钥,却没有看到过从私钥推导公钥的,也没看到过直接爆破密文本身的。私钥推导公钥会容易很多吗?直接爆破密文本身是不是根本行不通?
2022-8-5 15:00
0
雪    币: 4038
活跃值: (5740)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高阶步行者 丢公钥确实是更完美的方案,暂时选择丢公钥是原型实现方便一点,不过这个也是我一直没弄明白的一点,看很多文章谈的RSA爆破原理,都是说怎么从公钥推导私钥,却没有看到过从私钥推导公钥的,也没看到过直接爆破密 ...
你生成一对公私钥打印一下就知道了。
私钥是组成是指数和模
公钥也是指数和模
两者的模是一样的,而且公钥现在的指数都是固定的,都65537,为什么你可以搜一下。所以说私钥泄露了,公钥的指数和模都知道了。
如果公钥的指数不是固定的,推导就需要一些难度了。
2022-8-5 17:57
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
guduzhe 你生成一对公私钥打印一下就知道了。 私钥是组成是指数和模 公钥也是指数和模 两者的模是一样的,而且公钥现在的指数都是固定的,都65537,为什么你可以搜一下。所以说私钥泄露了,公钥的指数和模都知 ...
了解了,感谢!之前想着原型先用私钥用一用,省点麻烦,没有去细究,现在看来这个麻烦不能省。
2022-8-8 09:07
0
游客
登录 | 注册 方可回帖
返回
//