0Pricing
Cloud & IT Cert Prep · บทเรียน

นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย

ทำความเข้าใจข้อกำหนดของรหัสผ่านที่รัดกุม ปัจจัย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. นโยบายรหัสผ่านและการยืนยันตัวตนหลายปัจจัย
  2. ชีวมาตรและการยืนยันตัวตนด้วยโทเค็น
  3. รูปแบบการให้สิทธิ์: RBAC, MAC และ DAC
  4. อัตลักษณ์แบบสหพันธ์: SAML, OAuth และ OpenID Connect
← กลับไปที่ Cloud & IT Cert Prep