安全和隐私
GetWebP CLI 采用离线优先的架构设计。
安全和隐私
GetWebP CLI 采用离线优先的架构设计。图像转换完全在您的机器上运行,CLI 仅为许可证相关操作连接网络。本文档解释了安全模型、数据实践和网络行为,以便您可以评估 GetWebP 用于个人或企业使用。
目录#
图像处理:完全本地#
所有图像转换都在您的机器上进行。您的图像永远不会上传到任何服务器。CLI 从磁盘读取源文件,在内存中转换它们,并将输出文件写入磁盘。在转换期间的任何时刻,没有图像数据、文件名、目录路径或元数据离开您的计算机。
数据收集声明#
GetWebP CLI 收集什么#
| 数据 | 何时 | 目的 |
|---|---|---|
| 匿名设备标识符 | 许可证激活 (getwebp auth) | 将许可证绑定到您的设备并强制执行您的计划的设备限制 |
| 许可证密钥 | 许可证激活 | 交换密钥以获得签名的许可证令牌 |
| 许可证令牌 | 状态检查 (getwebp status)、心跳、注销 | 使用许可证服务器进行认证 |
GetWebP CLI 不收集什么#
- 图像文件或图像内容
- 文件名、目录路径或文件夹结构
- 转换设置(质量、并发性等)
- 操作系统版本、IP 地址或浏览器指纹
- 使用分析或遥测
- 崩溃报告
没有遥测,没有分析 SDK,也没有本文档所述许可证操作之外的"回家"行为。
许可证验证#
GetWebP 使用非对称加密(具有 SHA-256 签名的 RSA)来验证许可证:
- 激活 -- 当您运行
getwebp auth <key>时,CLI 通过 HTTPS 将您的许可证密钥和匿名设备标识符发送到许可证服务器。服务器验证密钥并返回签名的许可证令牌。 - 离线验证 -- 在后续运行中,CLI 使用嵌入在二进制文件中的公钥在本地验证令牌签名。日常使用不需要网络请求。私有签名密钥永远不会离开服务器。
- 过期检查 -- 令牌包含过期时间戳。CLI 在本地检查这一点;过期的令牌将会话降级到免费层。
这种设计意味着一次性激活后,CLI 完全离线工作。互联网连接仅用于激活、检查实时状态或注销。
设备身份和绑定#
每个设备由操作系统硬件标识符的单向 SHA-256 哈希标识:
| 操作系统 | 来源 |
|---|---|
| macOS | IOKit 平台 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 |
静止加密#
配置文件使用从机器的硬件标识符派生的密钥进行加密。这提供了两个保证:
- 令牌不以纯文本形式存储。 打开配置文件仅显示加密的数据。
- 文件不可传输。 将
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 会立即清除本地令牌和状态缓存。下一个转换会话将在免费层模式下运行。
您也可以通过以下方式手动撤销设备:
- 在设备上运行
getwebp logout - 从 网络仪表板 移除设备
供应链和二进制完整性#
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 合规详情,请访问:
联系#
如果您有安全问题或想报告漏洞,请联系: