“ ฐานข้อมูลรหัสผ่านของเราถูกขโมยเมื่อวานนี้ แต่ไม่ต้องกังวลรหัสผ่านของคุณถูกเข้ารหัส” เรามักจะเห็นข้อความเช่นนี้ทางออนไลน์ รวมทั้งเมื่อวานจาก Yahoo . แต่เราควรถือเอาการรับรองเหล่านี้ตามมูลค่าที่ตราไว้จริง ๆ หรือไม่?
ความจริงก็คือฐานข้อมูลรหัสผ่านมีการบุกรุก คือ ความกังวลไม่ว่า บริษัท จะพยายามหมุนมันอย่างไร แต่มีบางสิ่งที่คุณสามารถทำได้เพื่อป้องกันตัวเองไม่ว่าแนวทางปฏิบัติด้านความปลอดภัยของ บริษัท จะแย่แค่ไหนก็ตาม
วิธีการจัดเก็บรหัสผ่าน
วิธีการที่ บริษัท ควรจัดเก็บรหัสผ่านในโลกแห่งอุดมคติ: คุณสร้างบัญชีและระบุรหัสผ่าน แทนที่จะเก็บรหัสผ่านไว้บริการจะสร้าง "แฮช" จากรหัสผ่าน นี่คือลายนิ้วมือเฉพาะที่ไม่สามารถย้อนกลับได้ ตัวอย่างเช่นรหัสผ่าน“ รหัสผ่าน” อาจเปลี่ยนเป็น“ 4jfh75to4sud7gh93247g …” มากกว่า เมื่อคุณป้อนรหัสผ่านเพื่อเข้าสู่ระบบบริการจะสร้างแฮชจากมันและตรวจสอบว่าค่าแฮชตรงกับค่าที่เก็บไว้ในฐานข้อมูลหรือไม่ บริการนี้ไม่เคยบันทึกรหัสผ่านของคุณลงในดิสก์เลย
ในการกำหนดรหัสผ่านจริงของคุณผู้โจมตีที่มีสิทธิ์เข้าถึงฐานข้อมูลจะต้องคำนวณแฮชสำหรับรหัสผ่านทั่วไปก่อนแล้วจึงตรวจสอบว่ามีอยู่ในฐานข้อมูลหรือไม่ ผู้โจมตีทำสิ่งนี้ด้วยตารางการค้นหาซึ่งเป็นรายการแฮชจำนวนมากที่ตรงกับรหัสผ่าน จากนั้นแฮชสามารถเปรียบเทียบกับฐานข้อมูลได้ ตัวอย่างเช่นผู้โจมตีจะทราบแฮชสำหรับ“ รหัสผ่าน 1” จากนั้นดูว่ามีบัญชีใดในฐานข้อมูลกำลังใช้แฮชนั้นอยู่ หากเป็นเช่นนั้นผู้โจมตีจะรู้ว่ารหัสผ่านคือ“ รหัสผ่าน 1”
เพื่อป้องกันปัญหานี้บริการควร "เกลือ" แฮชของพวกเขา แทนที่จะสร้างแฮชจากรหัสผ่านเองพวกเขาเพิ่มสตริงแบบสุ่มที่ด้านหน้าหรือส่วนท้ายของรหัสผ่านก่อนที่จะแฮช กล่าวอีกนัยหนึ่งคือผู้ใช้จะต้องป้อนรหัสผ่าน“ รหัสผ่าน” และบริการจะเพิ่มเกลือและแฮชรหัสผ่านที่ดูเหมือน“ password35s2dg” มากกว่า บัญชีผู้ใช้แต่ละบัญชีควรมีเกลือเฉพาะของตนเองและสิ่งนี้จะช่วยให้มั่นใจได้ว่าบัญชีผู้ใช้แต่ละบัญชีจะมีค่าแฮชที่แตกต่างกันสำหรับรหัสผ่านในฐานข้อมูล แม้ว่าหลายบัญชีจะใช้รหัสผ่าน“ รหัสผ่าน 1” แต่ก็มีแฮชที่แตกต่างกันเนื่องจากค่าเกลือที่แตกต่างกัน วิธีนี้จะกำจัดผู้โจมตีที่พยายามคำนวณแฮชสำหรับรหัสผ่านล่วงหน้า แทนที่จะสามารถสร้างแฮชที่ใช้กับบัญชีผู้ใช้ทุกบัญชีในฐานข้อมูลทั้งหมดในคราวเดียวพวกเขาจะต้องสร้างแฮชที่ไม่ซ้ำกันสำหรับบัญชีผู้ใช้แต่ละบัญชีและเกลือเฉพาะของมัน การดำเนินการนี้จะใช้เวลาและหน่วยความจำในการคำนวณมากกว่า
นี่คือเหตุผลที่บริการมักบอกว่าไม่ต้องกังวล บริการที่ใช้ขั้นตอนการรักษาความปลอดภัยที่เหมาะสมควรระบุว่าใช้แฮชรหัสผ่านที่ไม่ปลอดภัย หากพวกเขาพูดง่ายๆว่ารหัสผ่านถูก "แฮช" ก็น่ากังวลกว่า ตัวอย่างเช่น LinkedIn แฮชรหัสผ่านของพวกเขา แต่พวกเขาไม่ได้ใส่รหัสผ่านดังนั้นมันจึงเป็นเรื่องใหญ่ เมื่อ LinkedIn สูญเสียรหัสผ่านที่แฮช 6.5 ล้านรหัสในปี 2555 .
แนวทางปฏิบัติเกี่ยวกับรหัสผ่านที่ไม่ถูกต้อง
นี่ไม่ใช่สิ่งที่ยากที่สุดในการนำไปใช้ แต่เว็บไซต์จำนวนมากยังคงจัดการกับความยุ่งเหยิงได้หลายวิธี:
- การจัดเก็บรหัสผ่านเป็นข้อความธรรมดา : แทนที่จะต้องกังวลกับการแฮชผู้กระทำผิดที่เลวร้ายที่สุดบางคนอาจเพียงแค่ทิ้งรหัสผ่านในรูปแบบข้อความธรรมดาลงในฐานข้อมูล หากฐานข้อมูลดังกล่าวถูกบุกรุกแน่นอนว่ารหัสผ่านของคุณจะถูกบุกรุก ไม่สำคัญว่าพวกเขาแข็งแกร่งแค่ไหน
- การแฮ็กรหัสผ่านโดยไม่ทำให้พวกเขาเค็ม : บริการบางอย่างอาจแฮชรหัสผ่านและยอมแพ้โดยเลือกที่จะไม่ใช้ยาดม ฐานข้อมูลรหัสผ่านดังกล่าวจะเสี่ยงต่อการค้นหาตาราง ผู้โจมตีสามารถสร้างแฮชสำหรับรหัสผ่านจำนวนมากจากนั้นตรวจสอบว่ามีอยู่ในฐานข้อมูลหรือไม่พวกเขาสามารถทำสิ่งนี้กับทุกบัญชีพร้อมกันได้หากไม่มีการใช้เกลือ
- การนำเกลือกลับมาใช้ใหม่ : บริการบางอย่างอาจใช้เกลือ แต่อาจใช้เกลือเดียวกันซ้ำสำหรับรหัสผ่านบัญชีผู้ใช้ทุกบัญชี สิ่งนี้ไม่มีประโยชน์หากใช้เกลือเดียวกันสำหรับผู้ใช้ทุกคนผู้ใช้สองคนที่มีรหัสผ่านเดียวกันจะมีแฮชเหมือนกัน
- การใช้เกลือสั้น : หากใช้เกลือเพียงไม่กี่หลักก็จะสามารถสร้างตารางการค้นหาที่รวมเกลือที่เป็นไปได้ทั้งหมด ตัวอย่างเช่นหากใช้ตัวเลขหลักเดียวเป็นเกลือผู้โจมตีสามารถสร้างรายการแฮชที่รวมเกลือที่เป็นไปได้ทั้งหมดได้อย่างง่ายดาย
บริษัท ต่างๆจะไม่เล่าเรื่องราวทั้งหมดให้คุณฟังเสมอไปแม้ว่าพวกเขาจะบอกว่ามีการแฮชรหัสผ่าน (หรือแฮชและถูกแฮ็ก) แต่ก็อาจไม่ได้ใช้แนวทางปฏิบัติที่ดีที่สุด มักจะทำผิดด้านความระมัดระวัง
ข้อกังวลอื่น ๆ
มีแนวโน้มว่าค่าเกลือจะอยู่ในฐานข้อมูลรหัสผ่านด้วย นี่ไม่ใช่เรื่องเลวร้ายหากมีการใช้ค่าเกลือที่ไม่ซ้ำกันสำหรับผู้ใช้แต่ละคนผู้โจมตีจะต้องใช้พลังงาน CPU จำนวนมหาศาลในการทำลายรหัสผ่านเหล่านั้นทั้งหมด
ในทางปฏิบัติผู้คนจำนวนมากใช้รหัสผ่านที่ชัดเจนซึ่งน่าจะเป็นเรื่องง่ายที่จะกำหนดรหัสผ่านของบัญชีผู้ใช้จำนวนมาก ตัวอย่างเช่นหากผู้โจมตีรู้จักแฮชของคุณและรู้จักเกลือของคุณพวกเขาสามารถตรวจสอบได้อย่างง่ายดายว่าคุณกำลังใช้รหัสผ่านที่ใช้บ่อยที่สุดอยู่หรือไม่
ที่เกี่ยวข้อง: ผู้โจมตี "แฮ็กบัญชี" ทางออนไลน์ได้อย่างไรและวิธีป้องกันตัว
หากผู้โจมตีเอามันออกมาให้คุณและต้องการถอดรหัสรหัสผ่านของคุณพวกเขาสามารถทำได้ด้วยความดุร้ายตราบเท่าที่พวกเขารู้ค่าเกลือซึ่งพวกเขาอาจทำได้ ด้วยการเข้าถึงฐานข้อมูลรหัสผ่านในเครื่องแบบออฟไลน์ผู้โจมตีสามารถใช้สัตว์เดรัจฉานทั้งหมดได้ บังคับให้โจมตี พวกเขาต้องการ.
ข้อมูลส่วนบุคคลอื่น ๆ อาจรั่วไหลเมื่อฐานข้อมูลรหัสผ่านถูกขโมย: ชื่อผู้ใช้ที่อยู่อีเมลและอื่น ๆ ในกรณีที่ Yahoo รั่วไหลคำถามและคำตอบด้านความปลอดภัยก็รั่วไหลเช่นกันซึ่งอย่างที่เราทราบกันดีว่าช่วยให้ขโมยการเข้าถึงบัญชีของผู้อื่นได้ง่ายขึ้น
ช่วยฉันควรทำอย่างไร
ไม่ว่าบริการจะพูดอะไรเมื่อฐานข้อมูลรหัสผ่านถูกขโมยควรสมมติว่าบริการทั้งหมดไม่มีความสามารถและดำเนินการตามนั้น
ขั้นแรกอย่าใช้รหัสผ่านซ้ำในหลาย ๆ เว็บไซต์ ใช้ตัวจัดการรหัสผ่านที่สร้างรหัสผ่านเฉพาะสำหรับแต่ละเว็บไซต์ . หากผู้โจมตีพบว่ารหัสผ่านสำหรับบริการของคุณคือ“ 43 ^ tSd% 7uho2 # 3” และคุณใช้รหัสผ่านนั้นในเว็บไซต์นั้น ๆ เพียงแห่งเดียวพวกเขาก็ไม่ได้เรียนรู้อะไรที่เป็นประโยชน์ หากคุณใช้รหัสผ่านเดียวกันทุกที่ก็สามารถเข้าถึงบัญชีอื่นของคุณได้ นี่คือ บัญชีของผู้คนจำนวนเท่าใดที่ถูก "แฮ็ก"
หากบริการถูกบุกรุกโปรดเปลี่ยนรหัสผ่านที่คุณใช้ที่นั่น นอกจากนี้คุณควรเปลี่ยนรหัสผ่านในเว็บไซต์อื่น ๆ หากคุณใช้ซ้ำที่นั่น แต่คุณไม่ควรทำเช่นนั้นตั้งแต่แรก
คุณควรพิจารณาด้วย โดยใช้การรับรองความถูกต้องด้วยสองปัจจัย ซึ่งจะปกป้องคุณแม้ว่าผู้โจมตีจะเรียนรู้รหัสผ่านของคุณก็ตาม
ที่เกี่ยวข้อง: ทำไมคุณควรใช้ Password Manager และวิธีเริ่มต้นใช้งาน
สิ่งที่สำคัญที่สุดคือการไม่ใช้รหัสผ่านซ้ำ ฐานข้อมูลรหัสผ่านที่ถูกบุกรุกจะไม่ทำร้ายคุณหากคุณใช้รหัสผ่านที่ไม่ซ้ำกันทุกที่เว้นแต่ว่าจะเก็บอย่างอื่นที่สำคัญไว้ในฐานข้อมูลเช่นหมายเลขบัตรเครดิตของคุณ
เครดิตรูปภาพ: Marc Falardeau บน Flickr , วิกิมีเดียคอมมอนส์