kotakのひまじめ日記スマートフォン用の表示で見るkotakのひまじめ日記この広告は、90日以上更新していないブログに表示しています。3G接続できるデバイスのおおよその現在地を調べる方法です。精度は全くありませんが、GPS不要で3Gの接続さえ生きていれば使える方法なので、デバイスの盗難対策などには重宝するのではないかと思います。書いていて思ったのが、「セキュリティの観点からするとイケてない」ということです。あるデバイスで共通のAPIキーを使っていた場合、一つのデバイスがハックされてキーが流出したら、キーを更新するために全てのデバイスのファームを書き換えなくてはならなくなるという問題に繋がります。いって、デバイスごとに個別のAPIキーを割り振ろうと思うと、キーの管理やデバイスの出荷作業などの手間が掛かって、コストに跳ね返ってきます。単純に証明書をインストールすれば、回避できます。(会社ブログでは説明する分量を省くために、あえてスルーしました。)ただ、こちらも実運用を考えると証明書の更新という問題が出てきます。Beamを使うとキレイに解決できるということに、改めて気づきました。APIを叩いて、結果を取得していました。Beam経由で叩くようにします。APIはHTTPSのPOSTメソッドを使い、パラメータはbodyにJSON形式で渡すようになっています。APIキーはクエリストリングとして渡します。Beamの設定は、下記のようにしました。指定なし現在位置を調べるスクリプトは下記のようになります*1。URLがbeam.soracom.ioになり、API_KEYがスクリプトから消えています。"$URL"効果APIキーをデバイス側で持っておく必要が無くなるこれにより、全デバイスが共通のスクリプトで動作できる=運用が楽になるということと、APIキーの流出リスクを減らすことができるという二つのメリットを、同時に享受できます。APIキーというものは、APIへのアクセスコントロールのために存在するのだと思います。それが、デバイスにAPIキーを持たせた場合には、デバイス認証という意味合いを持ってしまうため、「デバイスごとに個別のAPIキーを発行」などという設計になりがちなのかもしれません。Beamを使うと、指定したグループのSIMからのリクエストしか転送しませんので、それがデバイス認証としての役割を果たします。「デバイスの認証はSIMで、APIのアクセスコントロールはAPIキーで」というように役割をきっちりと分けて考えることができるので、システム全体としての設計もシンプルになります。証明書の更新が不要になるデバイスからBeamへのリクエストはHTTPで行いますので、CAの証明書をデバイス側は持つ必要が無くなります。当然ながら、更新も不要ですのでデバイスの管理が楽になります。それでいながら、デバイスからBeamのエントリポイントまでは、なりすまし不可かつ盗聴不可な経路を通りますので、安全性が損なわれるわけではありません。Beamというのは便利だと思いました*2。IoTの世界はコンセプトフェーズから実践フェーズに入ってきた感があるので、これからはセキュリティや運用といった面がクローズアップされてくるでしょう。AWS)というのは、良い解なのではないかと思います。*1:3g-celllocationの中身などは、会社ブログの方を参照してください。*2:書いている内容は二番煎じじゃないかというツッコミはご容赦ください。月別アーカイブ参加グループテクノロジーはてなブログをはじめよう!kotakさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。