简道云系统的主要架构方式为分布式微服务架构,采用Node.js和Java编写。服务部署为Docker集群,使用Kubernetes进行容器编排和集群管理。
简道云客户端层主要以现代浏览器为主,同时适配了PC端和移动端的访问。
服务层中提供了各种微服务,微服务之间使用HTTP互相通信或者通过队列服务进行调度来支撑整个业务系统。其中企业通讯录服务提供了单点登录、企业组织管理、钉钉/企业微信集成等功能。数据分析服务包含数据工厂、仪表盘和报表功能。
数据采集服务包含自定义表单、聚合表、自定义工作流等功能。消息队列服务主要提供了各类通知消息的推送,使用队列的方式防止因消息过多导致推送服务过载。定时任务服务主要用于定时提醒、定时推送等功能。文件服务主要用于PDF打印、Excel导入导出和二维码生成等功能。
存储上使用MongoDB存储企业数据,使用Redis提供数据缓存服务,避免数据库IO过多。使用云厂商提供的对象存储服务保存用户上传的附件、图片等各类文件资源。
简道云系统全部部署在阿里云上,使用了阿里云的专有VPC网络、弹性IP(EIP)、负载均衡(SLB)、ECS、OSS(存储)、容器编排、数据库等产品。简道云数据传输过程中全程使用 SSL/TLS,所有网络请求都先经过WAF防火墙后进入集群服务。
简道云以安全稳定为最高优先级目标,通过多重措施保障信息安全:
1) 物理安全
简道云服务器部署于阿里云平台上,有云盾保护,确保服务器安全可靠。
2) 网络安全
网络访问控制:所有生产环境服务器按照逻辑分组之间,使用安全组(防火墙)进行隔离,每个安全组之间的互访都定义了严格的流入和流出规则。所有生产环境服务器都无法通过外部网络直接访问。
3) 数据安全
a. 核心数据加密:简道云对于企业的数据采用分级保护机制,敏感的、重要的数据采用加密存储方式。对于用户密码的处理,大部分软件的处理方式是只在服务端对密码进行哈希存储,简道云进行了两次哈希处理,在用户密码提交到服务端之前,在客户端首先进行一次哈希,在服务端再次进行哈希,好处是用户的密码在所有的环节中始终只是哈希值,密码并不会在网络上明文传输。
b. 多点灾难备份:简道云对于企业数据进行了多点灾难备份,备份分布在不同的网段、不同的服务器,这样即便有不可抗拒力产生的灾难,也能够很快的从其他服务器的备份中及时恢复。
c. 爬虫协议处理:Robots 协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。简道云中只允许搜索引擎抓取用户开放共享的页面,用户相关的数据都不允许抓取。User-agent:简道云会根据User-agent字段进行判断,只允许合法的浏览器终端进行访问。
d. SSL/TLS全程加密:简道云数据传输过程中全程使用 SSL/TLS(Secure Sockets Layer,详情请参考 RFC5246 及 RFC6176),在不采用 SSL/TLS 前数据存在传输存在以下风险:
而采用 SSL/TLS 后,这些风险都可以被规避:
e. 用户操作日志:简道云提供了用户行为日志供用户自己查看,便于用户发现自己的账号是否存在异常操作,确保用户的个人数据安全。
f. 密码保护机制:简道云中采用了用户密码登录保护机制,对于连续5次密码输入错误的用户,会1小时内禁止访问,并提示找回密码。防止第三方进行撞库攻击。
g. CSRF和XSS保护:简道云平台对数据提交加入了csrf token验证机制和XSS保护机制,有效防止了跨站攻击。
h. SQL防注入:简道云平台自开发到系统上线全过程都做好了充足的接口安全测试,对所有接口请求参数和数据库执行语句都进行的预处理。确保数据库安全。
4) 运维安全
在运维管理上,简道云完善了一套切实可行的运维流程、以及应急灾难处理机制:
服务器登录授权:简道云所有生产环境服务器都采用密钥对登录,无法使用密码登录,密钥对采用公有密钥密码术加密和解密登录信息(基于 2048-bit SSH-2 RSA),只有用户密钥对文件.pem 的人员才可以连接服务器。这种登录授权方式,使得恶意攻击无法通过猜测服务器的用户名和密码来连接服务器。
分级运维制度:所有能够接触到生产环境服务器的人员,都进行了严格的分级,对于数据中心只有极少数的人员得到授权时才可以访问。简道云团队在运维管理上采用了 “结对运维”的制度,只要操作生产环境服务器,就需要至少两人同时在场,同时做好每一次操作生产环境服务器的日志。
应急灾难处理:简道云团队内部组建了一支应急灾难处理分队,由 CTO 直接负责,在遇到问题时,该分队会立即响应,按照灾难应急处理流程及时解决。
5) 国家信息安全等级保护三级认证
等保三级又被称为国家信息安全等级保护三级认证,是中国最权威的信息产品安全等级资格认证,由公安机关依据国家信息安全保护条例及相关制度规定,按照管理规范和技术标准,对各机构的信息系统安全等级保护状况进行认可及评定。
其中三级是国家对非银行机构的最高级认证,属于“监管级别”,由国家信息安全监管部门进行监督、检查,认证需要测评内容涵盖等级保护安全技术要求5个层面和安全管理要求的5个层面,主要包含信息保护、安全审计、通信保密等在内的近300项要求,共涉及测评分类73类,要求十分严格。