怎么实现敏感数据加密存储并可模糊检索

2022-08-12 12:53:18 +08:00
 faust24601

有做过等保定级的朋友吗,要求敏感信息要加密存储,但是业务中需要模糊检索,实在没有好的方案

4993 次点击
所在节点    程序员
28 条回复
masterclock
2022-08-12 12:58:51 +08:00
同态加密
mywaiting
2022-08-12 13:01:55 +08:00
布隆过滤?把布隆出来的数据存起来,单独用于检索~ 不懂等保,盲猜的方法~
kwokky
2022-08-12 13:12:52 +08:00
同问
codeklaus
2022-08-12 13:16:58 +08:00
目前没什么办法,同态加密很大程度上就是为了解决这个问题。

等保的话不会要求在业务层全加密,不然业务都没法做了。 看看数据库自带的 透明加解密 应该就能满足等保的要求,数据落盘自动加密,读到内存自动解密,对业务完全透明,保证落在磁盘的数据都是加密的。
codeklaus
2022-08-12 13:19:28 +08:00
Huelse
2022-08-12 13:26:07 +08:00
同态加密效率很低成本很高,上联邦学习成本更高
xupefei
2022-08-12 16:02:46 +08:00
这技术叫 oblivious database ,目前还在研究阶段。目前支持的查询方式还很有限,模糊搜索还做不到。
IvanLi127
2022-08-12 16:10:16 +08:00
如果在另一个地方明文存储这列字段作为索引用于模糊查询,匹配到完整内容再加密后去原数据库检索,这样能过等保嘛?这样数据和数据所有者在磁盘上应该是没关联的?
a353440815
2022-08-12 17:14:51 +08:00
有朋友做这个的,楼主给个联系方式?
lysS
2022-08-12 17:17:08 +08:00
同态加密加密现在还处于 paper 阶段,而且限制挺大的
curran12
2022-08-12 17:27:46 +08:00
@codeklaus 我们这里做的 3 级等保,要求敏感数据(比如:身份证 /手机号字段)本身是被加密的,透明加密说过不了
V2Axiu
2022-08-12 17:29:41 +08:00
加密的数据如果是可以模糊查询的就不存在安全了- -
jhdxr
2022-08-12 17:31:33 +08:00
HE 的确可以,但 HE (假定讨论的是 FHE )因为理论上想要支持的是所有运算,效率也的确低。

LZ 说的这个其实是 SSE ( Searchable symmetric encryption )和 ASE ( Asymmetric Searchable Encryption )在解决的问题。我们之前做过 SSE 的 POC ,还是可以落地的。

上面还有人提到 FL ( Federated Learning ),这个就不是一回事了。这儿做的是 IR 而不是 ML 。
jhdxr
2022-08-12 17:39:07 +08:00
liuidetmks
2022-08-12 17:45:12 +08:00
简单搞的话,可以采用流加密代替分组加密 例如 salsa20 之类的
明文 ABCDEF
变成 123456
想搜 like %CDE% 就从秘文中搜 %345%

当然,密文可能要 base64 一下,base64 之后的搜索,记得 v 站有帖子
liuidetmks
2022-08-12 17:58:24 +08:00
@liuidetmks 好吧,有问题,不同位置的 cde 映射不一样
hxndg
2022-08-12 18:26:43 +08:00
Nmmmm ,敏感数据模糊检索什么?属性,能不能针对这种做类似加 label 或者属性的检索呢?
oneisall8955
2022-08-12 19:00:15 +08:00
看了楼上回复,把需求砍掉,只允许精准匹配,🐶
lookStupiToForce
2022-08-12 19:11:54 +08:00
砍掉需求+1

另外是不算办法的办法:

模糊匹配需求分段,行业通行惯例至少能让手机和身份证保留前后几位,那么就只让“模糊搜索”搜索保留的前后几位,中间*掉的部分如果也要搜索,就只能中间整块丢 hash 后再搜索,也就是说把这几块搜索全部变成精确匹配

进一步,你们可以按照上面的思想实现你们自己的加解密算法,反正只要能过等保的人就行,他们只不让存储明文,但没有说不让存储明文分段 hash 后的词组,搜索的时候用这个词组作倒排索引搜
sleepm
2022-08-12 19:21:55 +08:00
和 #19 一样
京东云鼎的做法是,手机号中间 4 位换成*,然后加个密文字段,拿着密文和订单号去获取真实手机号
所以模糊搜索也就只能后 4 位,前 3 位

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX