2014年12月27日土曜日

コミケ会場での位置共有アプリのプライバシー、セキュリティについて

今回のアプリではTwitter認証とGPSによる位置取得というプライバシーにかかわる情報を取得するため、セキュリティ面で心配になる方も多いでしょうからちょっと解説です。

っとその前にちょっと一言。
そもそも、個別の個人情報の取得にはその運用に責任情報が付きまとうため、当方では余計に取得したいとは思っていません。
特に今回のアプリでは画面を開くだけで認証の取得や位置情報の取得の警告が出て、事前の確認をとることができないため、いらない情報は保持しないよう心がけています。
それをご理解いただいた上で、以降をお読みください。

それと、位置情報を送信しない=自分の位置情報は教えたくないけれどほかの人の場所は知りたい、というご要望には応えない方向での実装となっていますので、位置情報取得許可を出さないとアプリが利用できなくなってしまいます。
なので、利用する場合は位置情報は必ず送信するようにしてください。
ここも併せてご理解いただきますよう、お願いいたします。



まず位置情報についてですが、GPSにより取得した緯度経度の場所と、コミケ会場内でのコスプレ会場のおおよその中心位置からの距離をもとに、どこが一番近いかを割り出して、それをアプリ側に送信してデータベースに入れて利用しています。
実際に送られるのは、このリストの何番目なのか?という番号になります。
具体的には、以下のようなリストをあらかじめ用意しており、このリスト上に書いている各行の緯度経度(数字の部分ですね)ごとに距離を出して、どこが一番近いかを計算します。

Location {
 GARDEN("庭園", 35.6312189,139.7941999),
 RESTRAUNT("レストラン", 35.6306354,139.7953894),
 EAST_TRACKYARD_NORTH("東トラックヤード北",35.6329038,139.7971149),
 EAST_TRACKYARD_SOUTH("東トラックヤード南",35.630524,139.7982021),
 WEST_TRACKYARD_EAST("西トラックヤード東",35.6292106,139.7958388),
 WEST_TRACKYARD_WEST("西トラックヤード西",35.6284019,139.7940266),
 WEST_TRACKYARD_SOUTH("西トラックヤード南",35.6282539,139.795393),
 ARIAKE_WEST_PIER_PARK("有明西ふ頭公園",35.627033,139.7943277),
 ROOFTOP("屋上展示場",35.6284371,139.794094),
 PARKING("駐車場", 35.6269198, 139.7963214),
 ENTRANCE("エントランスプラザ",35.6304227,139.7940026);
}

この計算処理はクライアントプログラム側で行っているため、取得した緯度経度の情報はサーバー側に送信されず、自宅住所などが記録に残ることはありません。
距離の計算自体は中学のころに三角形の辺の長さの求め方などでやっているかと思いますので割愛します。
書く場所については、4隅をとるなどして端末一がその範囲の中にあるかを取得する方法もあるのですが、それは4隅のポイント取得が面倒であったことなどからやってません。
その実装内容さえ信頼性がないと心配な方は、アプリを職業プログラマーの方にでも解析してもらってください。

使用しているAPIであるGeolocation APIについては、以下のURL辺りを参考にしてください。
http://www.htmq.com/geolocation/


次にTwitter認証ですが、正直個人が作っていそうなアプリでとんでもなく多くの人の「書き込みできる、DMだって自由に遅れる権限」を取得しまくっているアプリが多い昨今、こんなに気を使う必要ないんじゃないの?って感じです。
基本、今回のアプリでいただく権限は読み取り属性のみとし、アカウントのIDとプロフ画像URL、およびフレンド(フォローしている人)の一覧を取得しています。
使用しているAPIは以下の二つとなります。

https://api.twitter.com/1.1/account/verify_credentials.json
https://api.twitter.com/1.1/friends/ids.json

この二つ、TwitterAPIの1.0以前はTwitter認証なしで使用できたと思いましたが、今はTwitter認証しなければ使用できなくなってしまったため、仕方なく認証を行っているというところです。
この認証処理はTwitter側で行われるため、アプリ側にパスワードがわたることはありません。

TwitterAPIのアクセスに関する詳細は、以下あたりを参考に。



何か質問があれば、Twitterにて質問してください。
気が向けばご返答します。

0 件のコメント:

コメントを投稿