この記事はTwilio Advent Calendar 2021と株式会社シンプルウェイ Advent Calendar 2021の10日の記事です。今日は15日ですが。
Twilio Advent Calendar 2021 の空きがあったので過去にさかのぼってエントリーしてみました。
PPAPやめたいですよね? ピコ太郎じゃないですよ。パスワードZIP・パスワードメール・暗号化・プロトコルです。
シンプルウェイでは以前プライバシーマークを持っていたのですが、その際に機密情報のやり取りをどうするかという問題に対してはPPAPでお茶を濁していました。最近ISMSの取得を目指しているのですが、セキュリティ周辺の運用を見直しているときにPPAPはどうにかしたいよねという話になり、これを機にPPAPを廃止する方針となりました。
廃止するのであれば代替手段が必要になりますが、幸いシンプルウェイではオンラインファイル共有システムを自社で開発して利用していましたので、これに機能追加することで解決することにしました。
このファイル共有システムの動作は、
- 自社スタッフがファイルと顧客のメールアドレスを登録
- 送付が初回なら名前入力、2回目以降なら顧客名が表示される
- 一意のURLが発行される
- URLを顧客へ連絡
- 顧客がURLにアクセス
- 顧客がワンタイムパスワードを取得
- ワンタイムパスワードがメールで送られてくる
- パスワードを入力
- ファイルにアクセス
という仕様になっています。
ところで、PPAPには
- 宛先間違いが起こりうる
(ファイルもパスワードもどちらもメールで送るという同じ作業なので、宛先を間違えたまま操作を繰り返す恐れあり) - ファイルとパスワードが同じ通信経路を通る
(通信経路が盗聴されていたり顧客のメールアドレスが乗っ取られていたらファイルが漏洩する)
という問題があります。
これらの問題に対して上記システムでは
- 宛先間違いの問題については、(2)で顧客名とメールアドレスの組み合わせをチェックすることである程度緩和される
- 通信経路については、(4)のURLの連絡がチケットやチャット経由であれば解決になるのですが、ほとんどはメールになってしまうので、これはPPAPと大差なくなってしまいます
という状態です。
さて、やっとこの投稿の本題です、上記システムのワンタイムパスワードの通信経路がメール以外になればPPAPの問題点を克服できますので、これをSMSにしてしまおうと思います。
ここ最近は窓口担当者は会社の携帯を持つのが当たり前になりつつありますので、概ねこれでカバーできるでしょう。(一応旧来の仕様も残しておいて、番号を入手しづらいようであればURLの送付経路を変えることで代替可能という運用ルールにすることにします)
改修後の動作は、
- 自社スタッフがファイルと顧客のメールアドレス・電話番号を登録
- 送付が初回なら名前入力、2回目以降なら顧客名が表示される
- 一意のURLが発行される
- URLを顧客へ連絡
- 顧客がURLにアクセス
- 顧客がワンタイムパスワードを取得
- ワンタイムパスワードがSMSで送られてくる
- パスワードを入力して
- ファイルにアクセス
という仕様になります。
今回上記のSMS送信部分をTwilioのサービスで実装しました。
実装してわかったのですが、Twilio の SMS 送信って本当にかんたんですね。
実は上記システムはFreePascalという言語でApacheのモジュールとして開発されているので、APIがOAuthとかだと実装が面倒なんですよ。しかしTwilioのAPIはBasic認証でステートレスでAPI実行できるので、レガシーなプログラミング言語でもササッと組み込みてることがラクですね。
SMSを送るならたったこれだけです
$ curl 'https://api.twilio.com/2010-04-01/Accounts/[アカウントSID]/Messages.json' \
-X POST \
--data-urlencode 'To=+819012345678' \
--data-urlencode 'MessagingServiceSid=[Messaging Service Sid]' \
--data-urlencode 'Body=Your password: 87654321' \
-u [アカウントSID]:[Authトークン]
改修されたあとのシステムの動作はこんな感じです。
結構理想的な動きになったのではないでしょうか。ITを扱う会社としてセキュリティには気をつけたいので、これで顧客にも示しが付きますね。
なお、このシステムは商品として大々的に広報していませんが販売もしています。下記のような機能もありますのでご興味がある方はお問い合わせください。
- SaaSとしての提供または買い切り可
- オンプレ・VPS・クラウドいずれも利用可
- ファイルはサーバー内で暗号化保持
- クリーンアップ(ファイル有効期限)機能あり
- SSOは将来的機能として検討中