ความปลอดภัยของรหัสผ่าน WordPress และการแฮช

เผยแพร่แล้ว: 2017-11-10

รหัสผ่านเป็นรูปแบบการรับรองความถูกต้องที่เชื่อมโยงกับผู้ใช้หรือกระบวนการ ใช้เพื่อตรวจสอบตัวตนของผู้ใช้หรือกระบวนการกับระบบคอมพิวเตอร์หรือทรัพยากร ในเว็บสมัยใหม่ที่มีการเชื่อมต่อแบบพิเศษ อุปกรณ์ IoT และมือถือ การรักษาความปลอดภัยด้วยรหัสผ่านเป็นหัวข้อที่จริงจังกว่าที่เคย ฐานข้อมูลรหัสผ่านรั่วไหลตลอดเวลา โดยบริษัทใหญ่ๆ เช่น LinkedIn, Tumblr และ Yahoo ได้รับผลกระทบ Bob Diachenko จาก MacKeeper Security เขียนเมื่อต้นปีนี้เกี่ยวกับรายชื่ออีเมล/รหัสผ่านจำนวน 560 ล้านรายการซึ่งพบว่าลอยอยู่บนอินเทอร์เน็ตอย่างอิสระ!

ในบทความนี้ เราจะพูดถึงสามสิ่งที่เกี่ยวข้องกับรหัสผ่านและ WordPress:

  1. การสร้างและการจัดการรหัสผ่านที่แข็งแกร่ง
  2. WordPress ทำการแฮชรหัสผ่านอย่างไร
  3. ดำเนินการแฮชรหัสผ่านของคุณเอง

รหัสผ่านที่อ่อนแอและรัดกุม

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

เมื่อพูดถึงความเข้มงวดของรหัสผ่าน เราต้องรวมบริบทและระดับการคุกคามด้วย:

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

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

ในสถานการณ์ที่สอง หากผู้โจมตีสามารถเข้าถึงไฟล์รหัสผ่าน อาจเป็นเรื่องของเวลา โดยเฉพาะอย่างยิ่งถ้าฟังก์ชันแฮชที่ใช้คือ MD5 มันพังและพิสูจน์แล้วว่าไม่ปลอดภัยมานานแล้ว ผู้โจมตีสามารถใช้ฮาร์ดแวร์ที่ทันสมัย ​​(เช่น แผง GPU) ร่วมกับตาราง "รุ้ง" ที่คำนวณไว้ล่วงหน้าเพื่อถอดรหัสไฟล์รหัสผ่านทั้งหมดในเวลาอันสั้น นอกจากนี้ ในบางกรณี รหัสผ่านสำหรับผู้ใช้ทั้งหมดจะถูกเก็บไว้ใน 'ข้อความธรรมดา' ในฐานข้อมูล ในทั้งสองกรณีนี้ “ความแรง” ของรหัสผ่านของคุณจะถูกยกเลิก

วิธีสร้างและจัดเก็บรหัสผ่านที่รัดกุม

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

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

ตัวเลือกที่ได้รับความนิยมมากที่สุด (และมีราคาแพง) คือ 1Password แต่คุณสามารถลองใช้ตัวเลือกที่ให้มาในระบบปฏิบัติการของคุณ (เช่น iCloud KeyChain ของ Apple) หรือใช้โซลูชันโอเพ่นซอร์สแบบหลายแพลตฟอร์ม เช่น KeePass

โฮสต์เว็บไซต์ของคุณด้วย Pressidium

รับประกันคืนเงิน 60 วัน

ดูแผนของเรา

การแฮชรหัสผ่าน WordPress

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

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

ใช้การแฮชรหัสผ่าน WordPress ของคุณเอง

คุณสามารถ (และควร) เลือกการใช้งานอื่น เช่น Bcrypt โดยส่ง tuple (16, FALSE) ไปยังอ็อบเจ็กต์ PasswordHash ในอินสแตนซ์ ทั้งสองฟังก์ชัน wp_hash_password() และ wp_set_password() สามารถเสียบได้ ดังนั้นคุณจึงสามารถจัดเตรียมการใช้งานของคุณเองได้ สามารถพบได้ใน wp-includes/pluggable.php

Roots.io (ผู้ที่อยู่เบื้องหลังระบบ WordPress ต้นแบบ Trellis, Bedrock และ Sage) ได้เปิดตัวปลั๊กอิน WordPress ที่ใช้ฟังก์ชัน bcrypt สำหรับฟังก์ชันแฮชเริ่มต้นของ WordPress

บทสรุป

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