01กุญแจดิจิทัลของเรา Why passwords matter
ตีหนึ่งคืนก่อนสอบไฟนอล มิ้นท์ นักศึกษาปีสอง ได้ข้อความจากเพื่อนว่า “แกโพสต์ขายบัตรคอนเสิร์ตราคาถูกจริงเหรอ” เธอไม่ได้โพสต์อะไรเลย แต่พอลองเข้า Instagram ตัวเอง รหัสผ่านใช้ไม่ได้แล้ว อีเมลที่ผูกไว้ก็ถูกเปลี่ยนเป็นของคนอื่น
เรื่องแบบนี้เกิดขึ้นทุกวัน และส่วนใหญ่ไม่ได้มาจากแฮกเกอร์อัจฉริยะที่นั่งเจาะระบบทั้งคืน มันเริ่มจากเรื่องธรรมดามาก ๆ เช่น มิ้นท์ใช้รหัสเดียวกันกับเว็บขายของมือสองที่เคยสมัครไว้ตั้งแต่ ม.ปลาย แล้วเว็บนั้นโดนเจาะ รหัสของเธอก็หลุดออกไปพร้อมกับของคนอื่นอีกเป็นหมื่น
ในโลกออนไลน์ รหัสผ่านทำหน้าที่เหมือนกุญแจบ้าน มันบอกระบบว่า “คนที่ยืนอยู่หน้าประตูนี้ คือเจ้าของบ้านตัวจริง” ปัญหาคือกุญแจชนิดนี้ก๊อปปี้ได้ไม่จำกัด ใครได้ไปก็เปิดได้เหมือนเรา โดยที่เราไม่รู้ตัวเลยด้วยซ้ำว่ามีคนแอบปั๊มกุญแจไปแล้ว
- ศัพท์น่ารู้: การยืนยันตัวตน (Authentication)
- ขั้นตอนที่ระบบใช้พิสูจน์ว่าเราเป็นใครจริง ๆ ก่อนยอมให้เข้า เช่น ใส่รหัสผ่าน สแกนนิ้ว หรือกรอกรหัสจากแอป ต่างจาก “การให้สิทธิ์” (Authorization) ที่ตัดสินว่า เมื่อเข้ามาแล้วทำอะไรได้บ้าง
วิธีพิสูจน์ตัวตนทั้งหมดในโลก แบ่งได้เป็นสามกลุ่มใหญ่ ๆ และเราจะเจอสามคำนี้ไปตลอดทั้งบท
- สิ่งที่เรารู้: รหัสผ่าน PIN คำตอบคำถามลับ
- สิ่งที่เรามี: มือถือที่รับรหัส OTP แอปสร้างรหัส กุญแจความปลอดภัยแบบเสียบ USB
- สิ่งที่เราเป็น: ลายนิ้วมือ ใบหน้า
รหัสผ่านอยู่ในกลุ่มแรก จุดอ่อนของมันคือ “ความรู้” ถูกขโมยได้โดยที่ของไม่หายไปจากเรา ต่างจากกุญแจจริงที่ถ้าโดนขโมย อย่างน้อยเราก็รู้ว่ากุญแจหาย ทั้งบทนี้จึงหมุนรอบคำถามเดียว คือ ทำอย่างไรให้กุญแจที่ก๊อปปี้ได้ ปลอดภัยพอ และจะเสริมด่านอื่นอย่างไรเผื่อวันที่มันหลุด
- ศัพท์น่ารู้: การยืนยันหลายปัจจัย (MFA) และยืนยันสองชั้น (2FA)
- การขอหลักฐานจากอย่างน้อยสองกลุ่มที่ต่างกัน เช่น รหัสผ่าน (สิ่งที่รู้) คู่กับรหัสจากมือถือ (สิ่งที่มี) ถ้าใช้สองชั้นพอดีมักเรียกว่า 2FA ส่วน MFA คือคำรวมที่หมายถึงสองชั้นขึ้นไป ในชีวิตประจำวันสองคำนี้ใช้แทนกันได้
02รหัสหลุดไปได้อย่างไร How passwords get stolen
ก่อนจะป้องกันได้ ต้องรู้ก่อนว่าโจรเข้าทางไหน รหัสผ่านไม่ได้หลุดทางเดียว แต่มีทางหลัก ๆ อยู่ห้าทาง บางทางเราคุมได้ บางทางเราคุมไม่ได้เลย ซึ่งก็เป็นเหตุผลว่าทำไมเราถึงต้องเตรียมรับมือ “วันที่มันหลุด” ไว้ด้วย
1. เว็บที่เราสมัครไว้โดนเจาะ (Data breach)
นี่คือทางที่เราคุมไม่ได้เลย เราอาจระวังตัวดีทุกอย่าง แต่ถ้าเว็บที่เราเคยสมัครเก็บข้อมูลไม่ดีแล้วโดนเจาะ ไฟล์รายชื่อผู้ใช้ทั้งก้อนก็หลุดออกไปพร้อมกัน ไฟล์พวกนี้มักถูกนำไปขายหรือแจกต่อในตลาดใต้ดิน และถูกรวมกับไฟล์จากเว็บอื่นจนกลายเป็นรายชื่อขนาดมหึมา
2. ใช้รหัสซ้ำ แล้วโดน “ไล่ลองทุกประตู” (Credential stuffing)
ทางที่หนึ่งจะน่ากลัวขึ้นสิบเท่าถ้าเราใช้รหัสซ้ำ เพราะคนร้ายไม่ได้สนใจแค่เว็บที่รั่ว เขาเอาคู่ “อีเมล + รหัส” ที่ได้มา ไปให้โปรแกรมลองล็อกอินเว็บดัง ๆ อื่นอัตโนมัติเป็นหมื่นเป็นแสนบัญชี บัญชีไหนใช้รหัสเดียวกันก็เปิดได้ทันที ไม่ต้องเดา ไม่ต้องเจาะอะไรเลย
นึกภาพกุญแจห้องเช่าตอนเราอยู่หอปีหนึ่ง ถ้าเราใช้กุญแจดอกเดียวกันกับบ้านที่ต่างจังหวัด ล็อกเกอร์ที่ฟิตเนส และตู้เก็บของที่คณะ วันที่มีคนได้กุญแจห้องหอไป เขาก็เปิดได้ทุกที่ที่เราไป กุญแจที่ไม่ซ้ำกันจึงเป็นเหมือนกำแพงกันไฟ ไฟไหม้ห้องหนึ่ง ไม่ลามไปห้องอื่น
FIG 01รั่วที่เดียว ประตูอื่นเปิดตาม ถ้าใช้รหัสซ้ำ
บันทึกเป็นภาพอ่านภาพนี้เป็นข้อความ
- เว็บเล็ก ๆ แห่งหนึ่งที่เราเคยสมัครโดนเจาะ ไฟล์อีเมลและรหัสผ่านหลุดออกไป
- คนร้ายรวมไฟล์นี้กับไฟล์จากที่อื่นเป็นรายชื่อคู่อีเมล–รหัส แล้วใช้โปรแกรมลองล็อกอินอัตโนมัติ
- Instagram ที่ใช้รหัสเดียวกัน: เปิดได้ทันที
- แอปช้อปปิ้งที่ใช้รหัสเดียวกัน: เปิดได้ และบัตรที่ผูกไว้เสี่ยงโดนใช้
- อีเมลมหาวิทยาลัยที่ใช้รหัสไม่ซ้ำ: ลองเท่าไรก็ไม่ผ่าน
- แอปธนาคารที่เปิดยืนยันสองชั้น: รหัสถูกก็ยังเข้าไม่ได้ เพราะติดด่านที่สอง
3. โดนเดา (Guessing)
ถ้ารหัสของเราคือวันเกิด ชื่อแฟน ชื่อแมว หรือ 12345678 คนร้ายแทบไม่ต้องใช้ความพยายาม การเดามีสองแบบที่ควรรู้จัก แบบแรกคือการเดาทีละคำจาก “รายการรหัสยอดนิยม” ซึ่งรวบรวมมาจากไฟล์รั่วจริงในอดีต (dictionary attack) แบบที่สองคือการไล่ลองทุกตัวอักษรที่เป็นไปได้ไปเรื่อย ๆ (brute force) แบบที่สองช้ามากถ้ารหัสยาว แต่เร็วน่ากลัวถ้ารหัสสั้น
อีกเรื่องที่ควรรู้คือ การเดาผ่านหน้าล็อกอินของเว็บนั้นช้า เพราะเว็บที่ดีจะหน่วงเวลาหรือล็อกบัญชีเมื่อใส่ผิดหลายครั้ง แต่ถ้าไฟล์รหัส (ที่แปลงแล้ว) หลุดออกไปถึงมือคนร้าย เขาจะเดาบนเครื่องตัวเองได้เป็นพันล้านครั้งโดยไม่มีใครห้าม ตรงนี้แหละที่ความยาวของรหัส และวิธีที่เว็บเก็บรหัส (หัวข้อ 05) เป็นตัวตัดสินว่าเราจะรอดไหม
4. หลอกให้เรากรอกเอง (Phishing)
ข้อความ “บัญชีของคุณจะถูกระงับ กรุณายืนยันตัวตน” พร้อมลิงก์ไปหน้าล็อกอินที่เหมือนของจริงทุกพิกเซล ต่อให้รหัสเรายาวแข็งแรงแค่ไหน ถ้าเราพิมพ์มันลงในเว็บปลอมเอง ความแข็งแรงก็ไม่มีความหมาย เรื่องนี้มีรายละเอียดเต็ม ๆ ในบท ฟิชชิง & กลลวงทางใจ
5. ถูกขโมยจากเครื่องหรือจากสายตา
มัลแวร์ขโมยข้อมูล (infostealer) แอบดูดรหัสที่เบราว์เซอร์จำไว้และคุกกี้การล็อกอินออกจากเครื่องที่ติดเชื้อ มักมาจากโปรแกรมเถื่อน ตัวโกงเกม หรือไฟล์ที่ดาวน์โหลดจากแหล่งแปลก ๆ ส่วนแบบบ้าน ๆ ที่สุดคือการแอบมองตอนเราพิมพ์ (shoulder surfing) ในห้องแล็บคอมของคณะ หรือการลืมล็อกเอาต์จากเครื่องสาธารณะในห้องสมุด
- ศัพท์น่ารู้: Credential
- ชุดข้อมูลที่ใช้พิสูจน์ตัวตน ส่วนใหญ่หมายถึงคู่ “ชื่อผู้ใช้ + รหัสผ่าน” คำว่า credential stuffing จึงแปลตรงตัวว่า “ยัดชุดล็อกอินที่ขโมยมา” เข้าไปในหลาย ๆ เว็บพร้อมกัน
แล้วเราทำอะไรได้ ทางที่ 1 เราห้ามไม่ได้ แต่ทางที่ 2 ซึ่งทำให้ความเสียหายลาม เราตัดได้ร้อยเปอร์เซ็นต์ด้วย รหัสที่ไม่ซ้ำกันในทุกบัญชี ทางที่ 3 ตัดได้ด้วยรหัสที่ยาวและสุ่ม ส่วนทางที่ 4 กับ 5 ต้องอาศัยด่านที่สองที่ดี ซึ่งเราจะไล่ดูทีละเรื่องต่อจากนี้
03รหัสที่ดีหน้าตาเป็นอย่างไร Strong passphrases
หลายคนโตมากับกฎว่า “ต้องมีตัวพิมพ์ใหญ่ พิมพ์เล็ก ตัวเลข สัญลักษณ์ และเปลี่ยนทุกสามเดือน” ผลที่ได้คือรหัสหน้าตาแบบ P@ssw0rd1 แล้วเดือนถัดไปก็กลายเป็น P@ssw0rd2 ซึ่งดูซับซ้อนในสายตาคน แต่โปรแกรมเดารหัสรู้จักทริกเปลี่ยน a เป็น @ หรือ o เป็น 0 มานานแล้ว รหัสแบบนี้จึงอยู่ในรายการที่โดนลองตั้งแต่ต้น ๆ
ความจริงที่นักความปลอดภัยพูดกันมาหลายปีคือ ความยาวสำคัญกว่าความซับซ้อน ทุกตัวอักษรที่เพิ่มขึ้น คือการคูณจำนวนแบบที่ต้องเดาเพิ่มเข้าไปอีกหลายสิบเท่า ลองดูภาพนี้ ซึ่งคำนวณจากจำนวนแบบที่เป็นไปได้ของรหัสแต่ละชนิด เมื่อตัวอักษรถูกสุ่มจริง ๆ
FIG 02ต้องเดากี่แบบ ถึงจะเจอรหัสของเรา
บันทึกเป็นภาพอ่านภาพนี้เป็นข้อความ
P@ssw0rd: ดูซับซ้อน แต่อยู่ในรายการรหัสยอดฮิต โดนลองต้น ๆ- วันเกิด 6 หลัก: ราว 3.7 หมื่นแบบ (ร้อยปี × 365 วัน)
- ตัวเลขสุ่ม 6 หลัก: หนึ่งล้านแบบ
- สุ่ม 8 ตัวจากตัวอักษรที่พิมพ์ได้ 95 ตัว: ราว 6.6 × 10¹⁵ แบบ
- สุ่ม 4 คำจากรายการ 7,776 คำ: ราว 3.7 × 10¹⁵ แบบ (ใกล้เคียงข้อบน แต่จำง่ายกว่ามาก)
- สุ่ม 5 คำ: ราว 2.8 × 10¹⁹ แบบ
- สุ่ม 16 ตัวด้วยโปรแกรมจัดการรหัสผ่าน: ราว 4.4 × 10³¹ แบบ
สังเกตแถวที่ห้า วลีสี่คำที่สุ่มจริงมีจำนวนแบบพอ ๆ กับรหัสมั่ว ๆ แปดตัวที่ไม่มีใครจำได้ แต่เราจำวลีได้สบายกว่ามาก พอเพิ่มเป็นห้าคำ ก็ทิ้งห่างไปไกล นี่คือเหตุผลที่คนในวงการแนะนำ วลีรหัสผ่าน สำหรับรหัสไม่กี่อันที่เราต้องจำเอง
- ศัพท์น่ารู้: วลีรหัสผ่าน (Passphrase)
- รหัสผ่านที่ประกอบจากหลายคำต่อกัน เช่นคำสุ่มสี่ห้าคำ ยาวกว่ารหัสทั่วไปมาก แต่จำง่ายเพราะสมองคนจำเป็นภาพหรือเรื่องราวได้ดีกว่าตัวอักษรมั่ว ๆ
สูตรตั้งวลีรหัสที่ใช้ได้จริง
ให้ “ความบังเอิญ” เลือกคำ ไม่ใช่เรา
คำที่คนเลือกเองมักเดาได้ เช่นเนื้อเพลงดังหรือคำคมยอดฮิต วิธีที่ดีคือให้โปรแกรมจัดการรหัสผ่านสุ่มวลีให้ หรือใช้วิธีทอยลูกเต๋าเลือกคำจากรายการคำ (diceware) ที่มีให้ดาวน์โหลด รายการมาตรฐานมี 7,776 คำ ซึ่งมาจากลูกเต๋าห้าลูก (6 ยกกำลัง 5)
ยาวอย่างน้อยสี่ห้าคำ
เช่น
ตะเกียบ-ดาวเทียม-ส้มตำ-ไม้กวาด-พายุ(ตัวอย่างนี้ห้ามใช้จริงนะ เพราะตอนนี้มันอยู่บนเว็บแล้ว) ถ้าเว็บไม่รับอักษรไทย ก็ใช้คำอังกฤษ หรือพิมพ์คำไทยด้วยแป้นภาษาอังกฤษได้ไม่ใส่ข้อมูลส่วนตัว
ชื่อเล่น วันเกิด เบอร์โทร รหัสนักศึกษา ทะเบียนรถ ชื่อสัตว์เลี้ยง ทั้งหมดนี้หาได้จากโปรไฟล์โซเชียลของเรา คนร้ายที่ตั้งใจเล็งเราจะลองพวกนี้ก่อนเสมอ
อย่าแค่เปลี่ยนเลขท้าย
เปลี่ยนจาก
mint2547!เป็นmint2548!ไม่ได้ช่วยอะไร โปรแกรมเดารหัสลองการเปลี่ยนเลขท้ายเป็นอย่างแรก ๆ ถ้ารหัสอันเก่ารั่ว ให้เปลี่ยนเป็นวลีใหม่ทั้งหมด
ฝั่งผู้ออกมาตรฐานเองก็เปลี่ยนแนวคิดไปแล้ว แนวทางการยืนยันตัวตนดิจิทัลของสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐฯ ฉบับปรับปรุงล่าสุด (NIST SP 800-63B Revision 4 ออกเมื่อปี 2025) ระบุว่า ถ้ารหัสผ่านเป็นด่านเดียว ระบบควรบังคับความยาวขั้นต่ำ 15 ตัว ควรรับรหัสยาวได้อย่างน้อย 64 ตัวและรับช่องว่างได้ ไม่ควรบังคับสูตร “ต้องมีสัญลักษณ์” ไม่ควรบังคับเปลี่ยนรหัสตามรอบเวลา (ให้เปลี่ยนเมื่อมีหลักฐานว่ารั่ว) และควรเช็กรหัสใหม่กับรายการรหัสต้องห้ามที่เคยรั่วหรือเดาง่าย
แต่ถึงจะตั้งวลีเก่งแค่ไหน ไม่มีใครจำวลีไม่ซ้ำกันห้าสิบอันสำหรับห้าสิบบัญชีได้ ทางออกจึงไม่ใช่ “ฝึกความจำ” แต่คือให้เครื่องจำแทน
04ให้เครื่องจำแทน: โปรแกรมจัดการรหัสผ่าน Password managers
โปรแกรมจัดการรหัสผ่าน (password manager) คือตู้เซฟดิจิทัลที่เก็บรหัสของทุกบัญชีไว้ในที่เดียว ล็อกด้วย รหัสหลัก (master password) อันเดียวที่เราต้องจำ ที่เหลือมันสุ่มรหัสยาว ๆ ไม่ซ้ำกันให้ทุกเว็บ จำไว้ให้ และเติมลงช่องล็อกอินให้อัตโนมัติ
เทียบกับชีวิตจริงก็เหมือนพวงกุญแจที่ฝากไว้กับ รปภ.คอนโดที่ไว้ใจได้ ซึ่งจะยื่นกุญแจให้เฉพาะเมื่อเห็นบัตรของเรา และยื่นเฉพาะกุญแจของห้องที่เรายืนอยู่หน้าประตูจริง ๆ เท่านั้น ข้อหลังนี้สำคัญกว่าที่คิด
FIG 03ข้างในโปรแกรมจัดการรหัสผ่านทำงานอย่างไร
บันทึกเป็นภาพ.example ที่สงวนไว้สำหรับตัวอย่าง จุดสำคัญคือ ตู้เติมรหัสตามชื่อโดเมนที่ตรงกันเท่านั้น หน้าเว็บปลอมที่เหมือนเป๊ะแต่ชื่อต่าง จึงไม่ได้รหัสไปอ่านภาพนี้เป็นข้อความ
- รหัสหลักอยู่ในหัวเรา ใช้ปลดล็อกตู้บนเครื่องของเราเอง
- ตู้เซฟเข้ารหัสเก็บรหัสยาวสุ่มไม่ซ้ำกันของทุกบัญชี
- ตู้ซิงก์ข้ามอุปกรณ์ ผู้ให้บริการที่ออกแบบดีเห็นแค่ข้อมูลที่เข้ารหัสแล้ว
- เวลาล็อกอิน ตู้ดูชื่อเว็บก่อน ถ้าเป็นเว็บจริงก็เติมรหัสให้ ถ้าชื่อโดเมนไม่ตรงก็ไม่ยอมเติม
ประโยชน์ข้อสุดท้ายในภาพเป็นของแถมที่หลายคนไม่รู้ สมองคนดูหน้าเว็บแล้วโดนหลอกได้ แต่โปรแกรมดูชื่อโดเมนแบบตัวต่อตัว ไม่สนว่าโลโก้สวยแค่ไหน ถ้าวันไหนตู้ไม่ยอมเติมรหัสให้ในเว็บที่ปกติเติมได้ ให้หยุดแล้วดูชื่อเว็บให้ดี นั่นอาจเป็นสัญญาณเตือนฟิชชิงที่ดีที่สุดที่เรามี
เลือกแบบไหนดี
มีให้เลือกสองกลุ่มใหญ่ กลุ่มแรกคือตัวที่ติดมากับเบราว์เซอร์หรือมือถือ เช่น ตัวจัดการรหัสผ่านของ Google ที่อยู่ใน Chrome และ Android หรือแอปรหัสผ่านของ Apple ใน iPhone และ Mac ข้อดีคือฟรีและพร้อมใช้ทันที กลุ่มที่สองคือแอปเฉพาะทางที่ใช้ข้ามระบบได้ เช่น Bitwarden หรือ 1Password เหมาะกับคนที่ใช้ทั้ง Windows, iPhone และ Android ปน ๆ กัน
สำหรับนักเรียนนักศึกษา จุดเริ่มต้นที่ดีคือใช้ตัวที่ติดมากับเครื่องก่อน แต่ต้องทำสองอย่างให้ครบ คือ ล็อกบัญชีหลักที่ผูกกับตู้ (บัญชี Google หรือ Apple ID) ด้วยยืนยันสองชั้น และตั้งรหัสล็อกหน้าจอมือถือให้ดี เพราะตอนนี้มือถือคือกุญแจของตู้เซฟทั้งใบ
ความเชื่อ
“เก็บรหัสทุกอันไว้ในโปรแกรมเดียว ก็เหมือนเอาไข่ทุกฟองใส่ตะกร้าใบเดียว ถ้าโดนเจาะทีเดียวพังหมด จำเองปลอดภัยกว่า”
ความจริง
ทางเลือกจริงของคนส่วนใหญ่ไม่ใช่ “ตู้เซฟ vs ความจำระดับเทพ” แต่คือ “ตู้เซฟ vs รหัสเดียวกันทุกเว็บ” ซึ่งแบบหลังคือไข่ทุกฟองที่วางไว้นอกตะกร้ากลางถนน ตู้ที่ล็อกด้วยรหัสหลักดี ๆ และยืนยันสองชั้น เสี่ยงน้อยกว่ารหัสซ้ำหลายเท่า ส่วนรหัสหลักและรหัสปลดล็อกมือถือ จะจดใส่กระดาษเก็บไว้ในที่มิดชิดที่บ้านก็ยังได้ เพราะคนร้ายออนไลน์เอื้อมมือมาหยิบกระดาษในลิ้นชักเราไม่ถึง
05เว็บควรเก็บรหัสเราอย่างไร How sites should store passwords
หัวข้อนี้มองจากอีกฝั่งของประตู คือฝั่งคนทำเว็บ ถ้าวันหนึ่งน้อง ๆ ได้เขียนระบบล็อกอินให้ชมรมหรือโปรเจกต์จบ นี่คือเรื่องที่ห้ามพลาด และต่อให้ไม่ได้เขียนโค้ด การเข้าใจเรื่องนี้ก็ช่วยให้อ่านข่าวรหัสรั่วออกว่า “รั่วแบบไหน น่ากลัวแค่ไหน”
หลักข้อแรกคือ เว็บไม่ควรรู้รหัสผ่านของเราเลย ฟังดูแปลก ถ้าไม่รู้แล้วจะตรวจได้อย่างไรว่าเราพิมพ์ถูก คำตอบคือเว็บเก็บแค่ “ลายนิ้วมือ” ของรหัส แล้วเวลาเราล็อกอิน ก็เอารหัสที่พิมพ์มาสร้างลายนิ้วมือใหม่ เทียบว่าตรงกับที่เก็บไว้ไหม
- ศัพท์น่ารู้: การแฮช (Hashing)
- การแปลงข้อมูลเป็นสตริงความยาวคงที่ด้วยสูตรทางคณิตศาสตร์ทางเดียว ใส่ข้อมูลเดิมได้ผลเดิมทุกครั้ง แต่ย้อนจากผลกลับไปหาข้อมูลต้นทางตรง ๆ ไม่ได้ เหมือนบดกาแฟเป็นผงแล้ว ประกอบกลับเป็นเมล็ดไม่ได้
แต่แฮชอย่างเดียวยังไม่พอ ถ้าใช้สูตรแฮชที่คำนวณเร็วมาก คนร้ายที่ได้ไฟล์ไปก็ลองแฮชคำในรายการรหัสยอดฮิตทีละคำแล้วเทียบได้เร็วมหาศาล และถ้าผู้ใช้สองคนใช้ 123456 เหมือนกัน ก็จะได้แฮชหน้าตาเหมือนกันเป๊ะ เดาออกหนึ่งคน ได้ทุกคนที่ใช้รหัสนั้น ทางแก้มีสองชั้น คือ ใส่ ซอลต์ และใช้สูตรแฮชที่ ตั้งใจให้ช้า
- ศัพท์น่ารู้: ซอลต์ (Salt)
- ค่าสุ่มที่สร้างใหม่สำหรับผู้ใช้แต่ละคน แล้วผสมเข้ากับรหัสก่อนแฮช ทำให้รหัสเหมือนกันได้ผลต่างกัน คนร้ายต้องเดาแยกทีละบัญชี ซอลต์ไม่ใช่ความลับ เก็บคู่กับแฮชได้เลย หน้าที่ของมันคือทำลายทางลัด ไม่ใช่ซ่อนตัว
FIG 04สามวิธีเก็บรหัส เมื่อไฟล์ฐานข้อมูลหลุดออกไป
บันทึกเป็นภาพอ่านภาพนี้เป็นข้อความ
- A · เก็บรหัสตรง ๆ: ไฟล์หลุดเมื่อไร คนร้ายอ่านรหัสทุกคนได้ทันที
- B · แฮชเร็วไม่มีซอลต์: อ่านตรง ๆ ไม่ได้ แต่รหัสเหมือนกันได้แฮชเหมือนกัน และเดาได้เร็วมาก
- C · ซอลต์ + แฮชแบบช้า: รหัสเหมือนกันก็ได้ผลต่างกัน และการเดาแต่ละครั้งกินแรงเครื่องมาก
ยิ่งไปทางขวา คนร้ายยิ่งเสียเวลาเดานานจนไม่คุ้ม
สูตรแฮชแบบช้าที่ออกแบบมาเพื่อรหัสผ่านโดยเฉพาะ คู่มือ Password Storage Cheat Sheet ของ OWASP (ชุมชนด้านความปลอดภัยเว็บที่คนทำเว็บทั่วโลกใช้อ้างอิง) แนะนำ Argon2id เป็นอันดับแรก รองลงมาคือ scrypt และ bcrypt ส่วน PBKDF2 ใช้ในระบบที่ต้องผ่านมาตรฐาน FIPS ทั้งหมดนี้มีพารามิเตอร์ปรับให้ “ช้าและกินหน่วยความจำ” ได้ คนล็อกอินจริงรอเศษเสี้ยววินาทีแทบไม่รู้สึก แต่คนร้ายที่ต้องเดาเป็นพันล้านครั้ง จะรู้สึกเต็ม ๆ
# ตอนสมัคร db.save(user, password) # เก็บรหัสจริงลงฐานข้อมูล # ตอนล็อกอิน if db.get(user) == password: allow()
# ตอนสมัคร: ไลบรารีสร้างซอลต์สุ่มให้ และฝังไว้ในผลลัพธ์ record = password_hash(password, "argon2id") db.save(user, record) # ตอนล็อกอิน: แฮชรหัสที่พิมพ์มา แล้วเทียบกับที่เก็บไว้ if password_verify(password, db.get(user)): allow()
โค้ดข้างบนเป็นรหัสเทียม (pseudocode) ให้เห็นแนวคิด ภาษาโปรแกรมส่วนใหญ่มีไลบรารีแบบนี้ให้ใช้อยู่แล้ว กฎเหล็กของคนทำเว็บคือ อย่าเขียนสูตรแฮชเอง และอย่าใช้แฮชสำหรับงานทั่วไปอย่าง MD5 หรือ SHA-1 มาเก็บรหัสผ่าน
สำหรับคนใช้งานทั่วไป มีสัญญาณง่าย ๆ ให้จับผิดเว็บที่เก็บรหัสไม่ดี ถ้ากด “ลืมรหัสผ่าน” แล้วเว็บส่ง รหัสเดิมของเรา กลับมาทางอีเมล แปลว่าเว็บนั้นเก็บรหัสแบบอ่านออกได้ ให้เปลี่ยนรหัสเป็นแบบที่ไม่ใช้ที่อื่นแน่ ๆ และคิดให้ดีก่อนผูกบัตรหรือข้อมูลสำคัญไว้ เว็บที่ดีจะส่งแค่ลิงก์ให้ตั้งรหัสใหม่ ไม่มีวันส่งรหัสเดิมได้ เพราะมันไม่รู้รหัสเดิมเลย
06ยืนยันสองชั้นแต่ละแบบ กันอะไรได้บ้าง Comparing 2FA methods
ถ้ารหัสผ่านคือกุญแจบ้าน ยืนยันสองชั้นคือ รปภ.หน้าหมู่บ้านที่ขอดูบัตรผ่านอีกใบ คนร้ายที่ปั๊มกุญแจไปได้ ยังต้องผ่านด่านนี้ให้ได้ด้วย นี่คือสิ่งที่คุ้มที่สุดที่เราทำได้ในเวลาไม่ถึงห้านาที แต่ รปภ.แต่ละแบบก็เข้มไม่เท่ากัน มาดูทีละแบบ
OTP ทาง SMS
รหัสตัวเลขใช้ครั้งเดียว (One-Time Password) ส่งมาทางข้อความ คนไทยคุ้นที่สุดเพราะธนาคารและแอปช้อปปิ้งใช้กันทั่ว ดีกว่าไม่มีอะไรเลยมาก เพราะกันการไล่ลองรหัสที่รั่วได้เกือบทั้งหมด แต่มีจุดอ่อนสองข้อ ข้อแรก คนร้ายอาจหลอกค่ายมือถือให้ออกซิมใหม่ของเบอร์เรา (SIM swap) แล้ว SMS ก็จะไปเข้าเครื่องเขาแทน ข้อสอง เว็บปลอมที่ทำงานแบบเรียลไทม์ ขอทั้งรหัสผ่านและ OTP จากเรา แล้วส่งต่อไปเว็บจริงทันทีก่อนรหัสหมดอายุ
แอปสร้างรหัส (Authenticator app)
แอปอย่าง Google Authenticator หรือ Microsoft Authenticator สร้างรหัสหกหลักใหม่ทุก ๆ 30 วินาที จากความลับที่แชร์กันไว้ตอนสแกน QR ครั้งแรก รหัสเกิดในเครื่องเราเอง ไม่ต้องส่งผ่านเครือข่ายมือถือ จึงไม่กลัว SIM swap แต่ถ้าเราพิมพ์รหัสหกหลักนั้นลงในเว็บปลอมเอง ก็ยังโดนส่งต่อได้เหมือน SMS
- ศัพท์น่ารู้: TOTP (Time-based One-Time Password)
- รหัสใช้ครั้งเดียวที่คำนวณจากเวลาปัจจุบันกับความลับที่เครื่องเราและเซิร์ฟเวอร์รู้ร่วมกัน ทั้งสองฝั่งคำนวณแยกกันแล้วได้เลขเดียวกัน โดยไม่ต้องคุยกัน นี่คือเหตุผลที่แอปสร้างรหัสใช้ได้แม้ไม่มีเน็ต
แจ้งเตือนให้กดอนุมัติ (Push) และกับดัก “กดรัว ๆ”
แทนที่จะพิมพ์รหัส มือถือเด้งถามว่า “คุณกำลังล็อกอินอยู่ใช่ไหม” แล้วเรากดอนุมัติ สะดวกมาก แต่ความสะดวกนี้แหละที่เป็นช่องโหว่ทางใจ คนร้ายที่ได้รหัสผ่านไปแล้วจะกดล็อกอินซ้ำ ๆ ให้มือถือเราเด้งไม่หยุดตอนดึก หวังว่าเราจะรำคาญหรือง่วงจนเผลอกด “อนุมัติ” วิธีนี้เรียกว่า MFA fatigue หรือ push bombing
หลายระบบจึงเปลี่ยนมาใช้ การจับคู่ตัวเลข (number matching) คือหน้าจอที่กำลังล็อกอินจะโชว์ตัวเลขสองหลัก แล้วเราต้องพิมพ์เลขนั้นในแอปให้ตรง คนที่ไม่ได้นั่งอยู่หน้าจอนั้นจริง ๆ ย่อมไม่รู้เลข การกดผ่าน ๆ ด้วยความรำคาญจึงทำไม่ได้
กุญแจความปลอดภัย (Security key)
อุปกรณ์เล็ก ๆ ขนาดพวงกุญแจ เสียบ USB หรือแตะ NFC กับมือถือ ข้างในเก็บกุญแจลับที่ไม่มีวันออกมาจากตัวอุปกรณ์ และที่สำคัญที่สุด มันตรวจชื่อเว็บก่อนตอบทุกครั้ง ถ้าเป็นเว็บปลอม มันก็ไม่ตอบ จึงเป็นวิธีที่กันฟิชชิงได้จริง (phishing-resistant) ข้อเสียคือต้องซื้อ และควรมีสำรองอย่างน้อยสองอัน เผื่อหาย
FIG 05ยืนยันสองชั้นสี่แบบ เจอภัยสี่แบบ
บันทึกเป็นภาพอ่านภาพนี้เป็นข้อความ
- OTP ทาง SMS: กันรหัสรั่วได้ · กันเว็บปลอมไม่ได้ · กันสลับซิมไม่ได้ · ไม่เกี่ยวกับการส่งคำขอรัว
- แอปสร้างรหัส: กันรหัสรั่วได้ · กันเว็บปลอมไม่ได้ · กันสลับซิมได้ · ไม่เกี่ยวกับการส่งคำขอรัว
- Push กดอนุมัติ: กันรหัสรั่วได้ · กันเว็บปลอมไม่ได้ · กันสลับซิมได้ · กันการกดรัวได้บางส่วนเมื่อมีการจับคู่ตัวเลข
- กุญแจความปลอดภัย / พาสคีย์: กันได้ทั้งสี่แบบ
แล้วเราทำอะไรได้ เรียงลำดับความสำคัญแบบนี้ เปิดยืนยันสองชั้นในบัญชีอีเมลหลักก่อน เพราะอีเมลคือกุญแจผีที่ใช้รีเซ็ตทุกบัญชีอื่น ตามด้วยบัญชีที่ผูกเงิน และโซเชียลที่ใช้คุยกับคนอื่น ถ้าเลือกได้ ให้ใช้พาสคีย์หรือแอปสร้างรหัสแทน SMS และจำกฎทองข้อเดียวไว้ให้ขึ้นใจ ถ้ามีคำขอให้อนุมัติ หรือมี OTP เด้งมา ทั้งที่เราไม่ได้กำลังล็อกอิน ห้ามกดและห้ามบอกรหัสใคร แปลว่ามีคนรู้รหัสผ่านของเราแล้ว ให้เปลี่ยนรหัสทันที
07พาสคีย์: ล็อกอินโดยไม่ต้องมีรหัส Passkeys, simply
ทุกปัญหาที่เล่ามาตั้งแต่ต้น มีรากเดียวกัน คือรหัสผ่านเป็น “ความลับที่ต้องส่งออกไป” เราพิมพ์ส่งให้เว็บทุกครั้ง เว็บก็ต้องเก็บอะไรบางอย่างไว้เทียบ ทั้งสองจุดจึงรั่วได้ พาสคีย์ (Passkey) แก้ที่รากนี้ เพราะความลับไม่เคยออกจากเครื่องของเราเลย
นึกถึงตราประทับประจำตัวที่ไม่มีใครเลียนแบบได้ กับกุญแจตรวจตราที่ใครถือก็ได้ เวลาเราสมัครพาสคีย์ เครื่องจะสร้างกุญแจขึ้นมาเป็นคู่ กุญแจลับ (private key) เก็บไว้ในเครื่องเรา ส่วน กุญแจสาธารณะ (public key) ส่งให้เว็บเก็บไว้ ตอนล็อกอิน เว็บส่งโจทย์สุ่มมาให้ เครื่องเราประทับตราด้วยกุญแจลับ แล้วเว็บใช้กุญแจสาธารณะตรวจว่าตราจริงไหม ตราประทับตรวจได้ แต่ปลอมไม่ได้
- ศัพท์น่ารู้: คู่กุญแจ (Key pair) และลายเซ็นดิจิทัล
- กุญแจสองดอกที่สร้างมาคู่กันทางคณิตศาสตร์ ดอกลับใช้ “เซ็น” ข้อมูล ดอกสาธารณะใช้ “ตรวจ” ลายเซ็นนั้น รู้ดอกสาธารณะแล้วก็ย้อนไปหาดอกลับไม่ได้ เว็บจึงเก็บดอกสาธารณะไว้ได้โดยไม่ต้องกลัวรั่ว เพราะต่อให้รั่วไปก็ใช้ล็อกอินแทนเราไม่ได้
FIG 06พาสคีย์คุยกับเว็บจริง และเมินเว็บปลอม
บันทึกเป็นภาพอ่านภาพนี้เป็นข้อความ
- ตอนสร้างพาสคีย์: เครื่องสร้างกุญแจคู่ใหม่ เก็บกุญแจลับไว้ในเครื่อง และผูกกับชื่อเว็บ
- เครื่องส่งให้เว็บจริงแค่กุญแจสาธารณะ
- ตอนล็อกอินครั้งต่อไป: เว็บจริงส่งโจทย์สุ่มมาให้เซ็น
- เราสแกนนิ้ว หน้า หรือใส่ PIN ของเครื่อง เพื่อปลดล็อกกุญแจลับ
- เครื่องส่งลายเซ็นของโจทย์กลับไป
- เว็บจริงตรวจด้วยกุญแจสาธารณะ ผ่าน
- ถ้าเจอเว็บปลอมหน้าตาเหมือนกัน: เว็บปลอมหลอกขอให้ล็อกอิน
- เครื่องไม่มีพาสคีย์ของชื่อเว็บนั้น จึงไม่ส่งอะไรออกไปเลย
จุดเด็ดของพาสคีย์คือขั้นสุดท้ายในภาพ พาสคีย์ทุกอันผูกกับชื่อเว็บที่สร้างมันขึ้นมา เบราว์เซอร์และระบบปฏิบัติการเป็นคนตรวจชื่อเว็บให้ ไม่ใช่สายตาเรา ต่อให้เว็บปลอมทำมาเนียนแค่ไหน มันก็ขอลายเซ็นที่ใช้กับเว็บจริงไม่ได้ ไม่มีรหัสให้พิมพ์ผิดที่ ไม่มี OTP ให้โดนส่งต่อ และถ้าเว็บโดนเจาะ คนร้ายก็ได้แค่กุญแจสาธารณะที่เอาไปใช้ล็อกอินไม่ได้
ในทางปฏิบัติ บริการใหญ่ ๆ อย่าง Google, Apple และ Microsoft รองรับพาสคีย์แล้ว เวลาเว็บหรือแอปถามว่า “สร้างพาสคีย์ไหม” ให้กดสร้างได้เลย พาสคีย์ส่วนใหญ่จะซิงก์ผ่านตัวจัดการรหัสผ่านของเรา (เช่นบัญชี Google หรือ iCloud) ทำให้มือถือหายแล้วก็ยังกู้กลับมาบนเครื่องใหม่ได้ เวลาจะล็อกอินบนคอมเครื่องอื่น เช่นคอมในห้องสมุด ก็ใช้มือถือสแกน QR ที่ขึ้นบนจอแล้วยืนยันบนมือถือแทนได้
สิ่งที่ต้องระวังมีข้อเดียว พาสคีย์ปลอดภัยเท่ากับบัญชีที่เก็บมันและล็อกหน้าจอของเครื่อง อย่าให้ใครรู้ PIN ปลดล็อกมือถือ และอย่าเพิ่มลายนิ้วมือของคนอื่น (แม้แต่แฟน) ลงในเครื่องที่เก็บพาสคีย์ เพราะใครปลดล็อกเครื่องได้ ก็ใช้พาสคีย์ของเราได้
08ประตูหลัง: การกู้บัญชี Account recovery is the weak point
สมมติว่าเราติดตั้งประตูหน้าบ้านเป็นเหล็กกล้า ใส่กุญแจสามชั้น แต่ซ่อนกุญแจสำรองไว้ใต้กระถางต้นไม้หน้าบ้าน คนร้ายที่ฉลาดจะไม่เสียเวลากับประตูเลย เขาจะไปพลิกกระถาง ระบบ “ลืมรหัสผ่าน” ก็คือกระถางใบนั้น มันถูกสร้างมาให้คนที่เข้าบัญชีไม่ได้กลับเข้าได้ ซึ่งแปลว่าถ้าตั้งไว้ไม่ดี คนร้ายก็ใช้มันได้เหมือนกัน
ประตูหลังที่คนร้ายชอบมีอยู่สี่แบบ
- คำถามลับ เช่น “โรงเรียนประถมของคุณชื่ออะไร” หรือ “ชื่อสัตว์เลี้ยงตัวแรก” คำตอบพวกนี้หลายคนเคยโพสต์ไว้เองในเฟซบุ๊ก หรือคนรู้จักก็เดาได้
- อีเมลกู้คืนที่ถูกทิ้งร้าง อีเมลสมัยมัธยมต้นที่จำรหัสไม่ได้แล้ว และไม่ได้เปิดยืนยันสองชั้น ถ้าใครเข้าอีเมลนั้นได้ ก็รีเซ็ตทุกบัญชีที่ผูกไว้ได้
- เบอร์มือถือ ถ้าโดนสลับซิม หรือเปลี่ยนเบอร์ไปแล้วแต่ไม่ได้อัปเดต SMS รีเซ็ตรหัสก็จะไปตกที่คนอื่น
- “แอดมิน” หรือ “ทีมงาน” ปลอม ทักมาบอกว่าบัญชีเราละเมิดกฎ ให้ส่งรหัสที่เพิ่งได้รับทาง SMS เพื่อยืนยัน รหัสนั้นแท้จริงคือรหัสรีเซ็ตบัญชีของเราที่คนร้ายกดขอไว้
ที่หนักกว่านั้น คือหลายคนเปิดยืนยันสองชั้นไว้อย่างดี แต่ทิ้งประตูหลังเหล่านี้เปิดอ้า ระบบจะแข็งแรงได้เท่ากับทางเข้าที่อ่อนที่สุดเสมอ ใช้เวลาสักห้านาทีปิดประตูหลังตามนี้
ตรวจอีเมลและเบอร์กู้คืน
เข้าหน้าความปลอดภัยของบัญชีสำคัญ ดูว่าอีเมลกู้คืนและเบอร์โทรยังเป็นของเราและใช้งานอยู่ ลบของเก่าที่ไม่ได้ใช้แล้วออก
ตอบคำถามลับแบบ “โกหกอย่างมีระบบ”
ถ้าเว็บบังคับให้ตั้งคำถามลับ อย่าตอบความจริง ให้ใช้วลีสุ่มเป็นคำตอบ แล้วเก็บคำตอบนั้นไว้ในโปรแกรมจัดการรหัสผ่านเหมือนรหัสผ่านอีกอันหนึ่ง
พิมพ์รหัสสำรอง (backup codes) เก็บไว้
บัญชีที่เปิดยืนยันสองชั้นมักให้รหัสสำรองชุดหนึ่ง ใช้ได้ครั้งละอันตอนมือถือหาย พิมพ์หรือจดเก็บไว้ที่บ้านในที่มิดชิด ไม่ใช่ถ่ายรูปเก็บไว้ในแกลเลอรี
ล็อกซิมกับค่ายมือถือ
ตั้ง PIN ล็อกซิมในเครื่อง และสอบถามค่ายมือถือว่ามีบริการป้องกันการเปลี่ยนซิมหรือการโอนเบอร์โดยไม่ได้รับอนุญาตหรือไม่
ไม่บอก OTP หรือรหัสรีเซ็ตกับใคร
ไม่ว่าเขาจะอ้างเป็นแอดมินเพจ ทีมงานแอป เจ้าหน้าที่ธนาคาร หรือเพื่อนสนิทที่ “ส่งรหัสมาผิดเบอร์” ไม่มีบริการไหนที่ถูกต้องต้องขอรหัสพวกนี้จากเรา
09รู้ว่ารหัสรั่ว ทำอะไรก่อน After a leak
วันหนึ่งเราอาจได้อีเมลแจ้งว่า “ข้อมูลของคุณอาจได้รับผลกระทบจากเหตุข้อมูลรั่วไหล” หรือเบราว์เซอร์เด้งเตือนว่ารหัสที่บันทึกไว้ปรากฏในข้อมูลรั่ว อย่าตกใจ และอย่ามองข้าม คนที่รับมือเร็วมักไม่เสียหายอะไรเลย
ถ้าอยากรู้ว่าอีเมลของเราเคยอยู่ในไฟล์ที่รั่วมาแล้วบ้างหรือไม่ มีบริการตรวจสอบที่น่าเชื่อถืออย่าง Have I Been Pwned ซึ่งรวบรวมข้อมูลจากเหตุรั่วไหลที่เปิดเผยต่อสาธารณะ ใส่อีเมลแล้วมันจะบอกว่าเคยหลุดจากเว็บไหน ตัวจัดการรหัสผ่านในเบราว์เซอร์และมือถือหลายตัวก็มีระบบเตือนรหัสที่เคยรั่วหรือใช้ซ้ำในตัว ลองเข้าไปดูหน้าตรวจรหัสผ่านของตัวที่เราใช้
บางคนอาจสงสัยว่า การส่งรหัสไปให้เว็บตรวจว่าเคยรั่วไหม ไม่ใช่การเอารหัสไปเสี่ยงเองหรือ คำถามดีมาก บริการตรวจรหัสที่ออกแบบดีอย่าง Pwned Passwords ใช้เทคนิคที่เรียกว่า k-anonymity คือเครื่องเราแฮชรหัสก่อน แล้วส่งไปแค่ห้าตัวแรกของแฮช เซิร์ฟเวอร์ตอบกลับมาเป็นรายการแฮชทั้งหมดที่ขึ้นต้นแบบนั้น แล้วเครื่องเราเทียบเอง เซิร์ฟเวอร์จึงไม่เคยรู้ว่ารหัสจริงของเราคืออะไร แต่หลักง่าย ๆ สำหรับคนทั่วไปคือ อย่าพิมพ์รหัสจริงลงในเว็บตรวจรหัสที่เราไม่รู้จัก เพราะเว็บแบบนั้นอาจเป็นกับดักเก็บรหัสเสียเอง
เปลี่ยนรหัสของบัญชีที่รั่ว
ตั้งรหัสใหม่ที่ยาวและไม่ซ้ำ ทำจากเครื่องที่เราไว้ใจ ถ้าสงสัยว่าเครื่องติดมัลแวร์ ให้ใช้อีกเครื่องเปลี่ยน แล้วค่อยกลับไปจัดการเครื่องที่สงสัย
ไล่เปลี่ยนทุกที่ที่เคยใช้รหัสเดียวกัน
นี่คือขั้นที่คนลืมมากที่สุด และเป็นขั้นที่ตัดการไล่ลองรหัสได้จริง เริ่มจากอีเมล บัญชีธนาคาร และโซเชียล
เปิดยืนยันสองชั้น หรือสร้างพาสคีย์
ถ้ายังไม่ได้เปิด ตอนนี้คือเวลาที่ดีที่สุด เพราะต่อให้รหัสใหม่หลุดอีก ด่านที่สองก็ยังขวางไว้
ดูอุปกรณ์ที่ล็อกอินอยู่ แล้วเตะเครื่องแปลก ๆ ออก
บริการส่วนใหญ่มีหน้า “อุปกรณ์ของคุณ” หรือ “ที่ที่คุณล็อกอินอยู่” กดออกจากระบบทุกเครื่องที่ไม่รู้จัก และตรวจว่าอีเมลกู้คืนกับเบอร์โทรไม่ถูกเปลี่ยน
ระวังข้อความที่ “รู้ข้อมูลเรามากเกินไป”
หลังข้อมูลรั่ว คนร้ายมักใช้ชื่อ เบอร์ หรือประวัติการสั่งซื้อที่หลุดไป มาทำข้อความหลอกให้ดูน่าเชื่อ ถ้ามีคนโทรมาอ้างเหตุรั่วแล้วขอ OTP หรือให้โอนเงิน “เพื่อความปลอดภัย” นั่นคือมิจฉาชีพ
ถ้าเกี่ยวกับเงิน แจ้งให้เร็ว
โทรหาธนาคารตามเบอร์ที่อยู่หลังบัตรหรือในแอปทางการเพื่ออายัด และขอคำปรึกษาหรือแจ้งเหตุได้ที่สายด่วน 1441 (ศูนย์ AOC รับแจ้งปัญหาภัยออนไลน์)
10สรุปให้จำ Recap
ทั้งหมดนี้ทำเสร็จได้ในเย็นเดียว เริ่มจากบัญชีอีเมลหลักก่อน แล้วค่อยไล่ไปทีละบัญชี
- หนึ่งบัญชี หนึ่งรหัส รหัสไม่ซ้ำกันคือสิ่งเดียวที่ตัดการไล่ลองรหัสได้ร้อยเปอร์เซ็นต์
- ยาวชนะซับซ้อน รหัสที่ต้องจำเอง ใช้วลีจากคำสุ่มสี่ห้าคำ ไม่ใส่ข้อมูลส่วนตัว
- ให้โปรแกรมจัดการรหัสผ่านจำแทน และสังเกตเมื่อมันไม่ยอมเติมรหัส เพราะอาจเป็นเว็บปลอม
- เปิดยืนยันสองชั้น เริ่มที่อีเมลหลัก ใช้พาสคีย์หรือแอปสร้างรหัสแทน SMS เมื่อเลือกได้
- ไม่กดอนุมัติ ไม่บอก OTP เมื่อเราไม่ได้เป็นคนเริ่มล็อกอินเอง
- ปิดประตูหลัง อัปเดตอีเมลและเบอร์กู้คืน เก็บรหัสสำรองไว้ในที่ปลอดภัย
ลองทบทวนดู
ทำไมการใช้รหัสซ้ำถึงอันตรายกว่าการใช้รหัสสั้น
เพราะเมื่อเว็บใดเว็บหนึ่งรั่ว คนร้ายเอาคู่อีเมลกับรหัสไปไล่ลองบริการอื่นอัตโนมัติ (credential stuffing) ได้ทันทีโดยไม่ต้องเดาเลย ความยาวของรหัสช่วยอะไรไม่ได้ถ้ารหัสนั้นหลุดไปทั้งดอกแล้ว
P@ssw0rd! กับวลีห้าคำสุ่ม อันไหนแข็งแรงกว่า และเพราะอะไร
วลีห้าคำสุ่มแข็งแรงกว่ามาก P@ssw0rd! เป็นคำยอดฮิตที่แค่แทนตัวอักษรตามสูตรที่โปรแกรมเดารหัสรู้จัก ส่วนวลีห้าคำที่สุ่มจากรายการ 7,776 คำ มีจำนวนแบบราว 2.8 × 10¹⁹ และยังจำง่ายกว่าด้วย
ซอลต์ช่วยอะไรในการเก็บรหัสผ่าน ทั้งที่มันไม่ได้เป็นความลับ
ซอลต์เป็นค่าสุ่มที่ต่างกันในแต่ละบัญชี ทำให้รหัสเหมือนกันได้แฮชต่างกัน คนร้ายจึงเดาครั้งเดียวแล้วได้หลายบัญชีพร้อมกันไม่ได้ ต้องเดาแยกทีละคน เมื่อใช้คู่กับแฮชแบบช้าอย่าง Argon2id การเดาจะช้าจนไม่คุ้ม
ตีสองมีแจ้งเตือนให้กดอนุมัติการล็อกอินเด้งมาไม่หยุด ควรทำอย่างไร
ห้ามกดอนุมัติ นี่คือสัญญาณว่าคนร้ายรู้รหัสผ่านของเราแล้ว และกำลังหวังให้เรารำคาญจนเผลอกด (MFA fatigue) ให้ปฏิเสธ เปลี่ยนรหัสผ่านทันที และตรวจอุปกรณ์ที่ล็อกอินอยู่
ทำไมพาสคีย์ถึงกันเว็บปลอมได้ แต่ OTP กันไม่ได้
OTP เป็นตัวเลขที่เราพิมพ์เอง เว็บปลอมจึงขอแล้วส่งต่อไปเว็บจริงได้ ส่วนพาสคีย์ผูกกับชื่อเว็บที่สร้างมันขึ้นมา และเบราว์เซอร์เป็นคนตรวจชื่อเว็บ ถ้าชื่อไม่ตรง เครื่องก็ไม่เซ็นอะไรให้เลย และไม่มีความลับให้เราพิมพ์ผิดที่ตั้งแต่แรก