だい86かい SORACOM公式こうしきブログ

ソラコム公式こうしきブログ

【Ask SORACOM Vol.12】SORACOM Napter の TLS オプションとは?

  • この記事をはてなブックマークに追加
  • 本文印刷

 ほん記事きじはソラコムが提供ていきょうする「SORACOM公式こうしきブログ」に掲載けいさいされた「【Ask SORACOM Vol.12】SORACOM Napter の TLS オプションとは?」をさい編集へんしゅうしたものです。

こんにちは、CRE (Customer Reliability Engineer) の加納かのう(ニックネーム: Kanu)です。

ソラコムの CRE チームは「SORACOM を利用りようするじょうでのお客様きゃくさま不安ふあんをゼロにすること」をミッションに、お客様きゃくさまサポートやドキュメントの拡充かくじゅうつとめています。また、おおくのお客様きゃくさまのナレッジとできるよう、いただいたおわせをもとにした SORACOM サービスの活用かつよう方法ほうほう利用りよう注意ちゅういてん更新こうしんしたドキュメントなどについて不定期ふていき紹介しょうかいしています。SORACOM サービスのご利用りようにあたってきになればさいわいです。

今回こんかいは、オンデマンドリモートアクセス「SORACOM Napter」の TLS オプションについてご紹介しょうかいします。

SORACOM Napter とは

客様きゃくさまより、インターネットがわからIoTデバイスへSSHとうによるリモートアクセスを目的もくてきに「SORACOM の IoT SIM に、固定こていのグローバル IP アドレスを付与ふよできますか?」というご質問しつもんをいただきます。
FAQ にも掲載けいさいされているとおり、SORACOM では不正ふせいアクセスリスクの軽減けいげんなどセキュリティ確保かくほ観点かんてんから、 IoT SIMへの固定こていグローバル IPアドレスをてる仕組しくみはありません。

一方いっぽうで、デバイスの保守ほしゅやデバッグなどで IoT デバイスに遠隔えんかくからアクセスしたいというケースはおおいとおもいます。そんなときのために、SORACOM では必要ひつようなときにのみ IoT SIM にグローバル IP アドレスとポートのペアを動的どうてきてる SORACOM Napter というサービスをご用意よういしています。

SORACOM Napter の TLS オプションとは

SORACOM Napter には IoT デバイスへのリモートアクセスのセキュリティをたかめるための機能きのうがいくつかあります。そのうちひとつが今回こんかい紹介しょうかいする「TLS オプション」です。専門せんもんてきには「TLS 終端しゅうたん」とばれる機能きのうとなります。

このオプションを利用りようすることで、下図したずみぎのように、インターネット区間くかんを TLS で暗号あんごうできます。そして左側ひだりがわ、IoT デバイス〜 SORACOM プラットフォームまでの区間くかんは、SORACOM Air for セルラーが提供ていきょうする閉域もう経由けいゆしているため、TLS オプションを利用りよういただくことで IoT デバイスがわが TLS に対応たいおうしていない場合ばあいでも、通信つうしん経路けいろ全体ぜんたい保護ほごされた状態じょうたいになります。

たとえば、下図したずのように HTTP でけているデバイスにたいして PC インターネット経由けいゆでも安心あんしんして通信つうしんできる仕組しくみが構築こうちくできます。

TLS (トランスポート・レイヤー・セキュリティ) とは?

通信つうしん相手あいて認証にんしょう経路けいろ暗号あんごう内容ないようかいざん検知けんちおこなえるプロトコルです。ブラウザのアドレスバーにかぎく「SSL(セキュア・ソケット・レイヤー)」の後継こうけいではありますが、ほぼ同義どうぎです。

TLSオプションのON/OFF方法ほうほう

TLS オプションの設定せっていはとても簡単かんたんです。オンデマンドリモートアクセス作成さくせいに TLS オプションにチェックをれるだけで、SORACOM NapterがTLSをけられるようになります(TLS終端しゅうたんがONとなる)。

SORACOM Beam と類似るいじした発想はっそう

SORACOM Napterは、インターネットがわからのIoTデバイスにけての通信つうしん利用りようできるサービスです。ぎゃくに、IoTデバイスがわからインターネット/クラウドけの通信つうしんをTLSで暗号あんごうできるサービスが SORACOM Beam になります。
SORACOM Napter も SORACOM Beam も、インターネット区間くかん暗号あんごうすることでエンドツーエンドで安心あんしん通信つうしん実現じつげんするという類似るいじせいがあります。

SORACOM Napter の TLS オプション利用りよう注意ちゅういてん

SORACOM Napter を利用りよういただいているお客様きゃくさまから「SORACOM Napter 経由けいゆでデバイスに接続せつぞくできない」というおわせをいただくことがあります。その原因げんいんひとつとして、TLS オプションが不要ふようなプロトコルの使用しように、TLS オプションを ON としている場合ばあいげられます。

TLS オプションは、あくまでも「SORACOM Napter が TLS 通信つうしんり(終端しゅうたんして)、中継ちゅうけいする」という宣言せんげんです。
よって、TLS 以外いがい方法ほうほう暗号あんごうされているプロトコルを Napter で中継ちゅうけいさせたい場合ばあいは、むしろ Napter にはなにもさせない= TLS オプションは OFF にすることがもとめられます。

このように TLS オプションを有効ゆうこうにするさいは、対象たいしょうのプロトコルの暗号あんごうが TLS によるものかかを確認かくにんしてください。TLS オプションを OFF にするれいとしては、SSHやRDP(Remote Desktop Protocol) がげられます。これらはすでに方法ほうほう暗号あんごうみであるため、TLSオプションは不要ふようです。

【テックけ:1】 TLS 対応たいおうのプロトコル利用りように SORACOM Napter の TLS オプションを有効ゆうこうにすると接続せつぞく失敗しっぱいするのは何故なぜ

ちなみに、SSH などの TLS を使つかっていないプロトコルにたいして TLS オプションを利用りようすると、具体ぐたいてきにどのような理由りゆう接続せつぞく失敗しっぱいするのでしょうか。ざっくりともうげますと、TLS オプションを有効ゆうこうにすると SORACOM Napter がわは TLS のハンドシェイク(初期しょき)を期待きたいします。一方いっぽうで、一般いっぱんてきな SSH クライアントは TCP のリクエストを送信そうしんするため、それぞれが期待きたいことなる処理しょりとなるため失敗しっぱいします。

もうすここまかく解説かいせつします。以下いかは、HTTPS(HTTP+TLS) と SSH での挙動きょどうちがいをパケットキャプチャでています。(とき系列けいれつうえからしたながれています)

以下いかは HTTPS(HTTP+TLS)のれいです。
クライアントがわ (192.168.0.3) から TLS オプションが ON となっている Napter へ、HTTPS における TLS のハンドシェイク開始かいし (Client Hello) を送信そうしんし(あかわく部分ぶぶん)、Napter がわ対応たいおうして応答おうとう (Server Hello) を送信そうしんしています。これは期待きたいどおりのうごきとなります。

以下いかは SSH のれいです。
クライアントがわ (192.168.0.3) から TLS オプションが ON となっている Napter へ、Client Hello ではなく普通ふつうのパケット (SSHの初期しょきパケット) を送信そうしんしています(あかわく部分ぶぶん)。すると、Napter としては「期待きたいした通信つうしん (Client Hello) ではないので、通信つうしん終了しゅうりょう」という意味いみの “FIN” パケットをクライアントにおくかえしています。これは接続せつぞく失敗しっぱい挙動きょどうとなります。

【テックけ:2】 TLS 対応たいおうのプロトコルにたいして、TLS オプションを利用りようしたい場合ばあいはどうする?

SSH や RDP はプロトコル自体じたい暗号あんごうされているので TLS オプションを OFF にすれば通信つうしん可能かのうです。では、たとえば産業さんぎょう現場げんば使つかわれる Modbus/TCP といった、暗号あんごう能力のうりょくいプロトコルによるリモートアクセスは、利用りようひかえるべきなのでしょうか?

こたえは NO です。暗号あんごう能力のうりょくいプロトコルでも、技術ぎじゅつわせで暗号あんごう可能かのう場合ばあいがあります。

まず SSH の利用りようげられます。SSH はリモートアクセスに使つかうプロトコルですが、暗号あんごうされた通信つうしん部分ぶぶんを「ポートフォワーディング」という機能きのうで、のアプリケーションに使つかわせることができます。たとえばパソコンの画面がめん転送てんそうをしてリモート制御せいぎょ実現じつげんする VNC では、サーバーとクライアントのわせによっては暗号あんごうされないことがわかっています。そこで、SSH のポートフォワーディングで、どのような条件じょうけんでも暗号あんごうできるわけです。このポートフォワーディングによる方法ほうほうは、SORACOMのユーザードキュメントに記載きさいしていますのでごらんください。

また、ほかにもはあります。TLS 対応たいおうプロトコルを、TLS するソフトウェアの利用りようです。ここでは、オープンソースの TLS ソフトウェア「stunnel」をご紹介しょうかいします。

stunnel と SORACOM Napter のわせかた

ここでは、IoT デバイスがわを Raspberry Pi とし、そのうえで VNC をげて、リモートアクセスする想定そうていです。リモートアクセスもととしては macOS としていますが、stunnel は Windows とうでもうごきますので、同様どうよう設定せっていで TLS による暗号あんごう通信つうしん可能かのうです。

1. Raspberry Pi で  VNC Server を有効ゆうこうする

SORACOMユーザードキュメントの 「ステップ 1: デバイスの設定せっていおこな」を参照さんしょうに、設定せっていしてください。

2. SORACOM Napter の利用りよう開始かいしする

SIM 管理かんり画面がめんから対象たいしょうの SIM にチェックをれて、「操作そうさ」からオンデマンドリモートアクセスをクリックします。オンデマンドリモートアクセスのダイアログが表示ひょうじされるので、以下いかのように設定せっていします。

  • デバイスがわポート:デバイスの VNC Server がけているポート番号ばんごう (5900) を指定していします。
  • アクセス可能かのう時間じかん:リモートアクセスするときあいだ任意にんい指定していします。指定していした時間じかん経過けいかするとリモートアクセスはできなくなります。最大さいだいで 8 あいだとなります。
  • アクセスもと IP アドレスレンジ:リモートアクセスを許可きょかするリモートがわの IP アドレスレンジを指定していします。(ブランクとした場合ばあい、ユーザーコンソールにアクセスしたときのソースグローバル IP アドレスがデフォルトで設定せっていされます。)
  • TLS オプション:チェックをれてオプションを有効ゆうこうにします。

上記じょうき入力にゅうりょく、OK をクリックすると IoT デバイスへアクセスするさいのグローバル IP アドレスとポート番号ばんごうのペアが表示ひょうじされます。

3. アクセスもとの PC で stunnel を設定せっていする

今回こんかいは macOS を利用りようした手順てじゅんをご紹介しょうかいします。ず、以下いかのコマンドを実行じっこうして stunnel をインストールします。

brew install stunnel

/usr/local/etc/stunnel/stunnel.conf編集へんしゅうして以下いか設定せっていします。 AAA.AAA.AAA.AAA と BBBBB にはぜんステップで SORACOM Napter からはらされたグローバル IP アドレスとポート番号ばんごう指定していします。CCCC には PC(macOS) じょう接続せつぞくけるするポート番号ばんごう指定していします。

[ssh_over_ssl] client = yes accept = CCCC connect = AAA.AAA.AAA.AAA:BBBBB

stunnel を起動きどうします。

stunnel /usr/local/etc/stunnel/stunnel.conf

4. VNC 接続せつぞくする

VNC クライアントソフトウェアを使つかlocalhost:CCCC接続せつぞくし、Username/Password を入力にゅうりょくすると Raspberry Pi に VNC 接続せつぞくできます。ここでは PC がわのポート番号ばんごう (CCCC ) を 5999 ばんとしています。

通信つうしん経路けいろとしては以下いかのようになります。

+------------ クライアントPC(macOS) ------------+---- SORACOM プラットフォーム ---+------ Raspberry Pi ----+  |                                               |                                 |                        | | VNCクライアント --(暗号あんごう)--> stunnel --(TLS通信つうしん)--> SORACOM Napter --(LTEによる暗号あんごう)--> VNCサーバー | 

今回こんかいは VNC を利用りようしましたが、TCP じょうのアプリケーションであれば可能かのう場合ばあいがあります。SORACOM Napter は、オンラインで即時そくじ利用りよういただくことができ、また、無料むりょうわくもございます。ぜひおためしください。

最後さいご

いかがでしたでしょうか。後半こうはんがややながくなってしまいましたが、SORACOM Napter の TLS オプションの活用かつよう方法ほうほう注意ちゅういてんについてご紹介しょうかいいたしました。手軽てがるつセキュアにデバイスへリモートアクセスする手段しゅだんとして SORACOM Napter を是非ぜひ検討けんとうください。

また、Ask SORACOM の過去かこ記事きじこちらをごらんください。

それでは、次回じかいもおたのしみに!

― ソラコム加納かのう (Kanu)

投稿とうこう 【Ask SORACOM Vol.12】SORACOM Napter の TLS オプションとは?SORACOM公式こうしきブログ最初さいしょ表示ひょうじされました。

この連載れんさい記事きじ

過去かこ記事きじアーカイブ

2024ねん
01がつ
02がつ
03がつ
04がつ
05がつ
06がつ
07がつ
08がつ
09がつ
10月
11月
2023ねん
01がつ
02がつ
03がつ
04がつ
05がつ
06がつ
07がつ
08がつ
09がつ
10月
11月
12月
2022ねん
01がつ
02がつ
03がつ
04がつ
05がつ
06がつ
07がつ
08がつ
09がつ
10月
11月
12月
2021ねん
01がつ
02がつ
03がつ
04がつ
05がつ
06がつ
07がつ
08がつ
09がつ
10月
11月
12月