アカウント名:
パスワード:
動画見た感じだとブラウザで暗号化するのかな。リンクもブラウザで生成してサーバ経由しないなら安心。でも復号キーもリンクに含まれるんだから、結局ダウンロードすればMozilla側に漏洩するってことだよね。
ソース [github.com]を読んでみた。
モダンブラウザーが必要な理由は、暗号化・復号にWebCrypto APIを使っているから。あと暗号化を全部メモリ上でやっているので、(1GB制限しなくても)あまり大きすぎるファイルはメモリ不足で扱えない。
Windowsなら「仮想メモリ」設定で「ページング ファイルなし」にしていない限り、大きいファイルでも仮想メモリが使われるだけなので、メモリ不足で扱えないなんてことは起こりません。
暗号鍵とかそういう機密データがHDDやSSDにスワップするのはセキュリティ上好ましくないからといってもWindowsは欠陥OSなのでアプリ側からスワップを回避するのは困難(というかOSのカーネルレベルを書き換えないと無理)ですだから、WebCrypto APIもスワップを完全
Win32APIのVirtualLock()が機能しないケースがあるってこと? 初めて聞いたしググっても出てこないな。ソースあります?
自己レス。適切な解説 [microsoft.com]を見つけた。
というわけで、WindowsではAWE関数を使えばできるが、セキュリティの目的ならばメモリ上に維持することに血道を上げるのではなく、CryptProtectData()/CryptUnProtectData()を使うのが正しい。これによって、秘密データを生のまま保持する時間を極めて短時間にできる。これによってスワップファイルへのオフラインクラックのリスクも極小になるが、さらにそれも防止したいなら、これにBitLockerを組み合せろということなんだろう。
VirtualAlloc()の動作は、これのAPIが専らパフォーマンス向上目的であることを考えればそんなに不思議でもない。スレッドが停止しているときにメモリだけ確保する意味はないので。停止しない処理に対して使う限りは、意図通りに作用してくれるだろう。
全体として、合理的でセキュアな設計だと思う。TrueCryptの作者がAWE関数群を知らなかったのは、不勉強だったというしかないな。
非常に参考になった。参考になるとか、素晴らしい洞察のモデをあげたいところだが、ACなのでモデ権がないのが残念でならない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
暗号化 (スコア:0)
動画見た感じだとブラウザで暗号化するのかな。
リンクもブラウザで生成してサーバ経由しないなら安心。
でも復号キーもリンクに含まれるんだから、結局ダウンロードすればMozilla側に漏洩するってことだよね。
Re: (スコア:2, 参考になる)
ソース [github.com]を読んでみた。
メモリ不足でも「仮想メモリ」が使われるだけ (スコア:1)
モダンブラウザーが必要な理由は、暗号化・復号にWebCrypto APIを使っているから。
あと暗号化を全部メモリ上でやっているので、(1GB制限しなくても)あまり大きすぎるファイルはメモリ不足で扱えない。
Windowsなら「仮想メモリ」設定で「ページング ファイルなし」にしていない限り、
大きいファイルでも仮想メモリが使われるだけなので、メモリ不足で扱えないなんてことは起こりません。
暗号鍵とかそういう機密データがHDDやSSDにスワップするのはセキュリティ上好ましくないからといっても
Windowsは欠陥OSなのでアプリ側からスワップを回避するのは困難(というかOSのカーネルレベルを書き換えないと無理)です
だから、WebCrypto APIもスワップを完全
Re: (スコア:0)
Win32APIのVirtualLock()が機能しないケースがあるってこと? 初めて聞いたしググっても出てこないな。
ソースあります?
Re:メモリ不足でも「仮想メモリ」が使われるだけ (スコア:1)
自己レス。適切な解説 [microsoft.com]を見つけた。
というわけで、WindowsではAWE関数を使えばできるが、セキュリティの目的ならば
メモリ上に維持することに血道を上げるのではなく、CryptProtectData()/CryptUnProtectData()を使うのが正しい。
これによって、秘密データを生のまま保持する時間を極めて短時間にできる。
これによってスワップファイルへのオフラインクラックのリスクも極小になるが、さらにそれも防止したいなら、これにBitLockerを組み合せろということなんだろう。
VirtualAlloc()の動作は、これのAPIが専らパフォーマンス向上目的であることを考えればそんなに不思議でもない。
スレッドが停止しているときにメモリだけ確保する意味はないので。
停止しない処理に対して使う限りは、意図通りに作用してくれるだろう。
全体として、合理的でセキュアな設計だと思う。
TrueCryptの作者がAWE関数群を知らなかったのは、不勉強だったというしかないな。
Re: (スコア:0)
非常に参考になった。
参考になるとか、素晴らしい洞察のモデをあげたいところだが、ACなのでモデ権がないのが残念でならない。