🔄 iBrowe Sync v2 ระบบซิงก์ที่ปลอดภัย เป็นส่วนตัว และเข้ารหัสแบบครบวงจร iBrowe Sync v2 เป็นระบบการซิงก์ที่ออกแบบมาให้เน้นความเป็นส่วนตัวสูงสุด พร้อมเข้ารหัสฝั่งผู้ใช้ (client-side) แบบสมบูรณ์ โดยยังคงสามารถทำงานร่วมกับโปรโตคอลพื้นฐานของเบราว์เซอร์ที่ใช้ Chromium ได้อย่างสมบูรณ์
📂 โค้ดฝั่งเซิร์ฟเวอร์เป็นโอเพ่นซอร์ส: 👉 https://github.com/ibrowe/go-sync
🆚 ความแตกต่างระหว่าง iBrowe Sync กับ Chromium/Google Sync
- การเข้ารหัสฝั่งผู้ใช้
✅ iBrowe Sync v2: บังคับเปิดใช้งานเสมอ ❌ Google Sync: เป็นตัวเลือก หรือใช้รหัสผ่านเท่านั้น
- ความจำเป็นต้องลงชื่อเข้าใช้
❌ iBrowe: ไม่ต้องใช้บัญชี
✅ Google: ต้องใช้บัญชี Google
- ตำแหน่งของเซิร์ฟเวอร์ซิงก์
🟢 iBrowe: โฮสต์โดย iBrowe เอง
🔴 Google: ควบคุมโดย Google
- การยืนยันตัวตนด้วย Seed (เมล็ดคำ)
✅ iBrowe: ใช้ BIP39 phrase (เมล็ดคำแบบ mnemonic)
❌ Google: ไม่รองรับ
🔐 การยืนยันตัวตนแบบ “Sync Chain”
- อุปกรณ์เครื่องแรกจะสร้าง Seed ขนาด 32 ไบต์แบบสุ่ม
- Seed นี้จะถูกแปลงเป็น วลี BIP39 mnemonic (คำมนจำได้ง่าย)
- อุปกรณ์อื่นสามารถเข้าร่วม chain ได้ด้วยวลีนี้ (พิมพ์หรือสแกน QR)
- ระบบจะใช้ HKDF-SHA512 เพื่อสร้างคู่กุญแจ Ed25519 สำหรับยืนยันตัวตน
- โทเค็นการเข้าถึงจะมีรูปแบบ: base64(timestamp_hex | signed_timestamp_hex | public_key_hex) หมดอายุใน 24 ชั่วโมง และเซิร์ฟเวอร์จะคืนค่าเวลา sync กลับมา
🔐 การเข้ารหัสฝั่งผู้ใช้แบบบังคับ แทนที่จะปล่อยให้ผู้ใช้ตั้งรหัสผ่านอ่อน ๆ iBrowe จะใช้วลี BIP39 ที่เข้ารหัสอย่างปลอดภัย ตามขั้นตอนนี้:
- วลี BIP39 → ขยายคีย์ด้วย scrypt(N=2^13, r=8, p=11)
- อุปกรณ์แรกสร้าง salt แบบสุ่ม และแชร์ผ่านเซิร์ฟเวอร์
- คีย์ที่ได้จะถูกใช้เป็น AES-128-CTR + HMAC key
- ข้อมูลสำคัญทั้งหมดถูกเข้ารหัสก่อนส่งไปยังเซิร์ฟเวอร์
🔏 ข้อมูลใดถูกเข้ารหัส? ทุกฟิลด์ที่อยู่ภายใน EntitySpecifics ของข้อมูลแต่ละประเภทจะถูกเข้ารหัส เช่นใน bookmark: message BookmarkSpecifics { optional string url = 1; optional string full_title = 11; optional bytes favicon = 2; optional string guid = 10; }
✅ ข้อมูลเหล่านี้จะมองเห็นได้เฉพาะฝั่งผู้ใช้เท่านั้น เซิร์ฟเวอร์ไม่สามารถเข้าถึงเนื้อหาได้
📂 ข้อมูลที่เซิร์ฟเวอร์มองเห็นได้ เซิร์ฟเวอร์ยังต้องมองเห็น metadata บางอย่าง เพื่อให้ sync ทำงานได้ เช่น:
- ชื่อและประเภทของอุปกรณ์
- รหัส item และความสัมพันธ์กับ parent
- เวอร์ชันและ timestamp
- ข้อมูลโครงสร้างซิงก์ (ไม่ใช่ข้อมูลผู้ใช้โดยตรง)
✅ รองรับบนแพลตฟอร์มใดบ้าง?
- Desktop (Windows, macOS, Linux): รองรับทั้งหมด
- Android: รองรับทั้งหมด
- iOS: รองรับบางส่วน เช่น Bookmark, ประวัติ, รหัสผ่าน, และแท็บที่เปิดอยู่
📚 แหล่งอ้างอิง ดัดแปลงมาจากระบบ Brave Sync v2 🔗 Brave Sync GitHub