Giao thức RFB (remote framebuffer) là giao thức mà RealVNC sử dụng trong việc truyền nhận dữ liệu. Giao thức RFB (remote framebuffer) là một giao thức truy cập từ xa cho phép hiển thị dưới dạng giao diện người dùng. RFB cĩ thể xây dựng trên tất cả các hệ thống Window và các ứng dụng khác như: X11, Windows 3.1/95/98/NT và hệ máy Macintos.
RFB là một giao thức đơn giản bởi vì chúng thiết kế gọn nhẹ, khơng địi hỏi cấu hình của client. Do đĩ, các client của RFB cĩ thể chạy trên hầu hết các loại phần cứng, và các chức năng được thiết kế tối ưu đến mức cĩ thể.
5.4.1 Các thơng điệp khởi động:
ProtocolVersion
Handshaking bắt đầu khi server gửi một thơng điệp đến ProtocolVersionđến client. Thơng điệp này cho biết phiên bản RFB cuối nào mà Server hỗ trợ. Sau đĩ, Client cũng sẽ gửi lại một thơng điệp tương tự để thơng báo cho server biết phiên bản RFB mà nĩ sử dụng. Cả Client và Server đều cĩ khả năng tương thích ngược với một sơ phiên bản RFB. Trong một số trường hợp, Server cịn cĩ khả năng tương thích với các phiên bản phía sau. Ví dụ như nếu client sử dụng phiên bản RFB 3.1 cịn Server sử dụng 3.0 thì server sẽ bỏ qua những đoạn yêu cầu mã hố mà nĩ khơng “hiểu”. Thơng điệp ProtocolVersion bao gồm 12 byte được biểu diễn dưới dạng chuỗi ASCII, chúng cĩ dạng chung là “RFB xxx.yyy\n” trong đĩ xxx, yyy đại diện cho phiên bản. Ví dụ phiên bản 3.3 cĩ thơng điệp ProtocolVersion như
sau:"RFB 003.003\n" (hex 52 46 42 20 30 30 33 2e 30 30 33 0a)”
Xác thực
Một khi phiên bản RFB (ProtocolVersion) được xác nhận, server sẽ gửi một kí tự chỉđịnh kiểu xác thực được sử dụng cho kết nối. Ta cĩ bảng giá trị sau:
KHOA CNTT –
ĐH KHTN
122 • Connection failed: Vì một số lý do mà kết nối khơng thành cơng server sẽ
gửi một thơng điệp reason-string tới client, sau đĩ tự huỷ kết nối. Thơng
điệp cĩ dạng như sau:
• No authentication: đây là trường hợp khơng cần xác thực. Giao thức được tiếp tục với thơng điệp ClientInitialisation.
• VNC authentication: xác thực VNC được sử dụng. Server gửi thơng điệp
Challenge 16 byte cho client. Client sử dụng mật khẩu do người dùng cung cấp là khố cho DES mã hố thơng điệp trên. Sau đĩ gửi trả lại cho Server (thơng điệp vẫn giữ nguyên kích thước 12 byte). Nếu Server nhận được thơng điệp response thì server sẽ gửi một kí tựđến client báo quá trình xác thực hồn tất. Kí tự cĩ nội dung như sau:
Nếu giá trị của kí tự là 0 thì giao thức được tiếp tục với ClientInitialisation, nếu giá trị là 1 thì server đĩng kết nối. Nếu xác thực nhiều lần khơng thành cơng, server sẽ gửi giá trị 2 (too-many), server sẽ từ chối kết nối với client trong lần sau.
ClientInitialisation
Sau khi xác thực thành cơng, client sẽ gửi đến server thơng điệp Initialisation:
Khi Client yêu cầu Server khơng chia sẻ thơng tin với các máy khác, tức là chỉ
cho phục vụ cho chính client đĩ, Shared-flag mang giá trị 0. Trường hợp cịn lại thì
KHOA CNTT –
ĐH KHTN
123
ServerInitialisation
Nhận được thơng điệp ClientInitialisation, Server sẽ gửi thơng điệp
SeverInitialisationđến client. Nội dung thơng điệp bao gồm:
Trong đĩ PIXEL_FORMAT bao gồm các giá trị:
Server-pixel-format đặc tảđiểm ảnh mặc định của Server. Server-pixel-format
được sử dụng nếu client khơng gửi thơng tin SetPixelFormat cho server.
5.4.2 Những thơng điệp từ Client đến Server
SetPixelFormat
Thơng tin này được gửi trong thơng điệp FramebufferUpdate dùng đểđịnh lại giá trị của điểm ảnh. Nếu Client khơng gửi thơng điệp SetPixelFormat thì server sẽ
KHOA CNTT –
ĐH KHTN
124 trong đĩ PIXEL_FORMAT bao gồm các trường sau:
FixColourMapEntry
Thơng điệp này hồn tồn khơng tồn tại. Đây chỉ là một dạng trong tập các thơng điệp.
SetEncodings
Đây là thơng điệp định lại dạng mã hố của dữ liệu ảnh gửi từ Server. Yêu cầu của thơng điệp này được Server xem như lời gợi ý, Server cĩ thể thực hiện hoặc cũng cĩ thể khơng thực hiện. Thơng điệp này cĩ định dạng như sau:
KHOA CNTT –
ĐH KHTN
125
FrameBufferUpdateRequest:
Thơng điệp này thơng báo tới Server vùng framebuffer mà client cần cập nhật. Vùng này được giới hạn trong vị trí x, vị trí y, width và height. Để trả lời cho thơng điệp này, server gửi đến FrameBufferUpdate cho client. Thơng thường thì thơng điệp FrameBufferUpdate cĩ thể gửi một lúc cho nhiều client.
Thơng thường thì Server cho rằng client luơn cĩ các framebuffer cần thiết, server chỉ cần gửi frame mới cập nhật cho client. Tuy nhiên trong một số trường hợp, nếu client muốn server gửi lại thơng tin về framebuffer nào đĩ thì client chỉ
việc gửi thơng điệp FramebufferUpdateRequest với trường incremental được đặt bằng 0 (false). Ngược lại, nếu thơng điệp FramebufferUpdateRequest với trường
incremental được đặt khác 0 (true) thì server chỉ gửi framebuffer cho những vùng mới được cập nhật. Các trường của FramebufferUpdateRequest bao gồm:
KHOA CNTT –
ĐH KHTN
126
KeyEvent
Thơng điệp được thực hiện khi cĩ sự kiện nhấn phím. Trường Down-flag bằng khác 0 (true) khi một phím được nhấn, bằng 0 (false) khi thả phím ra. Trường key
được xác định theo keysym. Tuỳ theo hệ điều hành mà keysym cĩ các giá trị khác nhau, nhưng thơng thường key được định giá trị mã ASCII.
PointerEvent
Là thơng điệp mơ tả sự kiện di chuyển, nhấn và thả chuột. Hai trường x- position, y-position cho biết vị trí của chuột hiện tại, trường button-mask mơ tả
trạng thái của pointer.
5.4.3 Các thơng điệp từ Server đến Client
FrameBufferUpdate:
Thơng điệp này bao gồm một chuỗi các dữ liệu ảnh mà các client cần thêm vào trong framebuffer. Đây là thơng điệp trả về của thơng điệp
FrameBufferUpdate-Request gởi từ client.
Number-of-rectangles cho biết số tập dữ liệu điểm ảnh của thơng điệp. Mỗi tập bao gồm:
KHOA CNTT –
ĐH KHTN
127
SetColourMapEntries
Khi một điểm ảnh cĩ sử dụng “colour map” , thơng điệp cho biết giá trị RGB của mỗi điểm ảnh.
Trường number-of-colours được định dạng như sau:
Bell
KHOA CNTT –
ĐH KHTN
128
5.5 Phân tích-Thiểt kế
Do chương trình dựa trên mã nguồn mở của RealVNC(mọi thơng tin về thiết kế liên lạc http://www.seas.upenn.edu ) nên trong phần này chúng em chỉ đưa ra những vấn đề liên quan đến các phân tích thiết kế bảo mật của “AG VNC Viewer”.
5.5.1 Các hoạt động bảo mật chính Các hoạt động chính của server
Hình 5-1: Sơđồ trạng thái của Server
STT Tên Loại Ý nghĩa
1 Waiting for connecting trạng
thái
Sau khi khởi động thì server luơn ở
trạng thái chờ một client nào đĩ kết nối
2 Send Challenge Text hoạt
động
Khi cĩ sự xuất hiện của một client nào đĩ thì Server gửi cho client một
đoạn text cho client
3 Waiting for relying trạng
thái
Server chờ client gửi tới đoạn text cần phải mã hố
4 Decrypt, Compare key and
send result hoạt động Server so sánh đoạn mã mà client cần phải mã hố và thơng báo kết quả
5 Encrypt, send and receive data
trạng thái
Quá trình liên lạc giữa server với client luơn luơn cĩ sự mã hố.
KHOA CNTT – ĐH KHTN 129 Các hoạt động chính của client Hình 5-2: Sơđồ trạng thái của Client STT Tên Loại Ý nghĩa 1 Connect to Server trạng thái
Client kết nối vào Server
2 Waiting for Relying hoạt
động
Trạng thái đợi chuyển thơng điệp challenge text
3 EnCrypt and Send
Challenge text
trạng thái
Mã hĩa và gửi thơng điệp challenge text và gửi cho Server.
4 Encrypt, send and receive data
hoạt
động
Quá trình liên lạc giữa client với server luơn luơn cĩ sự mã hố.
5.5.2 Các thiết kế xử lý chính
Quá trình truyền và nhận dữ liệu của cả client và server
KHOA CNTT –
ĐH KHTN
130
Quá trình tiếp nhận kết nối từ client của Server
Hình 5-4: Sequence tiếp nhận kết nối từ client của Server
Quá trình tiếp nhận kết nối từ Server của Client
Client : User Client : Connection Server : Connection Server : AES //Connect to server
//Signal //Send Challenge Text
//Receive Encrypted data
//Encrypt challenge text
KHOA CNTT –
ĐH KHTN
131
5.5.3 Thiết kế giao diện
Các giao diện của Server
¾Màn hình About
Hình 5-6: Màn hình About
¾Màn hình Properties
KHOA CNTT –
ĐH KHTN
132
Các giao diện của Client
¾Màn hình About
Hình 5-8: Màn hình About trên Pocket PC
¾Màn hình Authentication
Hình 5-9: Màn hình Authentication trên Pocket PC
¾Màn hình Properties
KHOA CNTT –
ĐH KHTN
133
¾Màn hình chính trên Pocket PC
KHOA CNTT –
ĐH KHTN
134
Chương 6 Tổng kết
6.1 Kết luận
Dựa trên cơ sở tìm hiểu về mạng khơng dây, chúng em bước đầu nắm rõ về các chuẩn, cách thức giao tiếp, cấu trúc mạng khơng dây, đặc biệt là Wireless LAN - IEEE 802.11. Sử dụng Wireless cĩ thể giúp các nước đang phát triển cĩ bước đi
đĩn đầu trong tương lai, nĩ sẽ giúp các quốc gia tiến được những bước dài về cơng nghệ và hạ tầng viễn thơng cũng như tạo ra cho mọi người khả năng sử dụng các dịch vụ viễn thơng một cách thuận lợi và ít tốn kém nhất.
Song song với tìm hiểu lý thuyết, chúng em cịn xây dựng được một số ứng dụng cho phép điều khiển, quan sát, liên lạc thơng tin giữa các máy tính, thiết bị.
Đặc biệt là ứng dụng “AGRemoteDesktop” điều khiển các thiết bị khác cho phép người dùng mở rộng các chức năng dưới dạng Plugin (tự tạo các tác vụ của chính mình). Ứng dụng “AGMessenger” là ứng dụng chat cĩ giao diện thân thiện với khả năng kết nối dưới dạng client-server cho phép nhiều client giao tiếp đồng thời.
Ứng dụng “AG VNC Viewer” điều khiển máy tính dựa trên mơ hình mạng Client và Server cho phép hỗ trợ bảo mật cao với AES.
Tuy vậy, các ứng dụng trên vẫn cĩ một số khiếm khuyết. Cũng như những hạn chế của Wireless LAN, ứng dụng cĩ thể khơng an tồn, mất thơng tin do bảo mật kém hoặc nhiễu sĩng do sử dụng các thiết bị cùng tần số.
6.2 Hướng phát triển
Đối với ứng dụng “AGMessenger”, chúng ta cịn cĩ thể phát triển thêm các tính năng như truyền nhân dữ liệu dạng văn bản (mail), âm thanh (Voice Chat), hình ảnh (WebCam). Ngồi ra, liên kết với Internet là điều mà “AGMessenger” muốn hướng
KHOA CNTT –
ĐH KHTN
135
Ứng dụng “AGRemoteDesktop” cịn cĩ thể phát triển bằng cách xây dựng bộ
thư viện điều khiển cho Window hoặc các thiết bị khác. Việc truyền và nhận hình
KHOA CNTT –
ĐH KHTN
136
Phụ lục A - Các từ viết tắt
ACK Acknowledgment Xác nhận
AID association identifier Bộ nhận dạng kết hợp
AP access point Điểm truy nhập
ATIM announcement traffic indication
message
Bản tin thơng báo lưu lượng
BPSK Binary phase shift keying Điều chế dịch pha nhị phân
BSA basic service area Vùng dịch vụ cơ sở
BSS basic service set Bộ dịch vụ cơ bản
BSSID basic service set identification Nhận dạng BSS
CCA clear channel assessment Giám sát kênh rỗi
CCK complementary code keying Khố mã bổ sung
CCITT International Telegraph and
Telephone Consultative Committee
Uỷ ban tư vấn quốc tế vềđiện thoại và điện báo
CF contention free Khơng bị tranh chấp
CFP contention-free period Giai đoạn khơng tranh chấp
CID connection identifier Nhận biết kết nối
C-MPDU coded MPDU Mã MPDU
CP contention period Thời gian tranh chấp
CRC cyclic redundancy code Mã dư vịng
CS Carrier sense Nhận biết sĩng mang
CTS Clear to send Xĩa nhận dạng
CW Contention window Khoảng tranh chấp
DA Destination address Địa chỉđầu cuối
DBPSK Differential binary phase shift
keying
Điều chế dịch pha nhị phân tương đối
DCE Data communication equipment Thiết bị truyền thơng dữ liệu
DCF Distributed coordination function Chức năng điều phối phân bố
DCLA Direct Current Level Adjustment Chỉnh mức dịng trực tiếp
KHOA CNTT –
ĐH KHTN
137
function) interframe space cho chức năng phân bố
DLL data link layer Lớp liên kết dữ liệu
Dp Desensitization độ cảm biến
DQPSK Differential quadrature phase shift
keying
Điều chế pha vi sai 4 vị trí
DS Distribution system Hệ thống phân phối
DSAP Destination service access point Điểm truy cập dịch vụđầu cuối
DSM Distribution system medium Mơi trường hệ thống phân phối
DSS Distribution system service Dịch vụ hệ thống phân phối
DSSS Direct sequence spread spectrum Trải phổ trực tiếp DSSS-
OFDM
using DSSS-OFDM modulation Sử dụng điều chế DSSS - OFDM
DTIM Delivery traffic indication
message
Bản tin chỉ thị lưu lượng
ED Energy detection Hoạt động dị tìm
EHCC Extended hyperbolic congruence
codes
Mã hyperbolic phù hợp mở rộng
EIFS Extended interframe space Bít trống mở rộng
EIRP Equivalent isotropically radiated
power
Bức xạđẳng hướng đồng đều
ERP extended rate PHYs Mở rộng tốc độ lớp PHY
ERP-DSSS using DSSS modulation sử dụng điều chế DSSS
ERP-DSSS/ CCK
using DSSS or CCK modulation sử dụng điều chế DSSS hay CCK
ERP- OFDM
using OFDM modulation sử dụng điều chế OFDM
ERP-PBCC using extended rate PBCC modulation
sử dụng điều chế PBCC mở rộng tốc độ
ERS Extended rate set Đặt tốc độ mở rộng
ESA Extended service area Vùng dịch vụ mở rộng
ESS Extended service set Cài đặt dịch vụ mở rộng
ETSI Euro Telecomunication Standard
Institute
Viện tiêu chuẩn viễn thơng Châu Âu
KHOA CNTT –
ĐH KHTN
138
EVM error vector magnitude Cường độ vector lỗi
FC Frame control Kiểm sốt khung
FCC Federal Communications
Commission
Uỷ ban truyền thơng liên bang
Mỹ
FCS Frame check sequence Kiểm tra khung tuần tự
FER Frame error ratio Tỉ lệ lỗi khung
FFT Fast Fourier Transform Biến đổi fourier nhanh
FH Frequency hopping Nhảy tần
FHSS Frequency-hopping spread
spectrum
Trải phổ nhảy tần
FIFO First in first out Vào trước ra trước
GFSK Gaussian frequency Điều chế dịch tần Gaussian
GI guard interval Khoảng thời gian đảm bảo
HCC Hyperbolic congruence codes Mã hyperbolic phù hợp
HR/DSSS High Rate direct sequence spread
spectrum using the Long Preamble and header
Trải phổ trực tiếp tốc độ cao sử
dụng mào đầu và phần đầu dài HR/DSSS/
PBCC High Rate direct sequence spread spectrum using the optional packet binary convolutional
Trải phổ trực tiếp tốc độ cao sử
dụng lựa chọn cuộn gĩi tin nhị
phân HR/DSSS/
PBCC/short High Rate direct sequence spread spectrum using the optional packet binary convolutional
Trải phổ trực tiếp tốc độ cao sử
dụng lựa chọn cuộn gĩi tin nhị
phân ngắn HR/DSSS/
short High Rate direct sequence spread spectrum using the optional Short Preamble
Trải phổ trực tiếp tốc độ cao sử
dụng lựa chọn preamble ngắn IBSS independent basic service set Cài đặt dịch vụ cơ bản độc lập
ICV integrity check value Giá trị kiểm tra tồn bộ
IDU Interface data unit Đơn vị dữ liệu giao tiếp
IFFT inverse Fast Fourier Transform Biến đổi fourier đảo ngược
nhanh
IFS interframe space Khoảng cách liên khung
IMp intermodulation protection Bảo vệđiều biến qua lại
KHOA CNTT –
ĐH KHTN
139
ISM industrial, scientific, and medical Băng tần dành cho Cơng nghiệp,
khoa học và y học
IV initialization vector Véctơ khởi tạo
LAN local area network Mạng nội bộ
LLC logical link control Điều khiển tuyến logic
LME layer management entity Thực thể quản lý lớp
LRC long retry count Việc thử dài
lsb least significant bit Bit cĩ trọng số nhỏ nhất
NLOS Non line of sight Hướng truyền khơng thẳng
MAC medium access control Điều khiển truy cập mơi trường
MAN Metro Area Network Mạng đơ thị
MDF management-defined field Trường quản lý định nghĩa
MIB management information base Cơ sở quản lý thơng tin
MLME MAC sublayer management entity Thực thể quản lý lớp con MAC
MMPDU MACmanagement protocol data
unit
Đơn vị dữ liệu về giao thức quản lý MAC
MPDU MAC protocol data unit Đơn vị dữ liệu giao thức lớp
MAC
msb most significant bit Bit cĩ trọng số lớn nhất
MSDU MAC service data unit Đơn vị dữ liệu dịch vụ lớp MAC