臺灣社交距離 App

catcutecat

2021.08.31

運作機制

  • 總覽
  • 系統架構
  • 藍牙規格
  • 加密規格
  1. 與接觸過的裝置交換 RPIs (Rotating Proximity Identifiers)

  2. 確診者可自行選擇是否上傳過去 14 天的 TEK (Temporary Exposure Key)

  1.                                            銨


  2.  
  3. App 自動定期向 Server 下載確診者上傳的 TEK
  4. 若有接觸紀錄,App 會跳通知提醒使用者

系統架構

手機

衛生單位的人

伺服器

衛生單位的人提供驗證碼給使用者

App 拿驗證碼向伺服器換取 token

App 加密並打包 TEK 等要上傳的資料,連同 token 一起向伺服器換取 certificate

App 把要上傳的資料連同 certificate 一起傳送給 key server

藍牙規格

  • Service UUID - 0xFD6F
  • Service Data
    • A 16 byte Rolling Proximity Identifier
    • A 4 byte Associated Encrypted Metadata
  • Broadcasting Interval
    •  Is subject to change
    •  Currently 200-270 milliseconds
  • Scanning interval
    • Discover nearby within 5 minutes

加密規格

  • ENIntervalNumber
    •  10 minute time window
  • Temporary Exposure Key (TEK)
    • TEKRollingPeriod - 144 (24 hours)
    • Size - 16 bytes
    • 臺灣時間每天早上 8:00 更新
  • Rolling Proximity Identifier (RPI)
    • Change when BLE MAC changes (10 - 20 minutes)
    • Size - 16 bytes

Exposure Notifications API

FAQ

  • 多久比對一次
  • 示警條件與通知規則
  • 到底需不需要開定位
  • 資料保存時間
  • 移除 App 會怎樣

多久比對一次

  • 設定上是每 4 個小時比對一次
    • 用 WorkManager
  • 例外
    • 看各手機系統的心情 XD

示警條件與通知規則

  • 示警條件
    • >= -65dB && >= 2 minutes
  • 無風險通知規則
    • 臺灣時間每天晚上 6 - 10 點之間,最多一次
  • 有風險通知規則
    • 使用者進入 App 主頁面前 - 每次比對後
    • 使用者進入 App 主頁後 - 停止通知

到底需不需要開定位

資料保存時間

  • Server 端 
    • 確診者上傳的 TEK - 10 天
  • 手機端
    • 接觸紀錄 - 14 天
    • 自己的 TEK - 14 天

移除 App 會怎樣

  • Android
    • 資料會全部不見
    • 重新安裝也一樣,不見就不見了
  • iOS
    • 資料會留著

其他

  • 開發時程/團隊人數/分工
  • 一些數據資料
  • 開源過程
  • 中國機
  • 疑難雜症

開發時程/團隊人數/分工

  • 第一階段 2020.04 ~ 2020.06
    • 自行處理藍牙訊號收發、加密、儲存、比對
  • 第二階段 2021.02 ~ now
    • 串接 Exposure Notifications API
  • Jarvis + Designer 1, iOS 1~2, Android 1, Server 2

一些數據資料

  • 使用者數量趨勢變化
  • 兩平臺使用者數量比例
  • 確診者資料上傳情形
  • Crash & ANR Rate

機師

二級

開源過程

中國機

  • 評論:「臺灣天網」
  • 評論:「好厲害的反共技術還特地封鎖中國機」

 

 

「......」

疑難雜症

  • 沒有每天收到無風險通知、半夜收到無風險通知
  • 小工具尺寸不是 1x1
  • 重開機後快速啟動鍵可能會失效
  • Sony Z3 Android 6.0 無法解鎖螢幕
  • 掃描 QR Code 後 無法送出/內容空白/內容是前次的
  • 要連續掃描兩次才不會跳掉
  • 簡訊送出後還是會反覆出現
  • ... 歡迎來發 PR ~~

連結匯總

Q & A

0831 TSD App

By catcutecat