Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【Connected.T4】SORACOMで実現する強固なセキュリティ

1,947 views

Published on

クラスメソッド株式会社 AWSコンサルティング部シニアソリューションアーキテクト 大瀧 隆太 氏
株式会社ソラコム プリンシパルソフトウェアエンジニア 片山 暁雄
ご紹介サービス:SORACOM Endorse
新機能:SORACOM Access Management(SAM)

Published in: Technology
  • Be the first to comment

【Connected.T4】SORACOMで実現する強固なセキュリティ

  1. 1. SORACOMで実現する 強固なセキュリティ 株式会社ソラコム プリンシパルソフトウェアエンジニア 片山 暁雄 SORACOM Conference Connected. 2016 テクニカルトラック SORACOM Conference Connected. 2016 テクニカルトラック
  2. 2. • 名前:片山 暁雄 • 所属:株式会社ソラコム – プリンシパルソフトウェアエンジニア • ID : c9katayama
  3. 3. Thanks for our sponsors | Platinum Sponsors | Gold Sponsors | Silver Sponsors | Beverage Sponsors ル
  4. 4. 本日のイベントのハッシュタグ #soracom @SORACOM_PR https://www.facebook.com/soracom.jp/
  5. 5. SORACOMの実現するセキュリティ SORACOM Endorse SORACOM Access Management Agenda
  6. 6. SORACOMの実現するセキュリティ SORACOM Endorse SORACOM Access Management Agenda
  7. 7. 専用線 モノがAWSクラウドに直結 IoT向けのプログラマブルなデータ通信を提供 3G/LTE
  8. 8. 専用線 SORACOMの実現するセキュリティ 3G/LTE デバイス 基地局 SORACOM (AWS) インターネット 自社 サーバ
  9. 9. 専用線 SORACOMの実現するセキュリティ 3G/LTE SIMの認証 通信の暗号化 インターネット経路の 暗号化 デバイス の特定
  10. 10. 専用線 3G/LTE SIMの認証 通信の暗号化 インターネット経路の 暗号化 デバイス の特定 SORACOMの実現するセキュリティ
  11. 11. •Subscriber Identity Module •利用者の認証モジュール •高い耐タンパ性 •ユニークID、認証鍵、暗号鍵 SIMカード
  12. 12. 専用線 3G/LTE SIMの認証 通信の暗号化 インターネット経路の 暗号化 デバイス の特定 SORACOMの実現するセキュリティ
  13. 13. デバイスごとの設定が最小限に デバイスごとに ID/パスワード 証明書 接続先 etc.. の設定 一般的な構成
  14. 14. SORACOM Beam/Funnel 専用線 Funnel 暗号化 Beam デバイスごとに ID/パスワード 証明書 接続先 etc.. の設定
  15. 15. 専用線 3G/LTE SIMの認証 通信の暗号化 インターネット経路の 暗号化 デバイス の特定 SORACOMの実現するセキュリティ
  16. 16. •IMSI(イムジ) • International Mobile Subscriber Identity • SIMカードから取れる、15桁のユニークID •MSISDN • SIMカードから取れる、いわゆる「電話番号」 •IMEI(イメイ) • International Mobile Equipment Identity • 通信デバイスごとに付与される SIMカード/デバイスから取れるID情報
  17. 17. 専用線 3G/LTE デバイス 基地局 SORACOM (AWS) インターネット 自社 サーバ ここではID情報が取れる
  18. 18. •データを受け取るサーバ側では、どのSIMからの通 信かは特定出来ない •SORACOM Airでの通信かどうかも特定できない SORACOM Airを使った通信 ?
  19. 19. •自分の持っているSORACOMのSIM通信であること は保証されるが、どのSIMからの通信かは分からな い SORACOM Canal/Directを使った通信 △ △ Canal Direct
  20. 20. •データを受け取るサーバ側にBeamでパス可能 •ただし使えるのはSORACOMの通信のみ • Wifiなどでは利用できない SORACOM Beam/Funnelを使った通信 ◎ ?
  21. 21. デバイスの特定を行うには •IMSI/IMEIを使ったデバイス特定はセキュアで便利 • SIMの高い対タンパ性 • デバイスごとのIDや秘密鍵の付与が不要 •SORACOM AirやCanal/Direct、もしくはWifiなど SORACOM以外の通信でもクライアントを特定し たい
  22. 22. 《 SORACOM Endorse 》
  23. 23. •SIMの認証情報を、他のシステムにエンドースする ためのサービス •エンドース = 保証、裏書き •SORACOM以外の通信でも、SIMの特定が可能 • SIMの情報と認証の連携が可能に SORACOM Endorse
  24. 24. 1.認証トークンをリクエスト SORACOM Endorse 2.認証トークンを発行 3.認証トークンを送信 4.公開鍵で トークンを検証 5.独自の認証トークンなどを発行 利用者の サーバ デバイス
  25. 25. •ユーザーコンソールのグループ設定から実施 •設定をONにして、認証トークンに含める情報を設定 •SIMをグループに所属させる SORACOM Endorseの設定
  26. 26. •Endorseが設定されたSIMの通信を使って、以下の URLにアクセス https://endorse.soracom.io 認証トークンの取り方
  27. 27. •JWT(JsonWebToken)の形式 •以下の情報の受け渡しが可能 •IMSI • IMEI • MSISDN •任意データ (requestParams) 認証トークン { "iss": "https://soracom.io", "aud": "soracom-endorse-audience", "exp": 1451116301, "jti": "hkK7qNyXzEMVAXfTq1MBuA", "iat": 1451116121, "nbf": 1451116061, "sub": "soracom-endorse", "soracom-endorse-claim": { "imsi": "440XXXXXXXXXXXX" ”requestParams": { "username": "foo", "sessionId": "bar" } } }
  28. 28. •認証トークンの署名を公開鍵で検証 • 公開鍵はSORACOMの指定サーバに配置 • 検証は各種言語のJWT対応ライブラリで実行可能 • http://jwt.io/ が良い情報源 認証トークンの検証
  29. 29. • デバイスからのデータ転送のオフロード • SIMで認証を行い、大量データはWifiやLANなどで送信 • 社内サーバへのシングルサインオン • 社内認証サーバと連携し、IMSIと社員情報を紐付け • IMSIとIMEIが指定のものでない場合はアクセスを拒否 • 多要素認証の一部として利用 • IMSIとIMEIの組み合わせで指定のデバイス以外からのログ インを拒否 ユースケース
  30. 30. 大瀧さん登壇(10分) デモ(AWSクレデンシャル取得/認証)
  31. 31. •設定をONにした1SIMあたり 1日5円 •2月中は無料 •2月以降は1SIM分まで無料利用枠 SORACOM Endorse 利用料金
  32. 32. 《 SORACOM Access Management 》
  33. 33. •SORACOM Access Management(SAM)は、 SORACOM自体の操作を管理するための仕組み •SORACOMプラットホームを横断する機能として 提供 SORACOM Access Management
  34. 34. •SAM ユーザー •認証キー •コンソールログイン •権限設定、ロール SAMの機能
  35. 35. • ”オペレーター(Operator)” • SORACOMアカウントを作成するときに作 られる • 最も強い操作権限を持つ • UNIX/Linuxでいう”root” • SAMユーザー • 一定の権限のみ与えられた、SORACOM操 作用のユーザー • 利用者や目的ごとに作成できる SAMユーザー
  36. 36. オペレーター SAMユーザー SAMユーザー 認証キー コンソール ログイン 認証キー コンソール ログイン 認証キー コンソール ログイン 1 *
  37. 37. • 認証キーIDと認証キーシークレットからなる、 キーペア • APIを使用するときの認証に利用 • Operator/SAMユーザーごとに最大2つまで作成 可能 • 認証キーは作成時のみしか取得できない • 紛失した場合は再作成 認証キー(AuthKey)
  38. 38. /v1/authのAPIに投げると、認証が可能
  39. 39. •SAMユーザーのコンソールログイン情報の設定 •Operator : • メールアドレス/パスワード •SAMユーザー •OperatorID、SAMユーザー名、パスワード •設定しなければコンソールログインできない コンソールログイン
  40. 40. •SAMユーザーの操作権限の設定 • デフォルトでは操作権限がないため、何も操作が できない •権限はJSON形式の構文を使用して設定 権限、ロール
  41. 41. Permission構文例 api: このstatementが指定す る対象のAPI(必須) condition: このstatementが適 用される条件(オプション) effect: このstatementsがallow(許 可)を示すのか、deny(拒否)を示す のかを指定(必須)
  42. 42. api • APIはサービス名とオペレーション名の2つで定義 • サービス名およびオペレーション名はAPIドキュメントに記載 • *(アスタリスク)も使用可能 • “api”:”*” すべての操作 • “api”:”Subscriber:list*” Subscriberのlist操作全般 “api”:”PaymentMethod:getPaymentMethod”
  43. 43. •組み込み関数と変数 • HTTPメソッド(httpMethod) •通信元IPアドレス(sourceIp) • 日付、時刻(currentDate,currentDateTime) •演算子 • eq(==), ne(!=), lt(<), le(<=), matches(正規表現) な ど condition
  44. 44. • subscribersコンポーネントのAPI全てを、2016年2月1日 まで、IPアドレスが10.0.0.1~10.0.0.254の範囲内のクラ イアントのみ許可したい。 condition例 { "statements":[ { "effect":"allow", "api":”Subscriber:*", "condition":"currentDate <= date(2016, 02, 01) and ipAddress('10.0.0.1/24')" } ] }
  45. 45. •直接設定(インライン権限) • SAMユーザーに直接権限を設定する • SAMユーザーと1:1になるためわかりやすい •ロール • “ロール”と呼ばれる権限グループを作成して、権限を ロールに設定する • SAMユーザーにはロールをアタッチする 2つの権限設定方法
  46. 46. SAMユーザー SAMユーザー 認証キー コンソール ログイン 認証キー コンソール ログイン インライン 権限設定 権限設定 ロール
  47. 47. • Adminユーザー • すべての操作が可能 • ただしこの設定にしても、Operator自体の操作(パスワードやメール変 更)は不可 SAMのユースケース { "statements":[{ "effect":"allow", "api":[”*”] }] }
  48. 48. •パワーユーザー • SAMユーザー周りの設定以外はすべての操作が可能 SAMのユースケース { "statements":[{ "effect":"allow", "api":[”*”] }, { "effect":”deny", "api":[”User:*”] }] }
  49. 49. • 請求周りだけの操作 • 経理の方むけ • コンソールログインはon,認証キーはoff SAMのユースケース { "statements":[{ "effect":"allow", "api":[”Billing:*, PaymentMethod:*”] }] }
  50. 50. •SIMの情報の読み取り専用 • 監視プログラムなどに利用 • 認証キーだけ発行して、コンソールログインはoff SAMのユースケース { "statements":[{ "effect":"allow", "api":["Subscriber:*"], "condition":"httpMethod('GET')" }] }
  51. 51. •SAMは利用料 無料 •積極的に活用して下さい! SORACOM Access Management 料金
  52. 52. 《 まとめ 》
  53. 53. •SORACOM Airだけではなく、BCDEFの機能 を使用することで、デバイス/通信/サーバのセ キュリティを向上させられる •SORACOM操作自体のセキュリティはSAMを 使用して適切に権限分掌する まとめ
  54. 54. •多くご要望頂いている機能 •多要素認証(MFA) •IMEIロック •IMEI(デバイスの個体番号)とIMSIの 組み合わせでないと通信が出来なく する機能 今後のセキュリティ周りのロードマップ
  55. 55. 《 株式会社ソラコムのビジョン 》 世界中のヒトとモノをつなげ 共鳴する社会へ

×