NQ Vaultの暗号化は通常のXORであり、これは最悪ではありませんでした

NQ Vaultはかなり人気のある(3,000万ユーザー)Androidアプリケーション(iOS用のバージョンもあります)で、デバイス上の選択したSMS、写真、ビデオを暗号化できます。 パスワードを入力すると、アプリケーションを介して暗号化されたコンテンツを表示できます。 このアプリケーションは、優れたレビューと主要なIT出版物のレビューを受けています。



GitHubユーザーninjadoge24は、アプリケーションが個人データをどの程度保護しているかを確認することにしました。



研究者は、単純な1x1ピクセルのPNGファイルを作成し、「NINJADOGE24」署名をファイルの最後に追加することから始めました。 次に、ファイルをデバイスにダウンロードし、NQ Vaultを使用して単純なパスワードで暗号化しました。 暗号化されたファイルの場所は、アプリケーションデータベース(SQLite形式)で見つかりました。 暗号化されたデータとソースを比較すると、最初の失敗が示されました。



ソースファイル

0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR 0000010: 0000 0001 0000 0001 0802 0000 0090 7753 ..............wS 0000020: de00 0000 0970 4859 7300 0003 b100 0003 .....pHYs....... 0000030: b101 f583 ed49 0000 0007 7449 4d45 07df .....I....tIME.. 0000040: 0401 0319 3a3d ca0b 0c00 0000 0c69 5458 ....:=.......iTX 0000050: 7443 6f6d 6d65 6e74 0000 0000 00bc aeb2 tComment........ 0000060: 9900 0000 0f49 4441 5408 1d01 0400 fbff .....IDAT....... 0000070: 00ff 0000 0301 0100 c706 926f 0000 0000 ...........o.... 0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47 IEND.B`.NINJADOG 0000090: 4532 340a E24.
      
      





暗号化されたファイル

 0000000: 8d54 4a43 090e 1e0e 0404 0409 4d4c 4056 .TJC........ML@V 0000010: 0404 0405 0404 0405 0c06 0404 0494 7357 ..............sW 0000020: da04 0404 0d74 4c5d 7704 0407 b504 0407 .....tL]w....... 0000030: b505 f187 e94d 0404 0403 704d 4941 03db .....M....pMIA.. 0000040: 0005 071d 3e39 ce0f 0804 0404 086d 505c ....>9.......mP\ 0000050: 7047 6b69 6961 6a70 0404 0404 04b8 aab6 pGkiiajp........ 0000060: 9d04 0404 0b4d 4045 500c 1905 0004 fffb .....M@EP....... 0000070: 04fb 0404 0705 0504 c302 966b 0404 0404 ...........k.... 0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47 IEND.B`.NINJADOG 0000090: 4532 340a E24.
      
      





これは何ですか ファイルの最後の署名は変更されませんでした! そして、他のサイトの暗号化は、疑わしいことに単純な置き換えに似ています。 ソースと暗号文の間にXOR操作を適用すると、研究者はキー0x04を受け取りました。 はい、そうです、 シングルバイトキーとのXOR 、つまり単純な置換。 それは、子供時代の「学校」暗号を思い出させます。 そして、これはアプリケーション内にあり、年間7.99ドルの有料版があります!



ファイルの最後の署名が変更されない理由を見つけることは残っていました。 暗号化/復号化のためのスクリプトを作成し、JPEGファイルで別の実験を行った後、別の悲しい真実が浮かび上がりました。 ファイルの最初の128バイトのみが暗号化され 、残りは変更されません。 そして、なぜ、最初の128バイトで十分なのでしょうか? ヘッダーが破損しているため、ファイルは標準アプリケーションで開かれません。これは、未経験のユーザーにとっては依然として必要です。 また、ビデオ暗号化の速度という点では、NQ Vaultはおそらくすべての競合他社をぼろぼろに引き裂きます。



そして最後の仕上げ。 おそらく非常に複雑な、ユーザーが入力したパスワードからシングルバイトキーを取得するにはどうすればよいですか? 研究者は、さまざまなパスワードを並べ替えてアルゴリズムを見つけようとしましたが、その後、合理的な結論を出しました。 どれでも、最も古いAndroidデバイスでさえ、これで十分です。



完全なテストレポート



おわりに



このようなアプリケーションは、Google PlayとAppStoreの両方におそらく数千あるでしょう。 彼らは何とかそれをうまく宣伝できたが、他の人はそうしなかった。 しかし、この話で注目すべき点は次のとおりです。 まず、ユーザーがセキュリティの約束をどれだけ簡単に信頼できるか。 ユーザーの頭の中では、どこかに写真をすばやくアップロードするアプリケーションと、ファイルを暗号化するアプリケーションやクレジットカードデータを保存するアプリケーションに大きな違いはありません。 セキュリティ関連のアプリケーションに特別なセキュリティ基準を適用する必要があることを理解していません。 約束、見栄え、使いやすいインターフェイス、数千件の肯定的なレビューでも十分ではありません。



第二に、専門的な出版物のレビューをどれだけ信頼できますか? それらのほとんどが支払われていることは明らかであり、これ自体は悪くないので、アプリケーションを促進する必要があります。 主なものは、彼らが多かれ少なかれ客観的であることです。 そして、評判の良い出版物は、客観的なレビューを書こうとしています。 しかし、セキュリティに関しては、単純なレビューだけでは十分ではありません。 この部分をテストできる専門家を引き付ける必要があります。



All Articles