Proton Authenticator เป็นแอปยืนยันตัวตน (2FA) สองปัจจัยแบบโอเพนซอร์สที่สร้างรหัสผ่านแบบใช้ครั้งเดียวตามเวลา (TOTP) บนอุปกรณ์ ทำให้เข้าถึงบริการออนไลน์ได้ด้วยการรักษาความปลอดภัยอีกชั้นหนึ่ง โดยใช้การเข้ารหัสลับที่ผ่านการทดสอบมาเป็นอย่างดีแบบเดียวกันกับที่รักษาความปลอดภัยให้กับระบบนิเวศส่วนที่เหลือของ Proton ทั้งนี้ Proton Authenticator มีความโดดเด่นตรงที่ได้รับการออกแบบมาตั้งแต่ต้นเพื่อให้พร้อมใช้งานบนเกือบทุกแพลตฟอร์ม ในขณะเดียวกันก็รักษาความเป็นส่วนตัวและให้ความเป็นเจ้าของข้อมูลอย่างสมบูรณ์
ต่างจากแอปยืนยันตัวตนอื่นๆ Proton Authenticator รักษาความปลอดภัยให้กับข้อมูลด้วยการเข้ารหัสลับจากต้นทางถึงปลายทาง แม้ว่าจะเปิดใช้งานการซิงค์อุปกรณ์ก็ตาม
ซึ่งหมายความว่า Proton Authenticator จะป้องกันไม่ให้ใครก็ตาม รวมถึง Proton ทราบว่ามีบัญชีของบริการออนไลน์ใดบ้าง ข้อมูลนี้ เช่นเดียวกับอีเมลหรือประวัติการท่องเว็บ สามารถเปิดเผยข้อมูลเกี่ยวกับตัวตนได้มากมาย และการปกป้องข้อมูลดังกล่าวเป็นสิ่งสำคัญในการรักษาความเป็นส่วนตัว
การเข้ารหัสลับจากต้นทางถึงปลายทางของ Proton Authenticator รับประกันว่าการทำงานของการเข้ารหัสลับทั้งหมด รวมถึงการสร้างคีย์และการเข้ารหัสลับข้อมูล จะดำเนินการภายในอุปกรณ์ ซึ่งหมายความว่า Proton จะไม่สามารถเข้าถึงข้อมูลที่ไม่ได้เข้ารหัสลับหรือแชร์ข้อมูลดังกล่าวกับบุคคลที่สามได้ ทั้งนี้ เซิร์ฟเวอร์ของ Proton จะไม่มีวันเข้าถึงข้อมูลที่ไม่ได้เข้ารหัสลับ รวมถึงรหัสผ่านของบัญชี Proton
โมเดลการเข้ารหัสลับ
Proton Authenticator ใช้แนวทางที่ครอบคลุมเพื่อให้มั่นใจถึงความปลอดภัยและความเป็นส่วนตัวสูงสุดสำหรับข้อมูลผู้ใช้ทั้งหมด การทำงานของการเข้ารหัสลับทั้งหมดจะเกิดขึ้นภายในอุปกรณ์ และข้อมูลใดๆ ที่ส่งไปยังเซิร์ฟเวอร์จะถูกเข้ารหัสเสมอ ทั้งนี้ Proton จะไม่สามารถเข้าถึงคีย์ข้อความธรรมดาที่จำเป็นในการถอดรหัสข้อมูลผู้ใช้ได้ ทำให้ไม่สามารถถอดรหัสข้อมูลที่จัดเก็บไว้ได้ แม้ว่าจะได้รับการร้องขอจากบุคคลที่สามก็ตาม
Proton Authenticator ใช้การเข้ารหัสลับขั้นสูงแบบเดียวกันกับที่ใช้สำหรับการยืนยันตัวตนใน Proton Mail ซึ่งรวมถึงการใช้โปรโตคอล Secure Remote Password (SRP) เวอร์ชันที่ได้รับการเพิ่มความปลอดภัยซึ่งช่วยรับประกันความปลอดภัยที่แข็งแกร่งยิ่งขึ้นจากการโจมตีแบบ Man-in-the-Middle (MITM) การดำเนินการของเราหมายความว่า แม้แต่ผู้โจมตีที่สามารถอ่าน แก้ไข หน่วงเวลา ทำลาย ส่งซ้ำ หรือสร้างข้อความระหว่าง Proton และผู้ใช้โดยพลการในรูปแบบที่ตรวจจับไม่ได้ ก็จะถูกจำกัดให้สามารถตรวจสอบการเดารหัสผ่านเดียวต่อการพยายามเข้าสู่ระบบหนึ่งครั้ง ซึ่งเทียบเท่ากับการพยายามเข้าสู่ระบบโดยตรง ด้วยวิธีนี้ แม้ว่า Proton จะถูกโจมตีและดำเนินการอย่างมุ่งร้าย ข้อมูลที่เทียบเท่ากับรหัสผ่านก็จะไม่ถูกเปิดเผย
อ่านแล้วเพิ่มเติมเกี่ยวกับการเข้ารหัสลับการยืนยันตัวตนของ Proton
การเข้ารหัสลับข้อมูล
Proton Authenticator ช่วยให้จัดเก็บรหัส 2FA ได้อย่างปลอดภัย แม้ว่าจะไม่มีบัญชี Proton ก็ตาม ซึ่งหมายความว่ากระบวนการเข้ารหัสลับเริ่มแรกจะต้องดำเนินการบนอุปกรณ์ภายในเครื่องทั้งหมด จากนั้น หากตัดสินใจว่าต้องการใช้บัญชี Proton เพื่อซิงค์รหัสระหว่างอุปกรณ์ จะสามารถใช้คีย์การเข้ารหัสลับที่จัดเก็บไว้ในเซิร์ฟเวอร์ของ Proton เพื่อดำเนินการซิงค์ได้
การเข้ารหัสลับของ Proton เริ่มต้นด้วยการที่เซิร์ฟเวอร์ของ Proton มอบรหัสรูทเวอร์ชันที่เข้ารหัสซึ่งแอปยืนยันตัวตนใช้เพื่อเข้ารหัสข้อมูลของผู้ใช้ ผู้ใช้ Protonแต่ละคนจะมีคีย์ผู้ใช้ User Key แบบอสมมาตร และ Proton จะเข้ารหัสคีย์ผู้ใช้นี้บนอุปกรณ์ดังนี้:
- บัญชีที่ใช้รหัสผ่านบัญชีเดียว: Proton จะเข้ารหัสคีย์ผู้ใช้ด้วยแฮช bcrypt ของรหัสผ่านบัญชีและซอลต์ของบัญชี
- บัญชีที่ใช้คุณสมบัติรหัสผ่านหลายบัญชี: Proton จะเข้ารหัสคีย์ผู้ใช้ ด้วยแฮช bcrypt ของรหัสผ่านคีย์และซอลต์ของบัญชี
Proton Authenticator ใช้ bcrypt และซอลต์ของบัญชีเพื่อแฮชรหัสผ่านเพื่อเป็นเกราะป้องกันอีกชั้นจากการโจมตีแบบ Brute-force แม้ว่าผู้ประสงค์ร้ายจะเข้าถึงฐานข้อมูล of Proton ได้ แต่คีย์บัญชีก็จะปลอดภัยจากการโจมตีแบบ Brute-force
เมื่อเปิดใช้งานการซิงค์ Proton Authenticator จะสร้าง Authenticator Key แบบสุ่มขนาด 32 ไบต์ คีย์นี้จะถูกเข้ารหัสและลงนามด้วยคีย์ผู้ใช้ เพื่อให้มั่นใจว่ามีเพียงผู้ใช้เท่านั้นที่สามารถถอดรหัสได้ ไม่มีใคร (แม้แต่ Proton) สามารถอ่านแล้วหรือสร้าง Authenticator Key ใหม่ได้ เมื่อเข้าถึง Authenticator Key แล้ว รายการทั้งหมดใน Proton Authenticator จะถูกเข้ารหัสโดยใช้ 256-bit AES-GCM

เนื่องจาก Proton Authenticator ไม่ต้องการบัญชี Proton จึงจำเป็นต้องมีสคีมาการเข้ารหัสลับแยกต่างหากที่จัดเก็บข้อมูลอย่างปลอดภัยเมื่อข้อมูลนั้นมีอยู่บนอุปกรณ์เท่านั้น ในท้ายที่สุด วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการดูแลบัญชี Proton ให้เหมือนกับผู้ให้บริการคีย์แยกต่างหาก ซึ่งส่งผลให้มีลักษณะดังนี้:

สำหรับพื้นที่จัดเก็บคีย์ในอุปกรณ์ จะอาศัยผู้ให้บริการพื้นที่จัดเก็บคีย์ที่ปลอดภัยของแต่ละระบบ:
- Android: มีการจัดเก็บคีย์อย่างปลอดภัยใน Android Keystore(หน้าต่างใหม่) ซึ่งจะใช้ในการเข้ารหัสคีย์สุ่มในเครื่อง Local Random Key ที่จัดเก็บไว้ในระบบไฟล์ที่ได้รับการปกป้องของแอป คีย์ดังกล่าวจะใช้ในการเข้ารหัสรายการ Proton Authenticator ทั้งหมดบนอุปกรณ์แบบสมมาตร
- iOS/iPadOS/macOS: มีการสร้างคีย์สุ่มในเครื่องและจัดเก็บไว้ใน บริการ Keychain(หน้าต่างใหม่) คีย์ดังกล่าวจะใช้ในการเข้ารหัสรายการ Proton Authenticator ทั้งหมดบนอุปกรณ์แบบสมมาตร
- Windows: มีการสร้างคีย์สุ่มในเครื่องและจัดเก็บไว้ใน Windows Credential Manager(หน้าต่างใหม่) คีย์ดังกล่าวจะใช้ในการเข้ารหัสรายการ Proton Authenticator ทั้งหมดบนอุปกรณ์แบบสมมาตร หากไม่มีการเชื่อมต่อกับ WCM จะอนุญาตให้ผู้ใช้เข้ารหัสคีย์สุ่มในเครื่องด้วยรหัสผ่าน
- Linux: มีการสร้างคีย์สุ่มในเครื่องและจัดเก็บไว้ในบริการความลับ DBUS หรือ DBUS Secret Service ที่มีอยู่ คีย์ดังกล่าวจะใช้ในการเข้ารหัสรายการ Proton Authenticator ทั้งหมดบนอุปกรณ์แบบสมมาตร หากไม่มีการกำหนดค่าบริการความลับ DBUS จะอนุญาตให้ผู้ใช้เข้ารหัสคีย์สุ่มในเครื่องด้วยรหัสผ่าน
การเข้ารหัสลับการสำรองข้อมูล
จุดแข็งหลักประการหนึ่ง of Proton Authenticator คือผู้ใช้จะควบคุมข้อมูลของตนเองเสมอ ซึ่งรวมถึงการอนุญาตให้สำรองข้อมูลรหัสไปยังอุปกรณ์ภายในเครื่องเป็นระยะๆ และตั้งรหัสผ่านที่เข้ารหัสข้อมูลที่ละเอียดอ่อนนี้
ในการดำเนินการสำรองข้อมูลภายในเครื่องที่ปลอดภัยนี้ จะมีการใช้รหัสผ่านที่ป้อนข้อมูลไว้เพื่อดึงคีย์การเข้ารหัสลับที่ปลอดภัยโดยใช้ Argon2 เป็น KDF (ฟังก์ชันดึงคีย์) ซึ่ง KDF จะใช้ในการสร้างคีย์การเข้ารหัสลับจากอินพุตที่เป็นความลับ เช่น รหัสผ่านที่ผู้ใช้ป้อนข้อมูล และวัตถุประสงค์หลักคือการปรับปรุงความปลอดภัยโดยทำให้ผู้โจมตีเจาะรหัสผ่านได้ยากขึ้นและใช้เวลานานขึ้น การใช้คีย์การเข้ารหัสลับที่สร้างจากรหัสผ่านนี้จะทำให้เราจัดเรียงรายการทั้งหมดและเข้ารหัสรายการเหล่านั้นเพื่อให้แน่ใจว่าข้อมูลยังคงได้รับการเข้ารหัสอย่างปลอดภัย แม้ว่าข้อมูลสำรองจะรั่วไหลก็ตาม และการใช้เทคโนโลยีที่เป็นที่รู้จักและเปิดกว้างจะช่วยให้ถอดรหัสข้อมูลได้โดยไม่ต้องใช้ Proton Authenticator ทำให้ยังคงควบคุมได้แม้ว่าจะตัดสินใจย้ายไปใช้แอปยืนยันตัวตนอื่นก็ตาม
ความปลอดภัยผ่านความโปร่งใส
เช่นเดียวกับบริการทั้งหมดของ Proton โปรแกรม Proton Authenticator เป็นโอเพนซอร์ส ทุกคนสามารถตรวจสอบซอร์สโค้ดเพื่อตรวจสอบโมเดลความปลอดภัยได้ และเช่นเดียวกับบริการอื่นๆ ของเรา Proton Authenticator จะต้องผ่านการตรวจสอบความปลอดภัยที่เป็นอิสระเป็นประจำ และจะแชร์รายงานการตรวจสอบเหล่านี้ต่อสาธารณะทันทีที่พร้อมใช้งาน
สุดท้ายนี้ สำหรับนักวิจัยด้านความปลอดภัยที่สนใจ Proton Authenticator มีสิทธิ์เข้าร่วมโปรแกรมรางวัลสำหรับผู้เจอช่องโหว่ของ Proton ซึ่งมอบรางวัลสูงสุดถึง 100,000 ดอลลาร์สำหรับการค้นพบบั๊กในซอฟต์แวร์ของ Proton






