Sésame Éclair
秘密はひとつ、閲覧は一度、痕跡はゼロ。鍵がリンクの外に出ることはなく、サーバーが保持するのは読めないブロックだけです。
- 年
- 2026
- 技術スタック
- Next.js · React · TypeScript · WebCrypto · WebAssembly · PostgreSQL
- プロダクトデザイン
- 応用暗号
- Web開発
- アプリケーションセキュリティ
- アクセシビリティ
- 多言語SEO

- アカウント不要、広告なし
- 0 €
- リンクの鍵。サーバーには一切送信されません
- 256ビット
- 1回限りの秘密情報で受け付けられる同時閲覧Postgresに対する自動テスト。
- 100件中1件
- サイトの対応言語
- 7
解決すべき課題。
背景
Sésame Éclairは、KAYZENがリヨンから提供している、一度だけ読める秘密情報の無料共有サービスです。パスワードや鍵を貼り付けると、エンドツーエンドで暗号化されたリンクが発行され、閲覧後、または選んだ期限が来ると消えます。KAYZENのパスワードマネージャーSésameの姉妹製品で、Sésameは残すべきものを守り、Éclairは消えるべきものを届けます。ソフトウェアは無料ですが、プロプライエタリです。公開されているのはWebアプリだけで、7言語に対応しています。拡張機能、デスクトップアプリとモバイルアプリ、コマンドラインツールは開発済みですが、まだ公開されていません。
制約
メールやSlackで送ったパスワードが本当に消えることはありません。履歴やバックアップ、検索インデックスに残り、いつかその受信箱にアクセスした人なら誰でも読めてしまいます。使い捨てリンクのサービスはすでにありますが、自社のサーバー上で暗号化しているものもあり、たとえば2026年10月6日に確認したOnetime Secretのページにはその旨が記されています。また、ファイル、秘密情報のリクエスト、独自ドメインを有料プランに限定しているサービスも少なくありません。必要だったのは、無料でアカウント不要、そして提供元を信頼しなくても機密性が保たれるサービスでした。
解決策
鍵がリンクの外に出ることはありません。ブラウザが256ビットのランダムな鍵を生成して秘密情報を暗号化し、その鍵をアドレスの#記号の後ろに置きます。この部分は、ブラウザがサーバーに決して送信しない部分です。サーバーが保存するのは暗号化されたブロックといくつかの日時だけで、それを一度だけ渡し、同じ処理の中で削除します。ほかのすべてはこのルールから導かれます。リンクのページに秘密情報が含まれることはなく、PINコードをサーバーが試すことはできず、仕組みの限界はひとつ残らず、伏せるのではなくサイトに明記しています。
納品時に計測したスコア。
本番環境のサイトのLighthouseスコアです。数値はそのまま公開しています。低いスコアがあれば、その原因と改善計画を下に記載しており、伏せることはしません。
すべての判断に、理由がある。
Sésameファミリーに、ブランドのアクセントをひとつ
見出しにはネイビー(#1F3B61)、メインのアクションにはテラコッタ(#B7481F)。kayzen-lyon.comとSésameのブランドガイドラインです。「稲妻」のアンバー(#F2C14E)はロゴタイプ専用です。システムの設定にかかわらず初期表示はライトテーマで、ダークテーマはユーザーが選び、その選択が記憶されます。
フォームこそが最初の画面
このサイトを訪れるのは秘密情報を送るためで、説明を読むためではありません。そのため入力欄がヒーローを占めています。オプションは折りたたまれていますが、「1回閲覧・24時間後に期限切れ・コードなし」という読みやすい1行に要約されており、閲覧回数、期限、保護、受信者を変更するときだけ展開します。
まだ存在しないものは、そうと明記
「機能」ページでは、各機能を「利用可能」か「予定」に分類しています。「ダウンロード」ページでは、拡張機能、Windows、macOS、コマンドライン、Android、iPhoneを「近日公開」と表示し、Webアプリへ案内しています。セキュリティ製品で存在しない機能を謳えば、得られる信頼よりも失う信頼のほうが大きくなります。
読むことを妨げない動き
メリハリのあるアニメーションカーブ、押すとわずかに沈むボタン、マウス操作時に限ったホバー、スクロールに合わせて純粋なCSSで収まるカード。フェードは使わず、コントラストを決して下げません。システムがアニメーションの削減を求めている場合は、すべて無効になります。
プロジェクトのカラーパレット
インク
#1F2937
テキスト
ネイビー
#1F3B61
見出し
テラコッタ
#B7481F
主要なアクション
稲妻アンバー
#F2C14E
ロゴタイプ
グリーン
#1F6B48
確認
タイポグラフィ体系
見出し用書体
Outfit 800
本文用書体
Plus Jakarta Sans 400
kayzen-lyon.comのフォントファミリーを、可変フォント版で自ドメインから配信しています。セキュリティポリシーはサードパーティのフォントを一切許可していません。
その裏側にある技術。
- Next.js
- React
- TypeScript
- WebCrypto
- WebAssembly
- PostgreSQL
AES-256-GCM、鍵はフラグメントに
内容はWebCryptoによりAES-256-GCMで暗号化され、96ビットのランダムな初期化ベクトルと、秘密情報の識別子に結び付けた関連データを使います。鍵はHKDF-SHA-256で導出します。暗号化の前に、内容は段階的なサイズ(1、4、16、64 KiB…)までパディングされるため、サーバーは実際の長さを知ることができません。フォーマットはテストベクトルとともに「フォーマットv1」ページで公開しています。
サーバーが試せないPINコード
コードはArgon2id(64 MiB、3パス)で処理されます。WebAssemblyで実行され、コードが求められたときにだけ読み込まれます。サーバーに送られる検証値は、コードとリンクの鍵から計算されるため、この鍵がなければサーバーはコードを検証することも試すこともできません。サーバーは失敗回数を数え、5回目の試行で秘密情報を破棄します。限界は「セキュリティ」ページに明記しています。リンクとデータベースのコピーの両方を持つ人は、短いコードをオフラインで解読できます。
閲覧は1回だけ、100件が同時に来ても
GETで取得するリンクのページに暗号文が含まれることはなく、「表示」をクリックした後、POSTリクエストで初めて渡されます。そのため、Slack、Teams、Outlookのプレビュー用ボットが閲覧回数を消費することはありません。受け渡しと削除は1つのSQLクエリで行われます。テストでは、1回限りの秘密情報に100件の表示リクエストを同時に送り、受け付けられるのが1件だけであることを確認しています。不明なリンク、期限切れ、閲覧済み、破棄済みのいずれでも、返る応答は同じです。
サードパーティのスクリプトなし、閉じたポリシー
Content-Security-Policyはリクエストごとのnonceを使い、スクリプトにはunsafe-inlineもunsafe-evalも許可しません。認めているのはArgon2id用のwasm-unsafe-evalだけです。connect-srcは自ドメインに限定、frame-ancestorsはnone、HSTSは2年間でpreload付き、Referrer-Policyはno-referrerです。その代償は受け入れたうえで文書化しています。ページは静的に生成されるのではなく、リクエストのたびにレンダリングされます。
EU域内でホスティング、データベースにIPアドレスなし
アプリケーションはパリのVercelで動作し、PostgresデータベースはフランクフルトのNeonにあります。IPアドレスを含む列はひとつもありません。レート制限は、毎日変わる不可逆なフィンガープリントに基づいています。データへのアクセスはDrizzleと標準的なPostgresを通じて行うため、ホスティング事業者は置き換え可能です。
暗号コアはひとつ、複数のクライアントを準備中
暗号処理はすべて単一のモジュールpackages/cryptoに集約され、決定論的なベクトルでテストされています。コード上では、同じモジュールがすでにManifest V3の拡張機能、Electronのデスクトップアプリ、Android・iOS向けのCapacitorアプリ、MCPサーバーを備えたコマンドラインツールを支えています。現時点で公開されているものはなく、サイトでは今後提供予定として紹介しています。
検索で見つけてもらうための仕組み。
検索意図ごとに1ページ
5本の比較記事(Onetime Secret、Password Pusher、scrt.link、Bitwarden Send、Password.link)、4つのユースケースページ(制作会社、DevOps、ITサポート、個人)、ブラウザ上で動く2つの無料ツール(パスワード生成ツール、強度チェッカー)、そしてブログ。各比較記事には調査日、出典、「誤りがありましたか?ご連絡ください」の1行を記載しています。
相互にリンクした7言語
フランス語はルートに、英語、ドイツ語、スペイン語、イタリア語、ポルトガル語、オランダ語はそれぞれのプレフィックスの下に置いています。各ページはhreflangで対応ページを宣言し、x-defaultも設定しており、サイトマップにはそのすべてを掲載しています。機械翻訳は「校閲中」と明示しており、法的文書についてはフランス語版のみが正本です。
FAQPage、SoftwareApplication、llms.txt
FAQにはFAQPageのマークアップを付け、製品はSoftwareApplicationとして価格0 €で宣言しています。llms.txtファイルは、サービスが保証することだけでなく、その限界もアシスタントに伝えます。外部監査を受けていないこと、プロプライエタリなソフトウェアであること、アプリがまだ提供されていないことです。
誰もが使えるように。
2025年6月から、欧州アクセシビリティ法(European Accessibility Act)により、多くのオンラインサービスにデジタルアクセシビリティが義務づけられています。当社は後から対応するのではなく、設計段階から取り組んでいます。
44ページでWCAG 2.2 AAを検証
エンドツーエンドテストでは、複数の言語の44ページと、ライトテーマ・ダークテーマ両方のトップページが、WCAG 2.0、2.1、2.2のAAレベルでaxe-coreのチェックに合格しています。キーボード操作、見えるフォーカス、スキップリンクはアクセシビリティ方針に記載しています。
テストで検証したコントラスト
カラートークンの組み合わせごとに最低比率を定め、自動でチェックしています。明るい背景上の本文と見出しはAAAレベルの7:1、補助テキスト、アクセントのリンク、ステータスメッセージは両方のテーマで4.5:1です。
過大評価しない宣言
独立機関によるRGAA監査を受けていないため、アクセシビリティ方針では、準拠するよう設計されているにもかかわらず、基準上は「非準拠」と記しています。証拠のない主張はしないという製品のルールを、アクセシビリティにも適用しています。
納品したもの。
- ホーム — 秘密情報の作成、3つのステップ、簡易比較
- 機能 — 機能ごとに「利用可能」か「予定」か
- セキュリティ — プリミティブ、脅威、限界。フォーマットv1とテストベクトル
- サーバーに見えるもの — 実際のリクエストをリアルタイムで表示
- 秘密情報をリクエスト — 依頼者だけが読める暗号化された受け取りリンク
- 比較、ユースケース、FAQ、料金、ブログ、ツール
- サービス状況、透明性、更新情報、ロードマップ
- 法的表示、利用規約、プライバシー、アクセシビリティ、通報
プロジェクトの流れ。
基盤
モノレポ、静的解析付きの継続的インテグレーション、暗号モジュールとテストベクトル付きのフォーマットv1、デザイントークン、アーキテクチャ上の決定と脅威モデル。
サーバーとアプリケーション
Postgresデータベース、アトミックな表示処理、試行5回までのPINコード、追跡リンク、定期削除、nonceベースのセキュリティポリシー。作成、表示、追跡の各画面。
公開サイト
機能、セキュリティ、日付入りの比較、FAQ、ユースケース、ツール、法的ページ、「サーバーに見えるもの」、サービス状況と透明性。
公開
実際のホスティングを明示(アプリはパリ、データベースはフランクフルト)、7言語、変更のたびにチェックするパフォーマンス予算、kayzen-lyon.comにそろえたレイアウト。
その他のプラットフォーム
拡張機能、デスクトップ、モバイル、コマンドラインを同じコアで開発済み。ストアでの公開は保留中。外部監査はバージョン1.0の前に予定しています。


