文档

安全和隐私

GetWebP CLI 采用离线优先的架构设计。

安全和隐私

GetWebP CLI 采用离线优先的架构设计。图像转换完全在您的机器上运行,CLI 仅为许可证相关操作连接网络。本文档解释了安全模型、数据实践和网络行为,以便您可以评估 GetWebP 用于个人或企业使用。


目录#


图像处理:完全本地#

所有图像转换都在您的机器上进行。您的图像永远不会上传到任何服务器。CLI 从磁盘读取源文件,在内存中转换它们,并将输出文件写入磁盘。在转换期间的任何时刻,没有图像数据、文件名、目录路径或元数据离开您的计算机。


数据收集声明#

GetWebP CLI 收集什么#

数据何时目的
匿名设备标识符许可证激活 (getwebp auth)将许可证绑定到您的设备并强制执行您的计划的设备限制
许可证密钥许可证激活交换密钥以获得签名的许可证令牌
许可证令牌状态检查 (getwebp status)、心跳、注销使用许可证服务器进行认证

GetWebP CLI 不收集什么#

  • 图像文件或图像内容
  • 文件名、目录路径或文件夹结构
  • 转换设置(质量、并发性等)
  • 操作系统版本、IP 地址或浏览器指纹
  • 使用分析或遥测
  • 崩溃报告

没有遥测,没有分析 SDK,也没有本文档所述许可证操作之外的"回家"行为。


许可证验证#

GetWebP 使用非对称加密(具有 SHA-256 签名的 RSA)来验证许可证:

  1. 激活 -- 当您运行 getwebp auth <key> 时,CLI 通过 HTTPS 将您的许可证密钥和匿名设备标识符发送到许可证服务器。服务器验证密钥并返回签名的许可证令牌。
  2. 离线验证 -- 在后续运行中,CLI 使用嵌入在二进制文件中的公钥在本地验证令牌签名。日常使用不需要网络请求。私有签名密钥永远不会离开服务器。
  3. 过期检查 -- 令牌包含过期时间戳。CLI 在本地检查这一点;过期的令牌将会话降级到免费层。

这种设计意味着一次性激活后,CLI 完全离线工作。互联网连接仅用于激活、检查实时状态或注销。


设备身份和绑定#

每个设备由操作系统硬件标识符的单向 SHA-256 哈希标识:

操作系统来源
macOSIOKit 平台 UUID
Linux/var/lib/dbus/machine-id/etc/machine-id
Windows注册表机器 GUID

原始硬件标识符在发送到服务器之前被哈希。服务器只看到哈希 -- 它无法反向工程您的硬件 ID。此哈希有两个用途:

  • 设备计数 -- 强制执行您的计划的设备限制(Pro 允许最多 3 个 CLI 设备和 3 个 WordPress 站点)。
  • 机器绑定 -- 通过将加密配置文件与原始机器绑定来防止令牌共享。

如果无法读取硬件标识符(例如在受限容器内),CLI 回退到主机名和用户名的哈希。此回退不那么稳定,并带有警告。


许可证密钥存储#

许可证令牌存储在磁盘上的加密配置文件中:

操作系统默认位置
macOS~/Library/Preferences/getwebp-nodejs/config.json
Linux~/.config/getwebp-nodejs/config.json
Windows%APPDATA%\getwebp\Config\config.json

静止加密#

配置文件使用从机器的硬件标识符派生的密钥进行加密。这提供了两个保证:

  1. 令牌不以纯文本形式存储。 打开配置文件仅显示加密的数据。
  2. 文件不可传输。config.json 复制到不同的机器不会转移许可证,因为每台设备上的解密密钥不同。

文件权限#

配置文件使用运行用户的默认权限创建。为了在共享系统上增强安全性,您可以限制访问:

# Linux / macOS
chmod 600 ~/.config/getwebp-nodejs/config.json     # Linux
chmod 600 ~/Library/Preferences/getwebp-nodejs/config.json  # macOS

网络通信#

何时 CLI 连接#

CLI 仅在这些情况下联系许可证 API 服务器 (api.getwebp.com):

场景触发器方法
许可证激活getwebp auth <key>用户启动
状态检查getwebp status用户启动
心跳在成功本地令牌验证后静默运行自动、非阻塞
注销 / 解绑getwebp logout用户启动

心跳是一个轻量级的、一劳永逸的请求,在 CLI 在本地验证令牌后在后台运行。它不会阻止或延迟图像转换。如果网络无法连接,心跳会静默失败,CLI 继续正常运行。

HTTPS 加密#

所有网络通信专门使用 HTTPS (TLS)。API 基 URL 在构建时硬编码为 https://api.getwebp.com。没有纯文本 HTTP 回退。

超时#

网络请求使用短超时来防止阻止:

  • API 请求(激活、状态、注销):5 秒超时
  • 心跳:3 秒超时

如果请求超时,CLI 回退到缓存数据或报告网络错误。不使用重试循环。

没有代理的图像数据#

明确地说:CLI 从不通过网络发送图像数据。转换完全是本地的。唯一跨网络的数据是 数据收集声明 中描述的许可证相关元数据。


令牌撤销#

如果服务器指示令牌已被撤销(例如在退款或从仪表板手动停用后),CLI 会立即清除本地令牌和状态缓存。下一个转换会话将在免费层模式下运行。

您也可以通过以下方式手动撤销设备:


供应链和二进制完整性#

SHA-256 校验和#

每个版本都包括 SHA-256 校验和文件 (.sha256),与二进制文件一起。在运行前验证下载:

# macOS / Linux
shasum -a 256 -c getwebp-macos-arm64.sha256
# Windows (PowerShell)
$expected = (Get-Content getwebp.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash getwebp.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -eq $actual) { Write-Host "Verified OK" } else { Write-Host "MISMATCH" }

嵌入的公钥#

用于离线令牌验证的 RSA 公钥在构建时嵌入到二进制文件中。这意味着二进制文件是自包含的用于验证 -- 它在运行时不会从网络获取密钥。


安全最佳实践#

  • 验证下载 -- 在首次使用前始终检查 SHA-256 校验和。
  • 保持二进制文件更新 -- 从 getwebp.com/download 下载最新版本以接收安全补丁。
  • 不要共享配置文件 -- 加密的配置按设计是机器绑定且不可转移的。在每台设备上使用 getwebp auth
  • 停用时注销 -- 在停用机器之前运行 getwebp logout 以释放设备插槽并清除凭据。
  • 在共享系统上限制文件权限 -- 在多用户机器上对配置文件应用 chmod 600
  • 使用仪表板管理丢失的设备 -- 如果设备丢失或无法访问,请从 getwebp.com/dashboard 解绑它。

隐私政策#

有关完整隐私政策,包括数据保留和 GDPR 合规详情,请访问:

getwebp.com/privacy


联系#

如果您有安全问题或想报告漏洞,请联系:

[email protected]


相关文档#

主题链接
配置和文件位置配置
CI/CD 集成CI 集成
命令参考命令参考
入门入门