ภาพรวมเชิงเทคนิคสำหรับผู้ตรวจสอบความปลอดภัย ทุกอย่างในหน้านี้ตรวจสอบย้อนกลับไปที่ซอร์สโค้ดได้ รวมถึงส่วนที่ไม่เข้าข้างเราเอง ซึ่งเราเลือกจะเขียนไว้แทนที่จะตัดทิ้ง
ไม่มีแบ็กเอนด์ ส่วนขยายนี้เป็นส่วนขยาย Chrome แบบ Manifest V3 ที่สร้างรหัส TOTP/HOTP ในเครื่องด้วย OTPAuth เราไม่ได้ดูแลเซิร์ฟเวอร์ใด ๆ ไม่มีบัญชีผู้ใช้ และไม่มีช่องทางใดที่ข้อมูลของผู้ใช้จะเดินทางมาถึงเราได้
เมื่อไม่มีเซิร์ฟเวอร์ ก็ไม่มีวัสดุกุญแจฝั่งเซิร์ฟเวอร์ ไม่มีการฝากกุญแจ และไม่มีเส้นทางกู้คืนที่เราควบคุม หากผู้ใช้ลืมรหัสผ่านและทำรหัสกู้คืนหาย เราก็ช่วยอะไรไม่ได้ ซึ่งเป็นไปตามที่ออกแบบไว้
การป้องกันด้วยรหัสผ่านเป็นตัวเลือกเสริมและปิดไว้ตั้งแต่ต้น เมื่อเปิดใช้งาน:
ข้อมูลไม่เคยถูกเข้ารหัสด้วยกุญแจที่ได้จากรหัสผ่านโดยตรง ระเบียนต่าง ๆ ถูกเข้ารหัสด้วยกุญแจหลักแบบสุ่ม ส่วนผลลัพธ์จาก PBKDF2 ทำหน้าที่ห่อหุ้มกุญแจหลักนั้นเท่านั้น ผลที่ตามมามีสองข้อ และสำคัญทั้งคู่:
เมื่อเปิดการป้องกันด้วยรหัสผ่าน ระเบียนบัญชีทั้งหมดจะถูกเข้ารหัส ยกเว้นตัวระบุและลายนิ้วมือข้อมูล รวมถึงชื่อบริการด้วย โปรไฟล์ที่ถูกขโมยไปจึงไม่เปิดเผยว่าผู้ใช้มีบัญชีอยู่กับบริการใดบ้าง เมื่อเปิดใช้งาน ส่วนขยายจะเข้ารหัสระเบียน ตรวจสอบด้วยการถอดรหัสแล้วเทียบกัน จากนั้นจึงลบสำเนาที่เป็นข้อความธรรมดาทั้งหมด ทั้งที่เก็บในเครื่องของเบราว์เซอร์ ข้อมูลซิงค์ และสแนปช็อตสำรองแบบหมุนเวียนทั้งเจ็ดชุด
ขอพูดตรง ๆ เพราะมีผลต่อการประเมินของคุณ:
สรุปสั้น ๆ คือ สิ่งนี้ปกป้องข้อมูลในขณะจัดเก็บ แต่ไม่อาจปกป้องอุปกรณ์ที่ตกอยู่ในการควบคุมของผู้โจมตีอยู่แล้วขณะใช้งาน และก็ไม่มีทางทำได้
ไฟล์ manifest ประกาศสิทธิ์ไว้เพียงสองรายการ และไม่มีสิทธิ์ระดับโฮสต์เลย:
ไม่มี content script ใด ๆ ไม่มีสิทธิ์ tabs, cookies หรือ webRequest และไม่มีทรัพยากรที่เว็บเข้าถึงได้ ส่วนขยายนี้อ่านหรือแก้ไขเนื้อหาของหน้าเว็บใด ๆ ไม่ได้เลย
การสแกนคิวอาร์โค้ดด้วยกล้องทำงานบนหน้าของส่วนขยายที่เปิดในแท็บ ไม่ใช่ในหน้าต่างป็อปอัป เพราะป็อปอัปจะถูกทำลายทันทีที่เสียโฟกัส ซึ่งกล่องขอสิทธิ์ทำแบบนั้นพอดี เรื่องนี้ไม่ต้องใช้สิทธิ์ใดใน manifest โดยใช้กล่องขอสิทธิ์กล้องมาตรฐานของเบราว์เซอร์ ให้สิทธิ์ตาม origin ของส่วนขยายและเพิกถอนได้ในการตั้งค่าเว็บไซต์ และจะไม่ถูกร้องขอจนกว่าผู้ใช้จะเปิดตัวสแกนเอง วิดีโอถูกถอดรหัสในเครื่องและไม่เคยถูกส่งออกหรือบันทึกไว้
ในการใช้งานตามปกติ ส่วนขยายไม่ส่งคำขอโดยอัตโนมัติเลย และ Manifest V3 ก็ห้ามโค้ดจากระยะไกล การเชื่อมต่อทั้งหมดที่เป็นไปได้มีดังนี้:
| โฮสต์ | เมื่อใด | มีข้อมูลผู้ใช้ไปด้วยหรือไม่ |
|---|---|---|
| worldtimeapi.org timeapi.io | ตรวจความคลาดเคลื่อนของนาฬิกา มีแคช และหากล้มเหลวก็ผ่านไปเงียบ ๆ นาฬิกาที่เพี้ยนทำให้ TOTP ใช้ไม่ได้ | ไม่มี |
| authenticator.sh | หน้าต้อนรับตอนติดตั้ง และหน้าให้ความเห็นตอนถอนการติดตั้งหรือให้คะแนน | ไม่มี (มีเพียงบันทึกเว็บเซิร์ฟเวอร์ตามปกติ) |
ไม่มีฟอนต์ สคริปต์ สไตล์ หรือรูปภาพใดถูกโหลดจากโฮสต์ภายนอก ทุกอย่างที่ใช้แสดงผลอินเทอร์เฟซมาพร้อมในแพ็กเกจแล้ว
คุณไม่จำเป็นต้องเชื่อสิ่งที่กล่าวมาข้างต้นเลยสักข้อ ส่วนขยายนี้เป็นโอเพนซอร์ส และทุกรุ่นสร้างซ้ำได้:
.crx ที่เผยแพร่จาก Chrome Web Store แล้วแตกไฟล์npm ci && npm run build บน Node 20 LTSdist/ ที่ได้กับแพ็กเกจที่แตกไฟล์ไว้ทุกรุ่นที่ปล่อยบน GitHub จะมาพร้อมค่า SHA-256 ของทุกไฟล์ใน dist/ ที่บิลด์ได้ ในชื่อ SHA256SUMS-v<version>.txt และอยู่ในรูปแบบ sha256sum ขั้นตอนที่ 4 จึงเหลือเพียงการรัน sha256sum -c ครั้งเดียว ความแตกต่างควรจำกัดอยู่ที่ลำดับไฟล์ภายในไฟล์บีบอัด และช่องว่างในผลลัพธ์ที่ถูกย่อขนาดระหว่าง Node คนละรุ่นย่อย
แพ็กเกจที่ต้องใช้ตอนรันมีน้อยโดยตั้งใจ ได้แก่ OTPAuth, React, jsQR, Zustand, Framer Motion และ Lucide ทั้งหมดถูกตรึงเวอร์ชันด้วย lockfile ที่คอมมิตไว้ในรีโป และเรามี SBOM รูปแบบ CycloneDX ให้เมื่อร้องขอ
ดูซอร์สโค้ดเราเป็นผู้พัฒนารายเล็กและเป็นอิสระ หากข้อใดข้อหนึ่งต่อไปนี้เป็นข้อกำหนดที่ยืดหยุ่นไม่ได้ในกระบวนการของคุณ รู้ตอนนี้ย่อมดีกว่ารู้ตอนที่ประเมินไปแล้วสามสัปดาห์:
สิ่งที่เรามีให้แทนคือความโปร่งใสของซอร์สโค้ดทั้งหมด บิลด์ที่ตรวจสอบได้ สิทธิ์ที่ขอน้อยที่สุด และการไม่มีโครงสร้างเซิร์ฟเวอร์ที่จะเก็บข้อมูลของคุณได้ตั้งแต่แรก
รายงานช่องโหว่และคำถามด้านความปลอดภัย: security@authenticator.sh นโยบายการเปิดเผย ขอบเขต เวลาตอบกลับ และเงื่อนไข safe harbour อยู่ในหน้านโยบายความปลอดภัย ส่วนข้อมูลใดถูกเก็บและข้อมูลใดออกจากเครื่องนั้นระบุไว้ในนโยบายความเป็นส่วนตัว
เรายินดีตอบแบบสอบถามประเมินผู้ให้บริการเป็นลายลักษณ์อักษร หรือพาทีมความปลอดภัยไล่อ่านโค้ดไปด้วยกัน
เรื่องอื่นที่ไม่ใช่ความปลอดภัย เช่น การติดตั้ง การกู้คืนบัญชี หรือคำถามเรื่องการเรียกเก็บเงินจากการนำไปใช้ในองค์กร ดูได้ที่หน้าสนับสนุน และกรุณาอย่าส่งรายงานช่องโหว่ไปที่นั่น เพราะกล่องข้อความนั้นไม่ได้ถูกจัดการแบบเป็นความลับ