เกี่ยวกับตัวสร้างนี้
ค่าที่ตั้งไว้ล่วงหน้านี้สร้างข้อมูลประจำตัวฐานข้อมูลแบบสุ่มสำหรับผู้ใช้แอปพลิเคชัน MongoDB PwdGen ไม่ขึ้นกับ MongoDB และไม่เชื่อมต่อกับ Atlas หรือรับค่าที่สร้างขึ้น
ค่าที่ตั้งไว้ล่วงหน้านี้เริ่มต้นด้วยโหมด characters และสร้างผลลัพธ์อิสระ 10 รายการในแต่ละครั้ง ทุกการตั้งค่าที่มองเห็นยังคงปรับได้ และค่าที่สร้างขึ้นจะไม่ถูกส่งไปยัง PwdGen
เมื่อใดควรใช้
- สร้างข้อมูลประจำตัวใหม่สำหรับกรณีการใช้งานนี้
- แทนที่รหัสผ่านที่ใช้ซ้ำหรืออ่อนแอ
- สร้างค่าต่างๆ ในเครื่องก่อนการจัดเก็บอย่างปลอดภัย
ขนาดตัวอักษร เอนโทรปี และสมมติฐานการโจมตีแบบเดารหัสผ่าน
เพดานเอนโทรปีทางทฤษฎีคำนวณได้จาก H = L × log2(A) โดยที่ L คือความยาวที่สร้าง และ A คือจำนวนอักขระที่อนุญาตในปัจจุบัน
| ความยาว | ตัวอักษร | พื้นที่ค้นหา | เพดานเอนโทรปี | เฉลี่ยที่ 10 พันล้านครั้ง/วินาที |
|---|---|---|---|---|
| 24 | 68 | 6824 | 146.1 บิต | 1.51e26 years |
สำคัญ: สิ่งเหล่านี้เป็นค่าประมาณทางคณิตศาสตร์สำหรับค่าสุ่มแบบสม่ำเสมอ ตำแหน่งที่จำเป็น จำนวนที่จำกัด รหัสผ่านซ้ำ รูปแบบพจนานุกรม ข้อมูลประจำตัวที่รั่วไหล และต้นทุนการแฮชรหัสผ่านจริงสามารถเปลี่ยนผลลัพธ์ได้อย่างมาก ตัวเลขนี้ไม่ใช่การรับประกันความปลอดภัย
คำแนะนำการปรับใช้ข้อมูลประจำตัว MongoDB
สร้างผู้ใช้ฐานข้อมูลแยกต่างหากสำหรับแอปพลิเคชัน ผู้ดูแลระบบ การสำรองข้อมูล และระบบอัตโนมัติ ให้แต่ละตัวตนเฉพาะบทบาทที่ต้องการ และเก็บข้อมูลประจำตัวไว้นอกซอร์สโค้ด
สร้างค่าที่ปลอดภัยสำหรับ URL ด้วย Node.js
node -e "console.log(require('crypto').randomBytes(24).toString('base64url'))" - เก็บ MONGODB_URI ไว้ใน secret manager หรือ protected environment variable
- Percent-encode ชื่อผู้ใช้และรหัสผ่านเมื่อจำเป็นตาม URI ของ connection-string
- ใช้ SCRAM-SHA-256 สำหรับการตรวจสอบสิทธิ์และ TLS สำหรับการป้องกันการขนส่ง สิ่งหนึ่งไม่ได้แทนที่อีกสิ่งหนึ่ง
- รวมข้อมูลประจำตัวกับ Atlas IP Access Lists หรือการควบคุมเครือข่ายที่เทียบเท่า
- หมุนเวียนข้อมูลประจำตัวเมื่อสงสัยว่ามีการเปิดเผย และตรวจสอบว่าข้อมูลประจำตัวเก่าถูกเพิกถอนแล้ว
วิธีใช้ผลลัพธ์อย่างปลอดภัย
- ตรวจสอบกฎรหัสผ่านปัจจุบันของปลายทาง
- ใช้ผลลัพธ์ที่ไม่ซ้ำและเปิดใช้งาน MFA หากมี
- เก็บรหัสกู้คืนแยกจากรหัสผ่าน
วิธีการสร้างและความเป็นส่วนตัว
ค่าที่ตั้งไว้ล่วงหน้าใช้ Web Crypto API ของเบราว์เซอร์สำหรับการเลือกแบบสุ่ม การสร้างใหม่ การเปลี่ยนการตั้งค่า การเลือก และการคัดลอกผลลัพธ์จะไม่ส่งข้อมูลประจำตัวที่สร้างไปยัง PwdGen ตัวประมาณเวลาในการถอดรหัสรหัสผ่านก็ทำงานในเครื่องและเป็นค่าประมาณ ไม่ใช่การรับประกัน
ตัวสร้างรหัสผ่าน MongoDB FAQ
ฉันสามารถใส่รหัสผ่าน MongoDB โดยตรงใน connection string ได้หรือไม่?
หลีกเลี่ยงการ hard-code เก็บ connection string ในตัวจัดการความลับหรือตัวแปรสภาพแวดล้อมที่ได้รับการป้องกัน และ percent-encode อักขระชื่อผู้ใช้หรือรหัสผ่านเมื่อรูปแบบ URI ต้องการ
SCRAM-SHA-256 แทนที่ TLS หรือไม่?
ไม่ SCRAM ตรวจสอบสิทธิ์ผู้ใช้ฐานข้อมูล ในขณะที่ TLS ป้องกันการรับส่งข้อมูลระหว่างทาง การปรับใช้ในระบบผลิตโดยทั่วไปต้องการทั้งสองอย่างบวกกับการควบคุมการเข้าถึงเครือข่ายที่เหมาะสม
ทุกแอปพลิเคชัน MongoDB ควรใช้ผู้ใช้ฐานข้อมูลแยกกันหรือไม่?
ใช่ การแยกผู้ใช้แอปพลิเคชัน ผู้ดูแลระบบ การสำรองข้อมูล และระบบอัตโนมัติทำให้การบังคับใช้บทบาทสิทธิ์น้อยที่สุด การตรวจสอบ และการหมุนเวียนข้อมูลประจำตัวทำได้ง่ายขึ้น