# Passkeys & WebAuthn 2026: คู่มือ Passwordless Authentication สำหรับธุรกิจไทย
ในปี 2026 รหัสผ่านยังคงเป็น "จุดอ่อนที่สุด" ของระบบความปลอดภัยส่วนใหญ่ ข้อมูลจาก Verizon DBIR 2025 ระบุว่า 81% ของเหตุข้อมูลรั่วไหลมีต้นเหตุมาจากการใช้รหัสผ่านที่อ่อนแอ ถูกขโมย หรือถูก Phishing — ปัญหาที่ MFA แบบ OTP ก็ไม่สามารถแก้ได้ทั้งหมด เพราะ OTP เองก็ยัง Phishing ได้
Passkeys คือมาตรฐานการ Login แบบไม่ใช้รหัสผ่าน (Passwordless) ที่พัฒนาบนพื้นฐาน FIDO2 และ WebAuthn ปลอดภัยกว่ารหัสผ่าน + MFA ทุกรูปแบบ ใช้ง่าย รองรับโดย Apple, Google, Microsoft และเบราว์เซอร์หลักทุกตัวแล้ว — และในปี 2026 หลายธนาคาร, Marketplace, รวมถึงระบบ ERP องค์กรในไทยก็เริ่มเปิดใช้แล้ว
บทความนี้พา PM, CTO และเจ้าของธุรกิจไทยรู้จัก Passkeys ตั้งแต่หลักการเข้ารหัสที่ใช้ การติดตั้งบนเว็บไซต์ของตัวเอง ความสอดคล้องกับ PDPA และ ISO 27001 ไปจนถึง Best Practice เพื่อนำไปใช้จริง
Passkey, FIDO2, WebAuthn คืออะไร — ต่างกันอย่างไร
มี 3 ชื่อที่มักถูกใช้สลับกัน — ในความจริง 3 อย่างนี้คือ Layer ที่ทำงานร่วมกัน
| มาตรฐาน | บทบาท |
|---------|-------|
| FIDO2 | กรอบมาตรฐานที่กำหนดสถาปัตยกรรมโดย FIDO Alliance |
| WebAuthn | API ที่ Browser และ JavaScript เรียกใช้ได้ (W3C Standard) |
| CTAP2 | Protocol ระหว่าง Browser กับ Authenticator (เช่น YubiKey, มือถือ) |
| Passkey | "ชื่อทางการตลาด" ของ FIDO2 Credential ที่ถูก Sync ผ่าน Cloud |
พูดง่าย ๆ Passkey คือชื่อที่เข้าใจง่ายของผู้บริโภค เบื้องหลังคือ WebAuthn API ที่เรียก FIDO2 ผ่าน CTAP2
ทำไม Passkey ปลอดภัยกว่ารหัสผ่าน + OTP
หัวใจของ Passkey คือ Public-Key Cryptography เมื่อ User สร้าง Passkey อุปกรณ์จะสร้างคู่ Key (Private + Public)
| ภัยคุกคาม | รหัสผ่าน + OTP | Passkey |
|----------|---------------|---------|
| Phishing | เสี่ยงสูง (User ถูกหลอกพิมพ์ลิงก์ปลอม) | ปลอดภัย (Browser ผูก Domain ไว้) |
| Credential Stuffing | เสี่ยง (Reuse password) | ปลอดภัย (Key ไม่ Reuse) |
| Database Breach | เสี่ยง (Hash ถูก crack ได้) | ปลอดภัย (เก็บแค่ Public Key) |
| Man-in-the-Middle | เสี่ยง | ปลอดภัย (Origin Binding) |
| SIM Swap | เสี่ยง (OTP ผ่าน SMS) | ไม่เกี่ยวข้อง |
จุดสำคัญที่สุดคือ Origin Binding — เพราะ Passkey ผูกกับโดเมนต้นทาง (เช่น `bank.co.th`) ผู้ใช้ที่ถูกหลอกเข้า `bank-fake.co.th` จะไม่สามารถใช้ Passkey ได้เลย Browser จะปฏิเสธอัตโนมัติ — แม้ User จะ "อยาก" ทำก็ทำไม่ได้
ติดตั้ง Passkey บนเว็บไซต์ Next.js / Laravel — ขั้นตอน
ลำดับการ Implement Passkey มี 4 ขั้นใหญ่ ๆ
ขั้นที่ 1: เลือก Library ที่เหมาะ
| ภาษา/Framework | Library ที่แนะนำ |
|---------------|------------------|
| Node.js / Next.js | @simplewebauthn/server + @simplewebauthn/browser |
| Laravel / PHP | web-auth/webauthn-lib (PHP), Laravel Passkeys |
| Python / Django | py_webauthn |
| Java / Spring | webauthn4j |
ขั้นที่ 2: เพิ่ม Database Schema
```sql
CREATE TABLE passkey_credentials (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
credential_id VARBINARY(255) UNIQUE NOT NULL,
public_key BLOB NOT NULL,
counter BIGINT DEFAULT 0,
device_type VARCHAR(50),
backed_up BOOLEAN DEFAULT FALSE,
transports VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
last_used_at TIMESTAMP NULL,
INDEX idx_user (user_id)
);
```
ขั้นที่ 3: Endpoint ฝั่ง Server (Next.js ตัวอย่าง)
```typescript
import { generateRegistrationOptions } from '@simplewebauthn/server';
export async function POST(req: Request) {
const user = await getCurrentUser();
const options = await generateRegistrationOptions({
rpName: 'ADS FIT',
rpID: 'adsfit.co.th',
userID: Buffer.from(user.id),
userName: user.email,
attestationType: 'none',
authenticatorSelection: {
residentKey: 'preferred',
userVerification: 'preferred',
},
});
await saveChallenge(user.id, options.challenge);
return Response.json(options);
}
```
ขั้นที่ 4: เรียกฝั่ง Browser
```javascript
import { startRegistration } from '@simplewebauthn/browser';
async function registerPasskey() {
const opts = await fetch('/api/auth/passkey/register/options').then(r => r.json());
const reg = await startRegistration(opts);
await fetch('/api/auth/passkey/register/verify', {
method: 'POST', body: JSON.stringify(reg)
});
}
```
ใช้เวลาประมาณ 1 Sprint (2 สัปดาห์) สำหรับทีม Backend + Frontend ขนาด 2-3 คน
Passkey กับ PDPA และ ISO 27001 — ข้อดีเชิงกฎหมาย
PDPA มาตรา 37 กำหนดให้ผู้ควบคุมข้อมูลต้องมี "มาตรการรักษาความปลอดภัยที่เหมาะสม" — Passkey ตอบโจทย์โดย
ISO 27001:2022 Control A.5.17 (Authentication Information) แนะนำ Strong Authentication Mechanism — Passkey ตรงกับ "Phishing-resistant MFA" ที่ NIST SP 800-63B Rev 4 ระบุไว้ใน AAL3
ในแง่ Compliance Audit หากองค์กรเปิด Passkey เป็น Default จะลด Finding ในหมวด Access Control ได้อย่างมาก
เปรียบเทียบ Passkey กับ Authentication Method อื่น
| วิธีการ | Phishing-resistant | UX | Cost | เหมาะกับ |
|--------|---------------------|----|----|--------|
| Password อย่างเดียว | ไม่ | แย่ (ลืม) | ฟรี | ไม่แนะนำ |
| Password + SMS OTP | ไม่ | กลาง | ค่า SMS | Legacy ระยะสั้น |
| Password + TOTP | บางส่วน | กลาง | ฟรี | ระยะกลาง |
| Hardware Key (YubiKey) | ใช่ | กลาง | $25-70/ตัว | Admin / High-Privilege |
| Passkey (Synced) | ใช่ | ดีมาก | ฟรี | User ทั่วไป |
| Passkey (Device-bound) | ใช่ | ดี | ฟรี | งานละเอียดอ่อน |
สำหรับธุรกิจไทยส่วนใหญ่ Synced Passkey คือ Sweet Spot — User กู้คืน Account ได้ผ่าน iCloud/Google Account, ไม่ต้องลงทุน Hardware และยัง Phishing-resistant
Best Practice ในการ Roll-out Passkey สำหรับองค์กร
สรุป + Call to Action
Passkey และ WebAuthn คือมาตรฐาน Authentication ที่ "ดีกว่า" รหัสผ่านในทุกมิติ — ทั้งความปลอดภัย, UX, ต้นทุน และ Compliance — ในปี 2026 บริษัทไทยที่ยังใช้แค่รหัสผ่านอย่างเดียว เสี่ยงที่จะเสียทั้งข้อมูลลูกค้าและความเชื่อมั่น
Key Takeaways
หาก SME หรือองค์กรของคุณกำลังจะปรับระบบ Login ให้ปลอดภัยและทันสมัย — ทีมงาน [ADS FIT](/contact) มีประสบการณ์ออกแบบและ Implement Passkey บนระบบ Laravel และ Next.js ตั้งแต่ Architecture Design, Database Schema, Frontend UX, ไปจนถึง Migration Strategy ที่ User ของคุณเปลี่ยนมาใช้ได้อย่างราบรื่น พร้อมเอกสาร Compliance ครบสำหรับ Audit