Excalidraw 等保测评适配建议
在数字化办公加速演进的今天,远程协作工具早已从“锦上添花”变为“刚需基础设施”。尤其是在软件设计、系统架构讨论和敏捷开发场景中,团队对可视化白板的需求持续攀升。Excalidraw 凭借其独特的手绘风格、轻量级交互和开源可定制特性,在开发者社区迅速走红——它让画图不再像在用专业工具,而更像是在纸上随手涂鸦。
但当企业试图将这类工具引入内网环境时,一个现实问题浮现:如何在保障高效协作的同时,满足信息系统安全等级保护(等保)的要求?
政府、金融、教育等行业普遍要求核心系统至少达到等保二级甚至三级标准。这意味着任何部署在内部网络中的应用,都必须具备身份认证、访问控制、数据加密、操作审计等能力。而 Excalidraw 作为一款默认“匿名即用”的开源项目,原生并不包含这些模块。因此,直接上线等于埋下安全隐患。
真正的挑战不在于“能不能用”,而在于“怎么安全地用”。
Excalidraw 的本质是一个基于 Web 的虚拟白板系统,前端使用 React + TypeScript 构建,后端协作服务可独立部署。它的魅力在于极简与自由:没有复杂的菜单栏,图形带有轻微抖动的手绘质感,用户打开页面即可开始创作。每个元素以 JSON 结构存储,支持通过localStorage本地保存,也允许导出为.excalidraw文件进行离线共享。
协作功能依赖 WebSocket 实现,官方提供了一个名为excalidraw-collab-server的 Node.js 后端服务,采用 CRDT 或 OT 算法处理多端同步冲突。不过,默认配置下,客户端会连接到公共服务器https://excalidraw.com——这对企业来说是不可接受的风险点。
更关键的是,原始版本既无登录机制,也不记录谁改了什么内容,甚至连 HTTPS 都不是强制启用项。这显然无法通过等保测评中关于“身份鉴别”“访问控制”“安全审计”等关键控制项的审查。
那是不是就得放弃这个好用的工具?
当然不是。恰恰相反,正是因为它是开源的,我们才有机会对其进行“合规化改造”。与其推倒重来,不如在保持其核心体验的前提下,叠加必要的安全能力。
要让 Excalidraw 符合等保要求,重点不在修改源码本身,而在构建一套外围防护体系。就像给一辆敞篷跑车加装防弹玻璃和定位追踪系统一样,既要保留速度感,又要提升安全性。
身份认证:从“谁都能进来”到“凭证准入”
Excalidraw 原生不管理用户,所有人都是“访客”。但在企业环境中,必须明确“你是谁”。
解决方案不是自己写一套登录系统,而是借助成熟的统一身份管理体系。例如:
- 在前端前置一个反向代理(如 Nginx),所有请求先经过
/auth接口校验; - 对接企业现有的 OAuth2.0 / OIDC 认证服务(如 Keycloak、Authing 或 AD/LDAP);
- 用户首次访问时被重定向至单点登录页,认证成功后颁发 JWT;
- 将用户信息注入前端上下文,用于后续权限判断。
Nginx 可通过auth_request模块实现非侵入式拦截:
location / { auth_request /auth-proxy; root /usr/share/nginx/html; try_files $uri $uri/ /index.html; } location = /auth-proxy { internal; proxy_pass http://auth-service:8080/verify; proxy_set_header X-Original-URI $request_uri; }这种方式的好处是完全不改动 Excalidraw 源码,未来升级也不会受影响。同时,JWT 中可以携带角色信息(如role: viewer/editor/admin),为后续细粒度授权打下基础。
会话策略也需收紧:无操作超时时间应设为不超过 30 分钟,符合等保三级对“静态口令失效”的要求。双因素认证则由认证网关统一处理,无需在白板层重复建设。
数据安全:防止传输泄露与静态暴露
等保对通信完整性和保密性有明确要求,尤其是涉及敏感信息的设计稿,绝不能明文传输或随意导出。
首先,全链路必须启用加密:
- 前端服务必须通过 HTTPS 提供访问(TLS 1.2+),禁用老旧加密套件;
- WebSocket 连接必须使用 WSS 协议,避免中间人窃听;
- 所有后端组件之间通信也应在内网隔离环境下完成,禁止公网直连。
其次,关注数据落地环节。虽然localStorage是 Excalidraw 的默认存储方式,但它本质上是明文存放在浏览器中的。如果终端设备丢失或被共用,可能造成信息泄露。
应对策略包括:
- 禁止自动同步到本地缓存,改为仅临时暂存;
- 用户退出时主动清除
localStorage; - 导出文件时自动添加水印(如用户名、时间戳),并限制格式——比如只允许导出 PNG 图片,禁用可编辑的 JSON 文件。
对于 AI 插件调用场景更要谨慎。若插件将用户输入发送至公网大模型接口(如 OpenAI),则存在严重的数据外泄风险。建议的做法是:
- 完全禁用外部 AI 插件;
- 或对接内部部署的大模型服务,确保数据不出内网;
- 所有 API 调用均需经过网关鉴权,并记录日志。
权限控制与行为审计:让每一次操作都可追溯
等保测评中最常被扣分的项目之一就是“缺乏操作日志”。你不能只说“我们很安全”,还得拿出证据证明谁在什么时候做了什么事。
Excalidraw 自身没有审计模块,但这可以通过协作后端补足。每当用户发起一条编辑消息(如新增矩形、移动线条),服务器都可以从中提取以下信息:
- 用户标识(来自 JWT)
- 操作类型(create/update/delete/export)
- 时间戳(精确到毫秒)
- 源 IP 地址
- 目标资源 ID(房间号或文件名)
然后将这些结构化日志发送至集中式日志平台,如 ELK 或 Loki。一段典型的 Node.js 日志记录逻辑如下:
wss.on('connection', (ws, req) => { const clientIp = req.socket.remoteAddress; const userId = authenticate(req); ws.on('message', (data) => { const msg = JSON.parse(data); if (msg.type === 'change') { auditLog.info({ event: 'element_change', userId, ip: clientIp, roomId: msg.roomId, timestamp: new Date().toISOString(), changes: msg.payload.length }); } }); });这些日志不仅能用于事后追责,还能帮助发现异常行为。例如某账号在短时间内频繁创建房间并导出大量文件,就可能是数据爬取的前兆。
权限方面,可以基于角色设定最小权限原则:
- 默认新用户只有“查看”权限;
- “编辑”权限需管理员审批后授予;
- 敏感房间(如架构设计组)实行邀请制加入。
Redis 可作为协作状态的临时缓存层,避免频繁读写数据库影响性能,同时也便于实现房间过期清理机制。
部署架构:构建闭环可控的技术栈
一个典型的合规部署方案如下:
[用户浏览器] ↓ (HTTPS) [Nginx 反向代理] ←→ [OAuth2 认证网关] ↓ [Excalidraw 前端容器] ↓ (WSS) [协作后端服务] → [Redis 缓存] ↓ [日志中心 ELK/Loki]所有组件均部署于企业内网可信区域,外网仅开放 443 端口,且可通过防火墙规则限制来源 IP。Docker Compose 可实现快速编排:
version: '3' services: frontend: build: ./excalidraw ports: - "8080:80" environment: - ALLOW_ANALYTICS=false - FIREBASE_STORAGE=false networks: - internal-net collab-server: image: excalidraw/excalidraw-collab-server environment: - PORT=3001 ports: - "3001:3001" networks: - internal-net redis: image: redis:7-alpine networks: - internal-net networks: internal-net: driver: bridge关键安全参数还需进一步加固:
| 参数 | 建议值 | 说明 |
|---|---|---|
| TLS 版本 | ≥1.2 | 禁用 SSLv3/TLS1.0 |
| 加密套件 | ECDHE-RSA-AES256-GCM-SHA384 | 使用高强度算法 |
| 会话超时 | ≤30分钟 | 防止长时间未注销 |
| 日志保留 | ≥6个月 | 满足等保审计周期 |
此外,定期对依赖库进行 SBOM(软件物料清单)分析,及时发现高危漏洞(如npm包中的原型污染问题)。有条件的企业还可探索国密算法替代方案,如使用 SM2/SM3/SM4 替换 RSA/SHA/AES,以响应信创要求。
为什么这种模式值得推广?
Excalidraw 的案例揭示了一种新型的安全适配思路:不对原始系统做侵入式改造,而是通过“外围增强”实现合规闭环。
这种方法的优势非常明显:
- 升级友好:上游版本更新时,只需重新构建镜像,无需合并代码冲突;
- 复用性强:同一套认证、审计、加密架构可复制到其他类似工具(如在线文档、低代码平台);
- 成本可控:避免重复造轮子,充分利用现有 IAM 和日志体系;
- 体验一致:最终用户仍享受简洁流畅的操作,安全机制透明运行。
更重要的是,它体现了一种务实的平衡观:安全不该成为效率的绊脚石,高效也不该以牺牲安全为代价。真正理想的协作工具,应该像一把锋利却有刀鞘的刀——既能快速切入问题,又不会伤及自身。
随着零信任架构、微隔离等理念在企业安全中逐步落地,未来这类轻量级工具的接入方式将更加精细化。我们可以设想:
- 每个协作房间动态生成短期访问令牌;
- 根据用户设备健康状态决定是否允许接入;
- 编辑行为实时分析,识别潜在违规操作并自动告警。
届时,Excalidraw 不再只是一个画画的地方,而是一个集创意、协作与安全于一体的智能工作空间。
而现在,正是为它打好安全底座的最佳时机。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考