VeilShareがファイルを安全に守る仕組み

VeilShareは、そもそも私たちを信頼してファイルを預けてもらう必要がないように設計されています。すべてのデータはアップロード前にお使いのデバイス上で暗号化され、鍵はあなたの手元に残ります。このページでは、その仕組みとアカウントの保護方法、そしてデータセンターで障害が起きた場合にデータがどうなるのかを詳しく説明します。

最終更新:

セキュリティの概要

  • ファイル本体、ファイル名・フォルダ名、プレビューは、アップロード前にブラウザ内でAES-256-GCMによって暗号化されます
  • 暗号鍵が使える状態でサーバーに届くことはないため、私たちがファイルを読むことはできません
  • アカウントのパスワードがデバイスの外に出ることはありません
  • メールで届くワンタイムコードによる2段階認証を利用できます(任意)
  • ファイルは複数のデータセンターに冗長化して保存され、火災や水害にも耐えられるよう設計されています
  • サーバーとデータベースはフィンランドにあり、GDPRとフィンランドのデータ保護法のもとで運用されています

AES-256-GCMによるエンドツーエンド暗号化

ファイルをアップロードすると、ブラウザがそのファイル専用の256ビットのランダムな鍵を新たに生成します。ファイルは複数のチャンクに分割され、各チャンクはそれぞれ固有のナンスを使ってAES-256-GCMで暗号化されてから送信されます。ファイル名も同じ鍵で暗号化されるため、何を共有しているのかも私たちにはわかりません。写真や動画の場合は、小さなプレビューがブラウザ内で作成され、同じ鍵で暗号化されます。

フォルダも同じ仕組みです。フォルダごとに固有のランダムな鍵があり、その鍵でフォルダ名を暗号化し、中にあるすべてのアイテムの鍵を保護しています。そのため、フォルダを共有しても、アクセスできるのはそのフォルダの中身だけです。

AES-GCMは認証付き暗号です。ディスクの故障であれ第三者による改ざんであれ、暗号化されたファイルが1ビットでも変更されると、壊れたファイルを黙って渡すのではなく、復号そのものが失敗します。

鍵の保管場所

共有リンクにはそれぞれ固有のランダムな鍵があり、リンクの「#」以降の部分に含まれています。ブラウザは、URLのこの部分をサーバーに送信しません。受信者がリンクを開くと、ブラウザがこの鍵でファイルの鍵を取り出し、暗号化されたファイルをダウンロードして、端末上で復号します。私たちが目にするのは、暗号化されたデータだけです。

ゼロ知識設計のアカウント

VeilShareはアカウントなしで利用できます。アカウントを作成した場合でも、私たちがファイルを読めない設計になっており、パスワードがデバイスの外に出ることもありません。

ログイン時、ブラウザはパスワードをArgon2idで処理します。Argon2idはメモリを大量に使うアルゴリズムで、パスワードの推測に時間とコストがかかるよう設計されています。その結果から、2つの異なる鍵を導き出します。1つはサーバーに本人であることを証明するための鍵、もう1つはあなた専用のマスターキーを取り出すための鍵です。サーバーに保存されるのは1つ目の鍵のソルト付きハッシュだけで、マスターキーは2つ目の鍵で暗号化された状態で保存されます。

アカウントに保存されたすべてのファイルとフォルダの鍵は、直接、または上位のフォルダを介してマスターキーで保護されています。そのため、ログインすればどのデバイスからでもファイルを開けますが、私たちが保持しているのは保護された状態の鍵だけです。

回復キーと鍵の更新

登録時には回復キーが発行されます。私たちは鍵を持っていないため暗号化をリセットできず、パスワードを忘れた場合に保存したファイルへのアクセスを維持する唯一の方法がこの回復キーです。鍵が漏れたおそれがある場合は、設定からマスターキーを更新できます。保存済みのすべてのファイルが、ブラウザ内で新しいマスターキーによって保護し直されます。

2段階認証

アカウント設定で2段階認証をオンにすると、正しいパスワードだけではログインできなくなります。

  • コードは暗号論的に安全な乱数生成器で生成されます
  • 各コードの有効期限は10分で、使えるのは1回だけです
  • コードは平文ではなく、ハッシュ化して保存されます
  • 総当たり攻撃を防ぐため、コードの入力と再送信のリクエストには回数制限があります

また、アカウントにログインしているすべてのデバイスを確認でき、心当たりのないセッションを個別に、またはまとめてログアウトさせることもできます。

共有リンクの保護

リンクを共有した相手は、その中身を復号できます。そのため、リンクを使える人や期間を制限するための機能を用意しています。フォルダのリンクには、後から追加したファイルも含めてフォルダ内のすべてが含まれ、リンクを無効にするか、設定した上限に達するまで有効です。

パスワード保護

共有リンクにパスワードを設定すると、パスワードなしでは開けなくなります。パスワードは送信前にブラウザ内でPBKDF2によってハッシュ化され、定数時間で照合されます。何度も間違えた場合はブロックされます。これはリンクに追加のロックをかけるもので、暗号化の層が増えるわけではありません。リンクとパスワードは、別々の手段で伝えるようにしてください。

有効期限とダウンロード回数の上限

共有リンクは、指定した時間が経過するか、指定した回数ダウンロードされると無効になります。また、いつでも手動で無効にできます。無効になったリンクからファイルにアクセスすることはできず、再び有効にすることもできません。同じファイルやフォルダをもう一度共有したい場合は、新しい共有リンクを作成してください。アカウントなしでアップロードされたファイルやフォルダは、その後1時間以内に完全に削除されます。アカウントに保存されたファイルは、削除するまで残ります。

火災・水害・ハードウェア障害への備え

暗号化は、人からファイルを守るためのものです。ここでは、火災や水害、ハードウェアの故障といった物理的な災害からファイルを守る仕組みを紹介します。

データセンターが1つ失われても耐えられるファイルストレージ

暗号化されたファイルは、極めて高い耐久性を持つよう設計されたCloudflare R2に保存されます。各ファイルは、同じリージョン内にある複数のデータセンターの多数のディスクに、複数のコピーまたはイレイジャーコーディングされた断片として分散して保存されます。Cloudflareは、ディスクの故障や、火災・水害によるデータセンターの物理的な被害があってもデータが失われないよう設計しています。

フィンランドのサーバーとデータベース、毎日のバックアップ

アプリケーションサーバーとデータベースは、フィンランドのヘルシンキにあるHetznerのデータセンターで稼働しています。このデータセンターは、情報セキュリティマネジメントの国際規格であるISO/IEC 27001:2022の認証を取得しています。そのため、アカウントのデータにはGDPRとフィンランドのデータ保護法が適用されます。

データベースは毎日自動でバックアップされ、直近7日分のバックアップが保持されます。サーバーに障害が発生しても、最新のバックアップから復旧できます。

ハードウェアが盗まれてもファイルは漏れない

ファイル本体、ファイル名・フォルダ名、プレビューは、私たちが一切保持しない鍵で暗号化されています。そのため、ディスクの盗難やバックアップの流出、サーバーへの不正アクセスがあっても、共有した内容が漏れることはありません。

防ぎきれないこと

完璧なセキュリティを約束できるサービスはありません。リスクがどこにあるのか、正直にお伝えします。

  • あなた、または受信者のデバイスに潜むマルウェア
  • サービスの運営に必要な基本的なメタデータ(ファイルサイズ、リンクの有効期限、ファイルがどのフォルダにまとめられているかなど)は、私たちにも見えます
  • サービスの運営に必要な基本的なメタデータ(ファイルサイズ、有効期限、その他の機密性の低いデータなど)は、私たちにも見えます

処理するデータとその保存期間の一覧は、プライバシーポリシーをご覧ください。セキュリティ上の問題を見つけた場合は、お問い合わせページからお知らせください。調査いたします。

よくある質問

いいえ。ファイルはアップロード前にブラウザ内で暗号化され、鍵は共有リンクの中に含まれるか、アカウントのファイルの場合はパスワードで保護されています。私たちが保存しているのは、私たちには復号できない暗号化データだけです。

銀行や政府機関でも使われている認証付き暗号の標準規格、AES-256-GCMを採用しています。ファイルごとに256ビットのランダムな鍵が割り当てられ、アカウントのパスワードはArgon2idで強化されています。

暗号化されたファイルはCloudflare R2に保存されています。各ファイルは複数のデータセンターの多数のディスクに分散されているため、1つの拠点が失われても復元できます。データベースも毎日自動でバックアップされています。

回復キーがなければできません。共有リンクの場合、鍵はリンクの一部です。アカウントのファイルの場合は、登録時に表示された回復キーを使ってパスワードを再設定できます。どちらもない場合は、私たちを含め誰もファイルを復号できません。

はい。アカウント設定でオンにすると、ログインのたびに、メールで届く6桁のコード(有効期限10分)の入力も必要になります。

出典

ファイルを安全に共有する

無料・登録不要。ファイルはアップロード前にブラウザ内で暗号化されるため、私たちが読むことはできません。

ファイルを共有