🔄 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 ที่เข้ารหัสอย่างปลอดภัย ตามขั้นตอนนี้:

  1. วลี BIP39 → ขยายคีย์ด้วย scrypt(N=2^13, r=8, p=11)
  2. อุปกรณ์แรกสร้าง salt แบบสุ่ม และแชร์ผ่านเซิร์ฟเวอร์
  3. คีย์ที่ได้จะถูกใช้เป็น AES-128-CTR + HMAC key
  4. ข้อมูลสำคัญทั้งหมดถูกเข้ารหัสก่อนส่งไปยังเซิร์ฟเวอร์

🔏 ข้อมูลใดถูกเข้ารหัส? ทุกฟิลด์ที่อยู่ภายใน 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