网井过来做安全评估,说要对手机号做加密(唯一登录字段)

2019-06-28 10:24:43 +08:00
 uoddsa

网井过来做安全评估,说要对手机号做加密,而手机号是我们用作登录的唯一字段,该用什么加密方式~

9129 次点击
所在节点    程序员
71 条回复
loveour
2019-06-28 14:07:25 +08:00
@yzkcy #32 +1.非得说密钥会泄露没用的真的是杠精。现实就是被脱库的很多,代码泄露的还是比较少。
@cdwyd #33 不理解+1.如果那样不算加密,那解密又是什么了?
loveour
2019-06-28 14:13:20 +08:00
看了这么多评论我简直惊呆,对加密解密的认识,对数据保护的认识完全不够。举个简单的例子,如果程序加密了,那么能接触到数据库接触不到程序的人至少就不可能直接看到用户隐私数据。又打个比方,比如苹果,谷歌,如果加密存储没有用,那么各位上传到云端的照片数据是不是也都会被苹果谷歌的员工看到?厂商宣称的隐私保护还有什么用呢?
limuyan44
2019-06-28 14:14:40 +08:00
明文传输?随便加密一下就好了。都是应付检查
murmur
2019-06-28 14:29:02 +08:00
加密的手段很多啊
你说密钥存在磁盘上不安全我存在 u 盘里插入进内存启动后拔了可以吧 你说密钥不能放 u 盘我还有专门的电子 key
想让数据跟密钥分离手段太多
要不咱在讨论下内存 dump 的问题?
gaius
2019-06-28 15:01:05 +08:00
看怎么要求的,数据库字段也要加密的话用个对称加密就行了。不要求直接加个脱敏字段,前 3 后 4。
手机又不是卡,应该没那么严格吧。
wangde400
2019-06-28 15:14:49 +08:00
@hhhsuan 等保 2.0 和网络安全法,基本把所有非涉密系统和个人家庭 wifi 以外的网络服务全算进去了,总有一条可以做依据=_=
wangde400
2019-06-28 15:19:11 +08:00
做安全的....现在接触的网警都是各种缺人手,黑产什么的事情忙不过来。。。你这是哪儿的网警,这么有闲情逸致=_=
no1xsyzy
2019-06-28 15:26:21 +08:00
1、过一个对称加密;
2、权限控制有且仅有加解密算法能够读取密钥;
3、程序逻辑上控制加解密算法的调用情况,每个调用加解密函数的地方需要写入文档并 Code Review 确认——如果条件允许技术过关,采用注记( Java )、修饰符添加属性( Python )等方式标记被允许的调用方,并且加解密函数采用反射、自省的方式来检测调用方是否被如此标记;
4、对这些位置进行 Code Review,以确认确实有需求来进行加解密。

其实有 Dataflow diagram 也不需要 3,只需要看一眼图就行。

1 保证要脱库必须访问该密钥,将 “唯一性” 和 “隐私性” 分离;
2 保证不能直接接触,只能间接接触,并且接触方是无菌的,这就像是橡胶手套;
3 保证间接接触也是有权限的;
4 保证有权限的是有需求的。
vinsoncou
2019-06-28 15:42:00 +08:00
手机号脱敏算很基本需求了吧,从去年开上强推等保,什么手机号,邮箱,身份证个人信息都需要加密处理
avenger
2019-06-28 16:15:21 +08:00
加密存储了 like 搜索怎么办?
qlhai
2019-06-28 16:20:56 +08:00
来个实际的,用 bcrypt,别乱用 base64,md5 之类的东西
luanluan
2019-06-28 16:29:44 +08:00
@abcbuzhiming 不会 我们的密钥进行加密的 而且生产密钥同时需要 2 个成份合成, 加密机设备,硬件,不会存在脱裤等
annielong
2019-06-28 16:54:47 +08:00
加密唯一的影响就是查询了,想不出来加密后怎么模糊查询
Youngxj
2019-06-28 16:58:21 +08:00
自己写一份对称加解密,然后告别模糊搜索就行了
CantSee
2019-06-28 17:38:13 +08:00
是不是说数据库不能存明文
Mrxx
2019-06-28 17:42:09 +08:00
手机找回密码怎么办?
yangbotool
2019-06-28 18:26:42 +08:00
说一个我用的方法。
用 AES 加密,但是各部分用到的不同 AES 的密钥,所有密钥本身是 AES 加密保存的,程序启动后,需要输入主密码。即使代码被 shell 拿到了,没主密码也不知道真正密钥是什么。而解密后的密钥是在程序运行内存中,在不重启程序的情况下,想获取也比较困难。
要想获取到真正的文本,需要三样东西:数据库,密钥文件,主密码。
dvaknheo
2019-06-28 18:34:07 +08:00
@yangbotool 问题是想查某个手机的数据不好查了吧,还要折腾一堆东西。
yangbotool
2019-06-28 18:43:37 +08:00
@dvaknheo 没有不好查,和上面说加密都是一样的。可以 HASH 出一个字段做索引。获取真正手机号时用 AES 解一下。只是多一步密钥加密,密钥不在代码里,多一道步骤,安全性可大大提高。
xuanbg
2019-06-28 19:13:25 +08:00
两个字段,一个加星号的号码,用来显示;一个 MD5,可加盐,用来登录

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

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

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

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

© 2021 V2EX