OTS:你的私密信息分享利器

简介

什么是 OTS ?

OTS (One-Time-Secret) 是一个一次性秘密共享平台,它通过在浏览器中进行对称的 256AES 加密来极大地保护你的隐私。服务器端永远不会接触到明文的敏感信息,并且一旦敏感信息被读取,它就会被立即销毁。这使得它成为安全分享敏感信息(如密码、API 密钥或一次性凭证)的理想选择。

主要特点

  • 端到端加密:秘密在你的浏览器中使用 AES 256 位进行加密和解密,服务器无法窥探。
  • 阅后即焚:每个秘密在被首次访问后会立即从服务器删除。
  • 简单易用:用户只需输入秘密,生成一个包含秘密 ID 和密码的 URL,方便分享。
  • 多种存储选项:支持多种后端存储解决方案,如内存、Redis 等,用户可以选择适合的存储方式
  • 自托管:你可以完全掌控自己的数据,将其部署在自己的服务器上。
  • API支持:提供命令行工具,方便以编程、脚本方式创建和获取秘密。

应用场景

  • 向同事或朋友安全地发送一次性密码或 API 密钥。
  • 在不安全的网络环境中临时共享敏感配置信息。
  • 集成到自动化脚本中,用于动态生成和分发一次性访问凭证。

OTS 是一个高效、安全的一次性秘密共享平台,适合需要保护敏感信息的个人和企业使用。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 v1.19.1

ots 依赖 redis 数据库,因此推荐使用 docker-compose 安装

首先,通过 SSH 登录到您的群晖,在 docker 文件夹中,创建一个新文件夹 ots,并在其中再建一个子文件夹 data 用于存放 Redis 数据

1
2
# 新建文件夹 ots 和 子目录
mkdir -p /volume1/docker/ots/data

然后,在 ots 目录下,创建 docker-compose.yml 文件

1
2
3
4
5
# 进入 ots 目录
cd /volume1/docker/ots

# 创建 docker-compose.yml 文件
touch docker-compose.yml

将下面的内容粘贴到 docker-compose.yml 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "3"

services:
app:
image: ghcr.io/luzifer/ots:latest
container_name: ots-app
restart: always
ports:
- 3494:3000
environment:
# Optional, see "Customization" in README
#CUSTOMIZE: '/etc/ots/customize.yaml'
# See README for details
REDIS_URL: redis://redis:6379/0
# 168h = 1w
SECRET_EXPIRY: "604800"
# "mem" or "redis" (See README)
STORAGE_TYPE: redis
depends_on:
- redis

redis:
image: redis:latest
container_name: ots-redis
restart: always
volumes:
- ./data:/data

环境变量的说明如下:

环境变量 描述
REDIS_URL Redis 数据库的连接字符串,格式为 redis://USR:PWD@HOST:PORT/DB。用于指定 OTS 应用连接的 Redis 实例
SECRET_EXPIRY 秘密的过期时间,单位为秒(默认 0 = 无过期)。此示例中设置为 604800(168 小时 = 1 周)
STORAGE_TYPE 用于指定存储类型,可以是 mem(内存存储)或 redis(使用 Redis 存储秘密)

最后,在 ots 目录下执行以下命令一键启动:

1
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3494 就能看到主界面。但是因为使用了 http 协议,功能被禁用了

需要做反代实现 https 协议访问,例如: https://ots.laosu.tech

使用 https 协议之后就正常了

现在你可以输入任何想要分享的秘密,设置一个可选的密码,然后生成一个一次性链接

接收端打开分享的一次性链接

向我展示机密 就可以看到内容了

参考文档

Luzifer/ots: One-Time-Secret sharing platform with a symmetric 256bit AES encryption in the browser
地址:https://github.com/Luzifer/ots

OTS - One Time Secrets
地址:https://ots.fyi/