Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
enseal — 開発者向けのセキュアで一時的な機密情報共有。 | Kitploit
ツール/GitHubGitHub/fleralex/enseal
暗号化/復号化ツール構成監査データ流出クラウドセキュリティDevSecOpsプライバシーユーティリティとフレームワークシークレット検出認証
GitHubfleralex/enseal

enseal

開発者向けのセキュアで一時的な機密情報共有。

リポジトリを見る
55ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

enseal

CI Release Crates.io License: MIT

開発者向けの安全で一時的な秘密情報共有ツール。

Slackに秘密情報を貼り付けるのはやめましょう。enseal は安全な方法を不安全な方法よりも高速にします — 暗号化された使い捨てチャネルを通じて、.env ファイルや秘密情報をワンコマンド、セットアップ不要で共有できます。```bash

sender

$ enseal share .env Share code: 7-guitarist-revenge Secrets: 14 variables (staging) Expires: on first receive

recipient

$ enseal receive 7-guitarist-revenge ok: 14 secrets written to .env

root@kitploit:~
## インストール

### crates.io から```bash
cargo install enseal

ソースから```bash

git clone https://github.com/FlerAlex/enseal.git cd enseal cargo build --release

binary at ./target/release/enseal

root@kitploit:~
### Prebuilt binaries

[GitHub Releases](https://github.com/FlerAlex/enseal/releases) からダウンロード (Linux (x86_64, aarch64)、macOS (Intel, Apple Silicon)、Windows 対応)

## Quick Start

### Anonymous mode (zero setup)

ワンタイムコードを使用して機密情報を共有します。キーもアカウントも不要です。すぐに使用できます。```bash
# terminal 1 (sender)
enseal share .env
  Share code:  7-guitarist-revenge
  Secrets:     14 variables
  Expires:     on first receive

# terminal 2 (recipient) — enter the code
enseal receive 7-guitarist-revenge
ok: 14 secrets written to .env

単一のシークレットでも動作します:```bash

terminal 1 — pipe a token

echo "my-api-token" | enseal share --label "API key" Share code: 4-orbital-hammock

terminal 2 — prints to stdout

enseal receive 4-orbital-hammock my-api-token

root@kitploit:~
両方の端末を同時に開く必要があります — 送信側は受信側が接続するまで待機します。

### 識別モード(鍵ベース、コードなし)

鍵の信頼関係が確立されたチーム向け。名前で暗号化、調整は不要。```bash
# one-time setup
enseal keys init
enseal keys export > my-key.pub          # share this with teammates
enseal keys import teammate-key.pub      # import theirs

# sender encrypts to recipient by name
enseal share .env --to sarah

# or push through the public relay (no codes at all)
enseal share .env --to sarah --relay wss://relay.enseal.dev

# or produce an encrypted file (no network)
enseal share .env --to sarah --output ./drop/

プロセスに機密情報を注入する(ディスクには触れない)```bash

anonymous mode: sender gives you a code

enseal inject 7-guitarist-revenge -- npm start

identity mode: listen on relay, sender pushes when ready

enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up

from an encrypted file drop

enseal inject ./staging.env.age -- python manage.py runserver

root@kitploit:~
機密情報は子プロセスのメモリ内にのみ存在します。子プロセスが終了すると、それらは消えます。

## 機能

### 3つの共有モード

**匿名モード**(デフォルト)— wormholeベース、セットアップ不要。人間が読めるコードだけで十分です。SPAKE2 相互認証により MITM 攻撃を防ぎます。```bash
enseal share .env                         # generates wormhole code
enseal receive 7-guitarist-revenge        # uses code

--relayを使用すると、匿名モードはワームホールをバイパスし、代わりにensealリレートランスポートを使用します。両側で同じリレーを使用する必要があります:```bash enseal share .env --relay ws://relay.internal:4443 # generates channel code enseal receive 3421-amber-frost --relay ws://relay.internal:4443

root@kitploit:~
**Async upload (`--upload`)** — 送信者のみ。ローカルで暗号化し、[burnurl.dev](https://burnurl.dev) に投稿します。受信者がブラウザで開く自己破壊URLを返します。受信者側にCLIは不要です。```bash
enseal share .env --upload
#   Secret URL:  https://burnurl.dev/s/a3f9c2e1...
#   Expires:     2026-03-08 19:42:00 UTC (24h)
#   Reads:       1 (self-destructs on first open)

受信者は任意のブラウザでURLを開きます — ensealのインストールは不要です。アップロード前にクライアントサイドで暗号化するには --passphrase を追加します(サーバーは暗号文のみを認識します):```bash enseal share .env --upload --passphrase # prompts for passphrase enseal share .env --upload --ttl 4 # 4-hour TTL (max 24)

root@kitploit:~
APIアクセスには、burnurl.devのProまたはTeamプランが必要です。`BURNURL_API_KEY` をあなたのキーに設定してください。セルフホストインスタンスのベースURLをオーバーライドします: `BURNURL_URL=https://burnurl.internal`。

**アイデンティティモード** — 既知のチームメイトのための公開鍵暗号化。名前で暗号化します。```bash
enseal keys init                          # one-time setup
enseal share .env --to sarah              # encrypt to sarah's public key

Identity mode は3つのトランスポートオプションをサポートしています:```bash

wormhole (default, no --relay): generates a code like anonymous mode

enseal share .env --to sarah

relay push (with --relay): zero codes, pushes directly to recipient's channel

enseal share .env --to sarah --relay wss://relay.enseal.dev

file drop (with --output): no network, produces encrypted file

enseal share .env --to sarah --output ./drop/

produces ./drop/[email protected]

root@kitploit:~
### 柔軟な入力

ensealは複数のソースからシークレットを受け付けます:```bash
# .env file (default)
enseal share .env
enseal share staging.env

# environment profile
enseal share --env staging               # resolves to .env.staging

# pipe from stdin
echo "sk_live_abc123" | enseal share
cat secrets.env | enseal share
pass show stripe/key | enseal share --to sarah

# inline (careful — visible in shell history)
enseal share --secret "API_KEY=sk_live_abc123"

# wrap raw string as KEY=VALUE
echo "sk_live_abc123" | enseal share --as STRIPE_KEY

変数補間

${VAR} 参照は送信前に解決されるため、受信者は完全に展開された値を受け取ります:```env DB_HOST=postgres.internal DB_PORT=5432 DATABASE_URL=postgres://user:pass@${DB_HOST}:${DB_PORT}/myapp

root@kitploit:~
Supports `${VAR:-default}` fallback syntax. Circular and forward references are detected and rejected. Use `--no-interpolate` to send raw `${VAR}` syntax.

### フィルタリング

送信する変数を制御します:```bash
# exclude public/non-secret vars
enseal share .env --exclude "^PUBLIC_|^NEXT_PUBLIC_"

# send only matching vars
enseal share .env --include "^DB_|^API_"

# skip .env parsing entirely (send raw file)
enseal share .env --no-filter

スマート受信

出力は送信された内容に適応します:```bash

.env payload -> writes to file

enseal receive CODE ok: 14 secrets written to .env

write to specific file

enseal receive CODE --output staging.env

raw string -> prints to stdout (pipe-friendly)

enseal receive CODE sk_live_abc123

force clipboard

enseal receive CODE --clipboard ok: copied to clipboard

force stdout for any payload

enseal receive CODE --no-write

receive from encrypted file drop (identity mode)

enseal receive ./staging.env.age ok: signature verified, file decrypted ok: 14 secrets written to .env

root@kitploit:~
### Inject

シークレットを受け取り、子プロセスに直接環境変数として注入します。シークレットはファイルシステムに触れることはありません。```bash
# anonymous mode: inject via wormhole code
enseal inject 7-guitarist-revenge -- npm start

# identity mode: listen for incoming transfer on relay
enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up

# from encrypted file drop
enseal inject ./staging.env.age -- python manage.py runserver

--listen を使用すると、受信側はリレーに接続して待機します。送信側は enseal share .env --to alex --relay wss://relay.enseal.dev でプッシュします。コードの交換は不要で、調整も一切必要ありません。

.env ツールキット

共有だけでなく、enseal は完全な .env セキュリティツールキットです。```bash

check: verify your .env has all required vars

enseal check error: missing from .env (present in .env.example): JWT_SECRET, REDIS_URL

diff: compare two .env files (keys only, never values)

enseal diff .env.development .env.staging

  • REDIS_CLUSTER_URL (only in staging)
  • DEBUG (only in development)

redact: strip values for safe sharing of structure

enseal redact .env DATABASE_URL= API_KEY= PORT=

validate: check values against schema rules

enseal validate .env error: missing required: JWT_SECRET error: PORT value "abc" is not an integer ok: 11/14 variables passed validation

template: generate .env.example with type hints

enseal template .env

DATABASE_URL=

API_KEY=<32+ character string>

PORT=<integer, 1024-65535>

root@kitploit:~
### 保存時暗号化

age暗号化を使用して、安全なgit保存のために`.env`ファイルを暗号化します:```bash
# whole-file encryption
enseal encrypt .env
ok: .env encrypted in-place (14 variables, age key)

enseal decrypt .env

# per-variable: keys visible for diffing, values encrypted
enseal encrypt .env --per-var
# DB_HOST=ENC[age:abc123...]
# DB_PORT=ENC[age:def456...]

# multi-recipient: anyone on the team can decrypt
enseal encrypt .env --to sarah --to alex

アイデンティティ & 鍵管理```bash

generate your keypair

enseal keys init

share your public key with teammates

enseal keys export > my-key.pub

import a teammate's key (shows fingerprint, prompts for confirmation)

enseal keys import sarah.pub

list all trusted keys and aliases

enseal keys list

show your key fingerprint (for out-of-band verification)

enseal keys fingerprint

remove a trusted key

enseal keys remove [email protected]

create aliases for convenience

enseal keys alias sarah [email protected]

create groups for multi-recipient sharing

enseal keys group create backend-team enseal keys group add backend-team sarah enseal keys group add backend-team alex enseal keys group list backend-team enseal share .env --to backend-team

delete a group

enseal keys group delete backend-team

root@kitploit:~
### パブリックリレー

無料のパブリックリレーが `wss://relay.enseal.dev` で利用可能です。クイックテストやプライベートリレーが不要な場合に使用してください。```bash
# check relay health
curl https://relay.enseal.dev/health

# use it for identity-mode transfers
enseal share .env --to sarah --relay wss://relay.enseal.dev
enseal inject --listen --relay wss://relay.enseal.dev -- npm start

# or set it globally
export ENSEAL_RELAY=wss://relay.enseal.dev

自分で試してみる```bash

1. generate keys (one-time)

enseal keys init

2. export and import your own key (for self-testing)

enseal keys export > /tmp/mykey.pub enseal keys import /tmp/mykey.pub

enter an alias when prompted (e.g. "mykey")

3. test file drop (no network needed)

enseal share --secret "TEST=works" --to mykey --output /tmp/ enseal receive /tmp/mykey.env.age

4. test relay push (two terminals)

terminal 1 (receiver):

enseal inject --listen --relay wss://relay.enseal.dev -- env | grep TEST

terminal 2 (sender):

enseal share --secret "TEST=relay_works" --to mykey --relay wss://relay.enseal.dev

root@kitploit:~
### セルフホステッドリレー

すべてをネットワーク内に維持します。リレーはステートレスであり、暗号文のみを認識します。```bash
# Docker (one command)
docker run -d -p 4443:4443 enseal/relay

# Or as a binary
enseal serve --port 4443

# Check relay health
curl http://localhost:4443/health

enseal serveはプレーンなWebSocket(ws://)を使用します。TLSを使用する場合は、リバースプロキシ(Caddy、nginx)を前面に配置し、wss://で接続します。

--relayを設定すると、すべてのモードがリレーを経由します:```bash

Anonymous mode — generates enseal channel code instead of wormhole code

enseal share .env --relay ws://relay.internal:4443

info: Share code: 3421-amber-frost

enseal receive 3421-amber-frost --relay ws://relay.internal:4443

Or set globally

export ENSEAL_RELAY=ws://relay.internal:4443 enseal share .env

root@kitploit:~
self-hosted relay を使用した Identity mode は完全にコードレスです:```bash
# receiver listens on the relay
enseal inject --listen --relay ws://relay.internal:4443 -- npm start

# sender pushes directly — no code generated
enseal share .env --to alex --relay ws://relay.internal:4443
ok: pushed to alex

スキーマ検証

プロジェクトルートにある .enseal.toml にルールを定義します:```toml [schema] required = ["DATABASE_URL", "API_KEY", "JWT_SECRET"]

[schema.rules.DATABASE_URL] pattern = "^postgres://" description = "PostgreSQL connection string"

[schema.rules.PORT] type = "integer" range = [1024, 65535]

[schema.rules.API_KEY] min_length = 32

root@kitploit:~
次に検証:```bash
enseal validate .env

検証は、.envファイルを受信したときにも自動的に実行されます — 壊れた設定が混乱を引き起こす前にキャッチします。

環境プロファイル```bash

enseal share --env staging # shares .env.staging enseal validate --env production # validates .env.production enseal diff .env.development .env.production

root@kitploit:~
## 動作のしくみ

### 匿名モード

**Wormhole(デフォルト、`--relay` なし):**

1. 送信者がペイロードを `age` で暗号化
2. SPAKE2鍵交換により、公開wormholeリレーを介して共有秘密を確立
3. 暗号化されたペイロードがリレーを経由
4. 受信者がネゴシエートされた鍵で復号
5. チャネルは破棄 — 単回使用、時間制限あり

リレーは平文を見ることはありません。wormholeコードは相互認証を提供します。

**Ensealリレー(`--relay`):**

1. 送信者がペイロードを `age` で暗号化し、生成されたチャネルコードでensealリレーに送信
2. 受信者が同じコードで同じリレーに接続し、ペイロードを受信
3. 最初の受信でチャネルが消費される

このモードではSPAKE2はありません — チャネルコードが唯一の認証情報です。

### 非同期アップロード(`--upload`)

1. 送信者がペイロードを `Envelope`(JSON、SHA-256整合性チェック)にシリアライズ
2. オプションでage scryptパスフレーズを使用してクライアント側で暗号化(`--passphrase`)
3. HTTPS経由で `burnurl.dev/api/secret` にペイロードをPOST
4. burnurl.devがサーバー側AES-256-GCMで保存時暗号化し、自己破棄URLを返す
5. URLは設定されたTTL(無料枠では最大24時間)有効、単回読み取りのみ

送信者がURLを共有します。受信者は任意のブラウザで開くことができます — ensealは不要です。`--passphrase` を使用する場合、パスフレーズは別途共有する必要があります。サーバーは平文を見ることはありません。

**階層:** APIアクセスにはburnurl.devのProまたはTeamプランが必要です。`BURNURL_API_KEY` にキーを設定してください — 無料枠にはAPIアクセスはありません。

`BURNURL_URL` を上書きして、自己ホスト型のburnurlインスタンスを指定できます。

### アイデンティティモード(公開鍵)

1. 送信者が受信者の `age` 公開鍵で暗号化
2. 送信者が自分の `ed25519` 鍵で署名
3. ペイロードがリレー、ファイルドロップ、またはwormholeを経由
4. 受信者が自分の秘密鍵で復号
5. 受信者が送信者の署名を検証

信頼は、どの鍵をインポートしたかに依存します。

**アイデンティティモードの転送オプション:**

| 転送方法 | フラグ | 動作のしくみ |
|---|---|---|
| Wormhole(デフォルト) | `--to sarah` | コードを生成。匿名モードと同様だが署名付き |
| リレープッシュ | `--to sarah --relay URL` | 受信者の決定論的チャネルにプッシュ、コード不要 |
| ファイルドロップ | `--to sarah --output ./dir/` | 暗号化された `.env.age` ファイルを生成、ネットワーク不要 |

リレープッシュの場合、受信者は `enseal inject --listen --relay URL -- cmd` で待機するか、`enseal receive ./file.env.age` でファイルドロップを受信します。

## セキュリティモデル

**保護されるもの:**
- 転送中の秘密(暗号化チャネル)
- Slack/メール履歴内の秘密(一時的、永続化なし)
- MITM攻撃(SPAKE2 / 公開鍵認証)
- 悪意のあるリレー(E2E暗号化、リレーは暗号文のみ)
- 送信者のなりすまし(アイデンティティモード: ed25519署名)
- ディスク上の秘密(インジェクションモード: プロセスメモリのみ)
- Git内の秘密(encrypt: 保存時暗号化)

**保護されないもの:**
- 侵害されたエンドポイント(マシンが乗っ取られた場合、何も役に立たない)
- 鍵の配布(インポートした鍵を信頼する — PKIもCAもなし)

## 設定

プロジェクトルートにオプションの `.enseal.toml`:

```toml```toml
[defaults]
relay = "wss://relay.enseal.dev"     # public relay (identity mode)
# relay = "ws://relay.internal:4443" # self-hosted without TLS
# relay = "wss://relay.internal:4443" # self-hosted with TLS reverse proxy

[filter]
exclude = ["^PUBLIC_", "^NEXT_PUBLIC_", "^REACT_APP_"]

[identity]
default_recipient = "devops-team"

[schema]
required = ["DATABASE_URL", "API_KEY", "JWT_SECRET"]

CLI リファレンス```

CORE enseal share [] Send secrets (file, pipe, or --secret) enseal receive [<code|file>] Receive secrets enseal inject [] -- Inject secrets into a process enseal keys Manage identity keys and aliases enseal serve Run self-hosted relay server

ツールをダウンロード

.ENV TOOLKIT enseal check [file] Verify .env has all vars from .env.example enseal diff Compare .env files (keys only) enseal redact Replace values with enseal validate Validate against schema rules enseal template Generate .env.example with type hints

ENCRYPTION enseal encrypt Encrypt .env for git storage enseal decrypt Decrypt an encrypted .env

root@kitploit:~
### `share` フラグ```
--to <name>              Identity mode: encrypt to recipient (alias, group, or identity)
--output <dir>           File drop: write encrypted file (identity mode, no network)
--upload                 Post to burnurl.dev (async, browser-readable, no CLI on recipient side)
--ttl <hours>            Secret TTL for --upload (1-24, default: 24)
--passphrase             Encrypt client-side before --upload (prompts; server never sees plaintext)
--secret <value>         Inline secret (raw string or KEY=VALUE)
--label <name>           Human label for raw/piped secrets
--as <KEY>               Wrap raw input as KEY=<value>
--relay <url>            Route through relay server. Anonymous mode: uses enseal relay transport
                         (generates channel code, bypasses wormhole). Identity mode: push to
                         recipient's channel. Also: ENSEAL_RELAY env var.
--env <profile>          Environment profile (resolves to .env.<profile>)
--exclude <pattern>      Regex to exclude vars
--include <pattern>      Regex to include only matching vars
--no-filter              Send raw file, skip .env parsing
--no-interpolate         Don't resolve ${VAR} references before sending
--words <n>              Words in wormhole code (2-5, default: 2). Wormhole mode only (no --relay).
--quiet / -q             Minimal output

receive フラグ```

--output Write to specific file --clipboard Copy to clipboard instead of stdout/file --no-write Print to stdout even for .env payloads --relay Use specific relay server --quiet / -q Minimal output

root@kitploit:~
### `inject` フラグ```
--listen                 Listen for incoming identity-mode transfer (requires --relay)
--relay <url>            Use specific relay server (also: ENSEAL_RELAY)
--quiet / -q             Minimal output

keys サブコマンド```

enseal keys init Generate your keypair enseal keys export Print your public key bundle enseal keys import Import a colleague's public key enseal keys list Show all trusted keys and aliases enseal keys remove Remove a trusted key enseal keys fingerprint Show your key fingerprint enseal keys alias Map short name to identity enseal keys group create Create a named group enseal keys group add Add identity to group enseal keys group remove Remove identity from group enseal keys group list [name] List groups or group members enseal keys group delete Delete a group

root@kitploit:~
### `serve` フラグ```
--port <port>            Listen port (default: 4443)
--bind <addr>            Bind address (default: 0.0.0.0)
--max-mailboxes <n>      Max concurrent channels (default: 100)
--channel-ttl <seconds>  Idle channel lifetime (default: 300)
--max-payload <bytes>    Max WebSocket message size (default: 1048576)
--rate-limit <n>         Max connections per minute per IP (default: 10)
--health                 Print server health check and exit

encrypt / decrypt フラグ```

--per-var Per-variable encryption (keys visible, values encrypted) --to Encrypt to specific recipients (multi-key)

root@kitploit:~
### グローバルフラグ```
--verbose / -v           Debug output (never prints secret values)
--quiet / -q             Minimal output (for scripting)

比較

ensealSlack DM1Password Sharedotenvxcroc
ゼロセットアップはいはいいいえいいえはい
エンドツーエンド暗号化はいいいえはい該当なしはい
一時的(履歴なし)はいいいえはい該当なしはい
.env対応はいいいえいいえはいいいえ
プロセスインジェクションはいいいえいいえはいいいえ
スキーマ検証はいいいえいいえいいえいいえ
保存時暗号化はい該当なし該当なしはいいいえ
自己ホスト可能リレーはいいいえいいえ該当なしはい
生文字列/パイプ対応はいはいいいえいいえはい

ロードマップ

  • v0.1 — コア: 共有/受信、パイプ/stdin、.envツールキット(チェック、差分、編集) (完了)
  • v0.2 — アイデンティティモード: 鍵、エイリアス、--toフラグ (完了)
  • v0.3 — インジェクトコマンド、自己ホストリレー (完了)
  • v0.4 — スキーマ検証、テンプレート、補間、プロファイル (完了)
  • v0.5 — 保存時暗号化(暗号化/復号) (完了)
  • v0.10 — グループ、Helmチャート、ドキュメント (完了)
  • v0.11 — セキュリティ強化、ドキュメント同期 (完了)
  • v0.12 — .enseal.toml配線、匿名モード用プライベートリレー (完了)
  • v0.16 — burnurl.dev経由の非同期アップロード(--upload) (現在)
  • v1.0 — crates.io公開、最終調整

ライセンス

MIT