跳到正文
Tinu AI
Continue→

安全

最后审查:2026年10月1日

简要说明

  • 成员的请求通过数据库自身的行级安全访问各组织的工作区内容,数据库会把每个请求限定在应用程序为其设定的组织和人员范围内。
  • 工作区内容由两家 AI 提供商(OpenAI 和 Google)通过其 API 处理。每个组织都有每月 AI 支出上限,我们不会使用客户内容训练 AI 模型。
  • Tinu 从不连接控制系统。运营数据只会以人员导出的文件形式到达 Tinu,或来自由 Tinu 操作员与你的系统管理员一起连接的业务系统。
  • 正在进行 SOC 2 准备工作。我们目前还没有可以分享的 SOC 2 报告。
  • 请将安全问题报告至 security@tinuai.com。

本页介绍产品目前的运作方式。我们的合同承诺见数据处理协议。

目录

  1. 01托管与数据位置
  2. 02租户隔离
  3. 03加密
  4. 04登录与访问控制
  5. 05AI 处理与模型提供商
  6. 06数据保留与删除
  7. 07审计日志
  8. 08备份与恢复
  9. 09软件变更
  10. 10控制系统(OT 与 SCADA)
  11. 11子处理方
  12. 12合规状态
  13. 13报告安全问题

01托管与数据位置

Tinu 是一项云服务。应用程序托管在 Vercel 上。客户数据存储在由 Neon 运营的 PostgreSQL 数据库中,位于 AWS us-east-2 区域(美国俄亥俄州)。后台任务通过 Inngest 运行,Upstash Redis 负责速率限制和会话撤销。

Tinu 采用多租户架构:客户共享同一个应用程序和数据库,并按第 02 节所述的方式相互隔离。我们目前不提供专属部署或本地部署。

02租户隔离

存放组织工作区内容的表(例如条目、决策、记忆和成员记录)都设有 PostgreSQL 行级安全策略,以组织和发出请求的人员为依据。已登录成员的请求以一个单独的数据库角色运行,该角色不拥有这些表,也无法绕过这些策略。应用程序为每个请求确定组织和人员,并在与查询相同的事务中设置它们;随后由数据库强制执行这一选择。在条目和决策等内容表上,未设置组织的查询只会匹配请求者自己的行。

部分路径以数据库所有者身份运行,会绕过这些策略,改为在应用程序代码中限制其查询:登录、只读共享链接、Tinu 的内部管理工具,以及部分后台处理任务。少数表没有行级安全:共享链接表,面向成员的角色完全无法访问;审计日志,该角色只能向其中添加记录;以及产品分析事件和注册申请等内部表。

每次代码变更都有两项自动检查来保障这一点:

  • 一项测试:如果新增了带组织列的表却没有行级安全,就会让构建失败,除非该表在一份附有书面理由的简短例外清单中;以及
  • 一项针对真实 PostgreSQL 数据库的测试:证明一个组织无法读取或写入另一个组织的行,并且应用程序的角色无法绕过这些策略。

在组织内部,成员可以将条目标记为私密。经理和管理员没有任何可以读取其他成员私密条目的特权。

03加密

传输中

每个响应都通过 Strict-Transport-Security 标头(两年,包括子域名)要求浏览器只使用 HTTPS。如果生产应用程序的任一数据库连接字符串明确允许未加密连接,它将拒绝启动。

存储的数据

  • 你连接到 Tinu 的系统所用的访问令牌、API 密钥和密码,在存储前都会由应用程序使用 AES-256-GCM 加密。它们存放在处理客户请求的角色无法读取的数据库列中。加密密钥保存在数据库之外,并且可以轮换。
  • Tinu 账户密码以 bcrypt 哈希形式存储,绝不以可读形式存储。
  • Tinu API 密钥和共享链接令牌只以 SHA-256 哈希形式存储,因此数据库副本中不包含它们。

04登录与访问控制

  • 用户使用 Google 账户,或使用电子邮箱和密码登录。密码登录尝试按 IP 地址和电子邮箱进行速率限制。
  • Tinu 目前没有内置的第二登录验证因素。
  • 会话在 24 小时无活动后结束。这是空闲超时,而不是固定有效期:每次访问都会将其再延长 24 小时,目前没有会话最长时限。更改或重置密码、退出登录或停用账户,会立即结束该账户的所有会话。
  • 已停用的账户无法登录,其 API 密钥也会失效。
  • 组织中的每个成员都有一个角色:管理员、经理或成员。管理员负责管理成员和组织设置。

Tinu 员工访问

少数 Tinu 员工账户可以在一个组织中开启支持会话,每次仅限一个组织。一次支持会话最长持续一小时。它让该员工无需成为组织成员即可管理该组织。会话的开始、结束以及期间所做的每项更改,都会以该员工本人的名义写入审计日志。这些员工账户必须使用 Google 登录:在生产环境中,他们的密码登录会被拒绝。

05AI 处理与模型提供商

Tinu 通过 API 将工作区内容发送给两家 AI 提供商:OpenAI 和 Google(Gemini)。它们负责撰写摘要,提取决策、人员和主题,生成支持搜索的嵌入向量,并在聊天中回答问题。没有其他 AI 提供商会收到客户内容。

  • 聊天和后台处理优先在 OpenAI 上运行,如果 OpenAI 调用失败则回退到 Google。搜索嵌入向量、Slack 中的回答以及部分应用内的快速响应在 Google 上运行。
  • 每个组织都有每月 AI 支出上限。为组织发起的模型调用会先对照该上限进行检查,不过少数应用内请求目前尚未计入。一旦达到上限,它所涵盖的功能将对该组织暂停,直到下一个自然月或上限被提高。
  • 对于每次模型调用,我们会记录提供商、模型、用途、令牌数量和耗时,并关联到相应组织。该记录不包含提示词文本。
  • Tinu 不会使用客户内容训练 AI 模型。

隐私政策第 05 节完整介绍了 AI 提供商和模型训练。

06数据保留与删除

删除已离职成员的数据。当某人离开组织后,管理员或其最近一任经理可以提交申请,删除其在该组织中的数据,并由另一位管理员批准。在只有一位管理员的组织中,该管理员可以批准自己提交的申请,且批准会被记录。获批后,数据会立即隐藏,并可在 30 天内恢复。30 天后,数据可以被永久删除,或进行去标识化:移除该成员的作者信息,并在组织保留的知识中替换其姓名和电子邮件地址,这些知识本身予以保留。替换是自动进行的:凡是能识别出姓名的地方,都会替换为标记 [Deleted]。某些写法可能仍会留在这些文本中,例如昵称、拼写有误的姓名、以小写字母书写的姓名,或写在中文、日文或泰文句子中的姓名。

当成员离开,而其组织以去标识化形式保留其知识时,其私密条目永远不会作为条目展示给任何人,但 Tinu 的回答和摘要可能会用到其中的内容。成员在离开前可以随时查看并删除自己的私密条目。

删除申请只会影响该成员在这一个组织中的数据。如果其还属于其他组织,那些组织中的数据不受影响。

导出。任何成员都可以随时以 JSON 或 CSV 格式导出自己的条目。

合同终止。协议终止时你的数据如何返还和删除,见数据处理协议第 13 节。各类数据的保留期限见隐私政策第 07 节。

07审计日志

  • 对工作区数据的更改会在数据访问层自动写入审计日志,而不是在每个功能中手动记录。每条记录包含操作人、组织、请求 ID、IP 地址、用户代理,以及更改前后的记录。
  • 打开他人的记录同样会被记录:一个条目、一项决策、团队页面上某个人的记录、其条目的全文、聊天或 Slack 中引用了其条目或决策的回答,或连接到 Tinu 的 AI 应用读取了其条目或决策。每条记录会注明谁读取、读取了谁的记录、在哪里以及何时读取,仅记录 ID,从不记录内容。读取自己的记录不会被记录;列表和搜索结果也不会被记录,而它们可能显示他人条目的标题和 AI 摘要;打开该条目则会被记录。如果写入记录失败,读取仍会照常进行。你所在组织的管理员可以查看此日志,每位作者也可以看到谁打开过自己的条目。
  • 密码哈希、密钥和令牌哈希以及条目的原始文本不会写入审计记录。
  • 处理客户请求的数据库角色可以添加审计记录,但无法读取、更改或删除它们。
  • 审计记录至少保留一年。

08备份与恢复

数据库使用 Neon 的时间点恢复功能。一个定时任务每月对其进行测试:将生产数据库恢复为约五分钟前状态的副本,检查预期的表存在且可以查询,然后删除该副本。

09软件变更

每个拉取请求都会运行自动检查:代码检查和类型检查、完整测试套件、生产构建、数据库迁移顺序检查,以及使用 TruffleHog 的密钥扫描。另有两项检查会在每个更改代码的拉取请求上运行,只有当拉取请求只更改测试或文档时才会跳过:针对真实 PostgreSQL 数据库的行级安全测试,以及端到端浏览器测试。在我们的合并队列中,所有这些检查都会运行,没有任何跳过。Dependabot 每周创建拉取请求,使依赖项保持最新。

10控制系统(OT 与 SCADA)

Tinu 从不连接运营技术系统。它没有任何用于 SCADA、EMS、DCS、PLC 或历史数据库的连接器,也不会在运营网络或控制网络上安装任何代理、传感器或软件。

有两个可选工具在员工自己的电脑上运行:一个命令行工具,用于为该电脑上的文件建立索引并将其发送到 Tinu,除非为你的组织开启,否则处于关闭状态;以及一个 Excel 加载项。两者都不连接控制系统。

来自运营系统的信息只通过两种方式到达 Tinu:

  • 由人员导出文件并上传,例如保存为 CSV 的 SCADA 报警日志;或
  • 由 Tinu 操作员与你的系统管理员一起,使用你的管理员签发的凭据连接 Maximo 或 SAP 等业务系统。Tinu 通过该系统的 API 读取数据。这些连接器只读取,从不回写。

Tinu 并非为存放 BES Cyber System Information 或受你的 CIP 计划保护的其他信息而设计,你的用户不应提交此类信息。

11子处理方

所有代表我们处理客户数据的第三方、各自的用途以及会收到哪些数据,都列在我们的子处理方页面上,并附有注明日期的变更日志。在新的子处理方开始处理你的数据之前,我们会至少提前 30 天通过电子邮件通知组织管理员。

12合规状态

正在进行 SOC 2 准备工作。我们目前还没有可以分享的 SOC 2 报告。

我们的数据处理协议列明了我们的安全措施、我们如何就个人数据泄露通知你,以及协议终止时你的数据如何返还或删除。

13报告安全问题

请发送电子邮件至 security@tinuai.com,说明你发现的问题以及如何复现。对于尊重用户隐私且不降低服务质量的善意研究,我们不会追究法律责任。

如果我们获悉影响你数据的个人数据泄露,我们会按照数据处理协议第 09 节的规定,无不当延迟地通过电子邮件通知你所在组织的管理员。

Tinu Inc
Ann Arbor, Michigan, United States
安全:security@tinuai.com
隐私:privacy@tinuai.com

另请参阅我们的隐私政策、数据处理协议、子处理方和服务条款,或返回 Tinu AI 首页。