เจาะลึก AgentAuth: ทำความเข้าใจ Self-Authenticating UUIDs

การแสดงหน้าจอเข้าสู่ระบบให้ AI agent ดูนั้นไม่มีความหมายเลย

Agent ไม่ได้นั่งอยู่หน้าเบราว์เซอร์ พวกมันเรียกใช้ tool calls ในเวลาตี 3 และทำงานแบบขนานกัน วิธีการแบบดั้งเดิมอย่าง OAuth หรือ session cookies นั้นใช้ไม่ได้ผล เพราะวิธีเหล่านี้ตั้งอยู่บนสมมติฐานว่ามีมนุษย์คอยกดปุ่มยินยอม (consent)

AgentAuth แก้ปัญหานี้ด้วยสิ่งเดียว นั่นคือ UUID

มันไม่ได้ใช้ session หรือโครงสร้างพื้นฐานเพิ่มเติม แต่ใช้การเข้ารหัสแบบกุญแจสาธารณะ (public-key cryptography) เพื่อรวมอัตลักษณ์ (identity) และการยืนยันตัวตน (authentication) เข้าเป็นค่าเดียว

นี่คือหลักการทำงานของมัน:

• The Token: กุญแจส่วนตัว (secp256k1) ซึ่งจะถูกเก็บเป็นความลับไว้ในเครื่องของคุณ • The Address: ค่าสาธารณะที่ได้มาจาก token • The ID: UUID ที่มีความเสถียรซึ่งสร้างขึ้นจาก address

กระบวนการนี้ไหลไปในทิศทางเดียว คุณสามารถเปลี่ยนจาก Token เป็น ID ได้ แต่ไม่สามารถเปลี่ยนจาก ID กลับไปเป็น Token ได้ สิ่งนี้ทำให้ ID กลายเป็นอัตลักษณ์ที่เสถียร

มันป้องกันการปลอมแปลงตัวตนได้อย่างไร?

แม้ว่า ID จะเป็นสาธารณะ แต่ผู้โจมตีก็ไม่สามารถนำไปใช้ได้ เพราะทุกคำขอจะมาพร้อมกับลายเซ็นดิจิทัล (digital signature)

  1. Client ลงลายเซ็นใน request payload ด้วย private Token
  2. Server ได้รับลายเซ็นและ Address ที่ระบุมา
  3. Server ใช้ลายเซ็นเพื่อกู้คืน (recover) Address ออกมา
  4. หาก Address ที่กู้คืนมาตรงกับ Address ที่ระบุไว้ คำขอนั้นก็จะถือว่าถูกต้อง

กระบวนการนี้เป็นแบบ stateless โดยที่ Server ไม่จำเป็นต้องมีฐานข้อมูลของ session ที่กำลังใช้งานอยู่เพื่อยืนยันตัวตนผู้ใช้ แต่ใช้เพียงแค่การคำนวณทางคณิตศาสตร์เท่านั้น

เพื่อป้องกันการโจมตีแบบ replay attacks, AgentAuth จะใช้หน้าต่างเวลา (timestamp window) 60 วินาที หากผู้โจมตีขโมยคำขอที่มีลายเซ็นไปได้ พวกเขาจะมีเวลาเพียงหนึ่งนาทีในการใช้งานก่อนที่ลายเซ็นนั้นจะใช้ไม่ได้อีกต่อไป

ข้อแตกต่างที่สำคัญ: AgentAuth มีไว้สำหรับการยืนยันตัวตน (Authentication - คุณคือใคร?) ไม่ใช่สำหรับการอนุญาตสิทธิ์ (Authorization - คุณได้รับอนุญาตให้ทำอะไรได้บ้าง?)

อย่าสับสนสิ่งนี้กับข้อกำหนดมาตรฐาน MCP OAuth 2.1 อย่างเป็นทางการ

  • ใช้ AgentAuth เมื่อคุณควบคุมทั้งสองฝั่งและต้องการ ID ที่เสถียรเพื่อใช้ในการติดตามการใช้งานหรือการแบ่งระดับการเข้าถึง (tier gating)
  • ใช้ MCP OAuth 2.1 เมื่อคุณต้องการมอบอำนาจการอนุญาต (delegate permissions) ให้กับ API ของบุคคลที่สามในนามของมนุษย์

ทั้งสองอย่างสามารถทำงานร่วมกันได้ โดยใช้ AgentAuth เพื่อระบุตัวตนของ agent และใช้ OAuth เพื่อจัดการการเข้าถึงข้อมูลภายนอก

AgentAuth เปลี่ยนกุญแจส่วนตัวให้กลายเป็นอัตลักษณ์ที่เสถียรและตรวจสอบได้ โดยไม่จำเป็นต้องมีหน้าจอเข้าสู่ระบบแม้แต่หน้าเดียว

Source: https://dev.to/kanywst/agentauth-deep-dive-reading-the-self-authenticating-uuid-for-ai-agents-from-the-source-44eh

Optional learning community: https://t.me/GyaanSetuAi