ความปลอดภัย
หลักฐานว่าเบราว์เซอร์ของคุณไม่ใช่ห้องนิรภัย
Chrome และ Firefox จะบันทึกรหัสผ่านของคุณ จากนั้นจะมอบให้กับโปรแกรมใดๆ ที่ทำงานภายใต้บัญชีของคุณ นั่นไม่ใช่ข้อบกพร่อง แต่เป็นการออกแบบ นี่คือหลักฐาน: ครั้งหนึ่งในภาษาที่เข้าใจง่าย และอีกครั้งในโค้ด
เวอร์ชันภาษาที่เข้าใจง่าย
"ตัวจัดการรหัสผ่าน" ของเบราว์เซอร์ของคุณได้รับการปกป้องด้วยล็อกเพียงอย่างเดียว: การเข้าสู่ระบบคอมพิวเตอร์ของคุณ เมื่อคุณลงชื่อเข้าใช้แล็ปท็อปแล้ว เบราว์เซอร์จะสามารถอ่านรหัสผ่านที่บันทึกไว้ทั้งหมดได้ทันที ดังนั้นสิ่งอื่นใดที่ทำงานภายใต้บัญชีของคุณจึงสามารถทำได้เช่นกัน
การดาวน์โหลดที่อันตราย เกมเบราว์เซอร์ที่น่าสงสัย หรือแพ็กเกจที่ถูกฝังมัลแวร์ในโปรเจกต์ที่คุณโคลนมา ทันทีที่มันทำงานขณะที่คุณเข้าสู่ระบบอยู่ ซึ่งก็เป็นปกติของคุณ มันจะอ่านรหัสผ่านทุกครั้งที่เบราว์เซอร์บันทึกไว้ภายในเวลาที่ใช้เปิดไฟล์ ไม่มีรหัสผ่านหลักให้เจาะ เพราะไม่มีอะไรให้เจาะ: เบราว์เซอร์ถูกสร้างมาเพื่อปลดล็อกให้คุณโดยอัตโนมัติ และมัลแวร์ก็แค่ขอเข้าถึงในฐานะ "คุณ"
นี่ไม่ใช่แค่ทฤษฎี แต่เป็นวิธีที่พบบ่อยที่สุดที่คนทั่วไปสูญเสียบัญชี มัลแวร์เหล่านี้มีชื่อเรียกในวงการที่ฟังดูธรรมดาอย่าง "info-stealers" เพราะมันเป็นเรื่องที่เกิดขึ้นเป็นประจำ รหัสผ่านของคุณ บัตรที่บันทึกไว้ และคุกกี้เซสชันของคุณ: ถูกคัดลอกและหายไปก่อนที่คุณจะทันสังเกต
วิธีแก้ไขนั้นอธิบายได้ง่ายๆ: รหัสผ่านของคุณควรถูกล็อกด้วยสิ่งที่คอมพิวเตอร์ส่วนอื่นของคุณไม่มี และไม่ควรถูกเก็บไว้ในเครื่องเลย
เวอร์ชันพร้อมหลักฐานอ้างอิง
อย่าเพิ่งเชื่อเราเพียงฝ่ายเดียว Chromium และ Firefox เป็นโอเพนซอร์ส และเส้นทางการอ่านข้อมูลมีการจัดทำเอกสารไว้ เป็นมาตรฐาน และสั้น นี่คือตำแหน่งที่เก็บรหัสผ่านและวิธีการดึงข้อมูลออกมาอย่างชัดเจน
Chrome (และเบราว์เซอร์ที่ใช้ Chromium ทุกตัว)
Chrome จัดเก็บข้อมูลการเข้าสู่ระบบในฐานข้อมูล SQLite — Login Data, ตาราง logins, คอลัมน์ password_value — ซึ่งเข้ารหัสด้วย AES-256-GCM คีย์ AES จะอยู่ใน Local State และ "ได้รับการปกป้อง" โดย OS: DPAPI บน Windows, พวงกุญแจเข้าสู่ระบบบน macOS, gnome-keyring/kwallet (หรือข้อความธรรมดา) บน Linux
อ่านได้ด้วยตัวคุณเอง โค้ดนั้นเปิดอยู่ ค้นหา Chromium สำหรับค่าคงที่ที่แท็กคีย์ที่ถูกห่อหุ้ม: kDPAPIKeyPrefix ใน os_crypt คีย์ถูกห่อหุ้มด้วย DPAPI แท็ก และจัดเก็บไว้ จากนั้นจึงถูกคลายห่อด้วยการเรียกใช้เพียงครั้งเดียวซึ่งไม่ได้ปกป้องอะไรจาก คุณ เลย:
const char kDPAPIKeyPrefix[] = "DPAPI";
CryptUnprotectData(&intermediate, /*ppszDataDescr=*/nullptr,
/*pOptionalEntropy=*/nullptr, nullptr, nullptr, 0, &output);ไม่มีความลับที่สอง ไม่มีรหัสผ่าน ไม่มีการแจ้งเตือน CryptUnprotectData จะส่งมอบคีย์คืนให้กับกระบวนการใดๆ ที่ทำงานในเซสชันของคุณ ซึ่งตรงกับรูปแบบภัยคุกคามที่เอกสาร DPAPI ระบุไว้ พอดี: หากมันทำงานในฐานะคุณ มันคือคุณ งานทั้งหมดของผู้โจมตีมีเพียงสามบรรทัด: อ่านคีย์จาก Local State, คลายห่อ, และถอดรหัส AES-GCM ทุกแถวใน Login Data มัลแวร์ info-stealer ทำสิ่งนี้มาหลายปีแล้ว
"การเข้ารหัสบนอุปกรณ์" ก็ไม่ได้ช่วยคุณเช่นกัน
วิธีแก้ปัญหาของ Google คือ PIN 6 หลักที่เข้ารหัสห้องนิรภัยที่ซิงค์ไว้ของคุณ ในเดือนพฤษภาคม 2026 นักวิจัยที่ Phishu ได้แสดงให้เห็นว่ามันเปราะบางเพียงใด การปลอมหน้าเข้าสู่ระบบ Google ที่แนบเนียน — การฟิชชิงแบบ adversary-in-the-middle — จะดักจับเซสชันและ PIN นั้น และ PIN นั้นคือคีย์หลักสำหรับรหัสผ่านและพาสคีย์ทุกชุดในบัญชีที่ซิงค์ไว้ ด้วยสิ่งนี้ ผู้โจมตีสามารถเพิ่มอุปกรณ์ของตนเองลงใน "โดเมนความปลอดภัย" ของ Google ของคุณ และห้องนิรภัยทั้งหมดจะถูกซิงค์ไปยังพวกเขาโดยตรง เข้าควบคุมทั้งหมดในขั้นตอนเดียว
ข้อบกพร่องในการออกแบบ: Google อนุญาตให้อุปกรณ์เข้าร่วมโดยใช้เพียง PIN 6 หลัก โดยไม่จำเป็นต้องได้รับการอนุมัติจากอุปกรณ์ที่คุณเป็นเจ้าของอยู่แล้ว
Firefox
Firefox เก็บข้อมูลการเข้าสู่ระบบใน logins.json และคีย์ใน key4.db ซึ่งถอดรหัสโดย "Secret Decoder Ring" ของ NSS — ซึ่งเป็นโอเพนซอร์สเช่นกัน: security/nss/lib/pk11wrap/pk11sdr.c หากคุณตั้งค่ารหัสผ่านหลัก คีย์จะถูกปิดผนึกด้วยรหัสนั้น
ตามค่าเริ่มต้น คุณไม่ได้ตั้งค่าไว้ คีย์จึงถูกปิดผนึกด้วยสตริงว่าง และค่า "password-check" ที่เก็บไว้จะยืนยันว่ารหัสผ่านที่ว่างเปล่าสามารถถอดรหัสมันได้ คัดลอกสองไฟล์ออกจากโปรไฟล์ของคุณ (key4.db + logins.json) ชี้ NSS หรือ firepwd.py แบบโอเพนซอร์สไปที่ไฟล์เหล่านั้น แล้วพวกมันก็จะถูกถอดรหัส ตัวล็อกที่แปะกุญแจติดไว้ที่ประตูก็ไม่ใช่ตัวล็อก
ที่เก็บรหัสผ่านของเบราว์เซอร์ทุกตัวมีรูปแบบเดียวกัน: ความลับถูกเก็บไว้ที่คุณทำงาน และปลดล็อกโดยเซสชันที่คุณเข้าสู่ระบบอยู่แล้ว การเข้ารหัสที่คอมพิวเตอร์ส่วนอื่นของคุณสามารถยกเลิกได้ ไม่ได้ปกป้องคุณจากภัยคุกคามที่ทำให้บัญชีว่างเปล่าจริงๆ ซึ่งก็คือโค้ดที่ทำงานในฐานะคุณ
ทำไม Clavitor จึงไม่สามารถถูกอ่านในลักษณะนี้ได้
Clavitor ไม่เก็บห้องนิรภัยของคุณไว้ในเครื่อง ไม่มี Login Data, ไม่มี key4.db, ไม่มีคีย์ใน Local State ไม่มีอะไรบนดิสก์ให้กระบวนการที่ทำงานในฐานะคุณดึงข้อมูลไปได้
คีย์ถอดรหัสไม่ได้ถูกปิดผนึกด้วยการเข้าสู่ระบบ OS ของคุณ แต่ได้มาจากการแตะฮาร์ดแวร์ — Touch ID, Face ID หรือ YubiKey — ประมวลผลในเบราว์เซอร์ ใช้สำหรับคำขอเดียว แล้วทิ้งไป ข้อมูลรับรองจะถูกดึงผ่าน API ที่กำหนดขอบเขตเฉพาะเมื่อคุณร้องขอเท่านั้น และไม่ถูกแคชไว้เลย มัลแวร์ที่ทำงานในฐานะคุณจะพบเพียงตู้ที่ว่างเปล่า
นั่นคือความแตกต่างระหว่าง "เข้ารหัสบนอุปกรณ์ของคุณ" กับ "ไม่อยู่บนอุปกรณ์ของคุณเลย"
เลิกไว้ใจเบราว์เซอร์ในเรื่องรหัสผ่านของคุณ
ส่วนขยาย Clavitor กรอกข้อมูลเหมือนที่เบราว์เซอร์ของคุณทำ และเก็บห้องนิรภัยไว้ในที่ที่แล็ปท็อปของคุณไม่สามารถอ่านได้