Python Forensics - นิติเครือข่าย

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

แนวคิดของการเขียนโปรแกรมเครือข่าย

คำจำกัดความต่อไปนี้ใช้ในการเขียนโปรแกรมเครือข่าย

  • Client - ไคลเอนต์เป็นส่วนหนึ่งของสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ของการเขียนโปรแกรมเครือข่ายซึ่งทำงานบนคอมพิวเตอร์ส่วนบุคคลและเวิร์กสเตชัน

  • Server - เซิร์ฟเวอร์เป็นส่วนหนึ่งของสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ที่ให้บริการโปรแกรมคอมพิวเตอร์อื่น ๆ ในคอมพิวเตอร์เครื่องเดียวกันหรือเครื่องอื่น

  • WebSockets- WebSockets มีโปรโตคอลระหว่างไคลเอนต์และเซิร์ฟเวอร์ซึ่งทำงานผ่านการเชื่อมต่อ TCP แบบต่อเนื่อง ด้วยวิธีนี้สามารถส่งข้อความสองทิศทางระหว่างการเชื่อมต่อซ็อกเก็ต TCP (พร้อมกัน)

WebSockets มาหลังจากเทคโนโลยีอื่น ๆ อีกมากมายที่อนุญาตให้เซิร์ฟเวอร์ส่งข้อมูลไปยังไคลเอนต์ นอกเหนือจากการจับมือกับส่วนหัวของการอัพเกรดแล้ว WebSockets ยังไม่แยกจาก HTTP

โปรโตคอลเหล่านี้ใช้เพื่อตรวจสอบความถูกต้องของข้อมูลที่ผู้ใช้บุคคลภายนอกส่งหรือรับ เนื่องจากการเข้ารหัสเป็นหนึ่งในวิธีการที่ใช้ในการรักษาความปลอดภัยของข้อความจึงเป็นสิ่งสำคัญเช่นกันที่จะต้องรักษาความปลอดภัยให้กับช่องสัญญาณที่มีการถ่ายโอนข้อความ

พิจารณาโปรแกรม Python ต่อไปนี้ซึ่งไคลเอนต์ใช้สำหรับ handshaking.

ตัวอย่าง

# client.py
import socket

# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# get local machine name
host = socket.gethostname()
port = 8080

# connection to hostname on the port.
s.connect((host, port))

# Receive no more than 1024 bytes
tm = s.recv(1024)
print("The client is waiting for connection")
s.close()

เอาต์พุต

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

เซิร์ฟเวอร์ที่ยอมรับคำขอช่องทางการสื่อสารจะรวมสคริปต์ต่อไปนี้

# server.py
import socket
import time

# create a socket object
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# get local machine name 
host = socket.gethostname()
port = 8080

# bind to the port
serversocket.bind((host, port))

# queue up to 5 requests 
serversocket.listen(5)

while True:
   # establish a connection 
   clientsocket,addr = serversocket.accept()
   print("Got a connection from %s" % str(addr))
   currentTime = time.ctime(time.time()) + "\r\n"
   clientsocket.send(currentTime.encode('ascii'))
   clientsocket.close()

ไคลเอนต์และเซิร์ฟเวอร์ที่สร้างขึ้นด้วยความช่วยเหลือของการเขียนโปรแกรม Python ฟังหมายเลขโฮสต์ ในขั้นต้นไคลเอ็นต์จะส่งคำขอไปยังเซิร์ฟเวอร์เกี่ยวกับข้อมูลที่ส่งในหมายเลขโฮสต์และเซิร์ฟเวอร์ยอมรับคำขอและส่งการตอบกลับทันที วิธีนี้จะทำให้เรามีช่องทางการสื่อสารที่ปลอดภัย