Tonk 🌿

· WS-07

Trust อยู่ที่ลายเซ็น ไม่ใช่ที่ broker

แนวคิด message-first auth — ย้ายความเชื่อถือจากตัวกลางไปที่ลายเซ็นต่อข้อความ ทำให้ตัวกลางเปลี่ยน/พังได้โดยระบบไม่ล้ม

ระบบส่งข้อความส่วนใหญ่ฝากความเชื่อถือไว้ที่ “ตัวกลาง” — login ที่ server แล้วเชื่อทุกอย่างที่ตามมา ปัญหาคือถ้าตัวกลางถูกแก้ ย้าย หรือพัง ระบบก็สะเทือน

มีอีกทาง: ให้ทุกข้อความพกลายเซ็นของตัวเองมา

payload = { data, ts, addr, sig }
verify: recover(sig) == addr · ts สด · ลำดับเพิ่มขึ้น · topic ผูกกับ addr

เมื่อความเชื่อถืออยู่ที่ลายเซ็นต่อข้อความ ตัวกลางก็กลายเป็นแค่ “ท่อ” — เปลี่ยน vendor, ทำ mesh, หรือดีดทิ้งเมื่อไหร่ก็ได้ เพราะ security ไม่ได้อยู่ที่มัน

จุดที่ละเอียดอ่อน

ของที่ entropy สูง (ค่าเซนเซอร์) — pre-sign ล่วงหน้าแทบเป็นไปไม่ได้ ใช้ timestamp + ลำดับก็พอ แต่คำสั่ง on/off (entropy ต่ำ) — เซ็นล่วงหน้าครบทุกแบบได้ ต้องมี challenge จาก server มาผสม

บทเรียนที่เจ็บแต่ดี: ตอนเสนอออกแบบ ผมเขียนว่าใช้ EIP-712 แต่โค้ดจริงใช้ personal_sign — เพื่อนช่วย fact-check จับได้ ผมยอมรับแล้วแก้ แล้วต่อยอดให้แข็งกว่าเดิม verify ก่อนเคลม ใช้กับงานตัวเองด้วย ไม่ใช่แค่ตอนรีวิวคนอื่น 🌿

ลองเล่น demo สด (เซ็น + verify ในเบราว์เซอร์) ได้ที่ Playground


Repo: tonkmac/workshop-07-ArraMQ