Python Forensics - Pháp y mạng

Kịch bản của môi trường mạng hiện đại là việc điều tra có thể trở nên khó khăn do một số khó khăn. Điều này có thể xảy ra cho dù bạn đang phản hồi hỗ trợ vi phạm, điều tra các hoạt động nội bộ, thực hiện đánh giá liên quan đến lỗ hổng bảo mật hay xác thực việc tuân thủ quy định.

Khái niệm về lập trình mạng

Các định nghĩa sau đây được sử dụng trong lập trình mạng.

  • Client - Máy khách là một phần của kiến ​​trúc máy khách-máy chủ của lập trình mạng chạy trên máy tính cá nhân và máy trạm.

  • Server - Máy chủ là một phần của kiến ​​trúc máy khách-máy chủ cung cấp dịch vụ cho các chương trình máy tính khác trong cùng một máy tính hoặc các máy tính khác.

  • WebSockets- WebSockets cung cấp một giao thức giữa máy khách và máy chủ, giao thức này chạy qua kết nối TCP liên tục. Thông qua đó, các thông điệp hai chiều có thể được gửi giữa kết nối TCP socket (đồng thời).

WebSockets ra đời sau nhiều công nghệ khác cho phép máy chủ gửi thông tin đến máy khách. Ngoài việc bắt tay với Upgrade Header, WebSockets độc lập với HTTP.

Các giao thức này được sử dụng để xác thực thông tin được gửi hoặc nhận bởi người dùng bên thứ ba. Vì mã hóa là một trong những phương pháp được sử dụng để bảo mật thông điệp, nên điều quan trọng là phải bảo mật kênh mà thông điệp đã được chuyển qua.

Hãy xem xét chương trình Python sau, chương trình mà khách hàng sử dụng cho handshaking.

Thí dụ

# 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()

Đầu ra

Nó sẽ tạo ra kết quả sau:

Máy chủ chấp nhận yêu cầu kênh liên lạc sẽ bao gồm tập lệnh sau.

# 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()

Máy khách và máy chủ được tạo với sự trợ giúp của lập trình Python lắng nghe số máy chủ. Ban đầu, máy khách gửi một yêu cầu đến máy chủ liên quan đến dữ liệu được gửi trong số máy chủ và máy chủ chấp nhận yêu cầu và gửi phản hồi ngay lập tức. Bằng cách này, chúng ta có thể có một kênh liên lạc an toàn.