รัฐบาลสิงคโปร์เปิดรายละเอียดโปรโตคอล BlueTrace โปรโตคอลติดตามการเข้าใกล้กัน โดยโปรโตคอลนี้เป็นหัวใจของโปรแกรม TraceTogether ที่รัฐบาลสนับสนุนให้ประชาชนติดตั้ง
โปรโตคอล BlueTrace กำหนดหน้าที่ของเซิร์ฟเวอร์, โทรศัพท์ที่ติดตั้งแอป, และกระบวนการแลกเปลี่ยนข้อมูลระหว่างโทรศัพท์ที่เข้าใกล้กัน ดังนี้
- เซิร์ฟเวอร์: เซิร์ฟเวอร์หลักจะเก็บข้อมูลการลงทะเบียน ซึ่งในกรณีของสิงคโปร์มีเฉพาะหมายเลขโทรศัพท์เท่านั้น พร้อมกับหมายประจำตัวผู้ใช้ที่ไม่เปลี่ยนไปตลอดการติดตั้ง หน้าที่ของเซิร์ฟเวอร์จะเป็นผู้สร้างหมายเลขประจำตัวชั่วคราว (temporary ID/Temp ID) ให้แอปไว้แลกเปลี่ยนกับโทรศัพท์เครื่องอื่น Temp ID นี้เป็นข้อความที่เข้ารหัสแบบ AES-256-GCM โดยภายในมีหมายเลขประจำตัวจริงๆ และเวลาที่อนุญาตให้ใช้ Temp ID นี้ได้ (Temp ID ใช้งานได้อันละประมาณ 15 นาที) โดยเซิร์ฟเวอร์จะสร้าง Temp ID คราวละมากๆ ให้แอปนำไปใช้งานตามช่วงเวลาที่กำหนดทำให้แอปไม่ต้องต่อเซิร์ฟเวอร์ตลอดเวลา
- แอปพลิเคชั่น: ทำหน้ากระจาย Temp ID ออกไปยังเครื่องรอบๆ ผ่าน Bluetooth Low Energy (BLE) โดยนอกจาก Temp ID แล้ว ตัวแอปจะแจ้งข้อมูลเพิ่มเติม ได้แก่ รุ่นโทรศัพท์ (เพื่อให้ประมาณระยะห่างระหว่างกันได้), ชื่อย่อประเทศและองค์กร (เตรียมการสำหรับใช้ร่วมกันหลายประเทศ), และหมายเลขเวอร์ชั่นโปรโตคอล
- โปรโตคอล การส่งข้อมูลระหว่างโทรศัพท์จะส่งเป็น JSON เนื้อในเป็น UTF-8 โดยมีเครื่องหนึ่งทำหน้าที่ "อุปกรณ์" (Peripheral) ส่งข้อมูลฝั่งตัวเองก่อน จากนั้นโทรศัพท์อีกเครื่องจะทำหน้าที่ "ศูนย์กลาง" (Central) รับข้อมูลแล้วส่ง Temp ID, ชื่อประเทศและองค์กร, รุ่นโทรศัพท์, และความแรงสัญญาณที่วัดได้
ตัวแอปจะเก็บข้อมูลที่แลกเปลี่ยนระหว่างกันไว้นาน 21 วัน โดยทางทีมงาน BlueTrace ระบุเป้าหมาย 4 ประการ ได้แก่
- ผู้อื่นที่ไม่เกี่ยวข้องติดตามตัวผู้ใช้ไม่ได้
- ระบบเก็บข้อมูลระบุตัวตนอย่างจำกัด
- ประวัติการพบปะอยู่บนอุปกรณ์เองเท่านั้น
- การให้ข้อมูลสามารถยกเลิกได้เสมอ
นอกจากตัวโปรโจตอลแล้ว ทางสิงคโปร์ยังเปิดซอร์สโปรแกรม OpenTrace ที่อิมพลีเมนต์ตามโปรโตคอลออกมาด้วย อย่างไรก็ดีข้อจำกัดของโปรแกรมนี้คือมันทำงานบน iOS ได้ไม่เต็มที่เนื่องจาก iOS ไม่เปิดให้แอปส่งข้อมูล BLE โดยที่ไม่ได้รันแบบเบื้องหน้า การใช้งานจึงต้องเปิดแอปทิ้งไว้ ซึ่งค่อนข้างแปลกสักหน่อย
สำหรับแอปแบบเดียวกันของไทยที่กำลังเปิดตัววันนี้ ข้อมูลที่ออกมาบ่งบอกว่ากระบวนการรักษาความปลอดภัยยังด้อยกว่า BlueTrace สองข้อจากสี่ข้อ เนื่องจากข้อมูลส่งกลับเซิร์ฟเวอร์และหมายเลขประจำตัวที่กระจายออกมาไม่มีการเปลี่ยนตามเวลาเพื่อรักษาความเป็นส่วนตัว
ที่มา - BlueTrace.io