本文へスキップ

一度で消える秘密メモ

Self-Destructing Note

ブラウザ内でメモを暗号化し、一度読まれたら中身が消える使い切りのリンクを渡します。

チャットで送ったパスワードは、両方の端末とサービスのサーバーに、いつまでも履歴として残ります。一度きりのリンクは、その履歴の外へ秘密を移します。メモはブラウザの中で暗号化され、鍵はURLのフラグメントに乗り、サーバー上のコピーは読まれた瞬間に破棄されます。

⚡ ローカル処理、必要ならサーバーが補助しますnoteshareephemeralsecret

メモはこのタブの中で AES-256-GCM により暗号化されます。鍵はリンクの # より後ろにしか存在せず、ブラウザは # から後ろをサーバーへ送りません(RFC 3986 §3.5)。サーバーが受け取るのは、開けない暗号文だけです。

暗号文はサーバーのメモリにだけ置かれます。時間が切れるか一度読まれると消え、サーバーが再起動すれば、それ以前に作られたメモはすべて忘れられます。

最大 64 KB。

使い方

  1. メモを書きます

    何かが送られる前に、タブの中で暗号化されます。サーバーが受け取るのは暗号文で、不透明なIDのもとにメモリへ置かれます。

  2. フラグメントを含めてリンク全体をコピーします

    `#`より後ろが復号の鍵で、ブラウザがそれをサーバーへ送ることはありません。`#`のところで切れたリンクを開いても、誰にも読めないメモが開くだけです。

  3. リンクを送り、一度きりだと伝えます

    最初に開いた時点でメモは破棄されます。リンクのプレビューを取りに行くチャットのクライアントも、その最初の1回になりえます。届いた時点ですでに消えているメモは、たいてい受け取った相手ではなくプレビューのボットのしわざです。

よくある質問

サーバーはメモを読めますか。

いいえ。サーバーが持っているのは暗号文で、鍵を目にすることはありません。鍵はフラグメントにとどまります。これは方針ではなく構造上の性質です。サーバーには復号に使えるものが何もありません。

一度も開いていないのに、メモがもうないと出ます。

原因は2つです。リンクのプレビューが先に取得したか、あるいはサーバーが再起動したかです。前者なら、リンクが展開されない形で送ってください。後者については、メモはメモリの中だけにあるので、デプロイのたびに未読のものはすべて忘れられます。

もっと長く残したり、2回読めるようにできますか。

できません。これは意図してそうしています。読んでも残るメモは、見つけられるのを待ちながらサーバーに置かれているメモであり、有効期限こそがその窓を小さく保っています。

ファイルにも使えますか。

テキストしか受け付けません。ファイルなら、ファイルの暗号化・復号で暗号化して、パスフレーズをこのようなメモで送ってください。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。

ファイルの暗号化・復号

File Encrypt & Decrypt

パスフレーズからAES-256-GCMでどんなファイルでも暗号化し、ここで作ったファイルを復号します。

ブラウザの中だけで動きます

パスワード生成

Password Generator

長さ・使う文字種・紛らわしい文字を除く規則を決めて、必要な本数だけランダムなパスワードを作ります。

ブラウザの中だけで動きます

使い捨てメール(捨てアド)

Disposable Email

一定時間だけメールを受け取れる使い捨ての受信箱を渡し、添付ファイルもその場で開けます。

サーバーを使います

テキストの暗号化・復号

Text Encrypt & Decrypt

パスフレーズからAES-GCMでメッセージを暗号化し、それだけで完結するBase64の塊にします。

ブラウザの中だけで動きます

怪しいURLの確認

Suspicious URL Check

開く前にリンクの形(紛らわしい文字・IPそのままのホスト・@のごまかし・深いサブドメイン・妙なポート・短縮サービス)を調べ、望めばリダイレクトをたどってドメインの登録時期も引きます(評判データベースは使いません)。

ローカル処理、必要ならサーバーが補助します

CORSテスター

CORS Tester

指定した生成元からブラウザが送るプリフライトとOriginを載せたGETを実際に送り、Fetch標準の規則でどのヘッダーが止めたのかを説明します。

サーバーを使います