Score:1

แนวคิดตัวสร้างรหัสผ่านที่กำหนดขึ้น

ธง ru

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

ฉันเกิดความคิดที่จะเขียนตัวสร้างรหัสผ่านที่กำหนดขึ้นสำหรับตัวเอง ซึ่งใช้ทูเพิล:

  • รหัสผ่านหลัก
  • ส่วนหัวสำหรับประสบการณ์ แค่คำว่า "pinterest"

และสร้างรหัสผ่านตามความยาวที่กำหนด เหมือนกันเสมอ

ฉันทราบดีว่าแนวคิดนี้อาจไม่ปลอดภัยที่สุดและอื่นๆ แต่โปรดเน้นที่การนำไปใช้อย่างเหมาะสม ไม่ใช่แนวคิด

การดำเนินการ:

  1. ประมวลผลรหัสผ่านหลักและส่วนหัวโดยใช้ฟังก์ชันแฮชรหัสผ่าน เช่น การแฮชบอลลูนหรืออาร์กอน 2 (ฉันเชื่อว่ามันเพิ่มความพยายามในการคำนวณและทำให้ยากต่อการได้รับรหัสผ่านหลักจากรหัสผ่านที่สร้างขึ้นไม่กี่ตัว)
  2. ใช้ผลลัพธ์ของ 1 เป็นเมล็ดพันธุ์สำหรับ Fortuna DRNG เพื่อสร้างรหัสผ่าน

สมมติฐานของฉันเกี่ยวกับจุดที่ 1 ถูกต้องหรือไม่ คุณจะแนะนำการดำเนินการเพิ่มเติมหรือไม่

ฉันควรประมวลผลรหัสผ่านหลักและส่วนหัวอย่างไร ฉันสามารถเชื่อมพวกเขาและแฮช หรือ XOR แฮชหรือเขียนได้หรือไม่

DannyNiu avatar
vu flag
SSL/TLS ทำสิ่งที่คุณอธิบายได้ค่อนข้างมาก - รับคีย์การทำงานจากมาสเตอร์คีย์ที่ได้รับจากการจับมือกัน ยกเว้นว่าจะทำงานกับคีย์ไบนารีแทนรหัสผ่านที่เป็นข้อความ คำถามนี้เป็นอย่างอื่น (อย่างที่ฉันเห็น) เป็นคำขอสำหรับการวิเคราะห์โครงร่าง ซึ่งนอกหัวข้อ
kr flag
นี่เป็นคำถามที่ซ้ำกันของ [คำถามนี้] (https://crypto.stackexchange.com/questions/98173/diy-password-key-derivation-tool-using-pbkdf2-hmac) ดูปัญหาที่คุณอาจเผชิญที่นั่น โดยสังเขป: จะทำอย่างไรถ้าคุณต้องการเปลี่ยนรหัสผ่านสำหรับหนึ่งใน 100 เว็บไซต์ เครื่องกำเนิดไฟฟ้าเครื่องเดียวจะไม่ทำงาน
kelalaka avatar
in flag
ใช้ตัวจัดการรหัสผ่านหรือไม่
kr flag
@kelalaka: ใช่ การใช้ตัวจัดการรหัสผ่านเป็นวิธีที่สมเหตุสมผลที่สุด แต่ OP และคำถามที่เชื่อมโยงหวังว่าอาจเป็นไปได้ที่จะมีฟังก์ชันที่ดีที่ให้รหัสผ่านสำหรับเว็บไซต์ทั้งหมดของคุณ ดังนั้นคุณต้องจำรหัสผ่าน *single" เท่านั้น ในคำตอบที่เชื่อมโยงฉันอธิบายว่าทำไม มันเป็นไปไม่ได้ในระยะยาว และใช่ ถ้าใครต้องการจำรหัสผ่าน *single* เท่านั้น ควรใช้ตัวจัดการรหัสผ่าน
kr flag
หากคุณไม่สนใจเกี่ยวกับการรีเซ็ตรหัสผ่าน แนวทางของคุณก็เกือบจะดี ฉันไม่เห็นเหตุผลที่จะต้องมีขั้นตอนที่ 2 DRNG แฮชมีเอนโทรปีสูงอยู่แล้ว ทำไมคุณถึงต้องการ DRNG จะไม่ทำให้ผลลัพธ์แย่ลง แต่เพิ่มความซับซ้อนโดยไม่ให้ประโยชน์ใด ๆ
kebabdubaj avatar
ru flag
ฉันคิดว่า DRNG จะให้ฉันสร้างรหัสผ่านที่มีความยาวตามอำเภอใจ
Score:-2
ธง cn

ฉันอยากจะแนะนำการดำเนินการน้อยลง :-)

ใช้ อาร์กอน2 โดยตรงนั่นคือสิ่งที่มันทำ ดังนั้นคุณจะต้องทำสิ่งนี้:-

echo "master_password" | argon2 header_needs_to_be_longer -t 1,000 -p 10 -k 10,000

ในโลก * nix

ที่แล้วก่อให้เกิด:-

ชนิด: Argon2i
การทำซ้ำ: 1,000
หน่วยความจำ: 10,000 KiB
ความเท่าเทียม: 10
แฮช: 16e4848c0274617768dac792518fd60d74df6233c0f7d4b90df22f009ae177fd
เข้ารหัส:    $อาร์กอน2ไอ$v=19$m=10,000,t=1,000,p=10$aGVhZGVyX25lZWRzX3RvX2JlX2xvbmdlcg$FuSEjAJ0YXdo2seSUY/WDXTfYjPA99S5DfIvAJrhd/0
6.435 วินาที
การยืนยันตกลง

แฮชคือ 256 บิตซึ่งควรจะเพียงพอ และสามารถทำซ้ำได้และปลอดภัยเสมอ

kr flag
จากมุมมองด้านความปลอดภัย ใช่ นั่นเป็นเรื่องปกติ แต่สิ่งที่เกี่ยวกับการใช้งาน? ถ้าคุณมี 100 เว็บไซต์และต้องเปลี่ยนรหัสผ่านสำหรับหนึ่งในนั้น คุณจะไปที่ทุก ๆ 100 เว็บไซต์เหล่านี้และเปลี่ยนรหัสผ่านเพียงเพื่อให้เครื่องกำเนิดเดียวเหมือนกันหรือไม่?
Paul Uszak avatar
cn flag
@mentallurg เอ่อ ไม่ค่อยแน่ใจว่าคุณหมายถึงอะไรกับการมีเครื่องสร้างเครื่องเดียว แต่ฉันพยายามมุ่งเน้นไปที่การใช้ Argon เพื่อรวมรหัสผ่านหลักและเกลือ
kr flag
คำถามไม่ได้เกี่ยวกับวิธีสร้างรหัสผ่านอย่างปลอดภัย คำถามเกี่ยวกับการสร้างฟังก์ชั่นที่มีชื่อเว็บไซต์เป็นอินพุตและสร้างรหัสผ่านสำหรับมัน เช่น *รหัสผ่าน = ตัวสร้าง (ชื่อเว็บไซต์)* การมีอัลกอริทึมการแฮชที่ปลอดภัยเป็นเพียง *ส่วนหนึ่ง* เท่านั้น แน่นอน เราสามารถใช้อาร์กอนหรืออัลกอริธึมที่ปลอดภัยอื่นๆ แต่ปัญหา *พื้นฐาน* คือ วิธีนี้ใช้ได้ผลก็ต่อเมื่อคุณไม่ได้เปลี่ยนรหัสผ่านสำหรับเว็บไซต์ใดๆ หากคุณต้องเปลี่ยนรหัสผ่าน คุณต้องใช้ตัวสร้าง *อื่นๆ*
kr flag
... ดังนั้นคุณจะต้องมีเครื่องกำเนิดไฟฟ้า 2 เครื่อง หากคุณเปลี่ยนรหัสผ่านสำหรับบางเว็บไซต์ 3 ครั้ง คุณจะต้องใช้ตัวสร้าง 3 ตัว นอกจากนี้ คุณจะต้องเก็บข้อมูลว่าเครื่องกำเนิดใดควรเป็นผู้ใช้สำหรับไซต์ใด ในที่สุดคุณจะต้องเก็บข้อมูลที่แตกต่างกันสำหรับการสร้างรหัสผ่านสำหรับแต่ละเว็บไซต์ ดังนั้นการมีเครื่องกำเนิดเดียวสำหรับหลาย ๆ เว็บไซต์จึงเป็นไปไม่ได้ในระยะยาว
kebabdubaj avatar
ru flag
ขอชี้แจงสักนิด ตัวสร้างรหัสผ่านของฉันมี usecase ที่เฉพาะเจาะจงมากสำหรับรหัสผ่านที่ไม่ค่อยได้ใช้ ไม่ใช่รหัสผ่านที่สำคัญ ซึ่งยังดีที่จะมีที่ไม่ซ้ำกัน (สำหรับเซิร์ฟเวอร์ exp. minecraft) นอกจากนี้ ฉันคิดว่าความกังวลของคุณเกี่ยวกับการเปลี่ยนรหัสผ่าน สามารถแก้ไขได้ด้วยการเพิ่มจำนวนเต็ม I ที่ไม่ได้ลงนาม ซึ่งอาจมีส่วนในการสร้างรหัสผ่าน
kebabdubaj avatar
ru flag
@PaulUszak คุณแนะนำให้ใช้ส่วนหัวเป็นเกลือสำหรับ argon2 หรือไม่
kebabdubaj avatar
ru flag
@mentallurg ฉันได้อ่านคำถามที่เชื่อมโยงของคุณแล้ว ฉันเห็นด้วยกับคุณ แต่ฉันยังคงเชื่อในแนวทางของฉันสำหรับกรณีการใช้งานส่วนตัวของฉัน และ int ที่ไม่ได้ลงชื่อที่ฉันเพิ่มลงในฟังก์ชันนี้จะแก้ปัญหาการเปลี่ยนรหัสผ่านให้ฉัน
kebabdubaj avatar
ru flag
คำถามหลักของฉันยังคงอยู่ว่าการใช้งานของฉันถูกต้องหรือไม่
Paul Uszak avatar
cn flag
@kebabdubaj ใช่ฉันทำ ดูเหมือนจะเป็นวิธีที่ชัดเจนในการรวมเข้าด้วยกัน :-) รวมถึงหมายเลขรุ่น (int) ใด ๆ
kebabdubaj avatar
ru flag
@PaulUszak โอเค มันสมเหตุสมผลแล้ว เห็นด้วย

โพสต์คำตอบ

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