บทนำ (Overview)
สืบเนื่องจากบทความ “How to sniff the passwords using Cain and Abel” นั้น มีเนื้อหาทางทฤษฎีเกี่ยวข้องกับช่องโหว่ของ “ARP protocol” ซึ่งนำไปสู่การวางยา “ARP poisoning” และโจมตีที่เรียกว่า “man-in-the-middle attacks” เราจึงนำเสนอหลักการของ โปรโตรคอล “ARP” แบบง่าย ๆ ดังต่อไปนี้
ARP (Address Resolution Protocol)
- ARP เป็นโปรโตคอล (TCP/IP Protocol) ที่ใช้ค้นหาว่าเครื่องที่มี “IP address” เช่น “192.168.0.12” มีหมายเลข “MAC address” คืออะไร เช่น “C4-17-FE-FF-FF-FF” เป็นต้น
- วิธีการค้นหา “MAC address” โดยใช้ “IP address” แสนธรรมดา ก็แหกปากถาม (ARP request) มันทุกเครื่องที่มีอยู่ในเครือข่ายนั้นแหละ (Broadcast packet)
- จากนั้นทุกเครื่องก็จะได้ยินข้อความสอบถาม จากเครื่องที่แหกปาก “เฮ๊ย!!! 192.168.0.12 นี้มันใครฟร่ะ”
- จาก นั้นแต่ละเครื่องจะเปรียบเทียบ “IP address” ของตนเองกับ “Destination: IP address” ถ้ามันตรงกันก็จะตอบกลับไปว่า “ข้อยเองแหละ!!!” (ARP reply)
เฮ๊ยย!! ไอพี 192.168.0.12 นี้มันใครฟร่ะ? (ARP Query and Reply)

- ก่อนจะติดต่อสื่อสารระหว่างเครื่อง A กับ เครื่อง B สมมติว่าเราเป็นเครื่อง A
- เครื่อง A จะอ่านหาข้อมูล “MAC address” ของ เครื่อง B ที่ “ARP table”
A 192.168.0.2 C4-17-FE-FF-FF-F5 C 192.168.0.3 C4-17-FE-FF-FF-F6
- “ARP table” ของเครื่อง A จะอยู่ที่เครื่อง A โดยจะถูกจดจำ เพิ่ม ลบ แก้ไข โดย “Operating System” เช่น “Windows” หรือ “Linux”
- ถ้าพบจะทำการสื่อสารได้เลย แต่ปัญหาคือถ้าไม่พบจำเป็นต้องถามทุกเครื่องตามที่กล่าวข้างต้น
- โดยทางเทคนิคข้อความในการแหกปากถามจะประกอบไปด้วย
- Source: MAC address = ของเราเอง (C4-17-FE-FF-FF-F5)
- Source: IP address = ของเราเอง (192.168.0.2)
- Destination: IP address = ของเป้าหมาย (192.168.0.12)
- ในความเป็นจริงนั้น แต่ละเครื่องจะเชื่อมผ่านอุปกรณ์ ที่เรียกว่า “Switch” หรือ “WiFi router” ที่เราใช้เชื่อมต่อ Internet นั้นแหละ และข้อความแหกปาก (Broadcast packet) จาก “IP address” ต้นทาง ก็จะผ่าน “Switch” แล้วค่อยส่งไป ทุกเครื่องที่อยู่ใต้เครือข่ายเดียวกัน
- เจาะ ลงไปอีก เมื่อข้อความแหกปาก (Broadcast packet) มาถึง “Switch” ตัว “Switch” จะทำการอ่าน “Source: MAC address” เพื่อเปรียบเทียบตารางในหน่วยความจำของ “Switch” ว่ามีหรือยัง? ถ้าไม่มี จะเพิ่มเข้าไป
- เพราะฉะนั้นข้อความแหกปาก (Broadcast packet) ก็จะผ่าน “Switch” และตัว “Switch” ก็เป็นคนกระจายข้อความแหกปากเสียเองด้วย
- เครื่อง B เมื่อทราบว่าเฮ๊ย !! 192.168.0.12 เป็นของเราแล้วก็จะจำ “IP” และ “MAC address” ของ A ใน “ARP table” เช่นกัน
B 192.168.0.12 C4-17-FE-FF-FF-F7 A 192.168.0.2 C4-17-FE-FF-FF-F5
- จากนั้นเครื่อง B ก็จะตอบกลับเครื่อง A เพียงเครื่องเดียวว่า ชั้นนี้แหละ 192.168.0.12 มีรัยฟร่ะ???
- Source: MAC address = ของเราเอง (C4-17-FE-FF-FF-F7)
- Source: IP address = ของเราเอง (192.168.0.12)
- ข้อความของ “ARP reply” ก็จะกลับมาที่ “Switch” และ และ “Switch” จะเพิ่มข้อมูลใน “ARP table” เพื่อใช้งานติดต่อสื่อสารต่อไป
- หลังจากนั้นจึงสามารถติดต่อสื่อสารกันได้