Hello there, ('ω')ノ
🔐 「暗号化してるから安心」は危険な思い込み
多くの開発者が、以下のように考えてしまいがちです。
✔ パスワードやトークンは暗号化して保存してます ✔ 通信内容も暗号化してるので盗聴されません
でも、その“暗号化”、本当に正しく使えていますか?
🧨 よくある「暗号化の失敗」実例集
① 鍵(Key)をハードコードしている
String secretKey = "mysecret12345678"; // 固定キー
→ APKTool や jadx でソースを解析すれば、簡単に鍵がバレます。
診断ポイント:
secretKeyやAESなどのキーワードで検索- 固定値の鍵・IV(初期化ベクトル)が使われていないか確認
② 暗号アルゴリズムが脆弱
Cipher.getInstance("AES/ECB/PKCS5Padding");
→ ECBモードはブロック単位で暗号化されるため、データパターンが漏洩します(=パスワードリスト攻撃に弱い)。
推奨されるモード:
- AES/CBC/PKCS5Padding(IV付き)
- AES/GCM/NoPadding(認証付き暗号)
③ IVが固定されている or 使っていない
IvParameterSpec iv = new IvParameterSpec("0000000000000000".getBytes());
→ 初期化ベクトル(IV)は毎回ランダムでなければ意味がありません!
④ ハッシュを暗号化と混同している
この続きはcodocで購入