Yahoo Messenger hiện nay là một chương trình chat khá phổ biến của người Việt Nam
cũng như trên thế giới. Theo thống kê thì có khoảng 248 triệu người đăng ký sử dụng
dịch vụ chat của Yahoo[2]. Ở Việt Nam thì Yahoo Messenger đã chiếm ưu thế hơn rất
nhiều so với các loại khác (Skype, GoogleTalk, AIM, Windows Live Messenger), mặc dù trên thế giới thì tỷ lệ khá cân bằng.
Mô hình của giao thức Yahoo theo kiểu Client – Server. Theo đó Client là chương
trình Yahoo Messenger chat bình thường người sử dụng hay chạy trên máy tính. Server là một số máy chủ của Yahoo. Khi đăng nhập Client gửi yêu cầu đến Server.
Server có quyền từ chối yêu cầu hoặc xác thực yêu cầu. Sau khi đã được Server chấp
nhận cho phép kết nối. Client sẽ lấy toàn bộ danh sách bạn bè, các tùy chọn cá nhân,
vv... từ Server. Không có một kết nối trực tiếp nào được mở khi một Client muốn kết
nối để trò chuyện với một Client khác (hai người trên hai máy tính, chạy hai chương
trình Yahoo Messenger, chát với nhau) thì, mọi kết nối đề thông qua Server[3]. Server sẽ đóng vài trò là người điều khiển cuộc trò chuyện này.
Giao thức của Yahoo Messenger là giao thức đóng. Chương trình chát Yahoo
Messenger là chương trình mã đóng (closed source) do vậy chúng tôi sẽ không nhận được bất cứ sự hỗ trợ nào của Yahoo. Mọi thông tin chúng tôi có ở dưới đây đều dựa
theo tài liệu tìm kiếm được trên internet và dựa vào việc bắt các gói tin của chương
trình Yahoo Messenger. Việc bắt gói tin tôi sử dụng chương trình WireShak[4]. Ban
đầu tôi sử dụng chương trình WireShark phiên bản cũ (phiên bản 0.99.0) đã có hỗ trợ
giao thức YMSG nhưng chưa đầy đủ, việc bắt gói tin và lọc gói tin gặp khá nhiều khó khăn. Tuy nhiên sang đến phiên bản mới (phiên bản hiện tại tôi đang sử dụng là phiên bản 1.0.7) việc lọc gói tin đã đơn giản hơn khá rất nhiều.
Khi thực hiện việc lọc gói tin thì giao thức hiện tại của Yahoo là giao thức phiên bản
15 (phù hợp với Client là Yahoo Messenger phiên bản 8.13). Trên mạng có một số
miêu tả về giao thức Yahoo phiên bản 9, mới nhất là phiên bản 12. Nhìn chung hai phiên bản có khá nhiều điểm khác biệt rõ rệt. Tuy nhiên vẫn có một số điểm chung (về
~ 16 ~
Hình 3. 1: Ảnh chụp màn hình chương trình Wireshark