ฉันควรกำหนดความยาวสูงสุดของรหัสผ่านหรือไม่


162

ฉันเข้าใจได้ว่าการกำหนดรหัสผ่านให้มีความยาวขั้นต่ำนั้นสมเหตุสมผล (เพื่อบันทึกผู้ใช้จากตัวเอง) แต่ธนาคารของฉันมีข้อกำหนดว่ารหัสผ่านมีความยาวระหว่าง 6 และ 8 ตัวอักษรและฉันเริ่มสงสัย ...

  • นี่จะไม่ทำให้การโจมตีแบบเดรัจฉานง่ายขึ้นหรือไม่ (แย่)
  • สิ่งนี้บอกเป็นนัยว่ารหัสผ่านของฉันถูกจัดเก็บแบบไม่เข้ารหัสหรือไม่? (แย่)

หากผู้ที่มี (หวังว่า) ผู้เชี่ยวชาญด้านความปลอดภัยด้านไอทีที่ดีบางคนที่ทำงานให้กับพวกเขากำลังกำหนดรหัสผ่านให้ยาวที่สุดฉันควรคิดถึงสิ่งที่คล้ายกันหรือไม่ ข้อดี / ข้อเสียของสิ่งนี้คืออะไร


16
มีเกือบจะแน่นอนเป็น "สามนัดและคุณออก" นโยบายซึ่งช่วยลดการคุกคามของการโจมตีกำลังดุร้าย
Stu Thompson

23
ไม่มีข้อแก้ตัวสำหรับสิ่งนี้สำหรับระบบที่ไม่ใช่มรดกเช่นเว็บไซต์ทันสมัย
mparaz

7
ฉันไม่คิดว่าคำตอบนั้นเป็นเรื่องหมดจด ขนาดต่ำสุด (6) และขีด จำกัด สูงสุดของความพยายามคือ "น่าจะเป็น" เพื่อกำจัดการคาดเดาแบบป่า ฉันเดาว่าขนาดสูงสุด (8) คือการ จำกัด จำนวนการโทร (และค่าใช้จ่าย) ของการสนับสนุนสำหรับ "โอ๊ะฉันลืม mycode" หรือ "ฉันพิมพ์รหัสให้เร็ว" หรือ "ฉันพิมพ์ผิดหนึ่งตัวอักษร" เป็นต้นนอกจากกระดาษที่คุณเขียนรหัสผ่านหากคุณจำไม่ได้ ..
โทรหาฉัน Steve

17
มหาวิทยาลัยที่ลงทะเบียนเรียนนั้นมีกฎรหัสผ่านโง่ ๆ อย่างไม่น่าเชื่อ: 8 ตัวอักษรเท่านั้นอย่างน้อย 1 หมายเลข แต่ไม่ใช่จุดเริ่มต้นหรือจุดสิ้นสุดของรหัสผ่านต้องการตัวอักษรจากมากกว่า 2 แถวบนของแป้นพิมพ์ ฯลฯ เป็นต้นในตอนท้าย พวกเขาทำให้สัตว์เดียรัจฉานง่ายขึ้นโดยให้กฎเหล่านี้ -.- ฉันรู้ว่าคุณไม่โง่ แต่โปรดอย่าทำกฎโง่ ๆ แบบนั้น! (แค่ต้องเอามันออกจากระบบของฉัน :))
cwap

17
@ โทรถ้าคุณกำหนดความยาวสูงสุดด้วยเหตุผลนั้นคุณจะได้รับ "ฉันลืมรหัสผ่าน" เรียกจากฉันเพราะรหัสผ่านเฉพาะไซต์ของฉันยาวทั้งหมดและ จำกัด ฉันถึง 12 ตัวอักษรเป็นวิธีที่แน่นอนที่จะรับประกันว่าฉันจะ จำไม่ได้
Roman Starkov

คำตอบ:


193

รหัสผ่านถูกแฮชที่ 32, 40, 128 ไม่ว่าจะยาวเท่าใดก็ตาม เหตุผลเดียวที่มีความยาวขั้นต่ำคือการป้องกันรหัสผ่านที่เดาง่าย ไม่มีจุดประสงค์สำหรับความยาวสูงสุด

XKCDบังคับอธิบายว่าทำไมคุณถึงทำให้ผู้ใช้ของคุณเกิดความเสียหายหากคุณกำหนดความยาวสูงสุด:

XKCD บังคับ


6
บางทีธนาคารอาจเลือกที่จะ จำกัด รหัสผ่านเพราะใน ATM คุณไม่สามารถป้อนได้มากกว่า 8 ตัวอักษร
André Chalella

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

39
น่าเศร้าที่สันนิษฐานว่ารหัสผ่านถูกแฮชอยู่เสมอ รหัสผ่านความยาวสูงสุดคืออาการของรหัสผ่านที่เก็บในรูปแบบธรรมดา
jevon

14
ถอนหายใจแม้ที่ PayPal "ลวดเย็บกระดาษแบตเตอรี่ม้าที่ถูกต้อง" คือความยาวสูงสุด8 ตัวอักษร<การเซ็นเซอร์> headdesk
Roman Starkov

3
@kleinfreund เพราะหากถูกแฮชความยาวของรหัสผ่านจะไม่สำคัญสำหรับพวกเขา (ฟังก์ชันแฮชจะแปลงสตริงที่มีความยาวเป็นความยาวคงที่)
Vicky Chijwani

75

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

ในกรณีที่เป็น:

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

หากคุณกำลังพัฒนาเว็บไซต์ที่รับรหัสผ่านอย่าใส่รหัสผ่านที่โง่เขลาเว้นแต่ว่าคุณต้องการรับข้อมูลด้วยแปรงเดียวกัน

[ภายในแน่นอนรหัสของคุณอาจปฏิบัติเฉพาะไบต์ 256/1024 / 2k / 4k / (อะไรก็ตาม) เป็น "สำคัญ" เพื่อหลีกเลี่ยงการกระทืบรหัสผ่านแมมมอ ธ ]


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

3
ฉันไม่แน่ใจว่าคุณควรสมมติว่ารหัสผ่านสูงสุดหมายถึงพวกเขากำลังจัดเก็บรหัสผ่านข้อความธรรมดา บางครั้งพวกเขากำลังตัดทอนข้อมูลและเพียงส่ง x chars แรกไปยัง hashing () (วิธีการตรวจสอบถูกตั้งค่ารหัสผ่านเกินขีด จำกัด จากนั้นลองลงชื่อเข้าใช้ด้วยรูปแบบของอักขระรหัสผ่านที่เกินความยาวสูงสุด)
benc

5
@benc แน่นอนว่าเป็นไปได้ แต่ประเด็นก็คือในฐานะผู้ใช้คุณไม่มีทางรู้ว่านี่คือสิ่งที่พวกเขากำลังทำอยู่หรือไม่ ความยาวสูงสุด (โดยเฉพาะสั้น ๆ ) เป็นสัญญาณเตือนและฉันคิดว่าเป็นการดีที่สุดที่จะถือว่าแย่ที่สุด (หรือติดต่อกับผู้ให้บริการเพื่อให้พวกเขายืนยัน)
ทำให้เข้าใจผิด

1
กรุณาอธิบายอย่างละเอียด คำตอบนี้เป็นเพียงคำสั่ง
kleinfreund

1
รหัสผ่านสูงสุดไม่ได้แปลว่ามันถูกเก็บเป็นข้อความธรรมดา อาจเป็นเพราะเหตุผลทางเทคนิคเช่น bcrypt อนุญาตให้ใช้รหัสผ่านได้สูงสุด 72 ตัวอักษรเท่านั้น
emorris

58

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

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

การตั้งค่าขอบเขตบนให้กับบางสิ่งบางอย่างเช่น 256 ตัวอักษรดูเหมือนจะใจกว้างเกินไปตามมาตรฐานของวันนี้


35
คุณยังสามารถส่งข้อมูล 1gb ด้วยขีด จำกัด สูงสุด ซอฟต์แวร์ที่ทำข้อ จำกัด นั้นมักจะอยู่ด้านหลังเว็บเซิร์ฟเวอร์
epochwolf

6
คุณยังสามารถวางทั้งหมดยกเว้น 256chars แรกก่อนที่จะทำสิ่งที่คำนวณอย่างเข้มข้น เล่นกัญชาหม่าบน 1gb ของข้อมูลจะใช้เวลามากนานกว่ากัญชาเดียวกันใน 256 ตัวอักษร
rcreswick

2
@Eyal: สิ่งที่เกิดขึ้นในฝั่งไคลเอ็นต์ของเว็บแอปนั้นไม่น่าเชื่อถือ ดังนั้นแฮชจะกลายเป็นรหัสผ่านที่เทียบเท่าทำให้การออกกำลังกายนี้ไร้ประโยชน์ (เว็บเบราว์เซอร์อาจไม่ยอมรับการป้อนข้อความ 1 GB และไคลเอนต์แบบกำหนดเองอาจส่งสตริง 1-GB ในฟิลด์แบบฟอร์ม "thisisthehashedpassword")
Piskvor ออกจากอาคาร

4
@Piskvor: แต่ก็ไม่มีทางที่จะป้องกันสาย 1-GB ได้ ผู้ใช้สามารถร้องขอexample.com/?password=abcabcabcabc ... และทำให้คำขอของเขาใหญ่เท่าที่เขาต้องการ มาตรฐาน DoS
Eyal

4
@Piskvor และ Eyal โชคดีที่ Apache และ IIS (และเซิร์ฟเวอร์ผู้ใหญ่อื่น ๆ ) จะจำกัดความยาวของฟิลด์ที่ส่งผ่าน URL: boutell.com/newfaq/misc/urllength.html
sampablokuper

21

อันดับแรกอย่าคิดว่าธนาคารมีผู้เชี่ยวชาญด้านความปลอดภัยด้านไอทีที่ดีที่ทำงานให้กับพวกเขา ความอุดมสมบูรณ์ไม่ได้

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


ตกลงกัน! ดูที่สตริงของธนาคารในสหราชอาณาจักรในการเข้าถึงความปลอดภัยออนไลน์ล้มเหลวในช่วงไม่กี่ปีที่ผ่านมา ...
Stu Thompson

6
ฉันใช้รหัสผ่านที่แตกต่างกันในทุก ๆ เว็บไซต์ผ่านรูปแบบที่ให้ฉันจำได้หมด แต่ทั้งหมดค่อนข้างยาว websies เพียงแห่งเดียวที่รหัสผ่านที่ฉันเขียนลงบนโน้ตเป็นสิ่งที่กำหนดข้อจำกัดความยาวสูงสุดของ moronic และบังคับให้ฉันต้องอยู่ห่างจากรหัสผ่านที่ต้องการ แต่ไม่ซ้ำ ...
Roman Starkov

@romkyns ฉันใช้รูปแบบของคุณไม่ได้ใช้สัญลักษณ์? ฉันมีรูปแบบดังกล่าวเมื่อสร้างรหัสผ่านที่ยากต่อการบังคับเดรัจฉานสั้น ๆ แต่ฉันต้องละทิ้งเมื่อ 10-20% ของเว็บไซต์ที่ฉันใช้ห้ามใช้อักขระพิเศษทั่วไป
Sparr

ไม่มีตัวอักษรพิเศษไม่ แต่มันเพิ่มตัวเลขและตัวพิมพ์ใหญ่เสมอเพราะฉันรู้ว่าบางไซต์ต้องการ หวังว่าฉันจะรู้เกี่ยวกับขีดจำกัดความยาวสูงสุดเมื่อฉันมากับมัน ... แต่รูปแบบ (เรียบง่าย) ที่ฉันสร้างขึ้นเพื่อญาติสนิทได้ทำงานอย่างสมบูรณ์จนถึงตอนนี้!
Roman Starkov

1
@romkyns ปัญหาอื่น ๆ ที่มีรูปแบบดังกล่าว: ไซต์ที่ใช้รหัสผ่าน หากรูปแบบของคุณคล้ายกับ nameofwebsitefO0 (googlefO0 yahoofO0 เป็นต้น) คุณจะจำได้อย่างไรว่าคุณควรใช้ "yahoofO0" บน flickr.com หรือ stackoverflowfO0 บน askubuntu.com ไซต์ที่หมดอายุรหัสผ่าน จากนั้นคุณต้องขยายโครงร่างเพื่อรวมส่วนที่สามารถเปลี่ยนแปลงได้ แต่จะล้มเหลวหากกฎการหมดอายุตรวจสอบสตริงย่อย
Sparr

13

ตอนนี้การตั้งค่าความยาวรหัสผ่านสูงสุดน้อยกว่า 128 ตัวอักษรนั้นไม่ได้รับการสนับสนุนจาก OWASP Authentication Cheat Sheet

https://www.owasp.org/index.php/Authentication_Cheat_Sheet

อ้างถึงย่อหน้าทั้งหมด:

รหัสผ่านที่ยาวขึ้นจะให้ตัวละครผสมกันมากขึ้นและทำให้ผู้โจมตีเดาได้ยากขึ้น

แอปพลิเคชั่นควรมีความยาวต่ำสุดของรหัสผ่าน รหัสผ่านที่สั้นกว่า 10 ตัวจะถือว่าอ่อนแอ ([1]) ในขณะที่การบังคับใช้ความยาวขั้นต่ำอาจทำให้เกิดปัญหากับการจำรหัสผ่านในผู้ใช้บางคนแอปพลิเคชันควรส่งเสริมให้พวกเขาตั้งข้อความรหัสผ่าน (ประโยคหรือการรวมกันของคำ) ที่อาจยาวกว่ารหัสผ่านทั่วไป

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

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


11
แหล่งที่มานี้ไม่ได้จำกัดความยาวสูงสุดของรหัสผ่าน แต่ก็ไม่สนับสนุนขีด จำกัด ความยาวสูงสุดของรหัสผ่านต่ำ (น้อยกว่า 128 อักขระ)
Matthew

9

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

กระบวนการคิดอื่นอาจเป็นได้ว่าหากผู้ใช้ถูกบังคับให้ใช้รหัสผ่านสั้น ๆ พวกเขามีแนวโน้มที่จะประดิษฐ์การพูดพล่อยๆแบบสุ่มมากกว่าวลีหรือชื่อเล่นที่เดาได้ง่าย (โดยเพื่อน / ครอบครัวของพวกเขา) วิธีการนี้มีผลแน่นอนถ้าส่วนหน้าบังคับให้มีการผสมตัวเลข / ตัวอักษรและปฏิเสธรหัสผ่านที่มีคำในพจนานุกรมรวมถึงคำที่เขียนด้วย l33t-speak


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

6

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

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


4

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

มันยากที่จะเห็นข้อแก้ตัวใด ๆ สำหรับการจำกัดความยาวของรหัสผ่านนอกเหนือจากการออกแบบที่ไม่ดี


3

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


1
ควรมีความยาวอินพุตสูงสุดใช่ แต่ไม่ควรเป็น <64 ความยาวสูงสุด 8 หรือ 12 นั้นไร้สาระ
Dan Bechard

2

ไม่สนใจคนที่พูดว่าไม่ตรวจสอบรหัสผ่านที่ยาว Owasp แท้จริงว่า 128 ตัวอักษรควรจะเพียงพอ เพียงเพื่อให้มีพื้นที่หายใจเพียงพอคุณสามารถพูดเพิ่มอีก 300, 250, 500 ถ้าคุณรู้สึกว่ามัน

https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Password_Length

ความยาวรหัสผ่านรหัสผ่านอีกต่อไปให้การผสมผสานของตัวละครที่มากขึ้นและทำให้ผู้โจมตีเดาได้ยากขึ้น

...

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


ไม่เกี่ยวข้องกับการสนทนา คำถามคือว่ามีประโยชน์ที่จะจำกัดความยาวไม่ว่า 128 เพียงพอหรือไม่
vikki

1

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

โอกาสที่ระบบธนาคารกำลังซ้อนทับระบบเก่าดังนั้นพวกเขาจึงสามารถให้รหัสผ่านจำนวนหนึ่งได้


9
หากไม่มีเหตุผลที่ถูกต้องรหัสผ่านควรแฮช ผลแฮชในสตริงความยาวคงที่ ไม่มีการเว้นวรรคเพื่อโต้แย้งเว้นเสียแต่ว่าระบบจะจัดเก็บรหัสผ่านจริงซึ่งเป็นความคิดที่แย่มาก
Stu Thompson

8
การเข้ารหัสรหัสผ่านเป็นความคิดที่แย่มาก พนักงานที่ไร้ยางอายคือสิ่งที่คุณต้องทำเพื่อใช้รหัสผ่านที่มีค่าน้อยมาก บันทึกปัญหาโดยไม่ต้องเก็บไว้ในสถานที่แรก
Roman Starkov

1

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

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

วิธีแก้ไขปัญหาสมาร์ทการ์ดจะไม่ดีกับฉัน ฉันมีไพ่มากเกินไปเพราะมันคือ ... ฉันไม่ต้องการกลไกอีกแล้ว


พวกเขาตัดคีย์สเปซที่สำคัญซึ่งยืดเวลาให้กับการโจมตีด้วยกำลังดุร้ายเมื่อ (และฉันหมายถึงเมื่อ) ฐานข้อมูลแฮชของพวกเขาถูกขโมย (สมมติว่าพวกเขาใช้เกลือ / แฮช / ยืดด้วย เวลาเปลี่ยนธนาคาร
Chris Gomez

1

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


1

พยายามอย่ากำหนดข้อ จำกัด ใด ๆ เว้นแต่จำเป็น ถูกเตือน: อาจและจำเป็นในหลายกรณี การจัดการกับระบบเดิมเป็นหนึ่งในเหตุผลเหล่านี้ ตรวจสอบให้แน่ใจว่าคุณทดสอบกรณีของรหัสผ่านที่ยาวมาก ๆ (ระบบของคุณสามารถจัดการกับรหัสผ่านยาว 10MB ได้หรือไม่) คุณสามารถพบปัญหาการปฏิเสธบริการ (DoS) เนื่องจากฟังก์ชันการป้องกันคีย์ (KDF) ที่คุณจะใช้ (โดยทั่วไปคือ PBKDF2, bcrypt, scrypt) จะใช้เวลาและทรัพยากรมาก ตัวอย่างชีวิตจริง: http://arstechnica.com/security/2013/09/long-passwords-are-good-but-too-much-length-can-be-bad-for-security/


0

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

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

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


ผู้คนสามารถจดจำเพลงที่ชื่นชอบบทกวีข้อพระคัมภีร์หรือคำพูดอื่น ๆ ได้อย่างง่ายดาย เหล่านี้จะมากยาวเมื่อเทียบกับรหัสผ่านทั่วไป ฉันเพิ่งทดสอบหนึ่งตัวและมีตัวละคร 79 ตัว! (ได้รับความเป็นไปได้ของความผิดพลาดจะเพิ่มขึ้นเมื่อวลีรหัสผ่านยาวขึ้นยิ่งแย่ลงเมื่อเว็บไซต์ STUPID ไม่แสดงอักขระตัวสุดท้ายที่คุณป้อนในกล่องรหัสผ่าน)
Katastic Voyage

0

รหัสผ่านที่ยาวขึ้นหรือวลีรหัสผ่านนั้นยากที่จะถอดรหัสโดยอาศัยความยาวและจดจำได้ง่ายกว่าการใช้รหัสผ่านที่ซับซ้อน

น่าจะดีที่สุดสำหรับความยาวขั้นต่ำที่ค่อนข้างยาว (10+) การจำกัดความยาวนั้นไร้ประโยชน์


0

ระบบดั้งเดิม (กล่าวถึงแล้ว) หรือการเชื่อมต่อกับระบบภายนอกของผู้ขายอาจจำเป็นต้องใช้อักขระ 8 ตัว มันอาจเป็นความพยายามที่เข้าใจผิดในการบันทึกผู้ใช้จากตัวเอง การ จำกัด แบบนั้นจะส่งผลให้มีรหัสผ่าน pssw0rd1, pssw0rd2 มากเกินไป ฯลฯ


0

เหตุผลหนึ่งที่รหัสผ่านอาจไม่ถูกแฮชคืออัลกอริทึมการตรวจสอบสิทธิ์ที่ใช้ ตัวอย่างเช่นอัลกอริทึมย่อยบางส่วนต้องการรหัสผ่านเวอร์ชันธรรมดาที่เซิร์ฟเวอร์เนื่องจากกลไกการตรวจสอบสิทธิ์นั้นเกี่ยวข้องกับทั้งไคลเอนต์และเซิร์ฟเวอร์ที่ดำเนินการทางคณิตศาสตร์เดียวกันกับรหัสผ่านที่ป้อน (ซึ่งโดยทั่วไปแล้วจะไม่สร้างผลลัพธ์เดียวกัน ถูกรวมเข้ากับ 'nonce' ที่สร้างแบบสุ่มซึ่งแบ่งใช้ระหว่างสองเครื่อง)

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

Digst รับรองความถูกต้องมีการอนุญาตให้มีการรับรองความถูกต้องมากกว่าช่องทางที่ไม่ได้เข้ารหัส หากใช้ SSL หรือการเข้ารหัสเต็มช่องสัญญาณอื่น ๆ คุณไม่จำเป็นต้องใช้กลไกการตรวจสอบความถูกต้องซึ่งหมายความว่าสามารถเก็บรหัสผ่านไว้ในแฮชแทนได้


-4

รหัสผ่านแบบยาวเพียง 8 ตัวฟังดูผิดปกติ หากมีข้อ จำกัด ควรมีอย่างน้อย 20 ตัวเป็นความคิดที่ดีกว่า


3
แต่นั่นคือสิ่งที่ - ไม่ควรมีข้อ จำกัด เลย
ลุคสตีเวนสัน

-4

ฉันคิดว่าข้อ จำกัด เพียงอย่างเดียวที่ควรนำมาใช้นั้นเหมือนขีด จำกัด ตัวอักษร 2000 ตัวหรือสิ่งอื่นที่สูงอย่างแน่นอน แต่เพื่อ จำกัด ขนาดฐานข้อมูลหากเป็นปัญหา


9
รหัสผ่านควรถูกแฮช ... และขนาดฐานข้อมูลจะไม่เป็นปัญหาเมื่อรหัสผ่านถูกแฮช
epochwolf

4
@epochwolf - ฉันสามารถคิดได้ด้วยเหตุผลข้อหนึ่งว่าทำไมรหัสผ่านไม่ควรถูกแฮชเสมอ (เพราะฉันค้นพบตัวเองในวันนี้): รหัสผ่านที่ต้องส่งไปยังบุคคลที่สามในนามของผู้ใช้ไม่สามารถเก็บเป็นแฮชได้ ความคุ้มค่า [เช่นแอปพลิเคชันที่ต้องจัดเก็บข้อมูลรับรองสำหรับการส่งอีเมลผ่านโดเมนภายนอก]
Kenny Evitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.