นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย
ทำความเข้าใจข้อกำหนดของรหัสผ่านที่รัดกุม ปัจจัย MFA ได้แก่ สิ่งที่คุณรู้ มี หรือเป็น และเหตุใดการใช้หลายปัจจัยร่วมกันจึงลดความเสี่ยงที่บัญชีจะถูกยึดครองได้อย่างมาก
นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
รหัสผ่าน: จุดอ่อนที่สุด
รหัสผ่านยังคงเป็นกลไกยืนยันตัวตนที่ใช้กันมากที่สุด แม้จะเป็นสิ่งที่ถูกเจาะได้บ่อยที่สุดก็ตาม ผู้โจมตีขโมยรหัสผ่านผ่านฟิชชิง การยัดข้อมูลรับรอง (การนำข้อมูลรับรองที่รั่วไหลไปใช้ซ้ำ) การโจมตีแบบลองรหัสผ่านทั้งหมด และโปรแกรมดักจับการกดแป้นพิมพ์ แม้รหัสผ่านที่ “รัดกุม” ก็ให้การป้องกันได้จำกัด หากผู้โจมตีสามารถดักเก็บรหัสผ่านนั้นอย่างเงียบ ๆ ได้ นโยบายรหัสผ่าน กำหนดข้อกำหนดขั้นต่ำด้านความซับซ้อนและการเปลี่ยนรหัสผ่านเป็นระยะเพื่อลดความเสี่ยง แต่การปรับปรุงความปลอดภัยที่ส่งผลมากที่สุดคือการเพิ่มปัจจัยที่สอง เพราะการรู้รหัสผ่านเพียงอย่างเดียวไม่เพียงพอที่จะเข้าถึงระบบได้อีกต่อไป
ข้อกำหนดด้านความซับซ้อนของรหัสผ่าน
นโยบายความซับซ้อนของรหัสผ่านที่มีประสิทธิผลจะกำหนดมาตรฐานขั้นต่ำเพื่อให้ถอดรหัสผ่านได้ยากขึ้น ข้อกำหนดแบบดั้งเดิมได้แก่ ความยาวขั้นต่ำ (อย่างน้อย 12-16 อักขระ โดยความยาวสำคัญกว่าความซับซ้อน) การบังคับใช้ประเภทอักขระที่กำหนด (ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข สัญลักษณ์) การห้ามใช้รหัสผ่านทั่วไป (พจนานุกรมรหัสผ่าน) และการห้ามมีชื่อผู้ใช้หรือชื่อองค์กรอยู่ในรหัสผ่าน แนวทาง NIST SP 800-63B ซึ่งปรับปรุงในปี 2017 แนะนำให้ให้ความสำคัญกับความยาวมากกว่ากฎความซับซ้อนที่กำหนดขึ้นโดยพลการ และให้ตรวจสอบรหัสผ่านกับฐานข้อมูลข้อมูลรับรองที่รั่วไหล แทนการบังคับให้เปลี่ยนรหัสผ่านบ่อย ๆ
# Check if a password appears in known breach databases
# NIST recommends this approach vs forced periodic rotation
# Example: Using Have I Been Pwned (HIBP) API
# Hash the password first (k-anonymity model - sends only first 5 chars of SHA-1)
echo -n 'mysecretpassword' | sha1sum
# Returns: e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 -
# Send first 5 chars to HIBP API:
# GET https://api.pwnedpasswords.com/range/E5E9F
# Response includes suffix of any matching hashes
# If found: this password is compromised - reject itคำแนะนำรหัสผ่านสมัยใหม่ของ NIST SP 800-63B
NIST SP 800-63B (แนวทางอัตลักษณ์ดิจิทัล) ได้ปรับปรุงแนวปฏิบัติที่ดีด้านรหัสผ่านอย่างมีนัยสำคัญ การเปลี่ยนแปลงสำคัญ ได้แก่ ไม่บังคับให้เปลี่ยนรหัสผ่านเป็นระยะ เว้นแต่จะมีหลักฐานว่ารหัสผ่านถูกบุกรุก เพราะการบังคับเปลี่ยนทำให้ผู้ใช้มักเปลี่ยนเป็นรูปแบบที่คาดเดาได้ (Password1! → Password2!); ตรวจสอบกับฐานข้อมูลการรั่วไหล ตั้งแต่ตอนสร้างรหัสผ่าน และอนุญาตให้ผู้ใช้เห็นรหัสผ่านขณะพิมพ์; อนุญาตวลีรหัสผ่านที่ยาวได้ถึง 64 อักขระ; ยกเลิกกฎความซับซ้อนที่กำหนดขึ้นโดยพลการ ซึ่งทำให้เกิดรูปแบบที่คาดเดาได้; และ ใช้การล็อกบัญชีหรือการจำกัดความถี่ เพื่อป้องกันการโจมตีแบบลองรหัสผ่านทั้งหมด แทนการพึ่งพาความซับซ้อนเพียงอย่างเดียว
ปัจจัยยืนยันตัวตนสามประเภท
การยืนยันตัวตนอาศัยปัจจัยหนึ่งประเภทหรือมากกว่าจากทั้งหมดสามประเภท สิ่งที่คุณรู้ (ปัจจัยด้านความรู้): รหัสผ่าน, PIN, คำถามเพื่อความปลอดภัย, วลีรหัสผ่าน สิ่งที่คุณมี (ปัจจัยด้านการครอบครอง): อุปกรณ์ยืนยันตัวตน, สมาร์ตโฟนที่มีแอปยืนยันตัวตน, สมาร์ตการ์ด, กุญแจฮาร์ดแวร์ (YubiKey) สิ่งที่เป็นตัวคุณ (ปัจจัยด้านลักษณะเฉพาะตัว): ลายนิ้วมือ, การสแกนจอตา, การจดจำใบหน้า, รูปแบบเสียง, ข้อมูลชีวมิติด้านพฤติกรรม บางครั้งมีการเพิ่มประเภทที่สี่คือ สถานที่ที่คุณอยู่ (ตำแหน่งที่ตั้ง) การใช้ปัจจัยจากสองประเภทขึ้นไปเรียกว่า การยืนยันตัวตนแบบหลายปัจจัย (MFA) การใช้ปัจจัยสองอย่างจากประเภทเดียวกัน (เช่น รหัสผ่านสองชุด) ไม่ถือเป็น MFA
เหตุผลที่ MFA มีประสิทธิผลสูง
การยืนยันตัวตนแบบหลายปัจจัย (MFA) เป็นหนึ่งในมาตรการควบคุมความปลอดภัยที่ส่งผลมากที่สุด Microsoft ระบุจากการวิจัยว่า MFA สกัดกั้น การโจมตีเพื่อยึดบัญชี 99.9% เหตุผลคือฟิชชิงหรือการขโมยข้อมูลรับรองทำให้ผู้โจมตีได้ “สิ่งที่คุณรู้” (รหัสผ่าน) แต่โดยทั่วไปผู้โจมตีไม่สามารถได้ปัจจัยที่สองมาด้วย (รหัสใช้ครั้งเดียวจากสมาร์ตโฟนหรือกุญแจฮาร์ดแวร์) แม้รหัสผ่านของผู้ใช้จะถูกเผยแพร่ในฐานข้อมูลการรั่วไหล บัญชีก็ยังคงได้รับการปกป้องหากเปิดใช้ MFA องค์กรที่ใช้ MFA มักไม่ค่อยปรากฏในรายงานการรั่วไหลที่เกี่ยวข้องกับการยึดบัญชีโดยใช้ข้อมูลรับรอง
OTP ทาง SMS และจุดอ่อนของวิธีนี้
รหัสผ่านใช้ครั้งเดียวทาง SMS (OTP) เป็นวิธี MFA ที่ใช้งานแพร่หลายที่สุด โดยเป็นรหัส 6 หลักที่ส่งทางข้อความ วิธีนี้ดีกว่าไม่มี MFA แต่มีจุดอ่อนที่มีการบันทึกไว้แล้ว การโจมตีด้วยการสลับ SIM: ผู้โจมตีปลอมตัวเป็นเหยื่อกับผู้ให้บริการโทรศัพท์มือถือ แล้วโอนหมายเลขโทรศัพท์ไปยัง SIM ของตนเพื่อดักรับรหัส OTP ในอนาคต ช่องโหว่ของโพรโทคอล SS7: โพรโทคอลส่งสัญญาณของเครือข่ายโทรศัพท์มีข้อบกพร่องที่ทราบกันดี ซึ่งทำให้ดักรับ SMS ได้ ฟิชชิงแบบเรียลไทม์: พร็อกซีฟิชชิงที่ซับซ้อนสามารถส่งต่อรหัส OTP แบบเรียลไทม์และหลบเลี่ยงการป้องกันได้ NIST SP 800-63B จัดให้ SMS OTP อยู่ในสถานะ “ตัวตรวจสอบสิทธิ์แบบมีข้อจำกัด” โดยแนะนำให้ใช้แอปยืนยันตัวตนหรือโทเค็นฮาร์ดแวร์มากกว่า
TOTP: รหัสผ่านใช้ครั้งเดียวตามเวลา
TOTP (รหัสผ่านใช้ครั้งเดียวตามเวลา) ซึ่งเป็นมาตรฐานใน RFC 6238 จะสร้างรหัส 6 หลักจากความลับร่วมและเวลาปัจจุบัน แอปอย่าง Google Authenticator, Authy และ Microsoft Authenticator รองรับ TOTP รหัสจะเปลี่ยนทุก 30 วินาทีและใช้ได้กับการยืนยันตัวตนเพียงครั้งเดียว ต่างจาก SMS OTP ตรงที่ TOTP ไม่ส่งผ่านเครือข่ายโทรศัพท์ จึงไม่เสี่ยงต่อการสลับ SIM และการโจมตีผ่าน SS7 ความลับร่วมจะถูกแลกเปลี่ยนเพียงครั้งเดียว (ผ่านรหัส QR ระหว่างการตั้งค่า) และจัดเก็บไว้ในแอปยืนยันตัวตน ดังนั้นการสร้างรหัสจึงต้องเข้าถึงอุปกรณ์ที่ลงทะเบียนไว้ได้ทางกายภาพ
# TOTP algorithm (RFC 6238) conceptual implementation
import hmac, hashlib, time, struct, base64
def totp(secret_b32, digits=6, interval=30):
# Decode the base32 secret
secret = base64.b32decode(secret_b32, True)
# Time counter: number of 30-second intervals since epoch
counter = int(time.time()) // interval
# HMAC-SHA1 of counter with secret
msg = struct.pack('>Q', counter)
digest = hmac.new(secret, msg, hashlib.sha1).digest()
# Dynamic truncation to get 6 digits
offset = digest[-1] & 0xf
code = struct.unpack('>I', digest[offset:offset+4])[0] & 0x7fffffff
return str(code % (10**digits)).zfill(digits)FIDO2 และ WebAuthn: MFA ที่ต้านทานฟิชชิง
FIDO2 (Fast Identity Online 2) และการใช้งานบนเว็บอย่าง WebAuthn เป็นมาตรฐานการยืนยันตัวตนที่ต้านทานฟิชชิงได้ดีที่สุดในปัจจุบัน FIDO2 ใช้การเข้ารหัสด้วยกุญแจสาธารณะในระดับอุปกรณ์ โดยตัวตรวจสอบสิทธิ์ (กุญแจฮาร์ดแวร์อย่าง YubiKey หรือข้อมูลชีวมิติของอุปกรณ์อย่าง Windows Hello) จะจัดเก็บกุญแจส่วนตัวที่ไม่เคยออกจากอุปกรณ์ การยืนยันตัวตนจะผูกด้วยการเข้ารหัสกับต้นทางที่ระบุ (เว็บไซต์) จึงไม่เสี่ยงต่อฟิชชิง แม้ผู้ใช้จะถูกหลอกให้เข้าเว็บไซต์ปลอม การท้าทายเพื่อยืนยันตัวตนก็จะล้มเหลว เพราะต้นทางไม่ตรงกัน FIDO2 ถือเป็นมาตรฐานสูงสุดสำหรับการยืนยันตัวตนที่มีความปลอดภัยสูง
โทเค็นฮาร์ดแวร์: HOTP และสมาร์ตการ์ด
โทเค็นฮาร์ดแวร์ที่เป็นอุปกรณ์จริงมอบ “สิ่งที่คุณมี” โดยไม่ต้องพึ่งสมาร์ตโฟน HOTP (OTP ที่อิง HMAC) ซึ่งเป็นมาตรฐานใน RFC 4226 จะสร้างรหัสจากตัวนับและความลับร่วม โดยตัวนับจะเพิ่มขึ้นทุกครั้งที่กดปุ่ม ต่างจาก TOTP ตรงที่รหัส HOTP ไม่หมดอายุตามเวลา แต่ต้องใช้ตามลำดับ สมาร์ตการ์ด (เช่น บัตร PIV ที่เจ้าหน้าที่รัฐบาล US ใช้) จะจัดเก็บกุญแจส่วนตัวไว้ในฮาร์ดแวร์ที่ป้องกันการดัดแปลง และต้องใช้ PIN เพื่อปลดล็อก จึงผสาน “สิ่งที่คุณมี” (บัตร) เข้ากับ “สิ่งที่คุณรู้” (PIN) การยืนยันตัวตนด้วยสมาร์ตการ์ดเป็นมาตรฐานสำหรับการเข้าถึงสิทธิ์ระดับสูงในสภาพแวดล้อมที่มีความปลอดภัยสูง
ตัวจัดการรหัสผ่าน: แก้ปัญหาด้านมนุษย์
ตัวจัดการรหัสผ่านช่วยแก้แนวโน้มของมนุษย์ที่มักนำรหัสผ่านกลับมาใช้ซ้ำ โดยสร้างและจัดเก็บรหัสผ่านแบบสุ่มที่ไม่ซ้ำกันสำหรับทุกเว็บไซต์ รหัสผ่านหลักใช้ปลดล็อกคลังข้อมูลที่เข้ารหัสซึ่งเก็บข้อมูลรับรองทั้งหมด ตัวจัดการรหัสผ่านสำหรับองค์กร (1Password Teams, Bitwarden Business, CyberArk) เพิ่มความสามารถต่าง ๆ เช่น การบังคับใช้นโยบายจากส่วนกลาง บันทึกการตรวจสอบ การแบ่งปันอย่างปลอดภัย และการเข้าถึงฉุกเฉิน ทีมความปลอดภัยควรส่งเสริมหรือกำหนดให้ใช้ตัวจัดการรหัสผ่านอย่างจริงจัง เพราะเป็นมาตรการควบคุมความปลอดภัยที่พบได้ไม่บ่อยซึ่งช่วยปรับปรุงทั้งความปลอดภัย (มีรหัสผ่านไม่ซ้ำกันในทุกที่) และความสะดวกในการใช้งาน (ไม่ต้องจำรหัสผ่านหลายสิบชุด) เมื่อใช้ร่วมกับ MFA ตัวจัดการรหัสผ่านจะลดการยึดบัญชีโดยใช้ข้อมูลรับรองได้อย่างมาก
การล็อกบัญชีและการจำกัดความถี่
การล็อกบัญชีจะปิดใช้งานบัญชีหลังจากพยายามเข้าสู่ระบบไม่สำเร็จตามจำนวนที่กำหนด เพื่อป้องกันการโจมตีแบบลองรหัสผ่านทั้งหมด นโยบายทั่วไปจะล็อกบัญชีหลังจาก พยายามไม่สำเร็จ 3-10 ครั้ง โดยระยะเวลาล็อกอาจเป็นช่วงเวลาคงที่ (30 นาที) หรือกำหนดให้ผู้ดูแลระบบเป็นผู้ปลดล็อก การจำกัดความถี่เป็นทางเลือกที่ผ่อนปรนกว่า โดยแทนที่จะล็อกบัญชี ระบบจะเพิ่มระยะห่างระหว่างการพยายามเข้าสู่ระบบแต่ละครั้งอย่างต่อเนื่อง ทำให้การโจมตีแบบลองรหัสผ่านทั้งหมดใช้เวลาหลายปีแทนที่จะเป็นหลายนาที โดยไม่ส่งผลกระทบต่อประสบการณ์ผู้ใช้เหมือนการล็อกบัญชี แอปพลิเคชันเว็บควรใช้ทั้งสองวิธี ได้แก่ การจำกัดอัตราที่ระดับ API และการจำกัดความถี่ในระดับบัญชี เพื่อป้องกันการโจมตีข้อมูลรับรองแบบอัตโนมัติ
# Configure account lockout policy via Windows Group Policy
# Computer Configuration > Windows Settings > Security Settings
# > Account Policies > Account Lockout Policy
#
# Account lockout threshold: 5 invalid logon attempts
# Account lockout duration: 30 minutes
# Reset account lockout after: 30 minutes
# Linux PAM-based lockout (/etc/pam.d/common-auth)
# auth required pam_tally2.so deny=5 unlock_time=1800
# auth required pam_faillock.so preauth deny=5 unlock_time=1800ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด CompTIA Security+ (SY0-701) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า NIST SP 800-63B แนะนำให้ใช้วลีรหัสผ่านที่ยาวและตรวจสอบการรั่วไหล แทนนโยบายการเปลี่ยนรหัสผ่านที่ซับซ้อน; ปัจจัย MFA สามประเภทคือ รู้ มี และเป็น; แอป TOTP ปลอดภัยกว่า SMS OTP; FIDO2/WebAuthn ต้านทานฟิชชิงได้; และ การล็อกบัญชีช่วยป้องกันการโจมตีแบบลองรหัสผ่านทั้งหมด บทถัดไปเราจะสำรวจเรื่อง ข้อมูลชีวมิติและการยืนยันตัวตนด้วยโทเค็น
คำถามที่พบบ่อย
บทเรียน “นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย”
ทำความเข้าใจข้อกำหนดของรหัสผ่านที่รัดกุม ปัจจัย MFA ได้แก่ สิ่งที่คุณรู้ มี หรือเป็น และเหตุใดการใช้หลายปัจจัยร่วมกันจึงลดความเสี่ยงที่บัญชีจะถูกยึดครองได้อย่างมาก คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม
ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย
- ชีวมาตรและการยืนยันตัวตนด้วยโทเค็น
- รูปแบบการให้สิทธิ์: RBAC, MAC และ DAC
- อัตลักษณ์แบบสหพันธ์: SAML, OAuth และ OpenID Connect