web-dev-qa-db-ja.com

OS Xでの個々のファイルの暗号化

私はペーパーレス化しようとしています。スキャンするドキュメントを保護したいと考えています。ユースケースでは、紙のドキュメントをスキャンし、各ファイルを暗号化して、ローカルおよびさまざまなバックアップ先に保存します。これらのドキュメントを保護する方法についてさまざまなアイデアを調査してきましたが、さらにガイダンスが必要です。ここに私が実装しようとしているシステムの詳細があります:

  • 保護はファイルレベルです。誰かがファイルを手に入れたら、そのファイルを使用できないようにしてほしい。
  • 伝送の安全性は範囲外であり、ファイルを転送するシステムによって処理されると想定されています。
  • ファイルはMacで暗号化されます。
  • 復号化は可能な限り広く利用できる必要があります。たとえば、iPhoneでファイルを表示したい場合、既存のライブラリを使用して、そのためのアプリを作成できます。

私はOS Xでセキュリティと暗号化ライブラリを使用して、このための軽量ツールを作成することを検討しました。私はソフトウェアエンジニアなので、自分のアプリケーションを書くのはまったく問題ありませんが、セキュリティは初めてです。私は、私よりも多くのことを知っている人に相談することなく、セキュリティの決定を下すことに抵抗があります。

  • 私はAESを検討しましたが、パディングモードと暗号化モードについて読みましたが、どちらを選択するか詳細に迷いました。
  • 私はGnuPGを検討しましたが、別のツールをダウンロードする必要があるという考えは好きではありません。はい、それはオープンソースですが、OSに組み込まれた機能を使用できる場合は、それが優先されます。

これに推奨されるアプローチはありますか?

7
Halen

次のようにopensslを使用できます。

openssl enc -e -aes-256-cbc -salt -a -in /file/to/encrypt -out /file/encrypted

復号化するには、-eを-dに置き換えます。 OS XとLinuxの両方で動作するはずですが、他のシステムではわかりません。 man opensslを使用して、オプションと使用可能な暗号をリストします。

編集:opensslがMD5のいくつかのラウンド(最適なハッシュアルゴリズムではない)をキーの派生に適用するように見えます。これにより、総当たり攻撃が容易になります。

より良い解決策はGnuPGです(私はあなたがプリインストールされたツールを求めていることを知っています):

暗号化するには:

gpg -c -a --cipher-algo AES256 /file/to/encrypt

復号化するには:

gpg /file/to/decrypt
3
Matteo