ทดสอบการเชื่อมต่อกับทรัพยากร CoAP ที่ปลอดภัยโดยใช้ OT CLI

ดูซอร์สบน GitHub

OpenThread มีทั้งฟังก์ชันการทำงานของเซิร์ฟเวอร์และไคลเอ็นต์ Secure CoAP ซึ่งทำให้อุปกรณ์เชื่อมต่อกับทรัพยากรในเซิร์ฟเวอร์ Secure CoAP และสังเกตการเปลี่ยนแปลงของทรัพยากรแต่ละรายการในสถานะปัจจุบันได้

Secure CoAP ใช้ Datagram Transport Layer Security (DTLS) เพื่อสร้างการเชื่อมต่อที่ปลอดภัยตั้งแต่ต้นจนจบ

Agent ของ Secure CoAP ที่ระบุไว้ใน CLI สามารถทำหน้าที่เป็นไคลเอ็นต์ Secure CoAP หรือเซิร์ฟเวอร์ Secure CoAP ได้

คู่มือนี้จะระบุงานพื้นฐานที่ใช้คำสั่ง Secure CoAP (coaps) ทั่วไปบางรายการ

คำสั่ง CoAP ที่ปลอดภัย

สำหรับรายการคำสั่ง Secure CoAP ให้พิมพ์ help:

coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done

การอ้างอิงคำสั่ง CLI

สำหรับคำอธิบายและไวยากรณ์ของคำสั่งทั้งหมด โปรดดูการอ้างอิงคำสั่ง CLI คำสั่ง Secure CoAP จะขึ้นต้นด้วยตัวอักษรด้วย coaps Connect

ตัวอย่างการใช้คำสั่งของเซิร์ฟเวอร์และไคลเอ็นต์ Secure CoAP

ตัวอย่างนี้ใช้คำสั่ง CLI พื้นฐานเพื่อเริ่มเซิร์ฟเวอร์และไคลเอ็นต์ Secure CoAP, สร้างทรัพยากรการทดสอบบนเซิร์ฟเวอร์ Secure CoAP และให้ไคลเอ็นต์ Secure CoAP โต้ตอบกับทรัพยากร ข้อมูลตัวอย่างจะใช้เพื่อการอธิบาย

กำหนดค่าชุดการเข้ารหัส DTLS

coaps CLI มีคำสั่ง psk และ x509 ที่ใช้กับคีย์ PSK และใบรับรอง X.509 ได้ ดูไวยากรณ์คำสั่งและตัวอย่างได้ที่ coaps psk และ coaps x509

ตั้งค่าเซิร์ฟเวอร์ Secure CoAP

ในโหนดเซิร์ฟเวอร์ Secure CoAP ให้ทำตามขั้นตอนต่อไปนี้

  1. เริ่มต้น Agent สำหรับ Secure CoAP

    coaps start
    Done
    
  2. สร้างทรัพยากรการทดสอบ

    coaps resource test-resource
    Done
    

ตั้งค่าไคลเอ็นต์ Secure CoAP

ในโหนดไคลเอ็นต์ Secure CoAP ให้ทำตามขั้นตอนต่อไปนี้

  1. เริ่มต้น Agent สำหรับ Secure CoAP

    coaps start
    Done
    
  2. เรียกใช้คำสั่ง connect เพื่อเริ่มต้นเซสชัน DTLS กับแอปเทียบเท่า

    coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744
    Done
    coaps connected
    
  3. เรียกใช้คำสั่ง get เพื่อรับข้อมูลเกี่ยวกับทรัพยากร ดังนี้

    coaps get test-resource
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744 with payload: 68656c6c6f576f726c6400
    

    ส่วนสุดท้ายของการตอบสนองของเซิร์ฟเวอร์คือคำว่า with payload: ตามด้วยไบต์เพย์โหลดทั้งหมดในรูปแบบเลขฐานสิบหก ในตัวอย่างนี้ with payload: 68656c6c6f576f726c6400 บ่งบอกว่าเพย์โหลดปัจจุบันสำหรับทรัพยากรเป็นค่าฐานสิบหก 68656c6c6f576f726c6400 ซึ่งแปลงเป็นสตริง helloWorld ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตัวเลือก payload ได้ที่บล็อกโพสต์

  4. คุณแก้ไขทรัพยากรได้ด้วยคำสั่ง put ดังนี้

    coaps put test-resource con hellothere
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744
    

    ในตัวอย่างนี้ con หมายความว่าคุณต้องการให้ส่งข้อความที่เชื่อถือได้ ซึ่งได้มาโดยใช้ข้อความที่ยืนยันได้ (con) ไปยังเซิร์ฟเวอร์ CoAP ที่ปลอดภัย ค่าเริ่มต้นคือส่งข้อความที่ยืนยันไม่ได้ (non-con)

    สตริง hellothere เป็นตัวอย่างของการใช้พารามิเตอร์ payload ที่ไม่บังคับเมื่อ type เป็น con หรือ non-con ดูข้อมูลเพิ่มเติมได้ที่ coaps Put

    เซิร์ฟเวอร์จะตอบกลับด้วยที่อยู่ IPv6 เพื่อระบุว่ามีการจัดการคำขอแล้ว

การตอบกลับที่ส่งไปยังเซิร์ฟเวอร์ Secure CoAP

ในเซิร์ฟเวอร์ เอาต์พุตจากตัวอย่างนี้จะคล้ายกับตัวอย่างต่อไปนี้

coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 GET
coaps response sent
coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 PUT with payload: 68656c6c6f7468657265
coaps response sent

ค่า payload ของ 68656c6c6f7468657265 คือสตริง hellothere ที่แปลงเป็นลำดับไบต์โค้ด ASCII