暗号化するなら仕組みについてまず学ぶべき
暗号化について「こうやったら暗号化できるよ」という記事をコピペするんじゃなくて、そもそも暗号化はどのように行われているのか、その仕組を学ぼうよという話である。
Androidアプリを作るのに、暗号化についてそろそろ学ぶべきかなと思ってサンプルコードをみたりしていたのだけど、まずは暗号化技術のしくみについて学ぶのが先だなと思う。
私は結城先生の暗号化技術入門をまず読んだのだけど、サンプルコードを見て「あ、暗号化できたな」で終わらなくて良かったと思っている。
私は「RSA/ECB/PKCS1Padding」というような文字列による指定が一体何を意味しているのかさっぱり分からないレベルだった。Javaで暗号化を行う際のアルゴリズムを指定しているらしいが、暗号化についてほとんど無知な私にとっては、すでにこの文字列が暗号だ。
それでもぐぐって出てくるサンプルコードを真似すれば、暗号化することができるんだけども、暗号化技術入門を読んだ後だと「そのまま突っ走らなくてよかったな」と心底思う。
よく分かってもいないのに暗号化を取り入れて「このアプリはデータを暗号化して保護します」なんて謳ってしまうと、それ自体がセキュリティホールになる。それならば、いっそのこと暗号化しないほうがマシだ。
へたに暗号化してあると言ってしまうと、ユーザが安心してしまって機密情報をアプリで扱ってしまうが、暗号化してないと開き直って宣言してしまえばユーザはそもそも機密情報を入力しない。ちなみに本の受け売り。
私がアプリで機密情報を扱えるようになるのは当分先の話だろうけれども、まずは一歩目を歩み出せたのはいいことなんじゃないかな。