🤖HermesBlog
แพลตฟอร์มส่งข้อความของ Hermes · Parte 378/14/2026

กลไกความปลอดภัย A2A: ระบบรักษาความปลอดภัยประตูทางเข้าสำหรับการเชื่อมต่อระหว่างเอเจนต์อัจฉริยะ

เฮอร์มีส แพลตฟอร์มข้อความ ตอนที่ 37: แนวป้องกันความปลอดภัยสี่ชั้นของ A2A และการซ่อมแซมจากชุมชนจริง

สิ่งที่กลัวที่สุดเวลาปล่อยให้ AI สองตัว “โทรหากัน” คืออะไร? ไม่ใช่การคุยกันไม่รู้จบ แต่คือคนแปลกหน้าปลอมตัวเป็นคนรู้จักมาเคาะประตู

A2A -security

หลักการออกแบบความปลอดภัย: ล็อกประตูก่อนแล้วค่อยเปิด

ลองนึกภาพว่าคุณเพิ่งย้ายเข้าบ้านใหม่ สิ่งแรกที่ทำไม่ใช่การติดม่าน แต่คือการเปลี่ยนกลอนประตู นักออกแบบโปรโตคอล A2A ก็คิดแบบเดียวกัน — ปลอดภัยโดยค่าเริ่มต้น ทุกการผ่อนปรนต้องดำเนินการอย่างชัดเจน กลไกนี้เปรียบเสมือนระบบรักษาความปลอดภัยประตูทางเข้าที่สมบูรณ์: กลอนประตู (token) บัตรเข้าอาคาร (คีย์คู่สัญญา) กล้องส่องประตู (การระบุตัวตน) กล้องวงจรปิด (บันทึกการตรวจสอบ) ในแพลตฟอร์มข้อความ Hermes ฟีเจอร์ A2A ถูกนำเสนอในรูปแบบปลั๊กอิน แต่ค่าความปลอดภัยเริ่มต้นไม่มีการประนีประนอม: เมื่อไม่ได้กำหนดค่า token จะฟังเฉพาะภายในเครื่อง 127.0.0.1 — เทียบเท่ากับล็อกประตูแล้ว และกุญแจอยู่ในมือเราเท่านั้น

เจาะลึกแนวป้องกันสี่ชั้น

ชั้นแรก: การผูกกับเครื่องท้องถิ่น + token (กลอนประตู)

โดยค่าเริ่มต้น A2A จะฟังเฉพาะภายในเครื่อง ภายนอกไม่สามารถแตะต้องประตูได้เลย การให้บริการภายนอกต้องผ่านเงื่อนไขสองข้อพร้อมกัน: ตั้งค่า A2A_HOST เพื่อเปิดเผยที่อยู่ และกำหนดค่า bearer token ซึ่งก็เหมือนกับคุณไม่เพียงต้องเปิดหน้าต่าง แต่ยังต้องวางกระบองเพชรมีหนามไว้ที่ขอบหน้าต่างด้วย — ขาดอย่างใดอย่างหนึ่งไม่ได้

ชั้นที่สอง: คีย์เฉพาะสำหรับแต่ละคู่สัญญา (บัตรเข้าอาคาร)

แต่ละคู่สัญญามี token เฉพาะของตัวเอง กำหนดค่าผ่าน A2A_PEER_TOKENS="alice:tok1,bob:tok2" ซึ่งไม่เหมือนกุญแจดอกเดียวที่ไขได้ทุกประตู แต่เป็นบัตรเข้าอาคารเฉพาะบุคคลสำหรับผู้มาเยือนแต่ละคน การยืนยันตัวตนขับเคลื่อนการจำกัดอัตรา รายการไว้วางใจ และการตรวจสอบ — ใครรูดบัตร รูดกี่ครั้ง รูดเมื่อไหร่ มีบันทึกทั้งหมด

ชั้นที่สาม: การกรองอินพุต + การปกปิดข้อมูล (ประตูตรวจความปลอดภัย)

ข้อความขาเข้าจะถูกกรองและติดป้ายว่า “อินพุตจากคู่สัญญาที่ไม่น่าไว้วางใจ” คู่สัญญาระยะไกลไม่สามารถเรียกคำสั่ง slash ของผู้ปฏิบัติการได้ ซึ่งเหมือนกับการตรวจความปลอดภัยที่สนามบิน ที่ของเหลวในกระเป๋าเดินทางต้องถูกนำออกมาตรวจแยกต่างหาก ในข้อความตอบกลับขาออก สตริงที่มีลักษณะเป็นข้อมูลประจำตัว (API key, JWT, token) จะถูกลบออกโดยอัตโนมัติ — เหมือนกับการส่งจดหมายที่จะลบเลขบัตรประชาชนของผู้รับออกให้โดยอัตโนมัติ

ชั้นที่สี่: บันทึกการตรวจสอบ + การป้องกันลูป (กล้องวงจรปิด)

ทุกการแลกเปลี่ยนจะถูกเพิ่มลงใน ~/.hermes/a2a_audit.jsonl เทียบเท่ากับการติดกล้องวงจรปิด 24 ชั่วโมงที่หน้าประตู ขีดจำกัดรอบการป้องกันลูปก็เหมือนอินเตอร์คอมที่ประตูบ้านเพื่อนบ้าน — ถ้า AI สองตัวคุยกันไม่รู้จบ ระบบจะตัดการเชื่อมต่อโดยอัตโนมัติ

เรื่องราวการโจมตีจริง: 3 ปัญหาที่ชุมชนค้นพบและแก้ไข

เรื่องที่หนึ่ง: การเลี่ยง SSRF (#78298) — ใช้ “รหัสลับตัวเลข” หลอกกลอนประตู

มีผู้โจมตีค้นพบว่าการตรวจสอบความปลอดภัยของ callback URL ใช้การจับคู่คำนำหน้าสตริงกับชื่อโฮสต์ เช่น ตรวจสอบว่าขึ้นต้นด้วย 127. หรือไม่ แต่ที่อยู่ IP มีรูปแบบ “การสะกดด้วยจำนวนเต็ม” — 2130706433 คืออีกวิธีเขียนหนึ่งของ 127.0.0.1 ซึ่งเหมือนกับการเขียนเลขที่บ้านเป็นรหัสมอร์ส ยามไม่รู้จักก็ปล่อยผ่านไป วิธีแก้ไข: แปลงโฮสต์ของ callback เป็น IP มาตรฐานก่อนแล้วค่อยตัดสินใจ เทียบเท่ากับยามได้รับที่อยู่ในรูปแบบใดก็ตาม จะแปลเป็นเลขที่บ้านมาตรฐานก่อนแล้วค่อยเปรียบเทียบ

เรื่องที่สอง: การยุบตัวของตัวตนผ่าน reverse proxy (#80534/#80779) — ทุกคนกลายเป็นคนเดียวกัน

เมื่อปรับใช้หลัง nginx หรือ K8s ปลั๊กอิน A2A จะอนุมานตัวตนของผู้เรียกจากที่อยู่ socket แต่พร็อกซีเซิร์ฟเวอร์ขวางอยู่ตรงกลาง ทำให้คู่สัญญาทั้งหมดแสดงเป็น IP เดียวกัน — ที่อยู่ของพร็อกซี ซึ่งเหมือนกับป้อมยามของอาคารอพาร์ตเมนต์ ที่ผู้มาเยือนทุกคนลงทะเบียนเป็น “ยามเซ็นแทน” การจำกัดอัตราใช้บัคเก็ตร่วมกัน (คนหนึ่งยุ่งทำให้ทุกคนช้าลง) รายการไว้วางใจใส่ได้แค่ที่อยู่พร็อกซี การตรวจสอบไม่เห็นผู้เรียกจริง วิธีแก้ไข: อนุมานตัวตนจริงจาก X-Forwarded-For แต่ต้องมั่นใจว่าเชื่อถือได้เฉพาะเมื่อ “อยู่หลังพร็อกซีที่เชื่อถือได้” เท่านั้น

เรื่องที่สาม: จุดบอดในการตรวจสอบ (#81003/#81042) — เสียงเคาะประตูที่ถูกปฏิเสธไม่มีบันทึก

บันทึกการตรวจสอบบันทึกเฉพาะทราฟฟิกที่ถูกยอมรับ คำขอที่ได้ 401 (token ไม่ถูกต้อง) และ 403 (ไม่ได้รับความไว้วางใจ) ไม่สร้างบันทึก ซึ่งเหมือนกับกล้องวงจรปิดที่ถ่ายเฉพาะคนที่เดินเข้าประตูได้อย่างราบรื่น แต่ภาพขโมยที่งัดแงะล็อกกลับไม่ถูกบันทึก การโจมตีด้วยการยัดเยียดข้อมูลประจำตัว การตรวจสอบหา token ที่ถูกเพิกถอน ความพยายามเคลื่อนที่ด้านข้าง — พฤติกรรมการโจมตีเหล่านี้คือสิ่งที่การตรวจสอบต้องการจับมากที่สุด วิธีแก้ไข: การปฏิเสธการยืนยันตัวตนทั้งหมดจะถูกเพิ่มลงในบันทึกการตรวจสอบแบบ append-only พร้อมฟิลด์ decision + รหัสสถานะ HTTP + IP ของผู้เรียก

ความหมายต่อผู้ใช้

ตรรกะหลักของกลไกนี้คือ: ความปลอดภัยไม่ใช่การแก้ไขภายหลัง แต่เป็นสถานะเริ่มต้น ในฐานะผู้ใช้ Hermes คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญด้านความปลอดภัยก็ได้รับการป้องกันพื้นฐาน — แนวป้องกันสี่ชั้นทำงานอัตโนมัติ ที่สำคัญกว่านั้น ชุมชนได้เสริมความแข็งแกร่งอย่างต่อเนื่องผ่านการโจมตีจริง: ตั้งแต่การเลี่ยง SSRF ไปจนถึงการยุบตัวของตัวตนผ่าน reverse proxy และจุดบอดในการตรวจสอบ ทุกปัญหาสอดคล้องกับสถานการณ์จริงหนึ่งสถานการณ์ โปรโตคอล A2A เปรียบเสมือนปราสาทที่ได้รับการเสริมความแข็งแกร่งอย่างต่อเนื่อง อิฐทุกก้อนผ่านการทดสอบในสนามจริง ครั้งหน้าที่เอเจนต์อัจฉริยะสองตัวของคุณ “โทรหากัน” ระหว่างพวกมันไม่เพียงมีกลอนประตู บัตรเข้าอาคาร ประตูตรวจความปลอดภัย และกล้องวงจรปิด แต่ยังมีกลุ่มยามที่จ้องมองบันทึกอยู่ตลอดเวลา

📖 เอกสารทางการ

この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/messaging/a2a