# 使用者身份驗證解決方案
系統開發有一個環節是要做身份驗證,會根據系統的需要來要求使用者做驗證的動作。驗證的方式有很多像是 Email 驗證、行動電話 OTP 驗證,甚至電訊商驗證、護照驗證、⋯⋯等。
本文會介紹一些驗證方式以及對應的服務供應商,有些院長有用過也會分享一些使用心得。
# Email 驗證
最基本的驗證方式,成本最低、強度也是最低。
# 驗證流程
系統端產生一組無序驗證碼發 Email 到使用者的地址,使用者點擊連結或是拷貝 Email 內的驗證碼填回系統即完成驗證。
# 服務供應商
# 優點
- 成本超低
# 缺點
- 很容易破解,網路上隨便都可以找到可以申請臨時 Email 地址的服務,像是我介紹過的 Guerrilla Mail (opens new window) 就是。
- 無法確定人別,只能確定這個 Email 地址是有效的。
# 手機電話號碼驗證
# 簡訊 OTP
# 驗證流程
系統端產生一組無序驗證碼發手機簡訊到使用者的手機電話號碼,使用者拷貝簡訊內的驗證碼填回系統即完成驗證。
# 服務供應商
- 三竹
- 台灣老牌的,算是蠻穩的
- SMS-GET
- 台灣算便宜的
- Twilio
- 可發全球電話號碼,但是貴,台灣到達率不佳
- Vonage(Nexmo)
- 可發全球電話號碼,比 Twilio 便宜
院長的經驗是台灣的電話號碼可以走 三竹 跟 SMS-GET 全球就 Twilio 。
至於要發簡訊到中國,雖然 Twilio 跟 Vonage 都有支援發到中國,但是聽說中國有中國的特色,所以可能要用中國的服務供應商,像是阿里雲短訊服務之類的,簡訊的到達率才會比較高。
# 優點
- 大部分使用者都很熟悉的驗證模式
# 缺點
- 很容易破解,網路上搜尋線上收簡訊就有一大堆網站提供號碼。
- 有各種可能性使用者會收不到簡訊。
- 無法確定人別,只能確定這個電話號碼是有效的。
# 硬體簡訊 OTP
跟簡訊 OTP 一樣,不過就是用一個實際的硬體來發簡訊,網路上搜尋Bulk SMS Modem就有一大堆硬體 Modem 的產品,這類的產品就是一台機器可以裝很多 SIM 卡,然後透過軟體操作就可以大量發送簡訊。
至於這種裝置,如果是用一般人申請的電信方案,那一封簡訊的成本會比上面提到的供應商來的高,其實並不划算,除非有什麼特殊的需求才會使用這樣的裝置吧。
# AOTP
# 驗證流程
驗證碼從使用者的手機電話號碼發送到供應商的電話號碼,供應商收到簡訊後發 webhook 給系統端,這樣系統端就可以收到使用者的手機電話號碼。
這個流程比較新穎,著名的案例就是 PTT 的註冊流程。
# 優點
- 可以避免使用者收不到 OTP 簡訊的問題
- 可以避免使用者使用線上收簡訊服務
# 缺點
- 無法確定人別,只能確定這個電話號碼是有效的,因為使用者還是可以借別人的電話去發這封簡訊。
# 服務供應商
- 83811 尚藍資訊 MobileWiz
# 電話撥號驗證
# 驗證流程
使用者的手機播電話到供應商的提供的電話號碼,透過來電顯示這個功能,供應商可以得知撥電話的電話號碼,達成認證的目的。
# 服務供應商
# 電話撥號驗證硬體版
跟電話撥號驗證一樣,不過就是買一個硬體裝在自家機房,電話號碼的部分就是要自己去申請
# 服務供應商
# 電信商驗證
# 驗證流程
使用者透過電信業者來進行驗證,限使用「本人申辦」的「月租型門號」及「個人4G以上行動網路」,因為電信業者會有使用者的基本資料,所以可以藉由這個方式確認使用者。
實際案例:全民健保行動快易通 APP 的行動電話認證
# 服務供應商
# 證件/護照驗證
# 驗證流程
使用者拍攝自己的護照上傳到供應商網站,供應商有對應的機制會辨識使用者的證件。
實際案例:加密貨幣交易所的 KYC 機制