海量业务数据加解密方案的落地与实践
一、背景简介根据数据安全规范与标准及企业合法合规运营,业务系统需要对海量的业务数据进行加密,保护数据的安全。
1.1 业务数据的安全性要求
敏感业务数据需要加密存储
数据查询需要进行解密
加密数据的密钥支持定期轮换
二、方案预研对于上述业务数据的加密要求,一般采用加密性能较高的对称加密算法,如:AES、国密SM4等。系统的数据加解密及密钥的管理及定期轮换,行业内一般是采用密钥管理服务(Key Management Service,简称KMS)来解决,下面我们就预研一下KMS的使用。
2.1 密钥管理服务KMS密钥管理,即密钥管理服务(Key Management Service,KMS),是一种安全、可靠、简单易用的密钥托管服务,帮助您轻松创建和管理密钥,保护密钥的安全。
KMS通过使用硬件安全模块HSM(Hardware Security Module)保护密钥的安全,所有的用户密钥都由HSM中的根密钥保护,避免密钥泄露。
KMS对密钥的所有操作都会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足审计和合规性要求。
2.2 KMS服务选型密钥管理服务使用硬件安全模块HSM(Ha ...
单域名多网站Nginx配置
一、背景简介在搭建个人博客或站点时,为方便用户记住访问站点,我们大多站点管理者会使用域名进行网站的访问。
二、域名Nginx配置2.1 global.confserver {
listen 443 ssl;
server_name mpoom.cn;
#ssl on;
ssl_certificate cert/mpoom.cn.pem;
ssl_certificate_key cert/mpoom.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
client_max_body_size 100M;
location / {
...
目标与计划管理
管理者的必修课——目标与计划管理。
一、工作目标是用来干什么的?1.证明自己的努力是有结果的2.给自己的奔跑找一个加油站3.人们总是在不断的认可中前进4.用节点的目标评估自己走过的路5.用来评定工作绩效标准
1.1给自己一个努力的理由1.强迫自己有计划有方向的努力2.用以激励和鼓舞自己和团队
统一一群人的节奏
二、为什么目标年年长?
三、目标和任务的区别
四、怎样制定工作目标
五、怎样表述工作目标
生气是用别人的错误来惩罚自己。
二、如何分解任务
2.1 目标和任务之间的关系1.一个目标需要分解成多个任务2.一个大任务需要分解成N个小任务3.每个任务必须有一个负责人4.如果任务有交叉,主线负责人为主
2.2 任务的人接逻辑逐级向下分解
2.3 部门、个人目标如何获得公司愿景-》公司目标-》部门目标-》个人目标
2.4 分解原则1.上一级负责本级的任务分解2.负责辅导和审核下一集的任务分解
2.5 分解的层次1.业务目标逐层分解2.其它三个维度的目标在本层内具体(以BSC为例)
2.6 不同管理层级的分解动作略有不同1.管理者也分为带带多编制队伍和多岗位队伍的差异2.生产销售的基层管理者 ...
10万TPS级高并发系统——10万量级文本关键字匹配过滤
一、背景简介消息发送管控平台中有个很重要的能力就是文本关键字检测,比如检测一段话中是否含有法轮功等敏感字段,这就涉及到关键字匹配算法。在该项目中每条消息都要经过关键词过滤,通过后才能下发。关键字匹配有两种形式,分为单一关键字和逻辑关键字。
1.1 单一关键字单一关键字指单个单词,如:法轮功,炸金花,一条龙服务等涉恐、涉赌、涉黄等关键字,单个的关键字在系统数据库中的数量在9万+,消息下发时需要检测文本中是否包含数据库中单个关键字。
1.2 逻辑关键字逻辑关键字由多个单一关键字组合&&、||、!逻辑运算符,即匹配到的关键字满足逻辑关键字中的逻辑运算逻辑才进行管控。
例如:逻辑关键字点击&&登录&&!验证码, 表示内容包含点击、登录关键字并且不包含验证码关键字,如果文本中包含的内容符合该逻辑,则进行拦截管控。
二、性能要求消息发送管控平台关键字整体数据规模为10万量级,其中单一关键字数量为9万,逻辑关键字数量为1万。消息管控平台的安全审核接口整体的平均响应时间为50ms。
三、方案预研我们先分析梳理常用的关键词匹配算法,再根据上述业务需求及 ...
常用的关键字匹配算法
一、背景简介二、常用算法2.1. 暴力匹配算法(Brute Force)从文本的每一个可能的起始位置开始,逐个字符地与模式串进行比较。
优点:
简单易懂,容易实现。
缺点:
效率低,时间复杂度为O(m * n),其中m为模式串长度,n为文本长度。
不适合处理大规模数据和长模式串。
适用场景:
小规模数据或者模式串较短的简单匹配场景。
性能表现:
在规模较小的情况下能够工作,但随着数据规模增大,性能迅速下降。
2.2. KMP算法(Knuth-Morris-Pratt算法) 利用前缀函数(partial match table)避免对已匹配部分的重复比较,实现跳跃式的匹配。
优点:
时间复杂度为O(m + n),其中m为模式串长度,n为文本长度。
适用于处理大规模数据和长模式串,性能稳定。
缺点:
算法实现稍复杂,需要构建和理解前缀函数。
在某些特定情况下,性能可能不如Boyer-Moore算法。
适用场景:
需要处理长模式串或者大量数据的字符串匹配任务。
性能表现:
对于大规模数据和长模式串有较好的性能表现,常用于实际应用中。
2.3. Boye ...
10万TPS级高并发系统——30亿级发送量频次管控(一)
一、背景简介在客户的业务场景中,需要在全局开启终端用户消息发送的频次管控,避免消息重复发送以及段时间内下发大量消息对终端用户进行信息轰炸,从而引起终端用户投诉。目前业务平台每日最高的消息发送量为30亿,去重后的消息接收人量在千万级到亿级,消息发送管控平台需要对每个消息接收人的消息发送时间进行缓存,并根据管控平台配置频次管控策略,检查最新下发的消息是否超过设置的频次,超过则进行拦截。
1.1 频次管控配置
限制项
限制频率
说明
接收频次管控
15次/1分钟
任意1分钟内,对同一个接收人发送消息最多15次,超出次数会被限制。
接收频次管控
50次/24小时
任意24小时内,对同一个接收人发送消息最多50次,超出次数会被限制。
内容频次管控
2次/59秒
任意59秒内,对同一个接收人发送同一内容(内容完全相同)最多2次,超出次数会被限制。
内容频次管控
5次/59分钟
任意59分钟内,对同一个接收人发送同一消息内容(内容完全相同)最多5次,超出次数会被限制。
二、需求分析基于上述业务场景,我们需要对每个消息接收者做消息接收的频次限制,在每日30亿级的发送量的场景 ...
四种经典的限流算法
在业务开发中经常遇到限流场景,本文主要介绍四种经典的限流算法:固定窗口计数器、滑动窗口计数器、漏桶算法、令牌桶算法,在做限流的场景时可以借鉴这几种经典的限流算法,掌握其使用场景级优缺点。
一、固定窗口计数器(Fixed Window)固定窗口计数器(Fixed Window)算法的实现思路非常简单,维护一个固定单位时间内的计数器,如果检测到单位时间已经过去就重置计数器为零。计数限首先维护一个计数器,将单位时间段当做一个窗口,计数器记录这个窗口接收请求的次数。
当次数少于限流阀值,就允许访问,并且计数器+1
当次数大于限流阀值,就拒绝访问
当前的时间窗口过去之后,计数器清零
二、 固定窗口算法的优缺点
优点:固定窗口算法非常简单,易于实现和理解,性能高。
缺点:存在明显的临界问题。
1.2 临界问题临界问题:假设限流阀值为5个请求,单位时间窗口是1s,如果我们在单位时间内的前0.8-1s和1-1.2s,分别并发5个请求。虽然都没有超过阀值,但是如果算0.8-1.2s,则并发数高达10,已经超过单位时间1s不超过5阀值的定义。
2.2 滑动窗口计数器(Sliding Window) ...
10万TPS级消息发送管控平台架构设计与项目落地实践
一、背景简介项目需要设计一个高并发的消息发送管控平台,实现业务消息发送安全管控。业务要求所有下发内容需要调用安全管控平台安全审核接口进行安全审核,根据管控策略进行放通、拦截及人工审核。目前线上日发送量峰值为30亿条左右,发送平均速度为3.47万条/秒,消息发送管控平台接口的TPS需要达到10万级别。
1.1 管控策略基于业务需求管控平台提供管控能力及管控策略配置,平台部分管控功能如下:
消息发送频次管控
重复内容发送管控
关键字匹配过滤
发送黑名单过滤
二、架构设计根据业务系统要求,管控平台安全审核接口需要实现10万tps,请求处理耗时在50ms以内。
2.1 业务架构图安全管控平台业务架构较为简单,包含3个核心模块:
管控后台:用于管理管控相关数据及查看、审核被管控的消息记录
网管管控API:提供统一安全管控接口,根据平台的管控策略要求,对下发消息进行审核管控
审核回调:用于向业务平台推送人工审核结果及相关变更数据
2.2 部署架构图上图为管控平台的部署架构图,Redis集群和MySQL数据库使用华为云的服务,应用模块均实现集群化部署:
管控后台:基于Redis实现分布式S ...