ファイルや機密情報をクラウドで共有すると、送信後もサーバー上にデータが残り続けるケースがほとんどです。「SkySend」はブラウザ内で暗号化を完結し、有効期限や最大ダウンロード数に達したタイミングでデータを自動削除、さらに日本語UIでアカウント不要のまま無料で使え、セルフホストにも対応したオープンソースツールとして公開されています。

SkySend | Encrypted File & Note Sharing

https://skysend.app/



Skyfay/SkySend: Minimalist, end-to-end encrypted, self-hostable file and note sharing. Zero-knowledge server - files and notes are encrypted in the browser before upload. No accounts, no telemetry, built for speed and security.

https://github.com/Skyfay/SkySend

◆エンドツーエンド暗号化の仕組み

・ゼロナレッジ暗号化

サーバーに送信される前にブラウザ内でWeb Crypto APIを利用し暗号化、ファイル本体だけでなくファイル名やファイルサイズなど全ての情報を暗号化することでサーバー側には暗号化後のデータだけ送信されます。

◆暗号化鍵はURLフラグメントで管理

復号鍵は共有URLの#以降にあるフラグメント識別子に書かれており、通常のHTTPリクエストではサーバーへ送信されないため、サーバーのアクセスログに復号鍵が残らない設計です。

◆SkySendの利用方法

公式サイトへアクセスし「始める」をクリック。



アカウントの作成は不要でシンプルなUIがブラウザに設定されている言語で表示されます。



ファイルを送信する場合はファイルを選択する、もしくはドロップエリアにドロップ。



「有効期限」に任意の有効期限、「最大ダウンロード数」に任意のダウンロード数を選択し「パスワード保護」のトグルをクリック。



パスワードの入力欄の右端にある「自動生成」ボタンをクリックし「長さ」や「パスワードに含める文字」を選択して「生成」ボタンをクリック。



パスワードが生成されたら表示欄の右横にある「コピー」ボタンをクリックしてパスワードをコピーしメモ帳などにメモしてから「アップロード」ボタンをクリック。



共有リンクが生成されるので、コピーやQRコードおよび共有機能のあるアプリを経由してURLとパスワードを相手に伝えます。



ファイルを受け取るには伝えられたURLにアクセスしパスワードを入力して「ロック解除」をクリック。



保存用ダイアログが表示されるので保存先を指定して「保存」をクリック。



ファイルがダウンロードされます。



1回だけ有効な共有リンクを作成した場合、ダウンロード後同じリンクにアクセスすると「アップロードが見つかりません」と表示され利用できなくなりました。



なお、アップロード時に共有URLを保存し忘れた場合は「アップロード履歴」をクリック。



有効なリンクがある場合は履歴に表示されるので再度ファイルをアップロードする手間を省けます。ただし、パスワードは再表示されないので、パスワードを設定した場合はパスワードの保存は忘れずに行ってください。



◆ファイル以外も暗号化して送信

・テキスト

プレーンテキストやマークダウンが選択可能。



・パスワード

パスワード生成機能がありメニューの「パスワード」から「パスワード生成」ボタンをクリックするとパスワード生成フォームが表示されるので「長さ」や「パスワードに含める文字」を選択して「生成」ボタンをクリック。



パスワードが生成されます。



・コード

コードを送信する場合はテキストではなく専用のコードフォームで送信します。メニューの「コード」でフォームを表示し、「コードブロック」にコードを記述して「メモを作成」ボタンをクリックして共有リンクを作成。



リンクを受け取った相手がブラウザでアクセスするとコードに行番号やシンタックスハイライトが適用された状態で表示されます。



・SSH Key

公開鍵・秘密鍵を専用のフォームで送信できます。メニューの「SSH Key」から「生成」タブをクリックし「鍵ペアを生成」ボタンをクリック。



公開鍵・秘密鍵が生成されます。



◆期限切れデータの消去

期限や回数により利用できなくなったリンクのファイルは自動的に削除されるので万が一、サーバーがハッキングされてもデータが存在せず漏えいのリスクを軽減できます。

◆SkySendのセルフホスト構築方法

セルフホストに構築することで完全に管理された状態で暗号化した情報を送信できます。今回はWindowsにDocker DesktopとGit for WindowsのGit Bashを用意した環境で構築します。作業フォルダにdocker-compose.ymlを作成。


# docker-compose.yml
services:
skysend:
image: skyfay/skysend:latest
container_name: skysend
restart: always
ports:
- "3000:3000"
volumes:
- ./data:/data
- ./uploads:/uploads
environment:
- BASE_URL=http://localhost:3000
- TZ=Asia/Tokyo
- DEFAULT_THEME=system


コンテナを起動します。


docker compose up -d


ブラウザでBASE_URLに設定したアドレスにアクセスしアップロード画面が表示されればインストール完了です。