· 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