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

ดูแหล่งที่มาใน GitHub

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

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

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

คู่มือนี้อธิบายงานพื้นฐานที่ใช้คำสั่ง Secure CoAP (coaps) ที่ใช้กันโดยทั่วไปบางส่วน

คำสั่ง Secure 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

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

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

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

  1. เริ่มต้น Secure CoAP Agent

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

    coaps resource test-resource
    Done
    

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

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

  1. เริ่ม Secure CoAP Agent ด้วยคำสั่งต่อไปนี้

    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) เพื่อส่งไปยังเซิร์ฟเวอร์ Secure CoAP ค่าเริ่มต้นคือส่งข้อความที่ยืนยันไม่ได้ (non-con)

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

    เซิร์ฟเวอร์จะตอบกลับด้วยที่อยู่ 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