Rails + Vue.jsで作るSPAのブログシステム (管理画面)
ホーム(SPA)
記事
画像
カテゴリ
編集 - 記事
カテゴリ
選択して下さい。
プログラミング
Windows
政治・経済・生活
タイトル
キーワード(keywords)
※半角カンマで区切る
解説(description)
本文
※HTMLで記述する
<h1>Androidから安全に独自のWebAPIを実行する [端末にパスワード保存]</h1> <p>今回はAndroidの端末にパスワード(秘密鍵など)を保存しますが、Javaコードだと<span style="color:green;">「初心者」</span>でも簡単に逆コンパイルが可能ですので解析されてしまいます。Javaコードを難読化する手法もありますが、ほぼ意味がないです。</p> <p>NDKを使用してC++言語のコードで書いて「.so」の共有ファイルに保存する方法があります。ですが、逆アセンブルされたら危険です。</p> <p>ただ、逆アセンブルで生成されたアセンブリ言語は<span style="color:green;">「熟練者」</span>の方ではないと解析が難しいです。例として113 KBの「.so」ファイルは約2万行のアセンブリ言語となります。 ※全て読む必要はないですが。</p> <p>最終的にはC++で暗号化アルゴリズムを実装、パスワード(秘密鍵)を埋め込み、デバッグ時、証明書フィンガープリント(ハッシュ)などの対策を施す。SSL/TLS通信でWebAPIにアクセス。加えてGoogle Sign-In(サインイン)でOAuth認証(オーオース)を行う。</p> <p>これならば「.so」ファイルを逆アセンブルされても、OAuth認証があるので勝手にWebAPIを操作する事は不可能に近いと思います。</p> <h2>LVLとOAuth認証の比較</h2> <p>Google Sign-Inの前にLVL(License Verification Library)も調査したけど、基本的に有料アプリが対象で、さらにサーバー側の連携がない模様です。</p> <p> ※<a href="https://developer.android.com/google/play/licensing/server-side-verification">LVLの公式</a></p> <img src="/rails-demo/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBLQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b5c5473a3fc56dd4986945cc9c2b073c468ed077/android_security_1.png" /> <p></p> <img src="/rails-demo/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBLUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--af9ddbb839a82e0b0d1b6d7eb358a2d8f27d2700/android_security_2.png" /> <p></p>
表示
|
戻る
SPA blog system
Takeshi Okamoto wrote the code.