加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 域百科网 (https://www.yubaike.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

IM系统服务端消息加解密方案

发布时间:2023-02-18 14:11:50 所属栏目:系统 来源:
导读:  IM系统中信息可能涉及隐私或秘密,安全显得尤为重要,怎么确保信息的安全呢?

  端到端加密是最安全的,只有聊天双方知道具体是什么消息,传输链路和消息服务器端都不知道消息内容。但是端到端加密在有些场
  IM系统中信息可能涉及隐私或秘密,安全显得尤为重要,怎么确保信息的安全呢?
 
  端到端加密是最安全的,只有聊天双方知道具体是什么消息,传输链路和消息服务器端都不知道消息内容。但是端到端加密在有些场景不适用,比如大规模群聊就不太好办。另外基于某些合规性要求,端到端加密也不合适。
 
  如果不采用端到端加密,消息的加密就分为网咯传输加密和服务端存储加密两部分。
 
  传输过程,tcp长连接可以采用ssl协议(当然也可以自己实现加密),websocket采用wss协议。
 
  难点变成了消息在服务端测的安全问题。消息在服务器端的路由过程怎么加密, 存储怎么加密?
 
  IM系统后台逻辑很复杂,涉及众多模块,中间还有消息总线、缓存、数据库等中间件。每个环节消息都需要以密文形式呈现,否则很容易泄漏。
 
  第一反应是简单写个加密算法如AES对数据进行加密解密就搞定了。但是这样存在一个非常大的隐患。密码怎么保存?
 
  日防夜防,家贼难防。写代码的程序员,部署系统的运维人员都可能拿到密码,如果密码写在配置文件里,会与更多人得到密码,比如能够访问git仓库的人……总之,这种方式非常不安全。
 
  因此,一套完善的加密系统显得尤为重要。
 
  加解密系统结构如下图,主要包括4部分。1、加解密服务,2、加解密管理服务,3、加密服务器,4、秘钥存储库。
 
  谷歌安装器服务框架google_甜妹子的!胸器服务_服务器管理系统
 
  1、加解密服务。
 
  以HTTP,TCP等方式对业务系统提供加密、解密、转加密等服务,提供加密服务器的负载均衡能力。同时提供业务系统可以直接使用的SDK。加解密服务以IP白名单+App_Key/App_Secret组合的方式对外提供访问授权,确保只有授权的系统才能访问
 
  2、加解密管理服务。
 
  核心是提供密码生成、管理等服务(密码是以加密后形式展示,只有加密服务器才能解密)。以及一些管理配置等功能
 
  3、加密服务器
 
  提供加密、解密的能力。加密服务器内置多种加密算法,通过超级秘钥(root key),实现对加解密秘钥(business key)的加密解密;通过加解密秘钥(business key)实现业务数据的加解密。超级秘钥(root key)被拆成3部分保存在秘钥卡或U盘中。
 
  4、秘钥存储库
 
  以密文形式存储加密机生成的加解密秘钥(business key),秘钥只有加解密服务器能解密。
 
  整个加密方案涉及几个主要流程
 
  1、加解密服务器初始化(或配置参数)
 
  (1)启动加解密服务器,插入3张秘钥卡(U盘)
 
  (2)加解密服务器已内置的算法(加密芯片)对root key进行加密,缓存到内存服务器管理系统,同时保存的机器存储介质。因此,内存及存储上的数据处于密文状态。
 
  (3)根据root key初始化business key加解密服务
 
  (4)初始化业务数据加解密服务
 
  2、生成加解密秘钥(business key)
 
  (1)通过加解密管理服务,为即将生成的秘钥起名(名字及秘钥索引号),向加解密服务器发出生成秘钥的命令。
 
  (2)加解密服务器随机生成business key,通过root key进行加密。把加密后的business key返回,关联秘钥索引号,并保存到秘钥存储库。
 
  3、加密及解密业务数据
 
  (1)业务系统调用加解密服务,传入 秘钥索引号、算法以及业务数据
 
  (2)加解密服务调用加密服务器,传入加密后的business key、算法以及业务数据
 
  (3)加密服务器完成加密,并返回结果
 
  加密系统的核心要点是:业务数据和加密服务隔离,算法和秘钥隔离。
 

(编辑:百客网 - 域百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!