Security พื้นฐานที่โบรต้องรู้: SSL, HTTPS, OAuth และการกันคนเดารหัสผ่าน

ระบบสวยแค่ไหน เร็วแค่ไหน โดนแฮกวันเดียวก็จบ
บทนี้ปิดท้ายซีรีส์ Tech Essentials ด้วยเรื่องที่คนมักคิดถึงเป็นอย่างสุดท้าย ทั้งที่ควรคิดตั้งแต่แรก - และย้ำว่า ไม่ได้มีไว้สำหรับสายไอทีเท่านั้น ใครใช้อินเทอร์เน็ตก็ควรรู้ทั้งนั้น
หลักคิดพื้นฐาน: CIA Triad
ความปลอดภัยข้อมูลมี 3 เสาหลัก
- Confidentiality (ความลับ): ข้อมูลต้องเห็นได้เฉพาะคนที่มีสิทธิ์
- Integrity (ความถูกต้อง): ข้อมูลต้องไม่ถูกแก้โดยไม่ได้รับอนุญาต
- Availability (ความพร้อมใช้): ระบบต้องใช้ได้เมื่อต้องการ
ทุกมาตรการที่จะพูดถึงต่อไปนี้ ล้วนทำเพื่อรักษา 3 อย่างนี้แหละ
HTTPS กับ SSL/TLS: แม่กุญแจข้างแถบ URL
มันแก้ปัญหาอะไร
สมัยก่อนเว็บใช้ HTTP ซึ่งส่งข้อมูลเป็นข้อความเปลือย ๆ ใครดักกลางทางได้ก็อ่านได้หมด ทั้งรหัสผ่าน ทั้งเลขบัตรเครดิต น่ากลัวมาก
HTTPS คือ HTTP ที่ใส่เกราะเข้ารหัสเข้าไป ด้วยเทคโนโลยีชื่อ TLS (ชื่อเดิมคือ SSL ทุกวันนี้คนยังเรียกติดปากว่า SSL แต่ของจริงที่ใช้กันคือ TLS นะ)
- +ไม่ต้องมีใบรับรอง
- −ใครดักกลางทางก็อ่านได้ทันที
- −เบราว์เซอร์ขึ้นเตือน “ไม่ปลอดภัย”
- +ดักไปก็อ่านไม่ออก
- +มีแม่กุญแจบนแถบที่อยู่
- −ต้องมีใบรับรอง (ขอฟรีได้)
มันให้อะไรเรา 3 อย่าง
- เข้ารหัส: คนดักกลางทางเห็นแต่ตัวอักษรมั่ว ๆ อ่านไม่ออก
- ยืนยันตัวตน: ยืนยันว่าเว็บที่คุยด้วยคือเว็บจริง ไม่ใช่เว็บปลอม
- ตรวจความถูกต้อง: ถ้าข้อมูลถูกแก้ระหว่างทาง รู้ทันที
Certificate คืออะไร
SSL Certificate คือใบรับรองดิจิทัล ที่ออกโดยหน่วยงานที่เชื่อถือได้ เพื่อยืนยันว่าเว็บนี้เป็นของเจ้าของตัวจริง
ข่าวดีคือทุกวันนี้ ขอฟรีได้แล้ว ผ่าน Let's Encrypt แถมต่ออายุอัตโนมัติได้อีก ไม่มีข้ออ้างที่จะไม่ทำ HTTPS แล้วนะโบร
⚠️ เข้าใจให้ถูกนะ: แม่กุญแจในเบราว์เซอร์บอกแค่ว่า "การเชื่อมต่อถูกเข้ารหัส" ไม่ได้แปลว่าเว็บนี้เป็นเว็บดี เว็บหลอกลวงก็ทำ HTTPS ได้เหมือนกัน ต้องดูชื่อโดเมนให้ดีทุกครั้งด้วย
Authentication กับ Authorization ต่างกันยังไง
สองคำนี้หน้าตาคล้ายกันจนคนสับสนตลอด แต่ความหมายคนละเรื่องเลย
| Authentication (AuthN) | Authorization (AuthZ) | |
|---|---|---|
| ตอบคำถาม | นายเป็นใคร | นายทำอะไรได้บ้าง |
| เทียบกับ | โชว์บัตรที่ประตู | บัตรนี้เข้าได้แค่ชั้น 3 |
| ตัวอย่าง | ล็อกอินด้วยรหัสผ่าน | พนักงานดูเงินเดือนตัวเองได้ แต่ HR ดูได้ทุกคน |
ต้องทำ Authentication ก่อนเสมอ แล้วค่อยตามด้วย Authorization
OAuth: ปุ่ม "เข้าสู่ระบบด้วย Google"
ทุกคนเคยกดปุ่มนี้ แต่รู้ไหมว่าเบื้องหลังเกิดอะไรขึ้น
OAuth คือมาตรฐานที่ให้แอปนึงขอสิทธิ์เข้าถึงข้อมูลของเราในอีกแอปนึง โดยที่เราไม่ต้องบอกรหัสผ่านให้แอปนั้น
- 1ผู้ใช้กด “Login with Google” ที่เว็บ A
- 2เว็บ A ส่งผู้ใช้ไปหน้าล็อกอินของ Google
- 3ผู้ใช้ล็อกอินและกดอนุญาตที่ Google
- 4Google ส่ง Token กลับมาให้เว็บ A
- 5เว็บ A ใช้ Token เข้าถึงเฉพาะข้อมูลที่ได้รับอนุญาต
รหัสผ่านไม่เคยผ่านเว็บ A เลย - นี่คือหัวใจของ OAuth
เทียบกับกุญแจรถ
รหัสผ่านของเรา = กุญแจหลักที่เปิดรถได้ทุกอย่าง OAuth Token = กุญแจสำหรับเด็กจอดรถ ขับได้แต่เปิดท้ายไม่ได้ แถมหมดอายุใน 2 ชั่วโมง
ทำไมมันดี
- เว็บนั้นไม่เคยเห็นรหัสผ่านเราเลยแม้แต่ตัวเดียว
- เราเลือกได้ว่าให้สิทธิ์แค่ไหน (แค่ดูอีเมล ไม่ให้ส่งอีเมล)
- ถอนสิทธิ์ทีหลังได้ตลอด จากหน้าตั้งค่าบัญชี Google/Facebook
- ไม่ต้องจำรหัสผ่านเพิ่มอีกอัน
ข้อควรระวัง
- ถ้าบัญชี Google หลุด แอปที่ผูกไว้หลุดตามหมด ดังนั้น ต้องป้องกันบัญชีหลักให้แน่นที่สุด
- อ่านให้ดีว่าแอปนั้นขอสิทธิ์อะไร แอปแต่งรูปไม่ควรขอสิทธิ์อ่านรายชื่อผู้ติดต่อทั้งหมด อันนี้มีพิรุธ
เกร็ด: OAuth จริง ๆ ออกแบบมาเพื่อ Authorization ส่วนการยืนยันตัวตนใช้มาตรฐานที่ต่อยอดมาชื่อ OpenID Connect (OIDC) แต่ภาษาบ้าน ๆ เราเรียกรวมกันว่า OAuth ไปเลย
รหัสผ่าน: กันคนเดาได้ยังไง
หัวข้อนี้กระทบโบรทุกคนโดยตรงที่สุด
ฝั่งผู้ใช้: ป้องกันตัวเอง
1. ยาวสำคัญกว่าซับซ้อน
P@ssw0rd! ที่ดูเท่ ๆ จริง ๆ แฮกง่ายกว่า กินข้าวเช้าตอนบ่ายสามทุกวัน เยอะมาก เพราะเครื่องมือแฮกรู้จักลูกเล่นแทนตัวอักษรพวกนี้หมดแล้ว
แนะนำ: ใช้วลียาว ๆ อย่างน้อย 12-16 ตัวอักษร คนจำง่าย เครื่องเดายาก
2. ห้ามใช้รหัสซ้ำเด็ดขาด นี่คือความเสี่ยงอันดับหนึ่งเลย เพราะพอเว็บไหนข้อมูลรั่ว แฮกเกอร์จะเอารหัสนั้นไปลองกับทุกเว็บ (ศัพท์เรียก Credential Stuffing) เว็บที่โบรใช้รหัสเดียวกันจะล้มเป็นโดมิโน
3. ใช้ Password Manager ไม่มีใครจำรหัสยาว ๆ ต่างกัน 50 อันได้หรอก ให้โปรแกรมจำแทน แล้วเราจำแค่รหัสหลักอันเดียว เช่น Bitwarden (มีแบบฟรี), 1Password, KeePass หรือตัวที่มากับเบราว์เซอร์ก็ยังดีกว่าไม่ใช้
4. เปิด 2FA ทุกที่ที่ทำได้ ยืนยันตัวตนสองชั้น รหัสหลุดก็ยังเข้าไม่ได้ เรียงจากปลอดภัยน้อยไปมาก: SMS < แอป Authenticator < กุญแจฮาร์ดแวร์ (SMS ปลอดภัยน้อยสุดเพราะมีเทคนิคขโมยเบอร์ได้ แต่ก็ยังดีกว่าไม่เปิดอะไรเลย)
5. เช็คว่าข้อมูลเราเคยรั่วไหม เว็บ Have I Been Pwned เช็คฟรีว่าอีเมลเราเคยโผล่ในเหตุการณ์ข้อมูลรั่วไหม ลองเช็คดูนะ อาจตกใจ
6. รู้จัก Passkey ไว้ ของใหม่ที่ใช้ลายนิ้วมือหรือหน้าแทนรหัสผ่าน ปลอดภัยกว่ามากเพราะไม่มีรหัสให้ขโมย และกันเว็บปลอมได้ในตัว
ฝั่งคนทำระบบ: ป้องกันผู้ใช้
1. ห้ามเก็บรหัสผ่านเป็นข้อความธรรมดาเด็ดขาด ต้องเก็บเป็นค่าที่ผ่านการแปลงทางเดียว (Hashing) ด้วยอัลกอริทึมที่ออกแบบมาเพื่อการนี้ เช่น bcrypt, argon2, scrypt (ห้ามใช้ MD5 หรือ SHA-1 เพราะเร็วเกินไปจนแฮกเกอร์เดาได้สบาย)
2. ใส่ Salt เติมค่าสุ่มเข้าไปในแต่ละรหัสก่อนแปลง ทำให้คนที่ใช้รหัสเหมือนกันได้ค่าเก็บต่างกัน แฮกเกอร์เลยใช้ตารางสำเร็จรูปเดาไม่ได้
3. จำกัดจำนวนครั้งที่ลองผิด (Rate Limiting) ผิด 5 ครั้งก็หน่วงเวลาหรือล็อกชั่วคราว ทำให้การเดารหัสอัตโนมัติเป็นไปไม่ได้ในทางปฏิบัติ
4. ข้อความแจ้งเตือนอย่าบอกใบ้ ล็อกอินผิดให้บอกว่า "อีเมลหรือรหัสผ่านไม่ถูกต้อง" อย่าบอกว่า "ไม่มีอีเมลนี้ในระบบ" เพราะเท่ากับบอกแฮกเกอร์ว่าบัญชีไหนมีอยู่จริง
5. บังคับความยาว ไม่ใช่บังคับใส่สัญลักษณ์ คำแนะนำสมัยใหม่คือเน้นความยาว และเช็คว่ารหัสนั้นเคยรั่วมาก่อนไหม แทนที่จะบังคับใส่อักขระพิเศษจนผู้ใช้ต้องจดใส่โพสต์อิทแปะจอ (ซึ่งอันตรายกว่าเดิมอีก)
เรื่องอื่นที่ต้องรู้ไว้
- Firewall: ตัวกรองว่าใครเข้าถึงอะไรได้ หลักคือ ปิดทุกอย่างก่อน แล้วค่อยเปิดเท่าที่จำเป็น
- Update: ช่องโหว่ส่วนใหญ่ที่โดนโจมตี มีแพตช์ออกมาแล้วทั้งนั้น แต่คนไม่อัปเดต การอัปเดตคือมาตรการที่คุ้มที่สุดและถูกที่สุดในโลก
- Least Privilege: ให้สิทธิ์เท่าที่จำเป็น อย่าให้ทุกคนเป็นแอดมิน
- Backup: กัน Ransomware ได้ดีที่สุด ใช้หลัก 3-2-1 คือมีสำเนา 3 ชุด บนสื่อ 2 ชนิด เก็บนอกสถานที่ 1 ชุด และต้องเคยลองกู้จริง
- Phishing: การหลอกด้วยอีเมล/SMS ปลอม ยังเป็นวิธีแฮกที่ได้ผลที่สุด เพราะมันโจมตีที่ "คน" ไม่ใช่ "ระบบ" เจอลิงก์แปลก ๆ ให้เช็คโดเมนก่อนทุกครั้ง
- PDPA: กฎหมายคุ้มครองข้อมูลส่วนบุคคลของไทย ถ้าเก็บข้อมูลลูกค้าต้องรู้ไว้ว่ามีหน้าที่ขอความยินยอมและรักษาข้อมูลให้ปลอดภัย
สรุป: อะไรบังคับ อะไรทางเลือก
✅ ต้องทำ (ไม่มีข้ออ้าง)
| มาตรการ | เหตุผล |
|---|---|
| ใช้ HTTPS ทุกหน้า | ฟรีแล้ว และเบราว์เซอร์เตือนถ้าไม่มี |
| เก็บรหัสผ่านแบบ Hash + Salt | ผิดทั้งกฎหมายและจรรยาบรรณถ้าไม่ทำ |
| อัปเดตระบบสม่ำเสมอ | ช่องโหว่เก่าคือประตูที่เปิดทิ้งไว้ |
| สำรองข้อมูลและทดสอบกู้คืน | วันที่ต้องใช้คือวันที่สายเกินแก้ |
| ไม่ใช้รหัสผ่านซ้ำ | ความเสี่ยงอันดับหนึ่งของคนทั่วไป |
| จำกัดจำนวนครั้งการล็อกอิน | กันการเดารหัสอัตโนมัติ |
🟡 ควรทำ (ตามความเสี่ยงของงาน)
- เปิด 2FA (ถ้าเป็นบัญชีสำคัญ ให้ถือว่าบังคับไปเลย)
- ใช้ OAuth/SSO แทนการสร้างระบบสมาชิกเอง
- เข้ารหัสข้อมูลที่เก็บในฐานข้อมูล
- มีระบบเก็บบันทึกการเข้าถึงและแจ้งเตือนเมื่อผิดปกติ
- ให้ผู้เชี่ยวชาญตรวจสอบความปลอดภัยเป็นระยะ
ปิดท้ายซีรีส์ Tech Essentials
ความปลอดภัยไม่ใช่ของที่ซื้อมาติดตั้งแล้วจบ แต่เป็น นิสัย ที่ต้องทำต่อเนื่อง
ข่าวดีคือ 80% ของความปลอดภัยมาจากเรื่องพื้นฐานที่ไม่ยากเลย - ใช้ HTTPS, อัปเดตระบบ, ไม่ใช้รหัสซ้ำ, เปิด 2FA, สำรองข้อมูล แค่นี้ก็ปลอดภัยกว่าคนส่วนใหญ่ไปไกลแล้วโบร
🎉 จบซีรีส์ Tech Essentials! ถึงตรงนี้โบรเข้าใจภาพรวมโลกไอทีตั้งแต่แอปพลิเคชัน เซิร์ฟเวอร์ ภาษาโปรแกรม โครงสร้างพื้นฐาน ระบบเสมือน จนถึงความปลอดภัยแล้ว
👉 ไปต่อที่: AI Fundamentals Level 1-พื้นฐาน AI ที่ต้องรู้
