OpenSource | Redis 开放传输中加密功能
Amazon Web Services 今天在 redisconf 上宣布向 Redis 开放传输中加密功能的源代码,Redis 是领先的内存中键值数据存储。适用于 Redis 的 Amazon ElastiCache 于去年增加了传输中加密功能,帮助我们的客户加密 Redis 数据集并满足合规性要求。
我们听取客户意见并设计了解决方案,为他们提供重要的使用案例。现在,我们要将这一功能提供给 Redis 社区,以便所有人都可以保护实时应用程序,并对客户端与 Redis 服务器之间以及各 Redis 服务器之间(主节点和只读副本节点)的所有通信进行加密。
Redis 是由一个非常活跃的开源社区开发的,它是一款快速的开源内存中键值数据存储,可用作数据库、缓存、消息代理和队列。它可以实现亚毫秒级的响应时间,每秒处理数百万个请求,为游戏、广告技术、金融服务、医疗保健和 IoT 等实时应用提供支持。
Redis 是缓存、会话管理、实时分析、地理空间、聊天/消息收发、媒体流和游戏排行榜的热门选择,它在键值存储中排名第一,并且最近在 2018 Stack Overflow 调查报告中被开发人员评为最受欢迎的数据库。随着开发人员在构建实时应用程序时对 Redis 的依赖性日益增加,迫切需要我们遵守合规性要求并保护个人身份信息 (PII) 等敏感数据的传输。例如,医疗保健应用程序开发人员需要遵从 HIPAA 且需要使用传输中加密,以将 Redis 用作缓存来传输电子健康记录,实现低延迟访问。同样,开发人员在使用 Redis 作为内存中数据存储构建面向消费者的移动金融应用程序时,需要使用传输中加密功能确保用户和信用卡数据传输的安全。
但是,开源 Redis 并不支持加密。如果开发人员想要利用 Redis 构建安全的实时应用程序,需要借助自托管的加密解决方案(例如 SSL 代理或商用 Redis 产品)。在 SSL 代理方法中,代理位于 Redis 服务器之前,对客户端与 Redis 服务器之间的流量进行加密和解密。对于具有多个主节点 (master) 的 Redis 集群,需要额外的代理来加密各主节点间的通信。
使用 Redis 集群设置“stunnel”之类的代理时,必须针对每个节点为集群总线通信和复制链路间的通信正确设置多个端口转发。这使得设置、持续维护和扩展变得困难,而且容易出错。与基于代理的解决方案相比,我们对开源 Redis 的贡献在于在 Redis 内部实现了本机传输中加密支持。我们的加密连接设置方法的一个关键优势是握手进程是非阻塞的,并且在 Redis 中扩展了默认连接协商进程。启用传输中加密功能后,主节点和副本节点(基于磁盘或无盘)之间的数据同步以及所有集群总线通信均将被加密。我们的传输中加密使用 Amazon s2n 库进行加密操作。s2n 是 TLS/SSL 协议的开源 (Apache License 2.0) 实现,其设计简单、小巧、快速、安全。s2n 具有一个小型、可审计的代码库,可进行常规静态分析、模糊测试和渗透测试(包括正负向单元测试以及端到端测试案例),可尽快加密或擦除明文数据,并且避免执行很少使用的选项和扩展程序。您无需修改应用程序即可在 Redis 中使用传输中加密功能。您只需要一个支持传输中加密的客户端,然后确保将相关标记设置为“true”。
目前支持传输中加密的客户端有很多,包括 Jedis for Java 和 redis-py for Python。除了对客户端和 Redis 服务器之间以及各 Redis 服务器(主节点和只读副本节点)之间的所有通信进行加密外,此新功能还简化了证书续订。在实施过程中,续订证书无需停机,也无需重新启动集群。您可以在 GitHub 上查找代码和自述文件。您可以通过以下方式加入使用行列:检查和测试代码、在 pull request 上发表评论、提交问题,或者提交 pull request 以向 GitHub 存储库增加新功能。我们期待收到您的反馈!
同时,感谢 Manoj Kumar 对此项工作的辛苦付出。
相关文章
- MySQL的system命令显示的是服务端的信息?
- 王喆:"深度"学习计算广告
- SQL速算N日留存
- mysql修改支持utf8mb4字符集编码格式
- 理解mvvm和mvc
- vue3.0进化史
- 2023-01-11:体育馆的人流量。编写一个 SQL 查询以找出每行的人数大于或等于 100 且 id 连续的三行或更多行记录。返回按 visit_date
- 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据|附代码数据
- 数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|附代码数据
- ClickHouse为什么查询速度快?
- 信息化规划工具
- 面对集中式缓存实现上的挑战,Redis交出的是何种答卷?聊聊Redis在分布式方面的能力设计
- 一种改进的深度极限学习机预测锂离子电池的剩余使用寿命
- 看看这些《经济学人》图表设计师也会犯的的设计错误,超有用~~
- 懂业务是数据分析师最重要的技能 ?
- 2022我的面试准备
- set 方法是坏味道?
- 做这么多年程序员了,才把ELK和springboot的日志解决方案弄明白
- ThinkPHP 6 数据库断线重连
- 数据结构---单向链表