QA@IT

iOSアプリのソースコードとSQLiteのセキュリティについて

3708 PV

現在SQLiteを利用したiOSアプリを作成しています。

SQLiteについてはSQLCipherを利用し、暗号化をしています。

SQLiteは暗号化をしているので中を覗かれても、内容は
分からないと思っていますが、iOSアプリのソースコード
については覗かれる可能性があるのでしょうか?

SQLCipher用の暗号化キーについてはソースコードに
記述しているため、とても不安です。

また、ソースコードへの記述以外に暗号化キーを安全に
格納・利用する方法があれば教えてください。

よろしくお願い致します。

回答

ソースコードはコンパイルによって実行バイナリに変換されるので、そのまま簡単に覗くことは出来ません。

但し、単にCやObjective-Cの文字列として書いた場合、バイナリ上にもそのまま展開されますし、メモリ上にもそのまま乗ってしまいますから、何やら極端なことをすると解読は可能です。

超有名企業の作ったプロダクトでもそういったセキュリティホールはあるものなので、あまり深追いしない方が良いとは思いますが、バイナリの難読化といったことで把握しておくと少し解読には強くなると思います。

こちらの中で「文字列の変換」という見出しから始まっている部分など、参考になりそうです。 http://www.geekpage.jp/blog/?id=2007/10/11

(5/5 12:28 追記)

TwitterのConsumer Secretが流出した時にも、結局は同じことを目的とした議論が割と広範に渡って行われていたようです。
以下、参考まで

編集 履歴 (1)
  • ご回答ありがとうございます!
    少し不安が無くなりました!
    「バイナリの難読化」についても調べてみようと思います。
    そういった考え方があることを知らなかったので大変
    参考になりました。

    ありがとうございました!
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。