Score:0

DIY: เครื่องมือสร้างรหัสรหัสผ่านโดยใช้ PBKDF2 / HMAC

ธง ru

ก่อนอื่น ฉันไม่ต้องการสร้างล้อขึ้นมาใหม่ แค่อยากสร้างรถของตัวเอง สภาพแวดล้อมที่ไม่ใช่ผลิตภัณฑ์ เพื่อความสนุกและความบันเทิงเท่านั้น

เป้าหมายคือการใช้รหัสผ่านหลักส่วนตัว (และไม่เคยเผยแพร่) รหัสเดียวเพื่อสร้างรหัสผ่านเฉพาะ (โทเค็น) สำหรับแต่ละบัญชีเว็บไซต์ (twitter.com, reddit.com เป็นต้น)

แนวทางต่อไปนี้สอดคล้องกับเป้าหมายเหล่านี้หรือไม่?

รหัส:

HOST_HASH = SHA512( เข้าสู่ระบบ + เซิร์ฟเวอร์ )

USER_HASH = SHA512( USER_NAME + HOST_HASH )

PWD_HASH = SHA512( USER_PASSWORD )

คีย์ = PBKDF2_SHA256( USER_HASH, PWD_HASH, ITERATIONS_300000, LENGTH_512BITS )

DIGEST = HMAC_SHA512( HOST_HASH คีย์ )

TOKEN = BASE64( SHA1(DIGEST) ) #-- สำหรับเอาต์พุตที่สะดวกเท่านั้น

อินพุต:

  • ชื่อผู้ใช้ = ชื่อเต็มของผู้ใช้ (เช่น: โจนส์ สมิธ)
  • USER_PASSWORD = ผู้ใช้ ความลับ รหัสผ่านหลัก (หรือวลีรหัสผ่าน)
  • เข้าสู่ระบบ = user alias หรือ e-mail หรืออะไรที่เคยใช้ในการล็อกอิน (เช่น jsmith123)
  • เซิร์ฟเวอร์ = เว็บไซต์หรือชื่อโดเมน (เช่น: stackoverflow.com)

เอาท์พุต:

  • โทเค็น = รหัสผ่านที่แข็งแกร่งและไม่ซ้ำใครสร้างใหม่ได้ง่ายแต่เดายาก (?)
kelalaka avatar
in flag
เป้าหมายของคุณแทนที่จะสร้างรหัสผ่านแบบสุ่มที่เหมือนกันคืออะไร
swannty avatar
ru flag
@kelalaka â จำรหัสผ่านหลักที่ดีเพียงรหัสเดียว แต่มีรหัสผ่านที่แตกต่างกันสำหรับแต่ละเว็บไซต์ที่มาจากรหัสผ่านหลัก
Score:1
ธง kr

คุณใช้แฮชของแฮช ในรูปแบบของคุณมีความปลอดภัย ดู รายละเอียดที่นี่.

คุณใช้ PBKDF2 ดังนั้นคุณจึงปกป้องรหัสผ่านที่ได้รับจากการบังคับอย่างดุร้าย

แต่วิธีการของคุณอาจนำไปสู่ปัญหาการใช้งานได้ สมมติว่าคุณมี 100 - 200 บัญชีสำหรับเว็บไซต์ บริการอีเมล โซเชียลเน็ตเวิร์ก บริการวิดีโอ/เสียง ร้านค้าบนเว็บ ธนาคาร ฯลฯ ลองนึกถึงกรณีต่อไปนี้:

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

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

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

คุณเป็นผู้ตัดสินใจว่าสิ่งนี้เป็นที่ยอมรับสำหรับคุณหรือไม่

แต่ถ้าคุณใช้บางอย่าง ผู้จัดการรหัสผ่านคุณจะได้รับรหัสผ่านที่ได้รับการป้องกันอย่างน่าเชื่อถือ เช่น KeePass เข้ารหัสด้วย AES-256 และใช้จำนวนซ้ำที่กำหนดได้สำหรับการสืบทอดรหัสผ่าน คุณยังคงต้องจำ รหัสผ่านเดียวที่ดีเช่นลูกเต๋าตามแต่ข้อดีคือรหัสผ่านทั้งหมดของคุณสำหรับทรัพยากรต่างๆ จะยังคงอยู่ เป็นอิสระ กันและคุณจะไม่มีปัญหาการใช้งานดังที่กล่าวมา

swannty avatar
ru flag
ใช่ การเปลี่ยนและต่ออายุรหัสผ่านอาจเป็นปัญหาในระยะยาว ฉันจะคิดเกี่ยวกับประเด็นนั้น KeePass นั้นดี แต่รหัสผ่านจะถูกเก็บไว้ (แม้ว่าจะเข้ารหัสก็ตาม) ที่ใดที่หนึ่งในไฟล์หรือฐานข้อมูล ฉันกำลังมองหาบางสิ่งที่ ขอบคุณมากสำหรับคำตอบของคุณ.

โพสต์คำตอบ

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