เครื่องมือรหัสผ่าน กลับไปยังตัวสร้าง

คู่มือความปลอดภัย

Web Crypto API คืออะไร

เรียนรู้ว่า Web Crypto API รองรับการสร้างรหัสผ่านแบบสุ่มในเบราว์เซอร์อย่างไร และแตกต่างจากความสุ่มของ JavaScript ทั่วไปอย่างไร

สรุป

Web Crypto API เป็นมาตรฐานของเบราว์เซอร์สำหรับการดำเนินการเข้ารหัส สำหรับการสร้างรหัสผ่าน คุณสมบัติที่สำคัญที่สุดคือ crypto.getRandomValues() ซึ่งช่วยให้หน้าเว็บเข้าถึงค่าสุ่มที่แข็งแกร่งทางเข้ารหัสสำหรับการเลือกอักขระรหัสผ่าน

เหตุใดจึงสำคัญสำหรับรหัสผ่าน

รหัสผ่านต้องการความไม่สามารถคาดเดาได้ ความสุ่มของ JavaScript ทั่วไปไม่ได้ออกแบบมาสำหรับความลับ Web Crypto มีอยู่เพื่อให้เบราว์เซอร์สามารถเปิดเผยพื้นฐานการเข้ารหัสที่ปลอดภัยยิ่งขึ้นผ่าน API มาตรฐาน PwdGen ใช้ API นั้นสำหรับการเลือกแบบสุ่มที่มีขอบเขต และหลีกเลี่ยง Math.random() สำหรับการสร้างรหัสผ่าน

ขอบเขตของระบบปฏิบัติการ

Web Crypto ไม่ได้หมายความว่าหน้าเว็บควบคุมแหล่งเอนโทรปีของฮาร์ดแวร์โดยตรง โดยทั่วไปเบราว์เซอร์จะพึ่งพาระบบปฏิบัติการและผู้ให้บริการเข้ารหัสของแพลตฟอร์ม วิธีการที่รอบคอบควรบอกว่า Web Crypto จ่ายเอาต์พุต CSPRNG ไม่ใช่ทุกการเรียกจะอ่านสัญญาณรบกวนทางกายภาพจาก CPU

PwdGen ใช้งานอย่างไร

PwdGen ขอจำนวนเต็มสุ่ม 32 บิต ใช้การสุ่มตัวอย่างแบบปฏิเสธเพื่อหลีกเลี่ยงอคติแบบโมดูโล จับคู่ค่าที่ยอมรับกับดัชนีอักขระ และสับเปลี่ยนคลาสอักขระที่จำเป็น ทำให้การใช้งานมีขนาดเล็กและตรวจสอบได้

คำแนะนำโดยละเอียด

คู่มือนี้เน้นการทำความเข้าใจ Web Crypto API ในฐานะพื้นฐานความปลอดภัยของเบราว์เซอร์ เขียนขึ้นสำหรับผู้ใช้และนักพัฒนาที่ต้องการทราบว่าเหตุใดความสุ่มของเบราว์เซอร์จึงสำคัญ ดังนั้นเป้าหมายในทางปฏิบัติไม่ใช่การสร้างข้อกล่าวอ้างด้านความปลอดภัยที่รุนแรง เป้าหมายคือการเลือกนิสัยการใช้รหัสผ่านที่สามารถอยู่รอดในการใช้งานประจำวัน: แบบฟอร์มเข้าสู่ระบบ, ตัวจัดการรหัสผ่าน, แป้นพิมพ์มือถือ, การกู้คืนบัญชี, อุปกรณ์ที่ใช้ร่วมกัน และบริการที่มีกฎการตรวจสอบที่แปลกประหลาดเป็นครั้งคราว คำแนะนำที่ปลอดภัยจะมีประโยชน์ก็ต่อเมื่อบุคคลจริงสามารถปฏิบัติตามได้อย่างสม่ำเสมอ

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

สำหรับหัวข้อนี้ ค่าที่ตั้งไว้ในทางปฏิบัติคือ Chrome, Edge, Safari และ Firefox สมัยใหม่ที่มี crypto.getRandomValues คุณสามารถใช้ค่านั้นกับ หน้าสนับสนุนเบราว์เซอร์ แล้วเก็บค่าสุดท้ายในตัวจัดการรหัสผ่านที่เชื่อถือได้ PwdGen สร้างค่าในเบราว์เซอร์ด้วย Web Crypto รหัสผ่านที่สร้างขึ้นจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ PwdGen การออกแบบในเครื่องนั้นลดการเปิดเผยฝั่งเซิร์ฟเวอร์ แต่ไม่ได้ป้องกันทุกภัยคุกคาม ส่วนขยายเบราว์เซอร์ที่เป็นอันตราย อุปกรณ์ที่ถูกบุกรุก หน้า phishing หรือการจัดการคลิปบอร์ดที่ไม่ปลอดภัยยังคงเปิดเผยความลับหลังจากสร้างได้

ปัญหาที่พบบ่อยที่สุดที่ควรหลีกเลี่ยงคือเบราว์เซอร์เก่า บริบทที่ไม่ปลอดภัย polyfill ที่ใช้ Math.random อย่างเงียบๆ และการสับสนระหว่างการเข้ารหัสและการเข้ารหัสลับ ปัญหาเหล่านี้มีความสำคัญเพราะผู้โจมตีแทบไม่ต้องเดารหัสผ่านทุกแบบเมื่อนิสัยของมนุษย์ให้ทางลัดแก่พวกเขา Credential stuffing, phishing, รายการรหัสผ่านที่รั่วไหล และการใช้การกู้คืนบัญชีในทางที่ผิดมักเป็นจริงมากกว่าการค้นหาทางคณิตศาสตร์ล้วนๆ นั่นคือเหตุผลที่คำแนะนำที่ดีที่สุดรวมคุณภาพรหัสผ่านเข้ากับการควบคุมระดับบัญชี เช่น MFA, passkeys, การจัดเก็บรหัสกู้คืน และการตรวจสอบอีเมลกู้คืนหรือการตั้งค่าโทรศัพท์เป็นประจำ

ใช้รายการตรวจสอบนี้เมื่อใช้คำแนะนำ:

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

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

ขั้นตอนต่อไปที่ปลอดภัย

หลังจากอ่านคู่มือนี้ ให้ตรวจสอบบัญชีเล็กๆ น้อยๆ แทนที่จะพยายามแก้ไขทุกอย่างพร้อมกัน เลือกบัญชีที่จะสร้างปัญหามากที่สุดหากถูกยึดครอง ยืนยันว่ารหัสผ่านไม่ซ้ำ และตรวจสอบอีเมลกู้คืน โทรศัพท์กู้คืน วิธี MFA และการจัดเก็บรหัสสำรอง หากส่วนใดของห่วงโซ่นั้นอ่อนแอ ให้ปรับปรุงส่วนนั้นก่อนย้ายไปยังบัญชีที่มีความเสี่ยงต่ำกว่า ลำดับนี้ทำให้งานจัดการได้และปกป้องบัญชีที่ผู้โจมตีมักใช้เป็นขั้นบันได สำหรับ what is the web crypto api? ผลลัพธ์ที่ดีที่สุดคือนิสัยที่ทำซ้ำได้: สร้างในเครื่อง เก็บอย่างระมัดระวัง และหลีกเลี่ยงการใช้ซ้ำ

คำถามที่พบบ่อย

PwdGen ใช้ส่วนใดของ Web Crypto?

PwdGen ใช้ crypto.getRandomValues() เพื่อขอค่าสุ่มที่แข็งแกร่งทางเข้ารหัสจากเบราว์เซอร์

Web Crypto หมายความว่าทุกไบต์มาจากฮาร์ดแวร์โดยตรงหรือไม่?

ไม่ โดยทั่วไปเบราว์เซอร์ใช้ผู้ให้บริการเข้ารหัสของระบบปฏิบัติการที่ seeded ด้วยเอนโทรปีคุณภาพสูง เบราว์เซอร์และ OS เลือกการใช้งาน

Web Crypto พร้อมใช้งานในทุกเบราว์เซอร์หรือไม่?

พร้อมใช้งานในเบราว์เซอร์สมัยใหม่ หากไม่มี PwdGen จะปิดการสร้างแทนที่จะถอยไปใช้ความสุ่มที่ไม่ปลอดภัย

แหล่งที่มา