วันเสาร์ที่ 19 กันยายน พ.ศ. 2552

วิเคราะห์ Packet ด้วย Wireshark-Part1


ในบทนี้เราจะมาเข้าสู่ส่วนการวิเคราะห์ Packet โดยเราจะใช้โปรแกรมยอดนิยมคือ WireShark ในการจับ Packet และทำการวิเคราะห์ Message ที่มีการส่งไปในระบบ ว่าหมายถึงอะไรและใช้ทำเพื่ออะไร โดยโปรโตคอลหลัก ที่สำคัญที่จะนำมาวิเคราะห์ในการทดลองของกลุ่มคือ SIP Protocol ซึ่งการวิเคราะห์นี้จะทำการอิงกับ RFC เพื่อความถูกต้องในการเผยแพร่ข้อมูล

โดยรายละเอียดของเครื่อง ที่ใช้ในส่วนของทดลองการ capture packet

รายละเอียดเครื่องที่ใช้ทำการทดสอบ

IP

Asterisk Server

192.168.9.1

Client1 หมายเลขโทรศัพท์ 2004

192.168.9.4

Client2 หมายเลขโทรศัพท์ 2002

192.168.9.5

  • REGISTER

โดย เราจะมาเริ่มกับสิ่งแรกของการใช้งาน VOIP คือ การลงทะเบียนใช้งาน(Register) กับทาง Asterisk Server
เราจะมาดู Packet ที่เราทำการจับโดยใช้ Wireshark กันก่อนดีกว่า
ซึ่งจากการทดลอง จะให้เครืองหมายเลข 2004(192.168.9.4) ทำการ Register ไปยัง Server(192.168.9.1)


ซึ่งจากที่จับมาได้เราสามารถนำมาเขียน Flow เพื่อให้ง่ายต่อการเข้าใจดังนี้


ต่อมาหลังจากที่ได้เห็น Call Flow ของการลงทะเบียนเข้าใช้งานแล้ว ก็จะมาทำการวิเคราะห์กันในเนื้อของ Message โดย ดูจาก Call Flow Diagram หรือ Wireshark ซึ่งจะมาอธิบายกันเป็นขั้นๆกัน

STEP1
:
จะทำการ Register ไปยัง Server โดยส่ง Request Message ที่มี method : Register ไปยัง Server 192.168.9.1

ในส่วนนี้จะเห็นว่า ใน SIP Protocol ส่วน Requst-Line : จะบอก Method ที่เรียกใช้คือ REGISTER โดยใช้ SIP Version 2.0 โดย Method นี้จะใช้เพื่อการขอยื่นยันตัวตนกับทาง Server
ในส่วนของ Header จะเป็นส่วนที่บอกรายละเอียดทั่วไปของการ Register เช่้น IP ของต้นทาง-ปลายทาง โปรโตคอลที่ใช้งาน(UDP) , โปรแกรมหรืออุปกรณ์ที Client ใช้งาน เป็นต้น
ซึ่งหลังจากใน ขั้นนี้ ถ้าเกิด Request Message ไม่มี ID ที่ทาง Server ได้ทำการ ลงทะเบียนไว้ให้ ทาง Server จะทำการตอบกลับมาให้ Client ด้วย Response Message : 404 Not Found
ซึ่งถ้า ID มีความถูกต้อง ทาง Server จะทำการตอบกลับด้วย Response Message : 100 Trying ซึ่งจะอธิบายใน Step 2


STEP2 : server ทำการตอบกลับมาด้วย SIP Response : Trying 100 เพื่อให้ Client รอการตอบสนองจาก Server

STEP3 :
server ทำการตอบกลับมายัง Client ด้วย Response Message : 401 unauthorized ซึ่งหมายความว่า ต้องการให้ client
ทำการส่งส่วน Authorized เพือยืนยันตัวตนในการขอเข้าใช้งานระบบ

STEP4 : Client ทำการส่ง Register Message กลับไปหา server อีกครั้ง โดยในครั้งนี้ในส่วนของ Header field จะมีส่วนของ Authorized Message ซึ่งจะมีส่วนของ Authenticate เพื่อยืนยันตัวตน กับทาง server ที่ได้มีการ config ไว้ที่ client ส่วน authentication จะทำการเพิ่มไปใน Message Header ของ SIP ดังรูป

STEP5 : เมื่อ Asterisk server ได้ทำการ รับ message register จาก client ก็จะทำการ ตรวจสอบ Authorized ว่า Authorized ที่ได้รับมาจาก Client ถูกต้องหรือไม่ โดยจะเกิดเหตุการณ์ได้สองประเภท
  • แต่ถ้า Authorized ไม่ถูกต้อง ทาง Server จะส่ง Response Message คือ 403 Forbidden(Bad Auth)
  • ถ้า Authorized ถูกต้อง ทาง server จะส่ง Response Message : คือ 200 OK ซึ่งเมื่อ server ตอบกลับมาด้วย 200 OK ทาง Client ก็พร้อมที่จะใช้งานในการโทรได้