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


20

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

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

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

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

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

ตัวชี้ไปยังแหล่งข้อมูลที่เป็นอิสระและ / หรือเชื่อถือได้สำหรับสาเหตุที่เป็นความคิดที่ไม่ดียังคงได้รับอย่างสุดซึ้ง ...
[/ แก้ไข]


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

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

1
ช่องโหว่ด้านความปลอดภัยแม้คุณจะปฏิเสธรหัสผ่านไม่ได้หากไม่ได้แฮชที่ไม่ซ้ำกันใช่หรือไม่
Robert Harvey

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

2
น่าสนใจที่พวกเขาเชื่อใจคุณมากพอที่จะออกแบบระบบของพวกเขา แต่ไม่เพียงพอที่จะแนะนำพวกเขาเกี่ยวกับการออกแบบระบบของพวกเขา
Gary Rowe

คำตอบ:


24

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

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

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

แก้ไข: ไม่ใกล้กับผู้มีอำนาจ แต่อาจเป็นประโยชน์หลังจากคุณอธิบายให้พวกเขาฟังว่า WTF หมายถึงอะไร: http://thedailywtf.com/Articles/Really_Unique_Passwords.aspx


+1 นอกจากนี้แผนการรับรองความถูกต้องส่วนใหญ่ให้คุณลองชื่อผู้ใช้มากเท่าที่คุณต้องการในขณะที่ให้เพียงสามครั้งด้วยรหัสผ่าน
Michael K

1
WTF นั้นมีไว้สำหรับใช้รหัสผ่านเป็นคีย์หลัก / ต่างประเทศมากกว่าสิ่งอื่นใด อาจเป็นรหัสผ่านแบบข้อความธรรมดาด้วย
Murph

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

ที่จริงแล้วในบริบทบางอย่างที่มีเขตข้อมูลเดียวสำหรับข้อมูลรับรองการเข้าสู่ระบบจะสมเหตุสมผลถ้าจำเป็นต้องเลือกรหัสผ่านเพื่อให้บางส่วนเฉพาะ [เช่นตัวอักษรตัวแรก] ไม่ซ้ำกัน หากมีผู้ใช้ 26 รายหรือน้อยกว่าตัวอย่างเช่นผู้ใช้แต่ละคนต้องเลือกรหัสผ่านที่ขึ้นต้นด้วยตัวอักษรที่แตกต่างกัน ระบบดังกล่าวจะเทียบเท่ากับการมี 26 ชื่อผู้ใช้อักขระเดี่ยวที่แตกต่างกัน แต่จะหลีกเลี่ยงการกด 'แท็บ' หรือ 'ป้อน' ระหว่างชื่อและรหัสผ่าน
supercat

10

แนวปฏิบัติที่ดีที่สุดจะเป็นไปตามข้อกำหนด:

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

การแก้ไขอื่น: Doh! การเข้าใจย้อนหลังเป็นเรื่องง่าย - คุณยังสามารถตรวจสอบเอกลักษณ์ได้ (แน่นอน) คุณมีเกลือ ... แค่ยิงฉันตอนนี้ ... แน่นอนคุณไม่ต้องพูดถึงรายละเอียดนี้กับลูกค้า


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

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


ตกลงคำตอบของฉันเริ่มต้นด้วย:

มีข้อผิดพลาดเล็กน้อยในเรื่องนี้เนื่องจากมีสองสามข้อ - ซึ่งส่วนใหญ่คือฉันหนา ...

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


4
+1 สำหรับการให้ข้อมูลเชิงลึกว่าทำไมบางคนอาจถามรหัสผ่านที่ไม่ซ้ำกัน
Michael Haren

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

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

+1 สำหรับการชี้ให้เห็นว่าคุณไม่สามารถทำได้หากคุณจัดการรหัสผ่านอย่างถูกต้อง
David Thornley

เราขอทราบด้วยว่าคำตอบของฉันคือคุณไม่สามารถทดสอบความเป็นเอกลักษณ์ได้เพราะคุณควรจะใส่รหัสผ่านหรือไม่? ดังนั้นถ้าฉันมี downvote เพื่อบอกว่าฉันอยากจะรู้ว่าทำไม
Murph

10

การบังคับใช้การรั่วไหลของข้อมูลรหัสผ่านที่ไม่สามารถทำซ้ำได้

อย่างไร? เนื่องจากทุกครั้งที่แคร็กเกอร์พยายามสร้างผู้ใช้ใหม่ด้วยรหัสผ่านง่าย ๆ ที่ระบบของคุณตอบกลับด้วย "ไม่ไม่สามารถมีรหัสผ่านนั้นได้" แคร็กเกอร์กล่าวว่า "Goody นั่นคือหนึ่งในรายการ"

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

ทรัพยากรที่อธิบายถึงนโยบายการจัดการรหัสผ่านที่ดีและไม่ดี

อ่านบทความนี้โดยผู้เชี่ยวชาญด้านความปลอดภัย Bruce Schneier สำหรับการสนทนาเชิงลึกเกี่ยวกับความแข็งแกร่งของรหัสผ่าน

อ่านPDF นี้โดยนักวิจัยด้านความปลอดภัย Philip Inglesant & M. Angela Sasse สำหรับการสนทนาเชิงลึกเกี่ยวกับ "ต้นทุนที่แท้จริงของนโยบายรหัสผ่านที่ใช้ไม่ได้" อ้างจากข้อสรุป:

จากมุมมองของโลกว่า“ หากเพียง [ผู้ใช้] เข้าใจถึงอันตรายพวกเขาจะประพฤติแตกต่างกัน” [12] เราให้เหตุผลว่า“ ถ้าผู้จัดการความปลอดภัยเท่านั้นเข้าใจต้นทุนที่แท้จริงสำหรับผู้ใช้และองค์กรพวกเขาจะกำหนดนโยบายที่แตกต่างกัน”

ความรู้สึกผิดของความปลอดภัย

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

สำหรับการเข้าถึงออนไลน์ 6 ตัวอักษรก็พอ

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

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

  1. แครกเกอร์เดารหัสผ่านโดยใช้วิธี "รูทบวกคำต่อท้าย" เพื่อลดการเดา
  2. ข้อมูลรับรองถูกปฏิเสธและความพยายามในการเข้าสู่ระบบเพิ่มเติมถูกป้องกันเป็นเวลา N * 10 วินาที
  3. ถ้า N> 20 ล็อคบัญชีและแจ้งผู้ดูแลระบบ
  4. N = N +1
  5. แจ้งผู้ใช้ว่าการเข้าสู่ระบบครั้งต่อไปสามารถเกิดขึ้นได้ในเวลา T (คำนวณข้างต้น)
  6. ไปที่ขั้นตอนที่ 1

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

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


1
การเข้าถึงแบบออนไลน์หมายถึงอะไร มีอะไรอีกบ้าง?
Robert Harvey

ดูประโยคสุดท้ายสำหรับความแตกต่างในเงื่อนไขความปลอดภัย
Gary Rowe

4

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

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


4

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

สิ่งที่คุณควรชี้ให้เห็นก็คือมันเป็นไปไม่ได้ที่ร่างกายจะใช้งานการตรวจสอบ "รหัสผ่านที่ไม่ซ้ำ" หากคุณกำลัง salting และ hashing รหัสผ่านและไม่เก็บไว้เป็นข้อความที่ชัดเจนแล้วมันเป็นการดำเนินงาน O (n) (แพง) เพื่อดำเนินการตรวจสอบเอกลักษณ์

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

ฉันคิดว่านี่เป็นคำตอบที่คุณต้องการให้กับลูกค้าของคุณ


ใช่. นี่จะเป็นจุดที่ดีที่จะทำให้
PeterAllenWebb

1

แค่คิดในแง่ของสถานที่ที่เหมาะสมในการถามคำถามส่วนความปลอดภัยด้าน IT ของ Stack Exchange ควรเป็นจุดที่มีประโยชน์สำหรับคุณ ลองใช้/security/tagged/passwordsผู้ที่มุ่งเน้นด้านความปลอดภัยของระบบ IT ควรจะสามารถให้คำตอบที่เฉพาะเจาะจงได้


0

เขาอาจต้องการเข้ารหัส RSA สองปัจจัย หากคุณใช้ Active Directory หรือการเป็นสมาชิก ASP.NET นี่ไม่ใช่เกมง่ายๆ

ข้อความแสดงแทน

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


ปัจจัยสองประการนั้นไม่มีประโยชน์ในการป้องกันการโจมตีจากคนกลาง
BryanH

จริง แต่คำสั่งนั้นดูเหมือนจะไม่เกี่ยวข้องกับคำถามในมือ
goodguys_activate

แต่ตอนนี้ฉันรู้ปัจจัยที่ 2 ของคุณแล้ว !!! เดี๋ยวก่อน ... โปรดอัปเดตรูปภาพของคุณ
Michael Haren

2
อืมฉันคิดว่ามันคงเจ๋งที่จะทำให้ GIF เคลื่อนไหว
goodguys_activate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.