タグ別アーカイブ: Android

NHKの「偽・佐川」警告記事を批判したIT関係者に徹底反論

NHKが2018/07/27 16:35に公開したこの記事『本物そっくり!?「偽・佐川」に厳重注意を!』(2018/07/27 16:35 NHK)にネット上の批判が集まったらしいが、その批判そのものが間違っていることを徹底的に批判してみる。

それらの批判はこちらの『NHKの「偽・佐川」警告記事に批判集まる。iPhoneが攻撃アプリに感染すると誤解を生む内容』(2018/07/28 20:37 Yahoo!ニュース)という記事でまとめられている。

民間企業でIT技術者として一般社員に情報セキュリティの啓蒙活動をしている立場からすると、上記NHKの記事はきわめて適切である。これを批判した方々は少なくとも啓蒙家としては適性がない。

日本のiPhoneのシェアの異常な高さ

批判の第一点は今回のフィッシングメールでマルウェア感染のリスクがないiPhoneの画面を掲載している点にあった。

しかし日本は世界的に見てiOSのシェアが異常に高い特殊な国である。

こちらがIDCによる2017年日本国内スマートフォンのベンダー別出荷台数だがAppleは約半数を占める。

他方、こちらは全世界の2017年各四半期ベンダー別出荷台数で、サムスンが常に2割強でAppleをしのいでいる。3位以下はHuawei、Xiaomi、OPPOとなっている。

日本人はXiaomi、OPPOなどというメーカーの名前自体知らないだろうし、世界第三位のHuaweiも日本国内のシェアはたった4%だ。

仮にAndroidの画面を使うとして、日本のAndroid端末の画面はキャリア固有アプリのアイコンが並んでいたり、比較的高いシェアのHuaweiはEMUIという独自UI、ASUSは設定画面が独自UIだったりと、そもそも「これが素のAndroidだ」と分かっている一般人などいない。

また一般人がスマホを選ぶとき、iOSとAndroidの違いを理解して機種を選んでいるわけではない。Apple製品の方がデザインが良いとか、友だちや家族にiPhoneを使っている人が多いからなど、技術的観点と無関係な理由で選んでいる。

したがって日本の一般人向けにできるだけ多くの注意を引きとめるために、技術的正確さを犠牲にしてもシェアの観点から「スマホ代表」としてiOS画面を選ぶのは方法論として正しい。

iOSで実害のあるフィッシングメールの存在

今回NHKが取り上げた佐川急便のフィッシングメールはapkファイルのダウンロードへ誘導するもので、たまたまiOSに影響はないだけだ。これが例えば遷移先サイトでApple IDとパスワードを詐取するものであればiOSユーザにも実害がある。

また、一般人は上述のようにiOSとAndroidの違いを技術的に理解しているわけではないため、フィッシングメールの中にiOSに無害なものと、AndroidとiOSの両方に害のあるものといった区別は付かない。

さらに一般人は当然ながら「フィッシング」「マルウェア」などのカテゴリーでサイバー攻撃を認識できない。「なんだか怪しい」という漠然とした不安や恐怖心があるだけだ。

その程度の認識しかない一般人に対して「今回の詐欺はAndroidにしか害がなく、iOSは大丈夫です」と伝えようものなら、まず「Androidって何?」という話になる。運よくその段階をクリアしたとしても「iOSは大丈夫」という間違った安心感を持たせてしまう。

たまたま今回のケースはapkダウンロード型でiOSに害はないが、技術的に正確に「iOSは害がありません」と伝えることで、かえってiOSユーザが別の種類のフィッシングで被害にあうリスクを確実に高める。

今回の啓蒙としては「SMSやメール経由で開いた怪しいサイトには要注意」という、非常にざっくりしたメッセージさえ伝わればよい。

啓蒙活動にかかわる方々は、最も知識レベルの低い聴衆に合わせて情報提供すべきである。そうすればこちらが伝えた内容が正確でないと分かる人たちは喜んで周囲に正しい知識を伝えてくれる。

啓蒙する側としては「スキ」のある内容を伝えた方が情報に伝播力を持たせることができる。まさに今回のNHKの記事にネット上の「専門家」の方々が喜んで食いついたように。

一般ユーザの「怠惰」の正しさ

一般ユーザは技術的なことが分からないので、スマホを購入して使い始めるときにいちいち説明書を読まない。iOSやAndroidの勉強などしない。使いたいアプリがすぐに使い始められさえすれば、OSの設定画面をわざわざ潜っていくなどの手間はかけない。

一般ユーザを致命的なサイバー攻撃から守っているのは、実はこの「怠惰」である。

今回の件もAndroidはデフォルトで提供元不明アプリのインストール許可はオフになっている。ユーザの「怠惰」が正しい結果につながるようにベンダーがフールプルーフ前提の「セキュリティ・バイ・デザイン」をやってくれているからだ。

にもかかわらず、わざわざ「提供元不明アプリのインストール許可はオフにしましょう」などという情報を伝え、それをマジメに聞いてしまった一般人が出てくると、その何割かは確実に逆のことをする。インストール許可をオンにしてしまう。

啓蒙活動においては、相手の情報処理能力に限界を前提として余計な情報を与えないことだ。

余計な情報を与えても何割かの聴衆は30秒後には忘れている。この物忘れの速さも正しい結果につながることがある。

また今回の佐川急便の例では別の面で一般人の「怠惰」が被害を小さくしている。デフォルト設定のAndroidで提供元不明のapkファイルをインストールする手順は非常に面倒だからだ。

間違ってapkファイルのダウンロードボタンをタップしたところで、apkファイルのサイズにもよるが、ダウンロードが終わるまでに別のアプリに移動し、そのうちダウンロードしたことさえ忘れる可能性が高い。これは「怠惰」の成果だ。

仮にダウンロードを待っていたとしても、そもそも提供元不明のアプリをインストールした経験のない一般人は、通知パネルを引き下ろしてダウンロード完了メッセージをタップするという手順が思いつかない。「あれ?さっきボタンを押したけど、ダウンロードしたのはどこ行った?」という程度だ。

この時点で面倒になって「まあどうせ家のポストに不在通知が入るし」とインストールをあきらめるだろう。これも「怠惰」の成果だ。

それでもあきらめずにダウンロード通知を奇跡的にタップできたとすると、提供元不明アプリのインストール警告が現れ、これを受け入れる必要がある。

この時点で「いい加減にしろよ、こっちはそんなにヒマじゃないんだよ。荷物の追跡くらいメールで送ってくればいいだろ」と切れ気味に別のアプリに戻る。これも「怠惰」の勝利だ。

これらはフールプルーフによる「セキュリティ・バイ・デザイン」の成果だ。エンドユーザの「バカ」や「怠惰」を安全な結果へ誘導するための工夫だ。

それを中途半端な啓蒙記事はぶち壊しにする。啓蒙家気取りのみなさんは、少なくともフールプルーフやセキュリティ・バイ・デザインの効果をぶち壊しにしないでほしい。

その効果をぶち壊しても「バカ」で「怠惰」な一般人を啓蒙したいというなら、そういう一般人を1分間以上引き留めるニュース原稿や、10分間以上引き留めるネット記事を書いてみてはどうか。

啓蒙で最も重要なのは知性ではなく感情

まして今回NHKがトレンドマイクロを担ぎ出したことについて、「トレンドマイクロを儲けさせるためだ」とする陰謀論まで出てくる始末だが、NHKがトレンドマイクロを担ぎ出したことも正しい。

無知な一般人に対する啓蒙で最も重要なのは相手の知性に訴えることではなく、感情で釣り上げることだ。

日本人は一般的に権威主義的なので、トレンドマイクロでもシマンテックでもカスペルスキーでも何でもいいので「専門家」を引っ張り出してきて祭り上げ、小難しいことを語らせれば感情で釣り上げることができる。

「なんだかよく分からないけど、偉い人が気を付けろって言ってるから気を付けなきゃ」

ここまでこぎつければ今回の啓蒙活動は成功である。

今回のフィッシングがiOSには害がないとか、Androidの設定画面でどうすれば提供元不明アプリのインストールを防止できるかとか、そうした情報はどうせ聴衆の頭に残らない。

聴衆の感情的なフックを利用してこちらに注意を向けさせ、細かいことは抜きにして危機感さえ持ってもらえれば、その後により正確なことを知ろうという動機づけにつながる。

逆に、最初から技術的に正確なことを伝えようとして「なんだか面倒だ」「よく分からない」とマイナスの動機づけを与えてしまえば、啓蒙活動としては失敗である。

そんなことさえ分からない人たちがツイッターで啓蒙活動っぽいことをやっているのだから、専門家の「裸の王様」具合は滑稽でさえある。

なおこのブログ記事は専門家に向けられたもので、一般人に向けて書かれた啓蒙記事ではない。

Nexus 7(2012)にAndroid 5.0(Lollipop)を入れた後キャッシュを削除する正しい手順

Nexus 7(2012)版に自動でAndroid 5.0 (Lollipop)更新の通知が届いたけれど、更新した後、端末の動作が全体的に遅くなる件、キャッシュをクリアすれば改善する場合があるという日本語記事をいくつか見つけたのだが、その方法を完全に正しく書いてある(訳してある)記事が見当たらなかった。

なのでこちらのGoogle Groupにある英語の原文を、正しく日本語に訳してみる。


まず本体の電源を落とす。

1) 本体横の電源ボタンと音量下げボタンを同時に押し続ける。
2) 画面の上部に大きな矢印が出てくるので、電源ボタンと音量下げボタンを放す。
3) 音量下げボタンを何度かくり返し押すと、その矢印にRecoveryの文字が現れるので、そこで電源ボタンをタップする。
4) しばらく待つとドロイド君が仰向けになって寝転がっていて、お腹がひらいて赤い三角にびっくりマークが出ている絵が現れる。
5) そこで電源ボタンを押したままにしつつ、音量「上げ」ボタンを1回タップしてから、電源ボタンを放す
6) すると画面の左上にいくつかの選択項目が現れる。
7) 音量下げボタンを何度か押して、cache partition(キャッシュパーティション)をeraseする、またはwipeする、というメニューを選び(反転させ)、電源ボタンをタップする。
8) 画面左下にいくつか状態を表すメッセージが表示されるので、じっくり待つ。場合によっては10~15分かかる。


メッセージにcache partitionのwipeが終わった、と現れたら、音量下げボタンを何度か押して、画面左上の選択項目のうち「reboot system now」を選び(反転させ)、電源ボタンをタップする。

すると端末がふつうに再起動する。

以上。ちなみに筆者の場合は、少しだけ速くなったかなぁ、という程度で、劇的な改善にはならなかった。

Android PoliceがNEC新機種Medias X 06Eをやや冷笑的にレビュー

Android関連の最新情報をとるなら、Android Policeという英語サイトがいちばんおすすめだ。
たまたま今日このサイトが、NECのNTTドコモ向け最新機種「Medias X 06E」を、かなり冷笑的に取り上げていたのを見つけた。世界初の水冷CPUスマホだ。
[WTF Japan] NEC Unveils A Water-Cooled Smartphone – With Jewelery – Especially For Women (2013/05/15 Android Police)
Android Policeの記事の文面は、いつも言葉の端々に皮肉が効いている。この記事をできるだけ原文どおりに試訳してみる。
「あなたが探していたのはたぶん水冷式のスマートフォンではないだろう、でも日本のスマートフォンメーカーNECは今日、Medias X 06Eと大まじめに名付けられたNTTドコモ向け端末を発表した。CPUをH2Oで冷却する世界初のスマートフォンだが、性能は決定的にふつうで、NECはHTCのRhymeと本質的に同じように、”女性の”電話としてマーケティングするつもりだ。」
「正直に言って、Medias X 06Eはちょっとひどい冗談のように聞こえる。必要以上に女性的なデザインと水冷システムというギミックは、望ましい機能より注目を集めるための叫び声のように見える。たぶん、女性のためのスーパーフォンというのはありだが、私は興味が無い。」
このAndroid Policeの記事の引用元は、『The Verge』の下記の記事だ。
NEC knows what women want: a water-cooled smartphone (2013/05/15 The Verge)
ちなみにこのThe Vergeは、NECの2画面折りたたみ式「Medias W N-05E」について、以下のように書いていた。
NEC says two phone screens are better than one with Medias W (2013/01/21 The Verge)
タイトルからして「NECはMedias Wについて電話の画面は1つより2つのほうがいいと言っている」と、人を食ったようなタイトルだ。
そして本文の冒頭。
「世界でもっとも奇妙なデザインの電話を提供することにかけては、いまや日本に頼れるだろう、しかしシャープや富士通のような会社はどこにでもあるようなストレートな平板のAndroidを生産することで落ち着いている。NECに感謝」
本文の末尾。
「これを日本以外で見ることができるだろうか?まずありそうにない。しかしNECは最初に2画面の試作品を発表したときこれを”グローバルモデル”だと確かに呼んだ――輸入業者はしっかり注目したいと思うかもしれない」
NECがグローバルモデルだと言い張るからには、本当に海外市場に輸出するのかどうか、海外の輸入業者は注目したくなるだろう、という意味だ。
さて、水冷CPUのNEC新機種の記事にもどろう。
「私たちは、日本の電子機器メーカーNECがワイルドなデザインの電話(訳注:上記の2画面スマホのこと)を嫌がらないことを既に知っている。しかし、同社は画期的なスマートフォンの機能を発表した。世界最初の水冷CPUだ。」
「では性能上の利点はあるのか?そうとは言い難い。内臓チップ(APQ8064T)は、今日発表されたいくつかのドコモ向け製品を含め、他の多くの電話と同じ1.7GHzだ。クアルコムは1.9GHzまでのクロックアップに対応しているにもかかわらずである。NECによれば、冷却に酔って過熱しがちにならないので、プロセッサがフルパワーでより長く稼働するという。しかしCPUがバッテリー寿命を最適化するために、電力消費を動的に低減しているのに、そういった特定の問題がどれくらいの頻度で起こるのか、興味深いところだ。」
平均的な性能のスマートフォンに、水冷システムを組み込んでいる点に、The Vergeの記者は明らかに懐疑的だ。
さて、日本の電気機器メーカーが、グローバルな観点からしてもおかしくない開発センスを取りもどすのは、いつの日のことだろうか。

HTC Desire HDのADBドライバーインストール方法

WindowsでAndroid用アプリケーションの開発環境を作っていたのだが、つまらないところでつまずいてしまったので、検索エンジンにひっかかるように、ここに書いておく。
HTC Desire HDのUSBドライバーのインストール方法は下記のサイト等に書いてある。
「HTC Desire HD の USB ドライバー(ADB)インストール」(『M3 creator Android アプリ制作開発をしよう』)
「HTC Desire HD (SoftBank 001HT) ADBドライバーインストールめも」(『Fukurooow Android Blog』)
ただ、いずれもUSBドライバの設定ファイル「android_winusb.inf」の場所が間違っている。Android SDKのインストール・フォルダが「android-sdk」だとすると、正しくは…
android-sdk > extras > google > usb_driver
このフォルダの中である。以上。

AndroidのScreenCaptureを取るまでがとっても面倒

Androidの画面キャプチャを取るまでが、とっても面倒だった、というお話。
インストール先のPCは32bit Windowsなので、下記のページから「Recommended(おすすめ)」となっているWindows用のインストーラー(exe形式)をダウンロードし、実行した。
すると、2つめの画面でJava SE(Standard Edition) SDKがないというメッセージが表示され、それ以上インストールが進まない。
そこでその画面にあるOracleサイトへのボタンをクリックすると、Webブラウザが立ち上がってOracleのJava Standard Edition SDKのダウンロード画面が開く。
そのページを少しスクロールすると、Java Standard Editionの「JDKダウンロード」という、赤字に白文字のボタンがあるので、これをクリック。(これを書いている時点でのJDKのバージョンは6)
すると、英語のダウンロード・ウィザード画面に遷移するので、まず「Platform」欄で「Windows」を選択し、「I agree to the Java SE Development Kit 6u24 License Agreement」にチェックマークを入れ、「Continue」ボタンをクリック。
画面が切り替わり、「jdk-6u24-windows-i586.exe」というファイルへのリンクがあるので、これをクリックしてダウンロード。ダウンロード後のファイルを実行してJDKをインストールする。
ここまでは、いちおう順調。
JDKのインストールが完了したので、先程のAndroid SDKのインストーラーをダブルクリックして起動する。
ところが、やっぱり2つめの画面でJava SE(Standard Edition) SDKがないというメッセージが表示され、インストールを進められない。
過去にJDKをインストールした経験から、たぶんJDKのコンパイラのあるbinフォルダにWindowsのPATHが通っていないのではと思い、環境変数を確認してみる。
すると、PATHという環境変数にちゃんとjavac.exeのあるbinフォルダへのパスが設定されているではないか。しかし、よく見ると設定されているパスが、一つマイナーバージョンの古いパスになっている。
どうやら、過去に別バージョンのJDKをインストールしたマシンの場合、旧バージョンのbinフォルダへのパスが残ったままとなり、新バージョンのパスが追加されないことが分かった。
そこで、環境変数PATHに設定されているbinフォルダを、いまインストールしたJDKのバージョンに手で書き換えると、無事、コマンドラインプロンプトで、「javac」と入力するだけでJavaコンパイラが実行できた。
これで大丈夫だろうということで、もう一度Android SDKのインストーラーをダブルクリックして起動するが、やっぱり2つめの画面でJava SE SDKがないというメッセージが表示され、インストールが進まない。
なので、インストーラでのインストールは断念して、Android SDKのWindows用インストーラ(exe形式)ではなく、zip形式のファイルをダウンロードし、C:Program Files直下に展開した。
たぶん、C:Program Filesandroid-sdk-windows内のSDK Manager.exeを起動すればいいのだろうと思って、起動すると、追加モジュールをインストールするように、という画面が出てきた。
それを受け入れると、Android開発用の追加モジュールやヘルプドキュメントのダウンロードが始まる。これがかなり時間がかかる。
ようやく終わったところで、スクリーンショットをとるための「ddms.bat」が、「C:Program Filesandroid-sdk-windowstools」配下に見つかる。
いよいよAndroid端末側で、USB接続の設定のデバッグモードをONにし、PCに接続すると、「新しいハードウェアの検索ウィザード」が始まってしまった。
要するに、Android端末用のドライバがまだインストールされていないのだ。(ちなみにここではWindows XP SP3のPCを前提としている)
僕の手持ちのAndroid端末はHTC Desire IIだが、HTC Syncという付属のソフトウェアをPCにインストールしていない状態だと、Android SDKで端末を認識させるためのドライバがない状態らしい。
そこでウェブを検索してみたところ、非常にトリッキーなことをやらなければならないことが分かった。
「C:Program Filesandroid-sdk-windowsextrasgoogleusb_driver」内にある「android_winusb.inf」というファイルの、[Google.NTx86]セクションに、以下の3行を追加しなければいけないらしいのだ。
;HTC Desire
%SingleAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87
%CompositeAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87&MI_01
取りあえずこの3行を追加してから、改めてAndroid端末をPCに接続する。
「新しいハードウェアの検索ウィザード」が開始されたら、「はい、今すぐおよびデバイスの接続時には毎回接続します」を選択し、「次へ(N)」をクリック。
「一覧または特定の場所からインストールする」を選択し、「次へ(N)」をクリック。
「次の場所で最適のドライバを検索する」を選択し、「次の場所を含める」にチェックマークが入った状態で「参照(R)」ボタンをクリック。先ほど書き換えたINFファイルのある「C:Program Filesandroid-sdk-windowsextrasgoogleusb_driver」を選択し、「次へ(N)」をクリック。
するとHTC Desire II用のドライバのインストールが無事に始まる。このドライバのインストールはOSの再起動は必要ない。
インストールが終わると、Android端末がAndroid SDKからアクセス可能な状態で接続される。

ここまで来てやっと、「C:Program Filesandroid-sdk-windowstools」配下の「ddms.bat」を起動する。
すると、CUIの黒いウィンドウとともに、「Dalvik Debug Monitor」というウィンドウが立ち上がり、接続中の端末がデバイスとして認識され、黒いウィンドウにAndroid端末の動作ログがずらずらと書き出され、スクロールしていく。
ここで、Dalvik Debug Monitorのメニューにある「Device」⇒「Screen capture」をクリックすると、画面キャプチャを表示するためのウィンドウが立ち上がある。
あとはAndroid端末側でキャプチャを取りたい画面を表示させた状態で、画面キャプチャをとるためのウィンドウの左上「Refresh」ボタンをクリックしてから、右上「Copy」ボタンをクリックする。
そして、Windowsの「ペイント」なり、Excelなりに貼りつけると、画面キャプチャを画像ファイルとして保存できる。
いやいや、たかが画面キャプチャを取るだけのために、ここまで時間をかけなければいけない理由がよく分からない。
まあでもAndroid端末には、それを上回るだけの利便性と将来性があるので、良しとしよう。ははは。