BT

InfoQ ホームページ ニュース Android上のファイルを暗号化するFacebook Conceal

Android上のファイルを暗号化するFacebook Conceal

ブックマーク

原文(投稿日:2014/01/29)へのリンク

Facebookは,Android用のファイル暗号化および認証Java APIのセットであるConcealをオープンソースとして公開した。ライブラリを小さく保つためにConcealでは,OpenSSLのアルゴリズムと定義済みオプションのサブセットを使用する。現時点でのサイズは85KBだ。

ライブラリがターゲットするのは,FroyoからJelly Beanまでの古いAndroidデバイスである。これらの上ではAndroidのネイティブサポートよりはるかにパフォーマンスがよい,とFacebookは述べている。

上記のベンチマークはGalaxy Y上で,ネイティブのAndroidのアルゴリズム(ES-CTR-HMAC-SHA1)とBouncycastle(AES-GCM),Conceal(AES-GCM)とを比較したものだ。

GoogleはKitKatでOpenSSLのサポートを導入しているが,Facebookによると},デフォルトの暗号ストリームの “パフォーマンスはあまりよくない” という。“私たちの暗号ストリーム (BetterCipherInputStream参照)に置き換えれば,Concealと比較できるレベルになります。”

以下のコードは,Concealを使ってファイルを暗号化する方法を示したものだ。

// Creates a new Crypto object with default implementations of 
// a key chain as well as native library.
Crypto crypto = new Crypto(
  new SharedPrefsBackedKeyChain(context),
  new SystemNativeCryptoLibrary());

// Check for whether the crypto functionality is available
// This might fail if Android does not load libraries correctly.
if (!crypto.isAvailable()) {
  return;
}

OutputStream fileStream = new BufferedOutputStream(
  new FileOutputStream(file));

// Creates an output stream which encrypts the data as
// it is written to it and writes it out to the file.
OutputStream outputStream = crypto.getCipherOutputStream(
  fileStream,
  entity);

// Write plaintext to it.
outputStream.write(plainText);
outputStream.close();

Concealは大規模な暗号化ファイルに使用することができる。Facebookではこれを,スマートフォン/タブレットのSDカード内のデータやイメージの暗号化に利用している。

ConcealのGitHubのページには,OpenSSLをベースとした小型ライブラリ作成の手順が公開されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。