Dữ liệu lớp trên đóng gói bởi TLS/SSL

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp bảo mật thoại trên mạng Internet (Trang 77)

3.5.2. Bảo mật cho gói tin thoại/video SRTP

SRTP là giao thức phát triển hỗ trợ cho RTP để mã hóa, chứng thực bản tin, chống nghe lén. Nó nằm giữa lớp ứng dụng RTP và lớp vận chuyển RTP. SRTP cũng có SRTCP, hỗ trợ các chức năng bảo mật cho RTCP. SRTP mã hóa các gói thoại dùng AES, thuật toán mã hóa dùng khóa đối xứng và có khả năng nén RTP header. Phần tải RTP được mã hóa sau đó đóng gói vào trong gói SRTP.

Nhược điểm: mất thời gian xử lý hơn nên có thể tăng trễ.

Điều quan trọng nhất trong SRTP là sự an toàn của khóa trao đổi giữa hai bên bao gồm: địa chỉ IP, số port UDP, SSRC. Cài đặt khóa cho tất cả các máy điện thoại thì quá phức tạp, vì vậy RTP và SRTP nên ở chung một lớp hơn là hai lớp tách biệt.

MIKEY

Là một giải pháp quản lý khóa. Nó có ba cách vận chuyển và thiết lập khóa mã hóa TEK: preshared key, public key và DH (Diffie Hellman). Với preshared key, public key thì khóa được đưa tới người nhận một cách an toàn, còn với DH thì khóa được sinh ra dựa trên các giá trị trao đổi giữa hai bên.

SDP Security Descriptions

SDP Security Descriptions là thuộc tính mới của SDP, dùng để báo hiệu và thương lượng các thông số mã hóa cho luồng SRTP, gồm: bộ mật mã, thông số khóa, thông số phiên cho luồng unicast.

a=crypto: <tag> <crypto-suite> <key params> [<session-params>]

Trong đó:

<tag>: số thập phân, nhận dạng thuộc tính crypto <crypto - suit> thuật toán chứng thực và mã hóa <key-params> phương thức và thông tin khóa thực sự

<session-params > thông số tùy chọn chỉ giao thức vận chuyển

Thuộc tính này chỉ hạn chế cho các luồng unicast, các dịch vụ bên dưới của giao thức vận chuyển (IPsec, TLS, S/MIME) bảo đảm cho thuộc tính này của SRTP.

Ngoài TLS và SRTP còn phải có các thuật toán khác hỗ trợ chứng thực user, xác thực chứng chỉ, trao đổi khóa mã hóa.

3.5.3. Bảo đảm sự tin cậy

Sự tin cậy được bảo đảm bằng cách mã hóa tải mà chỉ có người có khóa mới đọc được. AES-CM Key Stream Generator Key Stream Block RTP playload cipher text RTP playload cipher text Plain text : 11011010100011 Key Stream : 10110001010000 Cipher text : 01101011110011 Key stream : 10110001010000 Plain text : 11011010100011 BU 128 bit 128 bit Initial value Key 128 bit Hình 3.12: Mã hóa trong SRTP

Giá trị khởi tạo ban đầu + khóa = 128 bit block Bi,j (giá trị khởi tạo ban đầu được tính bằng 48 bit chỉ số gói, 32 bit SSRC, 112 bit salting key dịch trái và XOR). Mỗi một block 128 bit này XOR với 1 block plaintext RTP để tạo ra 1 block cipher text.

Chứng thực bản tin

Toàn vẹn bản tin được đảm bảo nhờ hàm hash.

IP UDP RTP Media Payload Authen. tag

Hash Function Secret Key

Hình 3.13: Chứng thực gói SRTP

HMAC-SHA1 băm header và phần tải với khóa mật. Giá trị này là thẻ chứng thực của người gửi. Người nhận cũng tính toán tương tự và so sánh với thẻ, nếu không đúng thì chứng thực thất bại và gói bị bỏ.

3.5.4. Chống ghi lén

ROC và sliding window được dùng để chống ghi lén. 16 bit số thứ tự trong header và 32 bit ROC trong bảng mật mã tạo thành 48 bit, là chỉ số của gói. Chỉ số gói được mã hóa cùng với các thông số khác để tạo các chuỗi khóa.

N-2 YES N+64 NO N+63 NO N+1 YES N YES N-1 YES w Sliding Window RTP Packet

Sequence Number Received ?

Hình 3.14: Chống ghi lại bằng Sliding Window

Chỉ số gói nhận được phải nằm trong phạm vi của sliding window và bit Received tương ứng phải là thứ tự gói xử lý tiếp theo, nếu không gói sẽ bị hủy. Nếu kẻ tấn công chọn một số ngẫu nhiên, kích thước cửa số là 64 thì 99% (1-64/216) gói bị hủy.

3.5.5. Chứng thực bản tin

S/MIME mã hóa bằng khóa công khai, đóng gói theo định dạng MIME. Cung cấp các dịch vụ bảo mật cho các ứng dụng bản tin (HTTP, SIP) như: chứng thực, toàn vẹn bản tin, không chối cãi (nếu dùng chữ ký số), an toàn dữ liệu (do được mã hóa).

SIP gồm có header và phần bản tin SDP. Phần bản tin SDP được mã hóa bằng S/MIME, tuy nhiên các trường trong header như To, From, Call-ID, Cseq Contact là cần thiết đối với các thành phần trung gian như SIP proxy server, firewall, UAS để thiết lập một cuộc gọi được yêu cầu nên nó phải ở dạng plaintext.

Thông điệp Giá trị hàm băm Khóa phiên bất Giá trị hàm băm Khóa công cộng của Alice Khóa phiên 1. hàm băm 2. Mã hóa Khóa công cộng của Bob Bên gửi Bên nhận Khóa bí mật Thông điệp đã mã hóa Xác nhận của Alice Chữ ký đã đƣợc mã hóa Khóa bí mật Thông điệp đã mã hóa Xác nhận của Alice Chữ ký đã đƣợc mã hóa Thông điệp đã đƣợc ký Xác nhận của Alice Chữ ký Thông điệp đã đƣợc ký Xác nhận của Alice Chữ ký 6. Giả mã hóa 8. Kiểm tra 7. hàm băm

Khóa riêng của Bob 5. Giải mã 10. So sánh

9. Ký

4. Mã hóa

Hình 3.15: Quá trình gửi bản tin của S/MIME

Quá trình trao đổi khóa và bản tin giữa hai hệ thống:

 Bản tin gốc được băm bằng một thuật toán băm, nếu không có quá trình này thì sẽ mất nhiều thời gian xử lý hơn khi ký số vì bản tin quá dài.

 Alice ký bản tin được băm bằng thuật toán chữ ký số và đính chữ ký đó kèm theo bản tin gốc.

 Một session key được sinh ra ngẫu nhiên để mã hóa bản tin, chứng chỉ và chữ ký bằng một thuật toán mã hóa.

 Key session được mã hóa bằng public key của Bob dùng thuật toán mã hóa public key, rồi đính kèm bản tin đã được mã hóa.

 Phía bên nhận, dùng private key của Bob và cùng thuật toán mã hóa để giải mã ra session key.

 Bob kiểm tra xem bản tin có phải gửi từ Alice không và nó có bị thay đổi khi truyền không bằng cách:

- Dùng thuật toán băm như bước 1

- Bob xác nhận chứng chỉ của Alice là hợp lệ

- Dùng thuật toán trong bước 2, giá trị băm được ký bởi public key của Alice. - Chữ ký được so sánh với chữ ký nhận được, nếu không đúng thì bản tin đã bị

can thiệp.

3.6. Kết luận

Bảo mật luôn là một vấn đề được rất nhiều người quan tâm, đặc biệt trong lĩnh vực công nghệ thông tin, bảo mật thoại cũng không nằm ngoài quy luật đó. Có nhiều phương pháp bảo bảo mật, nhưng lựa chọn một phương pháp bảo mật hợp lý và hiệu quả cho từng trường hợp mới là vấn đề quan trọng.

Trong chương này, tôi đã đưa ra một số giải pháp cho vấn đề bảo mật thoại qua mạng internet:

- Bảo mật bằng biện pháp hành chính - Bảo mật các thiết bị phần cứng - Bảo mật bằng các phần mềm.

CHƢƠNG 4: XÂY DỰNG ỨNG DỤNG

Ngày nay, việc trao đổi thoại trên mạng IP ngày càng trở lên phổ biến, đã có rất nhiều phần mềm được xây dựng nhằm đáp ứng nhu cầu đó của người dùng như: Yahoo, Skype với rất nhiều tính năng nổi trội. Trong chương xây dựng ứng dụng này, tôi xây dựng hai modul quan trọng trong việc ứng dụng bảo mật VoIP.

Như đã giới thiệu ở chương 1, quá trình hoạt động của hệ thống VoIP được bắt đầu bằng việc số hóa các âm thanh từ người gọi, tiếp theo là sử dụng các thuật toán nén và mã hóa để nén và mã hóa các tín hiệu âm thanh này, sau đó các khối dữ liệu đã mã hóa sẽ được đóng gói và truyền đi. Tại nơi nhận, các gói tín hiệu truyền tới sẽ được người nhận giải mã và giả nén để thu được tín hiệu tương ứng với tín hiệu ban đầu. Vì vậy đối với một ứng dụng bảo mật VoIP có thể được chia ra thành các modul nhỏ như sau:

 Modul 1: Thiết lập kết nối giữa các máy  Modul 2: Nén, giải nén các tín hiệu âm thanh  Modul 3: Mã hóa, giải mã dữ liệu

 Modul 4: Truyền nhận các tín hiệu âm thanh.

4.1. Mô tả bài toán thực tế

Xây dựng một hệ thống truyền thông giao tiếp trực tiếp sử dụng máy tính giữa nhiều người dùng: cá nhân, các tổ chức, công ty hoạt động phân tán tại nhiều vị trí địa lý khác nhau, sử dụng cơ sở hạ tầng mạng như mạng cục bộ, hoặc internet. Phương thức giao tiếp chủ yếu là thoại.

4.2. Xác định các yêu cầu

4.2.1. Các chức năng chính của Server và Client

Các chức năng của Server:

- Quản lý việc đăng ký thành viên - Quản lý thông tin user

- Xác thực người dùng và tình trạng người dùng

- Tiếp nhận và kết nối các client trong hệ thống với nhau

Các chức năng của Client:

- Đăng nhập hệ thống

- Thay đổi thông tin của User

Hình 4.1. Mô hình cài đặt hệ thống VoIP kiểu PC to PC

Mô tả hệ thống:

Đối với Client

- PC1 và PC2 đăng ký tài khoản người dùng với máy chủ - Gửi yêu cầu kết nối

- Kết nối và hội thoại

Đối với Server

- Máy chủ xác nhận tài khoản người dùng

- Khi nhận được yêu cầu kết nối của PC1 (PC2), máy chủ kiểm tra xem tình trạng của máy PC2 (PC1) đang dỗi hay bận

- Nếu PC2 (PC1) dỗi, máy chủ gửi tín hiệu báo cho PC1 (PC2) và cho phép hai máy kết nối.

4.2.2. Sơ đồ chức năng hệ thống

4.2.2.1. Sơ đồ chức năng đăng nhập, xác định trạng thái user

Mô tả: Client gởi các thông tin về account của mình cho server để server xác thực các thông tin về client. Nếu đúng, server gửi trả client xác thực đúng và cho phép thực hiện kết nối. Nếu không đúng, server gởi thông điệp bằng lời thoại, buộc client đăng nhập lại nếu muốn vào hệ thống.

client Đăng nhập Các thông tin về user đăng nhập Server xử lý Xác thực user Đăng nhập lại Đ S

4.2.2.2. Sơ đồ chức năng thay đổi thông tin của user

Mô tả: Trong trường hợp client muốn thay đổi các thông tin liên quan, client này gửi các thông tin cần thay đổi tới server, server sẽ cập nhật các thông tin này vào cơ sở dữ liệu. Nếu cập nhật thành công, server sẽ báo cho client biết thông tin đã được thay đổi. Nếu cập nhật không thành công, sẽ báo cho client biết và client thoát khỏi hệ thống.

Đ Lưu?

client

Xem thông tin về usse

Server xử lý

Lưu? S Đăng nhập lại

Thay đổi các thông tin

Cập nhật thông tin về user

4.2.2.3. Chức năng thực hiện cuộc gọi đến một client khác đang online

Mô tả: client 1 (M1)yêu cầu server cho biết địa chỉ của client 2 (M2) để thực hiện cuộc gọi đến M2. Nếu M2 đang online server sẽ trả về cho M1 địa chỉ IP của M2, M2 sẽ sử dụng IP này để thực hiện cuộc gọi. Nếu M2 không online server gửi thông báo bằng thoại cho M1 rằng M2 không online yêu cầu gọi lại sau.

Client 2

Các dòng âm thanh gởi đi

Client 1

Yêu cầu server cho

biết IP của client 2 Server xử lý

Online?

Thông báo offline IP của client2 Đ

4.3. Chƣơng trình mã hóa sử dụng thuật toán AES

4.4. Chƣơng trình X-lite.

Phần này giới thiệu một chương trình truyền thoại thực tế X-lite chưa được tích hợp giải thuật mã hóa.

Để triển khai được mô hình này cần: mạng Lan, hai máy tính, máy một cài đặt tổng đài 3CX (có chức năng của một SIP Server) và cài đặt phần mềm softphone X- lite (có chức năng như một client), máy hai cài đặt phần mềm softphone X- lite (có chức năng như một client).

Hình 4.1: Màn hình đăng nhập tổng đài IP PBX

Hình 4.3: Giao diện phần mềm softphone X-lite

Trong phần mềm softphone X- lite ta thực hiện thiết lập tài khoản người dùng, bằng cách nhập User name và Password như đã đăng ký ban đầu.

Hình 4.4: Thiết lập tài khoản ngƣời dùng

Để thực hiện cuộc gọi

- Bước 1: Chọn line (1 hoặc 2)

- Bước 2: Nhập số máy đã đăng ký

- Bước 3: Chọn biểu tượng call

Sau khi bên gọi được chấp nhận cuộc gọi, trạng thái sẽ chuyển sang chế độ active và tín hiệu thoại được truyền trên các máy được kết nối một cách liên tục cho đến khi ta chọn biểu tượng ngắt kết nối.

Hình 4.6: Trạng thái truyền cuộc gọi

4.5. Chƣơng trình VoIP

Trong phần này, tôi xây dựng một phần mềm VoIP đã được tích hợp thuật toán nén CELP và thuật toán mã hóa AES bao gồm các chức năng:

 Đăng nhập hệ thống

 Thiết lập tài khoản cuộc gọi  Tạo kết nối

 Kết nối thành công

Với các yêu cầu về phần cứng và quy trình đăng nhập tổng đài 3CX là tương tự như đối với phần mềm X-lite.

Hình 4.7: Thiết lập tài khoản ngƣời dùng

Sau khi một tài khoản đã được đăng kí tại tổng đài SIP server thì trạng thái sẽ là 200 (sẵn sàng để thiết lập cuộc gọi).

Hình 4.8: Giao diện chƣơng trình

Để thiết lập kết nối, nhập số mở rộng của máy tính muốn liên lạc và nhấn vào biểu tượng Call. Hệ thống sẽ cố gắng để thiết lập kết nối, nếu gặp lỗi hệ thống sẽ báo lỗi, nếu thành công trạng thái sẽ chuyển sang Alerting.

Sau khi có tín hiệu chấp nhận từ bên gọi, trạng thái cuộc gọi chuyển sang Active, tín hiệu được truyền đến máy đã kết nối. Tín hiệu âm thanh sẽ được truyền liên tục cho tới khi một trong hai bên muốn ngắt kết nối.

Hình 4.9: Quá trình tạo kết nối thành công

Hình 4.12. Thoại có bảo mật

4.6. Khối mã hóa và giải mã AES

Các định nghĩa đƣợc sử dụng việc mã hóa và giải mã

#define NDEBUG #include <assert.h> typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8;

#define MAXKC (256/32) #define MAXKB (256/8) #define MAXNR 14 #ifndef AES_ASM #ifdef FULL_UNROLL

Các modul sử dụng trong quá trình mã hóa và giải mã

o Tạo lập khóa mã hóa

int AES_set_encrypt_key(const unsigned char *userKey, const int bits,AES_KEY *key)

o Tạo khóa giải mã

int AES_set_decrypt_key(const unsigned char *userKey, const int bits,AES_KEY *key)

o Xây dựng hàm mã hóa

void AES_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key)

o Xây dựng hàm giải mã

void AES_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key)

o Mã hóa dữ liệu

void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, const unsigned long length, const AES_KEY *key, unsigned char *ivec, const int enc)

4.7. Khối nén và giải nén âm thanh CELP

Các thƣ viện đƣợc định nghĩa trong trong thuật toán CELP

#define prototyp_h #define common_h #define qsize_h #define parm_h

Một số hàm quan trọng đƣợc xây dựng trong thuật toán CELP

extern int close(); extern int fclose(); extern int fprintf(); extern int fscanf(); extern int open(); extern int printf(); extern int printf(); extern int read(); extern int sscanf(); extern int write(); void init_encoder(); void encoder();

void encode_vector(int); void adapt_frame();

extern real PSF_LPC_MEM a10[]; void adapt_coder();

4.7. Kết luận

Trong chương này, trên cơ sở là chương trình truyền thoại X-lite chưa được bảo mật, tôi đã xây dựng được ứng dụng truyền thoại có tích hợp giải thuật nén thoại và mã hóa tín hiệu VoIP, với các chức năng tương tự.

KẾT LUẬN

Như chúng ta đã biết, hiện nay nhu cầu trao đổi thông tin là vô cùng to lớn, với ưu điểm là nhanh, chính xác, tiện dụng,… truyền thoại, đang là một trong những phương thức truyền thông phổ biến nhất, cùng với những ưu điểm đó của truyền thoại truyền thống truyền thoại trên nền IP với ưu thế vượt trội về giảm giá thành cũng đã và ngày càng phát triển lớn mạnh. Vì thế đảm bảo tính bí mật của thông tin trong quá trình truyền thông là vấn đề được nhiểu người quan tâm hơn bao giờ hết.

Với yêu cầu đặt ra ban đầu của đề tài: “Nghiên cứu giải pháp bảo mật thoại trên mạng internet”, tác giả đã tiến hành nghiên cứu về công nghệ VoIP và nhận thấy rằng: ở

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp bảo mật thoại trên mạng Internet (Trang 77)

Tải bản đầy đủ (PDF)

(118 trang)