OneKey Transfer เป็นฟีเจอร์ภายในแอป OneKey ที่ช่วยย้าย Private Keys ของ Software Wallet ของคุณระหว่างอุปกรณ์ต่างๆ ได้อย่างปลอดภัย คู่มือนี้จะอธิบายถึงชั้นความปลอดภัยหลายชั้นที่ช่วยปกป้องข้อมูลของคุณ
หมายเหตุเกี่ยวกับ Wallet: ปัจจุบันฟีเจอร์นี้ใช้สำหรับ Software Wallet เท่านั้น การรองรับ Hardware Wallet มีความซับซ้อนกว่าและจะถูกเพิ่มเข้ามาในเวอร์ชันอนาคต
หลักการสำคัญ
ความปลอดภัยของเราสร้างขึ้นจากคำมั่นสัญญาหลักสามประการ:
โอเพนซอร์ส & น่าเชื่อถือ
โค้ดสำหรับแอปและเซิร์ฟเวอร์ของเราเป็นแบบสาธารณะ ทุกคนสามารถตรวจสอบเพื่อยืนยันการอ้างสิทธิ์ด้านความปลอดภัยของเราได้
โค้ดไคลเอ็นต์: https://github.com/OneKeyHQ/app-monorepo
การเข้ารหัสจากต้นทางถึงปลายทาง (E2EE)
ข้อมูลของคุณจะถูกเข้ารหัสบนอุปกรณ์ของคุณและจะถูกถอดรหัสบนอุปกรณ์ปลายทางเท่านั้น ไม่มีใครอยู่ตรงกลาง — แม้แต่ OneKey — ที่สามารถอ่านข้อมูลได้
Zero-Knowledge ของเซิร์ฟเวอร์
เซิร์ฟเวอร์ของเราทำหน้าที่เป็นเพียงตัวควบคุมการส่งข้อมูลเพื่อเชื่อมต่ออุปกรณ์ของคุณเท่านั้น ไม่สามารถเข้าถึง หรือทราบข้อมูลที่กำลังถูกถ่ายโอนได้
วิธีการสร้าง Encryption Key
ข้อมูลของคุณถูกล็อกด้วยคีย์ที่สร้างขึ้นจากหลายส่วนที่เป็นอิสระต่อกัน ผู้โจมตีจะต้องขโมยทุกส่วนจากที่ต่างๆ พร้อมกันเพื่อที่จะพยายามถอดรหัส
1. Dynamic Shared Key (ECDHE)
คืออะไร: คีย์ที่แชร์ชั่วคราวและใช้ครั้งเดียว สร้างขึ้นโดยตรงระหว่างอุปกรณ์สองเครื่องของคุณเมื่อเริ่มต้นเซสชัน
ประเด็น คีย์นี้จะไม่ถูกส่งหรือมองเห็นโดยเซิร์ฟเวอร์ ทำให้การเชื่อมต่อปลอดภัย แม้ว่ารหัสจับคู่ของคุณจะถูกดักจับได้ (เช่น ผ่านการบันทึกหน้าจอ)
2. รหัสจับคู่ (Pairing Code)
10 ตัวอักษรแรก: ส่งไปยังเซิร์ฟเวอร์เพื่อระบุว่าอุปกรณ์ใดต้องการเชื่อมต่อ
40 ตัวอักษรสุดท้าย: ใช้เป็นส่วนผสมลับสำหรับ Encryption Key สุดท้าย ส่วนนี้ จะไม่ ถูกส่งไปยังเซิร์ฟเวอร์
3. ส่วนผสมลับเพิ่มเติม
จากอุปกรณ์ของคุณ (ภายในเครื่อง): รหัสผ่านล็อกหน้าจอของอุปกรณ์ของคุณ, ตัวเลขสุ่มสำหรับการถ่ายโอน, ID เฉพาะของอินสแตนซ์แอปของคุณ และค่าคงที่ลับที่ฝังอยู่ในแอป (salt)
จากคลาวด์ (เซิร์ฟเวอร์): ID การเชื่อมต่อชั่วคราวและตัวเลขสุ่มอีกตัวที่สร้างโดยเซิร์ฟเวอร์สำหรับเซสชัน
กล่าวโดยสรุป การสร้างคีย์จากหลายแหล่งนี้สร้างเกราะป้องกันความปลอดภัยที่สูงอย่างยิ่ง หากผู้โจมตีต้องการมีโอกาสถอดรหัสข้อมูลของคุณ พวกเขาจะต้องเจาะระบบเซิร์ฟเวอร์พร้อมกัน (เพื่อดักข้อมูล, ได้รับส่วนของคีย์จากฝั่งคลาวด์, และปลอมแปลงคีย์ ECDHE ผ่านการโจมตีแบบ Man-in-the-Middle) และบันทึกหน้าจอแอปของคุณ (เพื่อขโมยรหัสจับคู่และส่วนของคีย์ภายในเครื่องอื่นๆ)
การป้องกัน & การยืนยัน
เราใช้มาตรการเชิงรุกหลายอย่างเพื่อป้องกันการโจมตีและรับรองว่าคุณเป็นผู้ควบคุม
การป้องกันฝั่งเซิร์ฟเวอร์
การป้องกันการโจมตีแบบ Brute-Force:
Rate Limiting: อุปกรณ์เดียวสามารถส่งคำขอได้เพียงครั้งเดียวทุกๆ 3 วินาที เพื่อป้องกันการโจมตีแบบรวดเร็ว
Attempt Limits: สามารถลองรหัสจับคู่ได้เพียง 10 ครั้งเท่านั้น หลังจาก 10 ครั้งที่ล้มเหลว เซสชันจะถูกยกเลิก
การยืนยันที่ผู้ใช้ควบคุม
การตรวจสอบรหัสผ่านหน้าจอล็อก
สิ่งที่คุณต้องทำ: คุณต้องป้อนรหัสผ่านโทรศัพท์ของคุณเพื่ออนุญาตการถ่ายโอน
ความ เพื่อให้แน่ใจว่าผู้ที่หยิบโทรศัพท์ที่ปลดล็อกของคุณไปไม่สามารถขโมยคีย์ของคุณได้
การยืนยันทางกายภาพด้วยรหัส 6 หลัก
สิ่งที่คุณต้องทำ: หลังจากการจับคู่ คุณต้องยืนยันด้วยตนเองว่ารหัส 6 หลักตรงกันบนหน้าจออุปกรณ์ทั้งสองของคุณ
ความ นี่เป็นการป้องกันการโจมตีแบบ Man-in-the-Middle แฮกเกอร์ไม่สามารถทำการถ่ายโอนให้เสร็จสมบูรณ์ได้ เนื่องจากพวกเขาไม่สามารถเห็นรหัสบนอุปกรณ์เครื่องที่สองของคุณ
รหัสจับคู่แบบใช้ครั้งเดียว
คืออะไร: รหัสจับคู่จะหมดอายุหลังจากใช้งานสำเร็จเพียงครั้งเดียว
ความ นี่เป็นการป้องกันแบบ "การเชื่อมต่อล่วงหน้า" หากแฮกเกอร์ขโมยรหัสของคุณและเชื่อมต่อก่อน การพยายามเชื่อมต่อที่ถูกต้องของคุณจะ ตัดการเชื่อมต่อแฮกเกอร์โดยอัตโนมัติ เพื่อให้แน่ใจว่ามีเพียงคุณเท่านั้นที่สามารถดำเนินการต่อไปได้
ตัวเลือกขั้นสูง
ด้วยโค้ดโอเพนซอร์สของเรา คุณสามารถเพิ่มความปลอดภัยและความเป็นส่วนตัวในการถ่ายโอนข้อมูลของคุณให้มากยิ่งขึ้น:
โฮสต์เซิร์ฟเวอร์ของคุณเอง: ปรับใช้โค้ดเซิร์ฟเวอร์ของเราบน เซิร์ฟเวอร์ของคุณเอง จากนั้นเชื่อมต่อโดยเลือกตัวเลือก "Custom Server" ในแอป สิ่งนี้จะทำให้คุณควบคุมข้อมูลได้อย่างสมบูรณ์
การถ่ายโอนผ่าน LAN (เร็วๆ นี้): ในเวอร์ชันอนาคต แอป OneKey สำหรับเดสก์ท็อปจะสามารถทำหน้าที่เป็น ตัวส่งต่อเครือข่ายเฉพาะที่ (LAN) สิ่งนี้จะช่วยให้อุปกรณ์ของคุณถ่ายโอนข้อมูลได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตสาธารณะเลย ซึ่งจะทำให้เกิดการแยกทางกายภาพอย่างแท้จริง
