默认
发表评论 12
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教IM云端消息应该加密存储还是明文存储呢?
阅读(42589) | 评论(12 收藏 淘帖1
在IM产品中的聊天数据入库时是否要加密存储,还是明文存储就可以,加密存储的话都有哪些方式

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 IM开发
上一篇:求教移动端如何保证本地时间戳不受设备影响?下一篇:为什么ping不同的跟域名服务器域名,是同一个ip啊?

本帖已收录至以下技术专辑

推荐方案
评论 12
用户个人信息做好保密存储,聊天消息的话,一般情况下没什么必要加密处理,而且加密的话,性能、数据易用性都会比较麻烦。
im里的聊天,就好比人说话,人家说的话被你听到了,你在不知道对方来头的情况下,也就听听而已,意义不大的,你体会一下看看
引用:JackJiang 发表于 2021-10-14 10:55
用户个人信息做好保密存储,聊天消息的话,一般情况下没什么必要加密处理,而且加密的话,性能、数据易用性 ...

谢谢Jack的回复
引用:深海 发表于 2021-10-14 11:01
谢谢Jack的回复

引用:JackJiang 发表于 2021-10-14 10:55
用户个人信息做好保密存储,聊天消息的话,一般情况下没什么必要加密处理,而且加密的话,性能、数据易用性 ...

个人有不同意见哈~,如果你是一个IM产品的云平台提供方,线上离线消息库可以那种收走就删除的消息可以不加,面向的是多个用户客户,那么永久的离线聊天个人认为需要加密存储比较好,至少把消息内容加密,防止被脱库,,带来安全性的同时,会对使用上带来一些麻烦,比如按关键字检索消息等,如果你是一个IM产品的使用方,可加可不加,比如你用融云环信等,你可以发给这些云平台的消息都是加密的,这样消息就对云平台不可见,然后接收方收到再解密,不过这样就不能使用一些云厂商的附加功能,比如敏感词消息过滤等,综合还是看你对消息的安全行要求,认为 安全性大于便利性,就加密,安全行小于便利性就不加密,加密方式可以选择AES就行,需要的是好好设计一下AES的加密key,保证加密key不那么容易被破解
引用:zhxh007 发表于 2021-10-14 19:02
个人有不同意见哈~,如果你是一个IM产品的云平台提供方,线上离线消息库可以那种收走就删除的消息可以不 ...

对的,主要看安全级别,通常情况下的im又不是涉及单位在用,聊天就是没用的废话,加密后各种使用都费劲。但公有云或者防止窥探用户隐私的情况下,就加个密吧
B端IM都会加密,甚至会有端端加密,需要解决企业信息安全问题。防止泄密是安全红线
引用:wangjil_BI85P 发表于 2021-12-01 09:03
B端IM都会加密,甚至会有端端加密,需要解决企业信息安全问题。防止泄密是安全红线

端到端加密有好有坏吧,就像前天论坛一个朋友回复一样,他的app里做端到端加密,最后就是各种色情违法信息滥用,然而作为运营方无法知情。。。
引用:JackJiang 发表于 2021-12-01 11:07
端到端加密有好有坏吧,就像前天论坛一个朋友回复一样,他的app里做端到端加密,最后就是各种色情违法信 ...

端端加密,国内业内有公司做解决方案。比如接入钉钉,然后在端端发送消息之前加sdk,这个sdk负责去解决一揽子加密,审查等功能;对于钉钉来说,就是拿到密文,啥也不知道;
引用:wangjil_BI85P 发表于 2021-12-01 12:36
端端加密,国内业内有公司做解决方案。比如接入钉钉,然后在端端发送消息之前加sdk,这个sdk负责去解决一 ...

嗯嗯 正经需求还是有的
我目前设计的是,客户端生成非对称加密,把公钥发给服务端,服务器使用公钥加密一个加密key,同时使用加密key加密一个配置文件,客户端收到后,使用私钥解密获得加密key,通过加密key解密获取配置文件。
这个配置文件包含服务端的聊天记录配置记录,比如
加密1:2021年8月16日15点34分00秒0毫秒后,使用ase加密,加密key是*******
加密2:2022年8月16日15点34分00秒0毫秒后,使用des加密,加密key是*******
然后,如果当前时间,在加密1范围,使用加密1,如果对端发来消息,也可以根据这个配置文件进行解密。

但是问题是:
1、这个配置文件会缓存在内存
2、这个配置文件随着服务端管理员不断地设置,可能会越来越长

总觉得有些不合理,大佬们能不能给指点下,有啥优化的方法
而且我是做sdk的,我没有本地文件系统的操作权限,也没有操作数据库的权限,比如聊天消息,基本是
我回调给上层,上层接收到消息存入数据库。
所以配置文件也不方便存入数据库,也不方便存入本地文件系统。即使存到文件系统,这个文件还的加密。同事
为了性能,依然需要加载到内存。
还有个选择是,比如只缓存最近一个月的配置记录,但这样有一个问题,
因为同步消息基本是存7~30天,所以不会影响,
但是历史服务器的历史消息,需要存1~3年或者永久,那如果遇到这种消息怎么办?

我考虑是当遇到这种消息,需要同步来服务器查询一下,查询到这个时间的加密配置方法。
但是有引入新问题,
当消息接收到后,需要同步等待这个拉去配置文件的请求,接收到后才能解密,回调消息给上层。
如果中间出现问题,又会有异常问题
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部