Luận văn Giao thức bảo mật h.235 sử dụng trong hệ thống voip

Tài liệu Luận văn Giao thức bảo mật h.235 sử dụng trong hệ thống voip: 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỖ NHƯ LONG GIAO THỨC BẢO MẬT H.235 SỬ DỤNG TRONG HỆ THỐNG VOIP LUẬN VĂN THẠC SỸ Hà Nội 2011 2 ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ ĐỖ NHƯ LONG GIAO THỨC BẢO MẬT H.235 SỬ DỤNG TRONG HỆ THỐNG VOIP Ngành: Công nghệ thông tin Chuyên ngành: Truyền dữ liệu và mạng máy tính Mã số: 60 48 15 LUẬN VĂN THẠC SỸ Người hướng dẫn: PGS.TS Nguyễn Văn Tam Hà Nội 2011 3 CHƯƠNG 1 TỔNG QUAN VOIP 1. 1 Giới thiệu VoIP [1], [12], [16] Định nghĩa về VOIP: VoIP (viết tắt của Voice over Internet Protocol, nghĩa là Truyền giọng nói trên giao thức IP) là công nghệ truyền tiếng nói của con người (thoại) qua mạng thông tin sử dụng bộ giao thức TCP/IP. Nó sử dụng các gói dữ liệu IP (trên mạng LAN, WAN, Internet) với thông tin được truyền tải là mã hoá của âm thanh – Theo wikipedia. Các hệ thống VoIP ngày nay sử dụng 2 giao thức báo hiệu chủ yếu là H323 và SIP. Trong phạm vi nghiên cứu của luận văn chỉ đề...

pdf68 trang | Chia sẻ: haohao | Lượt xem: 1136 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Giao thức bảo mật h.235 sử dụng trong hệ thống voip, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỖ NHƯ LONG GIAO THỨC BẢO MẬT H.235 SỬ DỤNG TRONG HỆ THỐNG VOIP LUẬN VĂN THẠC SỸ Hà Nội 2011 2 ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ ĐỖ NHƯ LONG GIAO THỨC BẢO MẬT H.235 SỬ DỤNG TRONG HỆ THỐNG VOIP Ngành: Công nghệ thông tin Chuyên ngành: Truyền dữ liệu và mạng máy tính Mã số: 60 48 15 LUẬN VĂN THẠC SỸ Người hướng dẫn: PGS.TS Nguyễn Văn Tam Hà Nội 2011 3 CHƯƠNG 1 TỔNG QUAN VOIP 1. 1 Giới thiệu VoIP [1], [12], [16] Định nghĩa về VOIP: VoIP (viết tắt của Voice over Internet Protocol, nghĩa là Truyền giọng nói trên giao thức IP) là công nghệ truyền tiếng nói của con người (thoại) qua mạng thông tin sử dụng bộ giao thức TCP/IP. Nó sử dụng các gói dữ liệu IP (trên mạng LAN, WAN, Internet) với thông tin được truyền tải là mã hoá của âm thanh – Theo wikipedia. Các hệ thống VoIP ngày nay sử dụng 2 giao thức báo hiệu chủ yếu là H323 và SIP. Trong phạm vi nghiên cứu của luận văn chỉ đề cập tới giao thức báo hiệu H323. H.323 là chuẩn quốc tế về hội thoại trên mạng được đưa ra bởi hiệp hội viễn thông quốc tế ITU (International Telecommunication Union). Nó qui định các thành phần, các giao thức sử dụng, các thủ tục cho phép truyền các dữ liệu đa phương tiện (âm thanh, hình ảnh) và số liệu thời gian thực thông qua mạng IP mà không quan tâm tới chất lượng dịch vụ (QoS). Các đầu cuối của các hãng khác nhau có thể giao tiếp được với nhau nếu các đầu cuối này tuân theo chuẩn H.323. SIP (Session Initiation Protocol) Giao thức Khởi tạo Phiên: là một giao thức tín hiệu điện thoại IP dùng để thiết lập, sửa đổi và kết thúc các cuộc gọi điện thoại VOIP. SIP được phát triển bởi IETF(Internet Engineering Task Force- lực lượng chuyên trách về kỹ thuật liên mạng). Một ví dụ về chương trình VoIP miễn phí thông dụng cho phép người sử dụng có thể nói chuyện với nhau qua Internet bằng PC là chức năng Voice Chat của phần mềm Yahoo Messenger. Trong dịch vụ VoIP có thể có sự tham gia của 3 loại đối tượng cung cấp dịch vụ như sau: - Đơn vị cung cấp Internet ISP. - Đơn vị cung cấp dịch vụ điện thoại Internet ITSP. - Đơn vị cung cấp dịch vụ trong mạng chuyển mạch kênh. Người sử dụng đầu cuối muốn sử dụng được dịch vụ điện thoại IP, họ phải sử dụng kết hợp mạng Internet và các chương trình ứng dụng cho điện thoại IP. Các đơn vị cung cấp dịch vụ Internet cung cấp sự việc sử dụng Internet cho khách hàng của họ thì các đơn vị cung cấp dịch vụ điện thoại ITSP cung cấp dịch vụ điện thoại IP cho khách hàng bằng cách sử dụng các chương trình ứng dụng dùng cho điện thoại IP. Chỉ có dịch vụ truy cập Internet cung cấp bởi các đơn vị ISP là chưa đầy đủ để cung cấp dịch vụ điện thoại IP. Người sử dụng đầu cuối phải đăng nhập vào đơn vị cung cấp dịch vụ điện thoại IP khi sử dụng điện thoại IP. Việc liên lạc thông qua dịch vụ điện thoại IP sẽ không thực hiện được nếu người sử dụng chỉ truy nhập vào mạng Internet. Để phục vụ cho việc đàm thoại giữa những người sử dụng trên các máy tính đầu cuối của mạng Internet, các công ty phần mềm đã cung cấp các trương trình ứng dụng dùng cho điện thoại IP thực hiện vai trò của ITSP. Đối với người sử dụng trên mạng chuyển mạch kênh, họ sẽ truy nhập vào ISP hoặc 4 ITSP thông qua các điểm truy nhập trong mạng chuyển mạch kênh. VoIP dựa trên sự kết hợp giữa mạng chuyển mạch gói (mạng IP) và mạng chuyển mạch kênh. Mỗi loại mạng có những đặc điểm khác biệt nhau. Để có thể hiểu được những ưu điểm khác biệt của VoIP, trước hết chúng ta đi vào nghiên cứu hai kỹ thuật chuyển mạch cơ bản sử dụng trong VOIP là kỹ thuật chuyển mạch kênh và kỹ thuật chuyển mạch gói. Kỹ thuật chuyển mạch kênh (Circuit Switching): Đặc điểm nổi bật của kĩ thuật chuyển mạch kênh là: một kênh cố định sẽ được thiết lập cho hai đầu cuối khi chúng có nhu cầu trao đổi thông tin với nhau, kênh này được dành riêng và duy trì cho tới khi quá trình trao đổi giữa hai đầu cuối kết thúc. Các thông tin trao đổi giữa hai đầu cuối là trong suốt. Quá trình thiết lập cuộc gọi tiến hành gồm 3 giai đoạn:  Giai đoạn thiết lập kết nối: Là quá trình kết hợp các tuyến giữa các trạm trên mạng thành một tuyến (kênh) duy nhất dành riêng cho cuộc gọi. Kênh này đối với PSTN là 64kb/s (do bộ mã hóa PCM có tốc độ lấy mẫu tiếng nói 8kb/s và được mã hóa 8 bit).  Giai đoạn truyền tin: Sau khi kênh được thiết lập các thông tin trao đổi được truyền đi và các thông tin đó là trong suốt. Sự trong suốt của thông tin được truyền đi thể hiện qua hai yếu tố: thông tin không bị thay đổi khi truyền qua mạng và độ trễ nhỏ, độ trễ chỉ cỡ thời gian truyền thông tin trên kênh.  Giai đoạn giải phóng (huỷ bỏ) kết nối: Sau khi cuộc gọi kết thúc, kênh sẽ được giải phóng để phục vụ cho các cuộc gọi khác. Chất lượng đường truyền tốt, ổn định, có độ trễ nhỏ là những ưu điểm nổi trội của mạng chuyển mạch kênh. Các thiết bị mạng của chuyển mạch kênh đơn giản, có tính ổn định cao, chống nhiễu tốt. Tuy nhiên mạng chuyển mạch kênh cũng tồn tại những hạn chế và nhược điểm sau:  Lãng phí băng thông: Một kênh 64kb/s luôn được duy trì cho một cuộc gọi nhất định. Trong tiến trình cuộc gọi khi không có dữ liệu kênh vẫn được duy trì không chia sẻ được cho các cuộc gọi khác dẫn tới việc lãng phí băng thông  Bảo mật: Tín hiệu cuộc đàm thoại được truyền nguyên vẹn nên rất dễ đến khả năng bị nghe trộm cuộc đàm thoại. Hình 1.1 Mạng chuyển mạch kênh 5 Kỹ thuật chuyển mạch gói (Packet Switching): Trong kỹ thuật chuyển mạch gói bản tin sẽ được chia thành các gói tin (packet) có khuôn dạng được quy định trước. Các gói tin chứa thông tin điều khiển như: số thứ tự gói tin, địa chỉ trạm nguồn, địa chỉ trạm đích.... Tại mỗi nút mạng trên tuyến các gói tin được nhận, nhớ và sau đó thì chuyển tiếp tới các nút mạng khác cho tới khi chúng được truyền tới chạm đích. Điều phức tạp nhất đối với chuyển mạch gói là vấn đề tập hợp các gói tin để tạo bản tin nguyên bản ban đầu, đặc biệt là khi các gói tin được truyền theo nhiều con đường khác nhau tới trạm đích. Chính vì lý do trên mà các gói tin cần phải được đánh dấu số thứ tự, điều này có tác dụng, chống lặp, sửa sai và có thể truyền lại khi hiên tượng mất gói xảy ra. Các ưu điểm của chuyển mạch gói:  Mềm dẻo và hiệu suất truyền tin cao: Hiệu suất sử dụng đường truyền rất cao vì trong chuyển mạch gói không thiết lập một kênh cố định dành riêng nào, các đường truyền giữa các node có thể được các trạm cùng chia sẻ cho việc truyền tin, các gói tin sắp hàng và truyền theo tốc độ rất nhanh trên đường truyền.  Khả năng truyền ưu tiên: Trong chuyển mạch gói các gói tin có khả năng được sắp thứ tự để truyền đi theo mức độ ưu tiên.  Khả năng cung cấp nhiều dịch vụ thoại và phi thoại. Bên cạnh những ưu điểm thì mạng chuyển mạch gói cũng bộc lộ những nhược điểm như:  Trễ đường truyền lớn: Khi đi qua các trạm, dữ liệu được lưu trữ, xử lý, sau đó mới được truyền đi tới trạm tiếp theo..  Độ tin cậy của mạng gói không cao, dễ xảy ra tắc nghẽn, lỗi mất bản tin.  Tính đa đường có thể gây là lặp bản tin, loop làm tăng lưu lượng mạng không cần thiết.  Tính bảo mật trên đường truyền chung là không cao. Hình 1.2 Mạng chuyển mạch gói Áp dụng VoIP có thể khai thác tính hiệu quả của các mạng truyền số liệu, khai thác tính linh hoạt trong phát triển các ứng dụng mới của giao thức IP. Nhưng VoIP cũng phức tạp và đòi hỏi giải quyết nhiều vấn đề. 6 1.2. Cấu hình chuẩn của VoIP [12] Cấu hình chuẩn của VoIP theo nghiên cứu của Viện các tiêu chuẩn viễn thông Châu Âu - ETSI (The European Telecommunications Standards Institute) có thể bao gồm các phần tử sau: - Thiết bị đầu cuối kết nối với mạng IP. - Mạng IP. - Gateway. - Gatekeeper. - Thiết bị đầu cuối kết nối với mạng chuyển mạch kênh. - Mạng chuyển mạch kênh. Tùy thuộc vào các kiểu kết nối khác nhau cấu hình mạng có thể thêm hoặc bớt một số phần tử trên. Trong đó, cấu hình cơ bản của VoIP gồm các phần tử Gatekeeper, Gateway, các thiết bị đầu cuối thoại và máy tính. Mỗi một thiết bị đầu cuối sẽ giao tiếp với một Gatekeeper và giao tiếp này giống với giao tiếp giữa thiết bị đầu cuối và Gateway. Mỗi Gatekeeper sẽ chịu trách nhiệm quản trị một vùng, tuy nhiên một vùng cũng có thể được quản lý bởi nhiều Gatekeeper. Trong vùng quản trị của các Gatekeeper, các tín hiệu báo hiệu có thể được chuyển tiếp qua một hoặc nhiều Gatekeeper. Do đó các Gatekeeper phải có khả năng trao đổi các thông tin với nhau khi cuộc gọi liên quan đến nhiều Gatekeeper. Hình 1.3 Cấu hình của VoIP 7 1.3. Mô hình kết nối trong VoIP [12] Hình 1.4 Mô hình kết nối trong VoIP Về cơ bản có thể chia thành 4 loại như sau: - Kết nối PC – PC: Cuộc gọi được thực hiện giữa hai thiết bị VOIP. - Kết nối PC – Phone: Cuộc gọi được thực hiện khi sử dụng thiết bị VOIP hay máy tính vào mạng điện thoại thông thường. - Kết nối Phone – PC: Cuộc gọi được thực hiện từ mạng điện thoại thông thường đến một số điện thoại VOIP . - Kết nối Phone – Phone: Cuộc gọi được thực hiện từ một số điện thoại thông thường vào số điện thoại đặc biệt của nhà cung cấp dịch vụ VOIP, và thông qua đó để gọi đến mạng điện thoại thông thường khác. 1.4. Đặc điểm của điện thoại VoIP [12], [15], [16] Mục tiêu của Điện thoại IP nhằm khai thác tính hiệu quả của các mạng truyền số liệu, khai thác tính linh hoạt trong phát triển các ứng dụng mới của giao thức IP và nó được áp dụng trên một mạng toàn cầu là mạng Internet. Các tiến bộ của công nghệ mang đến cho điện thoại IP những ưu điểm sau: Ưu điểm: Tiết kiệm chi phí: Đây là ưu điểm quan trọng nhất của VOIP so với điện thoại đường dài. Chi phí cho cuộc gọi đường dài chỉ bằng chi phí cho truy nhập internet. Lý do nằm ở chỗ tín hiệu thoại được truyền tải trong mạng IP có khả năng sử dụng kênh với hiệu suất rất cao. Hơn nữa, kỹ thuật nén thoại tiên tiến giảm tốc độ bít từ 64 Kbps xuống thấp tới 8 Kbps (theo tiêu chuẩn nén thoại 8 G.729A của ITU-T) và tốc độ xử lý nhanh của các bộ vi xử lý ngày nay cho phép việc truyền tiếng nói theo thời gian thực là có thể thực hiện được với lượng tài nguyên băng thông thấp hơn nhiều so với kỹ thuật cũ. Một so sánh nhỏ về chi phí phải thanh toán cho một cuộc gọi trong mạng PSTN và một cuộc gọi trong mạng VOIP như sau: Chi phí phải thanh toán cho cuộc gọi trong mạng PSTN là chi phí phải bỏ ra để duy trì cho một kênh 64kbps từ đầu cuối gọi tới đầu cuối bị gọi thông qua một hệ thống các tổng đài. Chi phí này đối với các cuộc gọi đường dài (liên tỉnh, quốc tế) là khá lớn. Trong cuộc gọi qua mạng IP, người sử dụng từ mạng PSTN chỉ phải duy trì kênh 64kbps đến Gateway của nhà cung cấp dịch vụ tại địa phương. Nhà cung cấp dịch vụ điện thoại IP sẽ nén, đóng gói tín hiệu thoại và gửi chúng đi qua mạng IP tới Gateway nối tới một mạng điện thoại khác có người liên lạc đầu kia. Chi phí sẽ được giảm đáng kể do phần lớn kênh truyền 64Kbps đã được thay thế bằng việc truyền thông tin qua mạng dữ liệu với hiệu suất cao. Tích hợp đa dịch vụ: Trong một mạng IP tín hiệu thoại, báo hiệu và số liệu được tích hợp dẫn tới việc giảm chi phí để xây dựng những mạng riêng rẽ. Thống nhất: Các ứng dụng sử dụng thống nhất giao thức IP sẽ giảm bớt tính phức tạp và tăng cường tính mềm dẻo. Các ứng dụng liên quan như dịch vụ an ninh mạng, danh bạ... có thể được chia sẻ một cách dễ dàng. Khả năng mở rộng (Scalability): Các hệ thống tổng đài PSTN thông thường là những hệ đóng kín khó có khả năng mở rộng và thêm vào các tính năng mới, ngược lại các thiết bị trong mạng IP có khả năng mở rộng và thêm vào các tính năng mới. Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: Các gói tin truyền trong mạng IP chỉ cần mang địa chỉ của nơi nhận cuối cùng để truyền tới đích. Nó không cần phải thiết lập một kênh vật lý riêng cho việc truyền. Khả năng multimedia: Trong một “cuộc gọi” người sử dụng có thể vừa nói chuyện vừa sử dụng các dịch vụ khác như truyền file, chia sẻ dữ liệu, hay xem hình ảnh của người nói chuyện bên kia. Nhược điểm của VoIP Kỹ thuật phức tạp: Việc mất gói tin và đỗ trễ không cố định của các gói tin khi truyền trên mạng chuyển mạch gói là không thể tránh được, do đó để truyền tín hiệu theo thời gian thực trên mạng chuyển mạch gói đòi hỏi kỹ thuật rất phức tạp. Yêu cầu cần thiết để có được một dịch vụ thoại chấp nhận được là phải có một kỹ thuật nén tín hiệu đạt được những đòi hỏi như: tỉ số nén lớn (để giảm được tốc độ bit xuống), có khả năng tạo lại thông tin của các gói bị thất lạc... Tốc 9 độ xử lý của các bộ Codec (Coder and Decoder) phải đủ nhanh để không làm cuộc đàm thoại bị gián đoạn. Vấn đề bảo mật (security): Vấn đề bảo mật trong VoIP rất phức tạp. Đòi hỏi các kỹ thuật bảo mật tiên tiến để hạn chế tối đa các nguy cơ tấn công vào mạng VoIP nhằm bảo mật thông tin liên quan tới cá nhân người sử dụng cũng như số liên lạc truy nhập sử dụng dịch vụ của người dùng. Chất lượng dịch vụ chưa cao: Chất lượng cuộc gọi khi được truyền qua mạng IP không được đảm bảo khi trong mạng xảy ra trường hợp tắc nghẽn hoặc có độ trễ lớn. Tính thời gian thực của tín hiệu thoại đòi hỏi chất lượng truyền dữ liệu cao và ổn định. Một yếu tố làm giảm chất lượng thoại nữa là kỹ thuật nén để tiết kiệm đường truyền. Nếu nén xuống dung lượng càng thấp thì kỹ thuật nén càng phức tạp, cho chất lượng không cao và đặc biệt là thời gian xử lý sẽ lâu, gây trễ. Vấn đề tiếng vọng: Trong mạng thoại thông thường, do độ trễ thấp nên tiếng vọng không ảnh hưởng nhiều chất lượng cuộc thoại. Ngược lại, trong mạng IP có độ trễ lớn nên tiếng vọng ảnh hưởng rất nhiều đến chất lượng thoại. 1.5. Các ứng dụng của VoIP [12], [15], [16] Dịch vụ thoại qua Internet Điện thoại VoIP được ứng dụng cho cả những người sử dụng máy tính và những người sử dụng điện thoại thông thường quay vào gateway. Mạng máy tính được tích hợp và phát triển bên cạnh mạng điện thoại. Các mạng máy tính và mạng điện thoại cùng tồn tại ngay trong một cơ cấu, giữa các cơ cấu khác nhau, và trong mạng rộng WAN. Công nghệ thoại IP không ngay lập tức đe doạ đến mạng điện thoại toàn cầu mà nó sẽ dần thay thế thoại chuyển mạch kênh truyền thống. Thoại thông minh Việc sử dụng Internet đã làm tăng tính thông minh của mạng điện thoại. Các hệ thống điện thoại truyền thống thực sự hữu hiệu nhờ các tính năng ưu việt như rẻ, phổ biến, dễ sử dụng. Tuy nhiên nó chỉ có 12 phím điều khiển. Internet đã bù đắp những hạn chế của mạng điện thoại truyền thống, nó cung cấp phương thức giám sát và điều khiển cuộc gọi tiện lợi và thông minh hơn. Dịch vụ tính cước cho bị gọi Với việc thoại qua Internet đã giúp các nhà khai thác có thể cung cấp dịch vụ tính cước cho bị gọi đến các khách hàng ở nước ngoài cũng tương tự như khách hàng trong nước. Khách hàng có thể sử dụng các chương trình phần mềm để thực hiện cuộc gọi qua Internet thay vì gọi qua mạng truyền thống. Các phần mềm được sử dụng phổ biến hiện nay như Internet Phone của Vocaltec, Netmeeting của Microsoft. Dịch vụ Callback Web Việc đưa các phím bấm lên trang web để kết nối tới hệ thống điện thoại của 10 các công ty, doanh nghiệp mang lại lợi ích rất to lớn về mặt kinh doanh. Hệ thống điện thoại nói chung vẫn đang là phương tiện kinh doanh cực kỳ quan trọng đối với các công ty, doanh nghiệp ở các nước trên thế giới. Chính vì vậy, dịch vụ “bấm số” (Click to dial) trên web cung cấp một phương thức tiếp cận khách hàng nhanh chóng, thuận tiện đối với các công ty, doanh nghiệp. Dịch vụ fax qua IP Dịch vụ fax qua IP sẽ giúp tiết kiệm được chi phí và kênh thoại cho người sử dụng, doanh nghiệp và các công ty. Nó đặc biệt tiết kiệm chi phí cho những người sử dụng thường xuyên gửi nhiều fax ra nước ngoài. Nó sẽ chuyển các bản fax của người sử dụng từ PC qua kết nối Internet. 1.6 Các nguy cơ tấn công vào hệ thống VoIP [15], [17] Việc kết hợp thoại và dữ liệu trên cùng một đường truyền, không phụ thuộc vào các giao thức sử dụng, mà phụ thuộc vào các kỹ sư mạng và nhà quản lý. Một hệ quả của sự kết hợp này là khi xảy ra một cuộc tấn công mạng lớn, toàn bộ cơ sở hạ tầng viễn thông sẽ gặp nguy hiểm rất lớn. Việc đảm bảo an ninh cho toàn bộ hạ tầng VOIP đòi hỏi phải có kế hoạch, sự phân tích và kiến thức chi tiết về an ninh mạng. Sau đây là các nguy cơ tấn công phổ biến vào mạng điện thoại VoIP. 1.6.1 DoS Tấn công từ chối dịch vụ (Denial – of – Service) có thể ảnh hưởng tới bất kỳ dịch vụ dựa trên mạng IP nào, trong đó VOIP không phải là ngoại lệ. Tác động của một cuộc tấn công DoS có thể dẫn tới sự xuống cấp các dịch vụ cho tới việc mất mát toàn bộ dịch vụ. Có rất nhiều kiểu tấn công DoS, một kiểu tấn công điển hình là các gói tin có thể bị được đưa liên tiếp vào bên trong mạng mục tiêu từ nhiều nguồn khác nhau. Nó được gọi là tấn công từ chối dịch vụ phân tán. 11 Hình 1.5 Tấn công từ chối dịch vụ phân tán Loại thứ 2 của tấn công từ chối dịch vụ xảy ra khi các thiết bị trong mạng nội bộ là mục tiêu của một loạt các gói tin. Gián đoạn dịch vụ xảy ra chủ yếu nhằm làm suy kiệt tài nguyên CPU và băng thông. Ví dụ một vài điện thoại IP sẽ ngừng hoạt động nếu chúng nhận được gói tin UDP lớn hơn 65534 byte trên cổng 5060. Hình 1.6 Tấn công từ chối dịch vụ nội bộ Việc chống lại các cuộc tấn công DoS là tương đối khó khăn, vì VoIP chỉ là một dịch vụ mạng IP, nó rất dễ dàng bị tấn công như bất cứ một dịch vụ IP nào khác. Hơn nữa, các cuộc tấn công DoS đặc biệt hiệu quả với các dịch vụ VoIP và các dịch vụ thời gian thực khác, bởi vì những dịch vụ này đặc biệt nhạy cảm với trạng thái của mạng. 1.6.2 Call Hijacking and Interception Việc chặn cuộc gọi và nghe lén là những quan tâm khác trong mạng VoIP. Là phương thức mà kẻ tấn công có thể theo dõi các báo hiệu, luồng dữ liệu giữa 2 điểm thiết bị đầu cuối VOIP, nhưng không có khả năng sửa đổi dữ liệu. Chặn cuộc gọi thành công tương tự như nghe lén, trong đó hội thoại có thể bị đánh cắp, ghi lại, phát lại. Một kẻ tấn công có thể đánh chặn và lưu trữ những dữ liệu này để sử dụng chúng vào những mục đích khác nhau. 1.6.3 Man-in-the-middle Các chương trình phân tích gói tin như Network monitor, sniffer Pro... thường được các nhà quản trị mạng dùng để quản trị hệ thống, theo dõi, giám sát chẩn đoán cũng như khắc phục sự cố của mạng. Lợi dụng những ưu điểm của các chương trình phân tích gói tin đó các hacker tận dụng chúng để ăn cắp các thông tin như username, passwork hoặc là các thông tin quan trọng của hệ thống. Đối với 12 kiểu tấn công này người sử dụng không hề biết mình bị tấn công vì tiến trình làm việc giữa máy gửi và nhận diễn ra hoàn toàn bình thường. Đây là một dạng tấn công cực kỳ nguy hiểm và được gọi là Man In The Middle. 1.6.4 Tấn công vào các lỗ hổng của mạng và môi trường VoIP được truyền qua cùng môi trường vậy lý (router, Switch và firewall) với các dịch vụ IP khác nên có thể bị ảnh hưởng. VD như: khi gửi nhiều yêu cầu báo hiệu hay yêu cầu thiết lập cuộc gọi tới gateway, hay IP phone, các thiết bị này sẽ không thể xử lý tất cả các bản tin, gây ra DoS. DoS rất nguy hiểm vì nó gần như làm nghẽn mạng và có thể chặn dịch vụ VoIP. 1.6.4.1 DNS (Domain name system) DNS là dịch vụ hỗ trợ việc dịch từ host name sang địa chỉ IP để có thể tìm thấy đường đi trên mạng. Trong hệ thống VoIP, DNS có chức năng phân giải địa chỉ đích của đầu cuối hay cho phép gateway đăng kí với server hay GK bằng host name. Do là một giao thức thành phần của mạng Internet nên DNS không có sự bảo mật nào (như chứng thực, mã hóa,…) vì vậy có một số cách tấn công vào DNS: - DNS footprint (Sử dụng vùng dữ liệu DNS để truy tìm host name, subdomain và subnet) - DoS (dùng SYN flooding DNS server hay truyền đi bảng DNS trống) - DNS cache poisoning. 1.6.4.2 ARP Address Resolution Protocol giao thức tìm địa chỉ ARP là giao thức Ethernet cơ bản. Do nó không có cơ chế chứng thực các truy vấn và hồi đáp truy vấn nên có thể lợi dụng nó để tấn công mạng VoIP. Những kiểu tấn công thường gặp là: ARP spoofing, ARP redirection.  ARP spoofing Hình 1.7 ARP spoofing 13 Khi A quảng bá truy vấn ARP để tìm địa chỉ của C trên mạng, B sẽ hồi đáp là địa chỉ IP 10.1.1.2 thuộc về nó (MAC: AB:AC:AD:AE:AF:FF). Như vậy, gói từ A tới C sẽ được chuyển tới B. Địa chỉ IP Địa chỉ vật lý 10.1.1.1 AA:BB:CC:DD:EE:FF 10.1.1.2 AB:AC:AD:AE:AF:FF Bảng 1.1 ARP cache của A  ARP redirection. Hình 1.8 ARP redirection Với kiểu tấn công như trên thì tất cả traffic trao đổi giữa A và C đều đi qua B. Những thông tin không được mã hóa sẽ bị nghe trộm. Trong trường hợp này kẻ tấn công cũng ít khi bị phát hiện nếu không cài phần mềm theo dõi bảng ánh xạ giữa địa chỉ IP và MAC. Hậu quả của kiểu tấn công này là sự quá tải của Switch do bảng CAM (Content – Addressable Memory), bảng có kích thước cố định, bị tràn. Hãng Cisco có phát triển DAI (Dynamic ARP Inspection) trên dòng Switch Catalyst 6500 để phòng chống các nguy cơ tấn công spoofing lớp 2 và lớp 3, trong đó có ARP spoofing. Hãng Avaya sử dụng giải pháp Media Encryption, mã hóa bằng AES, để tránh việc thông tin bị giải mã khi bị nghe trộm. 14 1.6.5 Spam trong VoIP SPIT là hiện tượng có nhiều cuộc gọi không mong muốn. Nguyên nhân của hiện tượng này giống các như e-mail spam, hầu hết đều với mục đích bán sản phẩm, quảng cáo,…. Phương pháp Spam là dùng các đoạn script tự động để thực hiện các cuộc gọi tới nhiều người. Nó cũng có thể thực hiện với mục đích giả dạng các cơ quan tài chính hay thương mại điện tử để lấy thông tin cá nhân. Khác với email-spam, các cuộc gọi SPIT sẽ được nhận hoặc chuyển sang hộp thư thoại. Nhận SPIT tốn thời gian và có thể gây nghẽn. Cũng như email-spam, ta cần chặn voice spam. Tuy nhiên, chặn SPIT khó khăn hơn rất nhiều vì rất khó phân biệt được cuộc gọi bình thường và cuộc gọi SPIT vì thông tin về người gọi chỉ được tiết lộ một khi cuộc gọi đã được thiết lập và bắt đầu gửi thư thoại. 1.7 Một số công nghệ bảo mật sử dụng trong VoIP [2], [4], [13], [14], [18] Internet là một mạng máy tính rộng khắp và hỗn hợp, trong đó có rất nhiều đầu cuối, các dịch vụ khác nhau cùng sử dụng chung một cơ sở hạ tầng dẫn tới các nguy cơ tấn công vào hệ thống VoIP. Chính vì vậy việc áp dụng các công nghệ bảo mật vào hệ thống VoIP là rất quan trọng để chống lại các nguy cơ tấn công đã nêu ở phần trên. Phần này em xin giới thiệu về một số công nghệ bảo mật các thuật toán bảo mật được sử dụng cho hệ thống VoIP. 1.7.1 Mã hóa đối xứng Mã hóa đối xứng là thuật toán mà trong đó một chìa khóa bí mật được dùng chung cho bên gửi và bên nhận sử dụng trong quá trình mã hóa và giải mã. Thuật toán này còn có các tên gọi khác như private key crytography hay secret key crytography. Thuật toán này thích hợp cho mục đích mã hóa dữ liệu của các tổ chức đơn lẻ hay các cá nhân, tuy nhiên hạn chế sẽ bộc lộ khi thông tin chia sẻ với bên thứ hai. Đây là thuật toán mã hóa duy nhất trước những năm 70 và hiện nay vẫn còn được dùng rất phổ biến. KA-B: Khóa bí mật dùng chung Alice và Bob M: Thông báo nguyên bản. Hình 1.9 Mã hóa đối xứng Bob sẽ không hiểu Alice muốn nói gì trong trường hợp Alice chỉ gửi thông điệp đã mã hóa cho Bob mà không báo trước thuật toán mã hóa đã được sử dụng để mã hóa thông báo. Chính vì vậy, trong kiểu mã hóa náy bên gửi bắt buộc phải 15 thông báo cho bên nhận về chìa khóa cũng như thuật toán mã hóa đã sử dụng ở một thời điểm nào đó trước khi thực hiện việc gửi thông báo mã hóa. Việc này có thể thực hiện trực tiếp hoặc gián tiếp (Gửi qua email, tin nhắn...). Đây chính là điểm yếu của thuật toán này, vì nó dẫn tới khả năng kẻ tấn công sẽ xem trộm được chìa khóa và có thể tiến hành giải mã thông điệp trao đổi giữa bên gửi và bên nhận. Mã hóa đối xứng có thể phân thành hai nhóm phụ: Block ciphers: mã hóa khối – mỗi lần sẽ xử lý một khối nguyên bản và tạo ra khối bản mã tương ứng (chẳng hạn 64 hay 128 bit). Độ dài của mỗi khối được gọi là block size, thông thường được tính bằng đơn vị bit. Ví dụ thuật toán 3-Way có kích thước khối bằng 96 bit. Một số thuật toán khối thông dụng là: DES, 3DES, RC5, RC6, 3- Way, CAST, Camelia, Blowfish, MARS, Serpent, Twofish, GOST... Stream ciphers: thuật toán luồng – Dữ liệu đầu vào được xử lý liên tục từng bit một. Mã hóa luồng có tốc độ nhanh hơn mã hóa khối khối, nó được sử dụng khi kích thước khối dữ liệu đầu vào là không biết trước, ví dụ trong kết nối không dây. Có thể coi mã hóa luồng là mã hóa khối khối với kích thước mỗi khối là 1 bit. Một số thuật toán dòng thông dụng: RC4, A5/1, A5/2, Chameleon. 1.7.2 Mã hóa bất đối xứng Từ những hạn chế của thuật toán mã hóa đối xứng như: khó đảm bảo việc chia sẻ không làm lộ khóa bí mật, trung tâm phân phối khóa có thể bị tấn công cũng như không thích hợp cho việc sử dụng chữ ký số khi mà bên nhận có thể làm giả thông báo nói nhận được từ bên gửi.... mà thuật toán mã hóa bất đối xứng đã ra đời để khắc phục những hạn chế đó. Thuật toán mã hóa bất đối xứng được đề xuất bởi Whitfield Diffie và Martin Hellman vào năm 1976. Nó có thể coi là bước đột phá quan trọng nhất trong lịch sử ngành mật mã, nó nhằm bổ xung chứ không thay thế thuật toán mã hóa đối xứng. Mã hóa bất đối xứng, sử dụng một cặp chìa khóa có liên quan với nhau về mặt toán học, một chìa công khai ai cũng có thể biết dùng để mã hoá (public key) thẩm tra chữ ký; và một chìa bí mật dùng để giải mã (private key) và tạo ra chữ ký. Một thông điệp sau khi được mã hóa bởi chìa công khai sẽ chỉ có thể được giải mã với chìa bí mật tương ứng. Tính bất đối xứng ở đây thể hiện ở 2 khía cạnh: thứ nhất là bên mã hóa không thể giải mã được thông báo, thứ hai là bên thẩm tra không thể tạo ra chữ ký. Do các thuật toán loại này sử dụng một chìa khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai). Một số thuật toán bất đối xứng thông dụng là : RSA, Elliptic Curve, ElGamal, Diffie-Hellman... Khi Alice gửi một thông điệp tới Bob, Alice sẽ tìm chìa khóa công khai của Bob. Alice sẽ dùng chìa khóa này để mã hóa thông điệp gửi đi. Khi Bob nhận được thông điệp đã được mã hóa, Bob dùng khóa bí mật của mình để giải mã thông điệp này. Nếu quá trình giải mã thành công thì đó chính là bức thông điệp gửi cho Bob từ Alice. Quá trình này cho phép người gửi và người nhận thực hiện 16 việc giao dịch mà không cần trao đổi thông tin bí mật nào trước đó. KB+: Khóa công khai của Bob. KB-: Khóa bí mật của Bob. Hình 1.10 Mã hóa bất đối xứng Nhược điểm của thuật toán mã hóa bất đối xứng là tốc độ xử lý chậm, chính vì vậy trong thực tế một hệ thống lai tạp được xử dụng để thực hiện giao dịch giữa bên gửi và bên nhận. Thuật toán đối xứng được sử dụng để mã hóa dữ liệu, thuật toán bất đối xứng dùng để mã hóa chìa dùng để mã hóa dữ liệu. 1.7.3 Chứng chỉ điện tử Chứng chỉ điện tử là sự kết hợp giữa chữ ký điện tử (chữ ký số) và các thông tin về chủ sở hữu cũng như các thông tin quan trọng khác. 1.7.3.1 Chữ ký điện tử Khi bên gửi và bên nhận muốn gây hại cho nhau dựa trên cách thức: bên nhận giả mạo thông báo của bên gửi, bên gửi từ chối đã gửi thông báo tới bên nhận. Chữ ký điện tử hay còn gọi là chữ ký số ra đời nhằm bảo đảm an toàn, giải quyết tranh chấp trong giao dịch điện tử, bảo vệ các bên trong quá trình giao dịch. Chức năng quan trọng của chữ ký số: - Xác minh tác giả và thời điểm ký thông báo. - Xác thực nội dung thông báo. - Là căn cứ để giải quyết khi có tranh chấp xảy ra. Người ta chia chữ ký số ra thành 2 loại chính: - Chữ ký số trực tiếp - Chữ ký số gián tiếp: Có sự tham gia của bên thứ 3 gọi là trọng tài. Nguyên tắc hoạt động của chữ ký số dựa trên hệ thống mã hóa bất đối xứng. Khi đó mỗi bên sẽ sử dụng một cặp khóa: khóa bí mật và khóa công khai. hoạt động dựa trên hệ thống mã hóa bất đối xứng. Nếu mã hóa bằng khóa bí mật thì chỉ có khóa công khai mới giải mã được và ngược lại nếu mã hóa bằng khóa công khai thì chỉ có khóa bí mật mới giải mã được. Chữ ký số trực tiếp Chữ ký số trực tiếp chỉ liên quan tới bên gửi và bên nhận. Đối với hệ thống 17 mã hóa bất đối xứng dùng khóa bí mật riêng để ký toàn bộ thông báo hoặc giá trị băm. Hình 1.11 Khóa riêng ký toàn bộ văn bản Hình 1.12 Khóa riêng ký vào hàm Hash Nó có thể sử dụng khóa công khai của bên nhận để mã hóa thống báo nhưng quan trọng là phải ký trước rồi mới mã hóa sau. Hình 1.13 Dùng khóa công khai bên nhận để mã hóa thông báo. Chữ ký số gián tiếp Trong chữ ký số gián tiếp có sự tham gia của bên thứ 3 gọi là trọng tài. Trọng tài có nhiệm vụ nhận thông báo có chữ ký số của bên gửi, xác minh tính hợp lệ của nó; bổ xung thông tin thời gian và gửi cho bên nhận. Bên trọng tài được bên gửi và bên nhận tin tưởng tuyệt đối. Đối với chữ ký số gián tiếp có thể cài đặt cả mã hóa đối xứng và mã hóa bất đối xứng. Bên trọng tài có thể nhìn thấy hoặc không nhìn thấy thông báo phụ thuộc vào kỹ thuật sử dụng. Các kỹ thuật chữ ký số gián tiếp: (a) Mã hóa đối xứng, trọng tài thấy thông báo (1) X  A : M ║ EK XA [IDX ║ H(M)] (2) A  Y : EK AY [IDX ║ M ║ EK XA [IDX ║ H(M)] ║ T] (b) Mã hóa đối xứng, trọng tài không thấy thông báo (1) X  A : IDX ║ EK XY [M] ║ EK XA [IDX ║ H(EK XY [M])] (2) A  Y : EK AY [IDX ║ EK XY [M] ║ EK XA [IDX ║ H(EK XY [M])] ║ T] (c) Mã hóa khóa công khai, trọng tài không thấy thông báo (1) X  A : IDX ║ EKR X [IDX ║ EKU Y [EKR X [M]]] 18 (2) A  Y : EKR A [IDX ║ EKU Y [EKR X [M]] ║ T] Trong đó: X : Bên gửi KXA : Khóa dùng chung XA KXY : Khóa dùng chung XY Y : Bên nhận KAY : Khóa dùng chung AY KRX : Khóa bí mật của X A : Trọng tài IDX : Định danh của X KUY : Khóa công khai Y M : Thông báo H(M): Hàm băm thông báo M T : Nhãn thời gian Quá trình ký văn bản tài liệu: Giả sử X có tài liệu cần ký. X sẽ sử dụng một trong các kỹ thuật chữ ký số đã nêu ở trên để thực hiện việc ký vào tài liệu. X sẽ mã hóa tài liệu đó bằng khóa bí mật riêng hoặc khóa bí mật dùng chung tùy thuộc vào kỹ thuật sử dụng để thu được bản mã tài liệu. Như vậy chữ ký trên tài liệu của X, chính là bản mã tài liệu. Y muốn xác nhận tài liệu là của X với chữ ký là bản mã tài liệu, Y sẽ dùng khóa công khai của X hoặc khóa bí mật dùng chung để giải mã bản mã tài liệu của X. Sau khi giải mã, Y thu được một bản giải mã tài liệu, rồi so sánh bản giải mã tài liệu này với tài liệu . Nếu bản giải mã tài liệu giống với tài liệu thì chữ ký là đúng của X. Nếu tài liệu của X bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một ký hiệu bất kỳ), khi Y xác nhận, Y sẽ thấy bản giải mã tài liệu khác với tài liệu của X. Y sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu X đã ký. 1.7.3.2 Chứng chỉ điện tử. Chứng chỉ điện tử hay chứng chỉ số ra đời nhằm giải quyết vấn đề tin tưởng lẫn nhau giữa các bên khi thực hiện giao dịch. Trong môi trường Internet vấn đề tin tưởng và tin cậy lẫn nhau là đặc biệt quan trọng, nó giúp các bên tham gia giao dịch có thể thực hiện việc trao đổi các thông tin quan trọng, hoặc các thông tin cá nhân như học tên, địa chỉ, số điện thoại, email.... một cách an toàn. Một đơn vị cung cấp chứng chỉ số CA (Certificate Authority) đóng vai trò trung gian để xác nhận, xác thực các đối tượng sử dụng chứng chỉ số. Nó có chứng chỉ số của riêng mình, nó sẽ cung cấp các chứng chỉ số cho các bên. CA được hoàn toàn tin tưởng bởi các bên tham gia giao dịch điện tử. Khi các bên tham gia giao dịch (X và Y) muốn xác thực thông tin lẫn nhau dựa trên chứng chỉ số, việc xác thực sẽ diễn ra như sau: mỗi bên sẽ chuyển chứng chỉ số cho nhau đồng thời nó cũng có chứng chỉ số của CA, khi đó một phần mềm ở máy tính của X sẽ tính toán dựa trên sự kết hợp giữa chứng chỉ số của nhà cung cấp và chứng chỉ số của Y để thông báo cho X biết là chứng chỉ số của Y có phải là chứng chỉ số hợp lệ hay không, cũng như về tính xác thực của Y. Nếu như việc kiểm tra cho kết quả chứng chỉ của Y là phù hợp với chứng chỉ của CA thì X hoàn toàn tin tưởng vào Y. Yêu cầu đối với chữ ký số và chứng chỉ số đó là: Sử dụng thông tin của người gửi nhằm tránh việc giả mạo và chối bỏ; tương đối dễ tạo ra; dễ nhận biết và kiểm tra; sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để 19 cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo có thể dễ dàng bị phát hiện; thuận tiện trong việc lưu trữ. Ngoài các thông tin cá nhân chứa trong chứng chỉ số như thông tin về danh tính của đối tượng được cấp chứng chỉ, thông tin cá nhân như email, số điện thoại... một thành phần nhất thiết không thể thiếu được đó là khóa công khai. Riêng khóa bí mật sẽ được lưu ở máy tính của chủ sở hữu, nó không được lưu trong chứng chỉ số, cá nhân sử hữu chứng chỉ số có nhiệm vụ giữ an toàn cho khóa bí mật. Việc giữ an toàn cho khóa bí mật cũng chính là giúp cho chủ sở hữu tránh khỏi các giao dịch giả mạo. Các tổ chức CA ví dụ như Verisign, Entrust, RSA... sẽ cung cấp các chứng chỉ số cho các cá nhân, tổ chức có nhu cầu và thực hiện việc đăng ký với CA sau khi CA kiểm tra thông tin của người đăng ký. Các chứng chỉ thường được lưu dưới dạng file để cài đặt vào thiết bị (PC, Server...). 1.7.4 Một số thuật toán nổi tiếng 1.7.4.1 Thuật toán mã hóa đối xứng AES AES (Advanced Encryption Standard) – Tiêu chuẩn mã hóa tiên tiến được công bố bởi viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ NIST (National Institute of Standards and Technology) vào năm 2001. AES là một thuật toán mã hóa khối đối xứng được sử dụng để thay thế DES (Data Encryption Standard). Kích thước của khối là 128bit, kích thước khóa 128/192/256 bit. Tên của giải thuật là Rijndael, tên của thuật toán được lấy từ tên của 2 nhà mật mã học người Bỉ đã nghiên cứu và phát triển thuật toán trên là Vincent Rijmen và Joan Deamen. Thuật toán Rijndeal có những đặc tính sau: - Chống lại tất cả các cuộc tấn công. - Tốc độ mã hóa nhanh và nhỏ gọn. - Thiết kế đơn giản. Mô tả thuật toán : AES làm việc với từng khối dữ liệu 4×4 byte. Hình 1.14 mô tả quá trình mã hóa và giải mã của thuật toán AES. 20 Hình 1.14 Quá trình mã hóa và giải mã AES Quá trình mã hóa AES trải qua bốn bước cơ bản, số vòng lặp của thuật toán có thể là 10, 12,14 ( phụ thuộc vào chiều dài của khóa). 21 Bảng 1.2 Các tham số của AES 1. SubBytes — đây là phép thế (phi tuyến) trong đó mỗi byte sẽ được thế bằng một byte khác theo bảng tra (Rijndael S-box). Hình 1.15 SubBytes Trong bước SubBytes, mỗi byte được thay thế bằng một byte theo bảng tra S; bij = S(aij). 22 Bảng 1.3 S-Box Một ví dụ về Subbytes EA 04 65 85 83 45 5D 96 5C 33 98 B0 E0 3D AD C5 87 F2 4D 97 EC 6E 4C 90 4A C3 46 C7 8C D8 95 A6 2. ShiftRows — đổi chỗ, các hàng trong khối được dịch vòng. Mỗi hàng được chuyển tuần tự với một số lượng bước là cố định. Đặc biệt, các phần tử của hàng đầu tiên sẽ không thay đổi vị trí, hàng thứ hai dịch sang trái một cột, hàng thứ ba dịch sang trái hai cột, hàng cuối cùng sẽ dịch sang trái ba cột. Thao tác này nhằm đảm bảo mỗi cột của bảng đầu ra đều được tạo thành từ các cột của bảng trạng thái đầu vào. Hình 1.16 ShiftRows. 23 Một ví dụ về ShiftRows: 87 F2 4D 97 EC 6E 4C 90 4A C3 46 C7 8C D8 95 A6 87 F2 4D 97 6E 4C 90 EC 46 C7 4A C3 A6 8C D8 95 3. MixColumns Hình 1.17 MixColumns. Trong bước MixColumns, mỗi cột được nhân với một hệ số cố định c(x). Ví dụ: 87 F2 4D 97 EC 6E 4C 90 4A C3 46 C7 8C D8 95 A6 47 40 A3 4C 37 D4 70 9F 94 E4 3A 42 ED A5 A6 BC Trong đó với cột đầu tiên: {02} · {87} = (0000 1110) (0001 1011) = (0001 0101) {03} · {6E} = {6E} ({02} · {6E}) = (01101110) (1101 1100) = (1011 0010). 24 {02} · {87} = 00010101 {03} · {6E} = 10110010 {46} = 01000110 {A6} = 10100110 01000111 = {47} 4. AddRoundKey Với hàm AddRoundKey, mỗi byte trong bảng trạng thái được thực hiện phép XOR với một khoá vòng, quá trình xử lý AES thu được 11 khoá vòng từ các key mã hoá được phân phát cho kỹ thuật mã hoá. Việc phân phát các key mã hoá là kết quả của sự biến đổi các con số, chẳng hạn như hashing, và được thực hiện dựa trên dãy key bí mật ban đầu. 11 khoá vòng được tìm được từ key mã hoá bằng cách sử dụng giải thuật tính toán đơn giản. Hình 1.18 AddRoundKey. Ví dụ: Trong đó ma trận thứ 2 là khóa vòng. 1.7.4.2 Thuật toán mã hóa bất đối xứng Diffie – Hellman (DH) Như đã trình bày ở trên, với phương pháp mã hóa bất đối xứng, khóa dùng để giải mã không được truyền đi mà chỉ truyền cho bên nhận khóa công khai. Chính vì vậy phương pháp mã hóa này tương đối an toàn. Với phương pháp mã hóa với khóa đối xứng, cả hai bên mã hóa (bên gửi) và giải mã (bên nhận) phải sử dụng chung một khóa để mã hóa và giải mã. Do đó, việc đảm bảo an toàn và bí mật cho khóa có vai trò cực kỳ quan trọng. Chính vì lý do này, Whitfield Diffie và Martin Hellman đã đề xuất ra thuật toán trao đổi khóa này vào năm 1976, thuật toán được lấy tên ghép từ tên của 2 nhà phát minh là Diffie-Hellman key exchange. Thuật toán được sử dụng để trao đổi khóa bí mật một cách an toàn trên các kênh thông tin không an toàn, khóa riêng được tính toán 25 bởi cả bên mã hóa và bên giải mã. Hình 1.19 Mô hình Diffie Hellman K = Ab mod p = (ga mod p)b mod p = gab mod p = (gb mod p)a mod p = Ba mod p Giải thuật: 1. Bên gửi và bên nhận muốn dùng phương pháp mã hóa sử dụng khóa đối xứng để liên lạc với nhau. Khi đó bên gửi và bên nhận thống nhất sử dụng một cặp số nguyên tố dùng chung gọi là n và g. Trong đó n là một số nguyên tố đủ lớn, g là một nguyên căn của n. Ví dụ ở đây ta chọn n = 353 và g = 3. 2. Bên gửi chọn ngẫu nhiên một số cho mình gọi là x (x<n)và tính giá trị A theo công thức: A = gx mod n Giả sử bên gửi chọn x = 97 ==> A = 397 mod 353 = 40 Vậy A = 40 3. Bên nhận cũng chọn cho mình một số nào đó gọi là y(y<n) và tính B theo công thức: B = gy mod n Giả sử bên nhận chọn y = 233 ==> B = 3233 mod 353 = 248 Vậy B = 248 4. Bên gửi gửi A = 40 cho bên nhận. Bên nhận gửi B = 248 cho bên gửi 5. Bên gửi tính giá trị khóa mật K1 theo công thức: K1 = Bx mod n ==> K1 = 24897 mod 353 = 160 Bên nhận tính khóa mật K2 theo công thức: 26 K2 = Ay mod n ==> K2 = 40233 mod 353 = 160 Vậy lúc này K1 == K2 == 160 Bên gửi và bên nhận sẽ sử dụng khóa bí mật K = 160 để sử dụng trong quá trình mã hóa và giải mã. 1.7.5 Hàm hash Hàm hash (hash function) là hàm một chiều nó sẽ tạo ra một giá trị băm có kích thước cố định từ dữ liệu đầu vào. Ví dụ, khi sử dụng hàm SHA-1 để băm cụm từ “Illuminati” ta sẽ có kết quả A766F44DDEA5CACC3323CE3E7D73AE82. Khi ta chỉ cần thay đổi “Illuminati” thành “Illuminatus” và sử dụng SHA-1 làm hàm băm sẽ cho kết quả như sau E783A3AE2ACDD7DBA5E1FA0269CBC58D. Tuy nhiên kích thước của kết quả vẫn cố định là 160 bit. Hình 1.20 Hoạt động của 1 hàm băm. Các tính chất quan trọng của hàm băm: • Tính một chiều: rất khó để tìm ra dữ liệu ban đầu từ kết quả. • Tính chống xung đột mạnh: xác suất để hai thông điệp khác nhau có cùng kết quả hash là cực kỳ nhỏ. Các ứng dụng của hàm băm • Chống và phát hiện xâm nhập: chương trình chống xâm nhập sử dụng giá trị hash của một dữ liệu ban đầu với giá trị trước để so sánh, từ đó kiểm tra xem dữ liệu đó có bị thay đổi hay không. • Bảo vệ tính toàn vẹn của thông điệp: kiểm tra giá trị hash của thông điệp trước và sau khi gửi xem có bị thay đổi hay không. • Tạo chìa khóa từ mật khẩu. • Tạo chữ kí điện tử. 27 SHA-1 và MD5 là hai hàm hash thông dụng nhất và được sử dụng trong rất nhiều hệ thống bảo mật. Trong bảo mật H.235 còn sử dụng 2 hàm băm HMAC-SHA1 và HMAC- MD5 Hình 1.21 Hàm băm HMAC-SHA1 28 CHƯƠNG 2 BẢO MẬT H.235 2.1. Giao thức báo hiệu cuộc gọi H.323 [3], [5], [10], [11], [15], [17] 2.1.1. Giới thiệu H.323 là chuẩn quốc tế về hội thoại trên mạng được đưa ra bởi hiệp hội viễn thông quốc tế ITU (International Telecommunication Union). Nó qui định các thành phần, các giao thức sử dụng, các thủ tục cho phép truyền các dữ liệu đa phương tiện (âm thanh, hình ảnh) và số liệu thời gian thực thông qua mạng IP mà không quan tâm tới chất lượng dịch vụ (QoS). Các đầu cuối của các hãng khác nhau có thể giao tiếp được với nhau nếu các đầu cuối này tuân theo chuẩn H.323. 2.1.2. Các thành phần của một hệ thống H.323 Một hệ thống H.323 bao gồm có 4 thành phần chính cho việc truyền tin trên mạng đó là : Terminal, Gateway, Gatekeeper, MCU(Multipoint control unit) Hình 2.1 Các thành phần H.323.  Terminal: Một ví dụ của đầu cuối H.323 được diễn tả trong Hình 2.2. Sơ đồ này chỉ ra các phần tử người dùng, giao diện, video codec, audio codec, H.225.0 layer, hệ thống các phương thức điều khiển. Tất cả các đầu cuối H.323 sẽ bao gồm một hệ thống điều khiển, H.225.0 layer, giao diện mạng và một Audio Codec. Trong đó, Video Codec và các ứng dụng dữ liệu người dùng là tùy chọn. 29 Hình 2.2 Cấu trúc của một đầu cuối H.323 H.323 terminal là một thiết bị đầu cuối trong mạng LAN có khả năng trao đổi thông tin 2 chiều thời gian thực, các terminal có thể là các thiết bị độc lập hoặc các PC. Yêu cầu đối với các thiết bị đầu cuối H.323 để có khả năng trao đổi và giao tiếp được với nhau là phải hỗ trợ chuẩn H245 được dùng để điều tiết các kênh truyền dữ liệu và trao đổi khả năng của thiết bị, H225 được dùng để thiết lập, báo hiệu và huỷ bỏ cuộc gọi và RTP/RTCP được dùng để truyền các gói tin audio, video.  Gateway: Cung cấp sự chuyển dịch thích hợp giữa các định dạng truyền dẫn (Ví dụ: H.225.0 sang H.221 và ngược lại), giữa các thủ tục truyền thông (Ví dụ: H.245 sang H.242 và ngược lại). Gateway cũng có thể thực hiện việc thiết lập cuộc gọi. Việc thay đổi định dạng của video, audio và dữ liệu có thể cũng được thực hiện bên trong Gateway. Gateway được dùng để kết nối giữa hai mạng không giống nhau. Ví dụ, một GW có thể kết nối và cung cấp liên lạc giữa đầu cuối H323 và các mạng SCN (bao gồm các mạng điện thoại PSTN). Cung cấp giao thức biên dịch và chuyển mã giữa một điểm cuối H.323 và một điểm cuối không phải H.323. 30 Hình 2.3 Kết nối giữa một điểm cuối H.323 và một điểm cuối không phải H.323. Tuy nhiên, Một đầu cuối H.323 có thể kết nối một đầu cuối H.323 khác trên cùng một mạng LAN mà không cần sự tham gia của Gateway.  Gatekeeper : là thành phần tùy chọn của một hệ thống H.323, điều khiển việc giải quyết địa chỉ và cho vào mạng H.323. Chức năng quan trọng nhất của nó là biên dịch địa chỉ giữa địa chỉ ký danh tượng trưng và địa chỉ IP. Ví dụ, với sự có mặt của gatekeeper nó có khả năng gọi tới địa chỉ có tên là “Tom” thay vì phải gọi tới địa chỉ IP 192.168.10.10. Khi có mặt trong hệ thống, gatekeeper cung cấp những dịnh vụ chính sau: o Address Translation (Biên dịch địa chỉ): Gatekeeper biên dịch các địa chỉ ký danh tượng trưng sang địa chỉ truyền dẫn thực trong mạng (địa chỉ IP). Điều này được thực hiện bằng cách sử dụng một bảng biên dịch được cập nhật thường xuyên qua các thông báo đăng ký của các đầu cuối. o Admissions Control (Điều khiển truy cập): Gatekeeper cho phép thiết bị đầu cuối truy cập mạng LAN sử dụng thông báo ARQ/ACF/ARJ H.225.0 o Bandwidth Control (Điều khiển băng thông): Gatekeeper hỗ trợ các thông báo BRQ/BRJ/BCF để quản lý và giám sát việc sử dụng dịch vụ và cung cấp băng thông có giới hạn.  MCU (Multipoint Control Unit) : Là một đầu cuối, nó hỗ trợ đàm thoại hội nghị giữa nhiều thiết bị đầu cuối. MCU bao gồm 1 MC (multipoint controller), tùy chọn có hoặc không có các MP (multipoint processor). MC có nhiệm vụ điều khiển tài nguyên của hội thoại bằng cách xác định tài nguyên nào cần được gửi tới các thiết bị đầu cuối, MP có nhiệm vụ trộn, chuyển mạch các chuỗi tín hiệu dữ liệu, âm thanh, hình ảnh do MC điều khiển. MCU sử dụng thông báo H.245. Bên cạnh mạng LAN của một Gateway có thể là một MCU. Một Gatekeeper có thể cũng bao gồm một MCU. 31 2.1.3. Các thành phần của giao thức H.323  Giao thức báo hiệu cuộc gọi H.225: H.225 RAS, H.225.0 Call Signalling.  Giao thức điều khiển cuộc gọi H.245.  Giao thức truyền tải thông tin đa phương tiện RTP/RTCP.  Các chuẩn mã hóa audio: G.711, G.722, G.728, G.729.  Các chuẩn mã hóa video : H.261, H.263. Nhiệm vụ của các giao thức sử dụng trong mạng H.323  H.225.0 bao gồm H.225.0 RAS và H.225.0 Call Signalling. Phiên bản đầu tiên của giao thức báo hiệu cuộc gọi H.225.0 được công bố vào ngày 11/11/1996, cho tới nay phiên bản thứ 7 được công bố chính thức vào ngày 14/12/2009. o H.225.0 RAS là giao thức giữa H.323 Endpoints (Terminal, Gateway) và Gatekeeper. RAS thực thi quá trình đăng ký, thu nhận, thay đổi băng thông, giám sát trạng thái giữa H.323 Endpoints và Gatekeeper. o H.225.0 Call Signalling (Báo hiệu cuộc gọi) dùng để thiết lập kết nối giữa các H.323 Endpoints.  H.245 là giao thức điều khiển cuộc gọi. Phiên bản đầu tiên công bố vào ngày 20/03/1996 cho tới nay phiên bản thứ 15 đã được công bố vào ngày 14/12/2009. Nó mang thông báo điều khiển hoạt động của các thành phần H.323 (H.323 host, H.323 gateway, H.323 gatekeeper). Chức năng quan trọng nhất của H.245 là khả năng trao đổi. Các chức năng khác của H.245 bao gồm đóng mở các kênh logic, các thông báo điều khiển luồng, chế độ ưu tiên cho các yêu cầu, các chỉ dẫn và các lệnh thông thường. Điểm cuối khi tham gia nó sẽ thiết lập H.245 cho mỗi cuộc gọi. Để phù hợp với H.245, các điểm cuối H.323 phải hỗ trợ cú pháp, ngữ nghĩa và các thủ tục sau: o Khả năng trao đổi. O Xác định chủ/tớ. o Đóng mở các kênh logic. o Các điều khiển cuộc gọi. O Chế độ yêu cầu.  RTP/RCTP: Có chức năng truyền và kết hợp tín hiệu media (Audio, Video).  Audio/Video CODEC: dùng để mã hóa và giải mã tín hiệu Audio và Video. 32 Data Control and Signalling Audio/Video Registration T.120 H225.0 Call Signalling H245 Conference Control RTP/RTCP H225.0 RAS TCP UDP Network Layer Data link Layer Physical Layer Hình 2.4 Kiến trúc phân tầng H.323. 33 2.1.4. Các thủ tục báo hiệu trong mạng H323 Hình 2.5 Cuộc gọi trong H.323. 34 Người ta chia một cuộc gọi làm 5 giai đoạn gồm : - Giai đoạn 1: Thiết lập cuộc gọi - Giai đoạn 2: Thiết lập kênh điều khiển - Giai đoạn 3: Thiết lập kênh truyền thông - Giai đoạn 4: Dịch vụ - Giai đoan 5: Kết thúc cuộc gọi Giai đoạn 1: Thiết lập cuộc gọi : Giao thức sử dụng : H.225 . Hai đầu cuối gọi gửi bản tin H.225 RAS đến GK để đăng ký và lấy địa chỉ của đầu cuối bị gọi. Sau đó, đầu cuối này trao đổi các bản tin H.225 (SETUP, CALL PROCEEDING, ALERTING, CONNECT) với đầu cuối bị gọi; trong lúc trao đổi những bản tin này, đầu cuối bị gọi cũng sử dụng bản tin H.225 RAS để đăng ký với GK. Hình 2.6 Thiết lập cuộc gọi H.323. Giai đoạn 2: Thiết lập kênh điều khiển: Giao thức sử dụng : H.245 . Các thông số của cuộc gọi sẽ được thống nhất trong giai đoạn này khi các đầu cuối gửi các bản tin H.245 cho nhau, bao gồm :  Khả năng trao đổi của đầu cuối (Terminal Capability Exchange) : là khả năng truyền, nhận cũng như xử lý các dòng thông tin của các đầu cuối. Việc trao đổi thông tin giữa 2 điểm cuối là cần thiết để cả 2 có cùng phương thức CODEC trong quá trình tham gia một kết 35 nối. Các thông báo H.245 sử dụng trong quá trình này : TerminalCapabilitySet, TerminalCapabilitySetAck.  Quyết định chủ tớ (Master-Slave Determination) : Mẫu thuẫn có thể nảy sinh khi 2 đầu cuối đều có khả năng MC tham gia vào một cuộc gọi hội nghị. Để giải quyết vấn đề này một đầu cuối sẽ đóng vai trò chủ, các đầu cuối khác đóng vai trò tớ. Khi xảy ra mâu thuẫn các đầu cuối phải thông báo vai trò của mình. Thủ tục này cho phép các đầu cuối tham gia trong một cuộc gọi xác định đâu là đầu cuối chủ, đâu là đầu cuối tớ. Vai trò của các đầu cuối có thể được xác định lại trong suốt tiến trình hội nghị. Các bản tin được sử dụng để xác định chủ tớ : masterSlaveDetermination, masterSlaveDeterminationAck.  Đóng mở các kênh logic (Logical Chanel Signalling) : Một kênh logic là kênh mang thông tin từ điểm cuối này đến điểm cuối khác hoặc đến nhiều điểm cuối khác. Một điểm cuối có thể yêu cầu thiết lập kênh logic bằng cách gửi bản tin openLogicalChannel. Điểm cuối có thể chấp nhận yêu cầu này hoặc từ chối. Nếu đồng ý nó sẽ đáp ứng bằng bản tin openLogicalChannelAck ngược lại nó sẽ gửi bản tin phản hồi. Giai đoạn 3 : Thiết lập kênh truyền thông Sau khi trao đổi khả năng (tốc độ nhận tối đa, phương thức mã hoá…) và xác định quan hệ master-slave trong giao tiếp ở giai đoạn 2, thủ tục điều khiển kênh H.245 sẽ thực hiện việc mở kênh logic để truyền dữ liệu. Các kênh này là kênh H.225. Sau khi mở kênh logic để truyền tín hiệu là âm thanh và hình ảnh thì mỗi đầu cuối truyền tín hiệu sẽ truyền đi một bản tin h2250MaximumSkewIndication để xác định thông số truyền. Giai đoạn 4: Dịch vụ cuộc gọi Có một số dịch vụ cuộc gọi được thực hiện trên mạng H.323 như: thay đổi độ rộng băng tần, giám sát trạng thái hoạt động, hội nghị đặc biệt, các dịch vụ bổ sung. Hai loại dịch vụ điển hình: thay đổi độ rộng băng tần và giám sát trạng thái hoạt động. Giai đoạn 5 : Kết thúc cuộc gọi Cuộc gọi được kết thúc 1 cách tuần tự: từ kênh truyền thông, kênh điều khiển, kênh báo hiệu đến đăng ký của các đầu cuối với GK. Đầu tiên hai đầu cuối kết thúc kênh truyền thông và kênh điều khiển H.245 bằng các bản tin CloseLogicalChannel và EndSessionComand. Sau đó đầu cuối bị gọi gửi đi bản tin H.225 RELEASE COMPLETE để kết thúc kênh báo hiệu cuộc gọi. Cuối cùng, đăng ký giữa GK và đầu cuối kết thúc bằng các bản tin RAS. 36 Trường hợp cuộc gọi không có GK : hai đầu cuối vẫn thực hiện các bước như trên và không sử dụng các bản tin RAS. 2.2 Bảo mật H.235 [6], [7], [8], [9], [15], [17] 2.2.1. Giới thiệu H.235 là chuẩn về bảo mật dành cho hội thoại qua mạng sử dụng giao thức báo hiệu H.323 được đưa ra bởi hiệp hội liên minh viễn thông quốc tế ITU(International Telecommunication Union). Ví dụ, những hệ thống H.323 hoạt động dựa trên mạng chuyển mạch gói (không cung cấp sự bảo đảm về chất lượng dịch vụ QoS). Vì vậy truyền thông thời gian thực cần quan tâm tới 2 điều : xác thực và bảo mật. H.235 mô tả những cơ sở và kĩ thuật bảo mật được tận dụng cho những thiết bị đầu cuối đa phương tiện H.3xx. Nó cũng bao gồm những phạm vi cần quan tâm của việc tương tác trong hội nghị truyền thông (những giao thức và thuật toán cần thiết giữa những thực thể H.323 ). H.235 cung cấp khả năng dàn xếp dịch vụ, nó liên quan đến khả năng hệ thống, yêu cầu của ứng dụng và đặc tả về ràng buộc của cách thức bảo mật. Nó hỗ trợ những thuật toán mã hóa khác nhau, với những tùy chọn thích hợp với những mục đích khác nhau (Ví dụ như độ dài khóa). 2.2.2. Giới thiệu về hệ thống sử dụng H.235 Một hệ thống khi sử dụng bảo mật H.235 sẽ bao gồm các tính năng sau: 2.2.2.1. Authentication (xác thực) Quá trình xác thực nhằm mục đích kiểm tra đối tượng đang trao đổi thông tin là ai. Quá trình này có thể được hoàn thành bằng cách trao đổi khóa công khai (public- key) dựa trên chứng nhận điện tử (certificate), hoặc là trao đổi 1 khóa chung (share secret) giữa các bên tham gia. Nó có thể là mật khẩu (password) hoặc là 1 phần thông tin nào đó đã được trao đổi. H.235 mô tả giao thức trao đổi chứng nhận điện tử (certificate), nhưng không chỉ rõ cách thức mà các bên tham gia xác nhận và chấp nhận nó. Nhìn chung, chứng nhận điện tử đưa ra 1 sự bảo đảm cho người kiểm tra rằng : người gửi chứng nhận điện tử là ai. Mục đích đằng sau chứng nhận điện tử là xác thực người sử dụng thiết bị đầu cuối chứ không đơn thuần là xác thực thiết bị đầu cuối về mặt vật lý. Sử dụng chứng nhận điện tử, giao thức xác thực(authentication) này chứng tỏ được rằng người nhận sở hữu khóa bí mật (private key) tương ứng với khóa công khai(public key) chứa trong chứng nhận điện tử. Cách xác thực này giúp chống lại kiểu tấn công man-in-the-midle, chứ không tự động xác định được người trả lời là ai. Để làm được điều này đòi hỏi phải có 1 vài thông tin khác trong chứng nhận điện tử. Ví dụ, chứng nhận điện tử thông thường bao gồm ID của nhà cung cấp dịch vụ cùng với biểu mẫu thông tin tài khoản người sử dụng quy định bởi nhà cung cấp dịch vụ. Đối với xác thực không sử dụng chứng nhận điện tử, khuyến nghị H.235 37 cung cấp báo hiệu để hoàn thành những kịch bản khác nhau. Phương pháp này phụ thuộc vào thứ tự liên lạc của các bên tham gia để thu được khóa chung (share secret). Như là 1 lựa chọn thứ 3, việc xác thực có thể hoàn thành cùng với việc sử dụng những giao thức bảo mật riêng biệt khác như TLS hay IPSEC. Xác nhận 1 chiều hay 2 chiều đều có thể được hỗ trợ bởi các điểm đầu cuối ngang hàng. Việc xác thực này có thể diễn ra trên 1 vài hoặc tất cả các kênh truyền thông. Certificate (Chứng chỉ điện tử): Sự chuẩn hóa của chứng nhận điện tử, bao gồm quá trình tạo ra chúng, quản lý, phân phối không nằm trong phạm vi của khuyến nghị này. Chứng nhận điện tử sử dụng để thiết lập kênh bảo mật (Báo hiệu cuộc gọi, điều khiển cuộc gọi) phải thích hợp với những điều đã quy định bởi giao thức được thống nhất bảo mật kênh truyền. Chú ý khi sử dụng khóa công khai trong chứng nhận điện tử, các đầu cuối được yêu cầu cung cấp chữ kí điện tử sử dụng khóa bí mật. Việc chỉ trao đổi khóa công khai trong chứng nhận điện tử không chống lai khả năng bị tấn công man-in- the-midle. Giao thức H.235 thích hợp với yêu cầu này. 2.2.2.2. Call establishment security (Bảo mật báo hiệu cuộc gọi - H.225 ) Có 2 lý do thúc đẩy việc thiết lập kênh bảo mật. Thứ nhất là xác thực đơn giản trước khi chấp nhận cuộc gọi. Thứ 2 là để cấp phép cuộc gọi. Nhiệm vụ của kênh H.225 trong trường hợp này là cung cấp các kĩ thuật bảo mật mà đầu cuối có thể đáp ứng, xác nhận các kĩ thuật bảo mật đó và trao đổi chứng chỉ điện tử. 2.2.2.3. Call control security (Bảo mật kênh điều khiển cuộc gọi H.245 ) Kênh điều khiển cuộc gọi cũng nên được bảo mật để cung cấp bảo đảm cho kênh truyền thông sau đó. Kênh H.245 được bảo vệ sử dụng những kĩ thuật bảo mật đã được trao đổi trước đó. Bản tin H.245 được sử dụng để báo hiệu thuật toán mã hóa và khóa đã được mã hóa sử dụng trong kênh chia sẻ, kênh media. Trong hội nghị đa điểm, nhiều khóa khác nhau được sử dụng cho nhiều luồng với mỗi điểm đầu cuối. Nó đảm bảo an toàn đối với mỗi điểm đầu cuối trong hội nghị. Kĩ thuật bảo vệ H.245 phụ thuộc vào đầu cuối H-series liên quan. Yêu cầu duy nhất cho tất cả các hệ thống tận dụng cấu trúc bảo mật này là mỗi bên phải có 1 vài cách thức dàn xếp hay báo hiệu rằng kênh H.245 được hoạt động theo cách thức bảo mật trước khi nó được khởi tạo. Ví dụ, H.323 sẽ sử dụng bản tin báo hiệu H.255.0 để hoàn thành việc này. 38 2.2.2.4. Media stream privacy (Bảo mật kênh truyền thông ) Khuyến nghị này mô tả bảo mật truyền thông cho luồng dữ liệu đa phương tiện truyền trên mạng chuyển mạnh gói. Bước đầu tiên trong việc đạt được bảo mật truyền thông là sự cung cấp có đảm bảo của 1 kênh điều khiển, dựa trên đó để đặt 1 khóa mã hóa và thiết lập những kênh logic sẽ mang những luồng dữ liệu truyền thông đã được mã hóa. Vì vậy, khi hoạt động trong 1 hội nghị có đảm bảo, các đầu cuối tham gia có thể sử dụng 1 kênh H.245 đã được mã hóa. Theo cách đó, thuật toán mã hóa được lựa chọn và khóa mã hóa đưa vào trong bản tin H.245 OpenLogicalChannel được bảo vệ. Dữ liệu đã được mã hóa được truyền trong các kênh logic phải nằm trong kiểu được đặc tả bởi OpenLogicalChannel. Thông tin trong phần header gửi đi không được mã hóa. Sự bảo mật của dữ liệu dựa trên cơ sở mã hóa end-to-end. 2.2.2.5. Trusted elements ( Thành phần tin tưởng ) Cơ sở của việc xác thực và bảo mật được định nghĩa bởi các đầu cuối của kênh liên lạc. Đối với 1 kênh thiết lập cuộc gọi, đó có thể là giữa người gọi và một thành phần máy chủ. Ví dụ, một máy điện thoại tin tưởng rằng chuyển mạng sẽ kết nối nó tới đúng chiếc điện thoại có số mà nó đã gọi. Vì vậy, thực thể nào giới hạn kênh điều khiển mã hóa H.245 và hay kiểu mã hóa dữ liệu của kênh logic sẽ được coi như là trusted element của kết nối, nó có thể gồm các MC(U) hay gateway. Kết quả của việc tin tưởng 1 thành phần là sự tin cậy để chia sẻ các kĩ thuật bảo mật (thuật toán hay khóa) cho thành phần này. Điều đó được thực hiện theo cách thông thường là trao đổi chứng nhận điện tử. Sự đảm bảo cuộc gọi giữa 2 điểm đầu cuối là chắc chắn nếu những kết nối giữa các trusted element được chứng minh là bảo vệ khỏi tấn công man-in-the- midle. 39 2.2.3 Các thủ tục bảo mật trong cuộc gọi sử dụng H.235 Hình 2.7 Thủ tục H.235 2.2.3.1. Thủ tục thiết lập kết nối Kênh báo hiệu cuộc gọi H.225 và kênh điều khiển cuộc gọi H.245 sẽ hoạt động trong chế độ bảo mật hoặc không bảo mật. Đối với kênh báo hiệu, cổng bảo mật TLS (port 1300 ) sẽ được sử dụng. Đối với kênh điều khiển cuộc gọi, chế độ bảo mật được quyết định bởi thông tin được truyền tải trong giao thức khởi tạo kết nối. Trong trường hợp không có khả năng bảo mật nào thích hợp, đầu cuối bị gọi có thể từ chối kết nối. Thông tin phản hồi không mang thông tin về sự không trùng khớp chế độ bảo mật, vì vậy đầu cuối gọi phải xử lý vấn đề theo nhiều cách khác nhau. Trong nhiều trường hợp, đầu cuối gọi nhận được bản tin không kèm theo khả năng bảo mật, nó sẽ kết thúc cuộc gọi. Nếu đầu cuối gọi và bị gọi có cùng khả năng bảo mật thích hợp, nó sẽ được thừa nhận bởi tất cả các bên rằng kênh H.245 sẽ hoạt động trong chế độ bảo mật. Thất bại trong việc thiết lập kênh H.245 trong chế độ bảo mật nên được xem như 40 là 1 lỗi giao thức và cuộc gọi được kết thúc. Diffie – Hellman : Phụ thuộc vào từng hoàn cảnh mà khóa sinh ra bởi trao đổi Diffie-Hellman có thể đóng vai trò như khóa bảo vệ(mã hóa khóa phiên) hay dùng như khóa phiên. Diffie-Hellman được mô tả bởi các tham số g và p với : p là 1 số nguyên lớn còn g là 1 số khởi tạo. (g^x)mod p chỉ ra khóa công khai Diffie-Hellman của bên gọi và (g^y)mod p chỉ ra khóa công khai Diffie-Hellman của bên bị gọi. Cách lựa chọn tham số cho Diffie-Hellman được chỉ dẫn trong RFC 2412. Thông số Diffie-Hellman (g, p, g^x) được đưa vào trong trường ClearToken (trong các bản tin H.225) trong đó dhkey sẽ nắm giữ khóa công khai (g^x)mod p ( trong bản tin trả lời là g^ymodp), với x(y) là số bí mật (khóa bí mật), p nằm trong trường modesize và g trong trường generator. Với những trường hợp đặc biệt như thông số Diffie-Hellman là (0, 0, 0) hay trường dhkey được bỏ trống báo hiệu rằng chế độ mã hóa không được sử dụng. Thông thường, các tham số g và p đã được quy định sẵn với những giá trị hợp lý, do đó các đầu cuối có thể chọn tham số phù hợp với nó. Người được gọi cần chú ý rằng, thực tế các tham số DH không không chuẩn có thể cung cấp sự bảo mật kém hơn so với các tham số được định nghĩa theo chuẩn. Khi thông số DH được sử dụng theo chuẩn, giá trị nhận biết DH-OID sẽ được đưa vào trường tokenOID. Trong trường hợp thông số DH không theo chuẩn được sử dụng, DH-OID “DH-dummy” sẽ được sủ dụng và đưa vào ClearToken. Bên gọi có thể sử dụng 1 hay nhiều ClearToken, trong đó sẽ mang những thông số DH khác nhau và điều đó được khuyến khích. Vì việc cung cấp nhiều thông số DH sẽ cho phép bên bị gọi lựa chọn được thông số phù hợp, sau đó bên gọi sẽ gửi lại thông số này cho bên gọi. 41 Hình 2.8 Thành phần ClearToken. Nếu bên bị gọi không chấp nhận những đề xuất đó, nó sẽ không đưa trường dhkey vào trong bản tin trả lời. Đôi khi Gatekeeper có thể không phân phối được toàn bộ các bản tin báo hiệu đến bên gọi, bao gồm cả thông tin DH. Vì vậy bên gọi không thể tính được khóa bảo vệ và khóa mã hóa. Để tránh trường hợp này, bên được gọi nên đưa thông số DH vào tất cả các bản tin trả lời. Trong trường hợp DH-OID chỉ ra 1 thông số DH khác với thực tế được mang trong dhkey và modsize, giá trị thực tế trong dhkey và modsize sẽ được ưu tiên so với DH-OID. Đối với việc trả lời, bên được gọi nên thay thế DH-OID mâu thuẫn với DH-OID phù hợp. Lỗi trong quá trình báo hiệu: Lỗi trong quá trình báo hiệu chỉ ra rằng đầu cuối không thể xử lý bản tin nhận được 1 cách phù hợp. Và khi xảy ra trường hợp đó, những mã lỗi sau sẽ cung cấp chi tiết thông tin : securityWrongSyncTime : chỉ ra rằng bên gửi nhận thấy có lỗi trong tem thời gian (timestamp), có thể là do sự không đồng bộ từ phía máy 42 chủ hay trễ qua mạng. securityReplay : chỉ ra khả năng bị tấn công kiểu “replay”( bị chặn gói tin ở giữa và sửa đổi ). Trường hợp này thường xảy ra khi cùng 1 số thứ tự gói ( sequence number) gán với 1 timestamp trong nhiều lần. securityWrongGeneralID : Gán sai địa chỉ nhận trong token. securityWrongSendersID : Gán sai địa chỉ của chính bên gửi trong token. securityIntegrityFailed : Có lỗi trong quá trình kiểm tra tính toàn vẹn hay chữ ký điện tử của bản tin. securityCertificateExpired : Chứng chỉ điện tử đã hết hạn. securityCertificateDateInvalid : Chứng chỉ điện tử không hợp lệ. securityCertificateNotReadable : Chứng chỉ điện tử không ở dạng ASN.1. securityCertificateSignatureInvalid : Chữ ký điện tử trong chứng chỉ điện tử không chính xác. securityCertificateMissing : Bên nhận chờ chứng chỉ số từ bên gửi, nhưng trong bản tin nhận được thiếu hoặc nó không được đặt đúng vị trí. securityCertificateIncomplete : Không có sự hiện diện của 1 số thành phần mở rộng trong chứng chỉ số. securityUnsupportedCertificateAlgOID : Một vài kĩ thuật như hàm băm hay chữ kí điện tử sử dụng trong chứng chỉ điện tử không được nhận biết hay không được hỗ trợ. Như là 1 phần của bản tin trả lời, bên gửi có thể cung cấp danh sách các chứng chỉ điện tử có thể được chấp nhận trong 1 token riêng, thuận tiện cho bên nhận trong việc lựa chọn chứng chỉ thích hợp. securityUnknownCA : Không trùng khớp về cơ quan cấp chứng chỉ điện tử. 2.2.3.2. Thủ tục và báo hiệu H.245 Nhìn chung, khía cạnh bảo mật của kênh truyền thông cũng được điều khiển giống như những thành phần khác; mỗi đầu cuối chỉ ra khả năng của nó, định dạng dữ liệu và bên nhận có thể chấp nhận hay từ chối chế độ đó. Các đặc tả truyền vận như khóa thuật toán mã hóa đồng bộ được đặt trong các cấu trúc đặc tả truyền vận. Hoạt động của kênh bảo mật H.245: Việc áp dụng thủ tục báo hiệu như đã đề cập ở trên giúp chỉ ra chế độ hoạt động bảo mật, sự dàn xếp và xác thực sẽ xảy ra trên kênh điều khiển H.245 trước khi bất cứ bản tin H.245 nào được trao đổi. Nếu đã dàn xếp, việc trao đổi chứng nhận điện tử sẽ sử dụng những kĩ thuật thích hợp với đầu cuối H-series. Sau khi 43 hoàn thành việc bảo mật cho kênh H.245, các đầu cuối sử dụng giao thức H.245 giống như cách mà nó sử dụng ở chế độ không bảo mật. Trao đổi khả năng : Các đầu cuối trao đổi khả năng thông qua các bản tin H.245. Nó bao gồm các định nghĩa về chỉ định bảo mật và tham số cho việc mã hóa dữ liệu. Ví dụ, 1 đầu cuối có thể cung cấp khả năng truyền và nhận video H.261 và nó cũng báo hiệu khả năng gửi và nhận video H.261 đã được mã hóa. Mỗi thuật toán mã hóa được sử dụng kết hợp với một media codec (bộ nén media) cụ thể để đưa ra định nghĩa mới về khả năng (capability). Với những capability khác, các đầu cuối có thể cung cấp khả năng mã hóa hay không cho bộ nén trong quá trình trao đổi. Điều đó cho phép những đầu cuối cân bằng các khả năng của nó dựa trên các hoạt động và tài nguyên sẵn có. Sau khi trao đổi khả năng hoàn tất, các đầu cuối mở các kênh media bảo mật giống như với kênh media không bảo mật. Vai trò của master : Bản tin H.245 MasterSlaveDetermination được sử dụng để xác định điểm cuối làm chủ cuộc gọi, áp dụng cho kênh thoại 2 chiều và tránh bị xung đột. Về phương pháp bảo mật thì master có nhiệm vụ sinh ra khóa mã hóa, cho dù nó có là người nhận hay nguồn của luồng dữ liệu. Để cho phép kênh multicast hoạt động với khóa chia sẻ, MC (là master) sẽ sinh khóa. Báo hiệu kênh truyền thông : Mỗi kênh truyền thông hoạt động hoàn toàn độc lập với những kênh khác (cụ thể là liên quan đến vấn đề bảo mật). Thông thường, các chế độ sẽ được xác định trong trường dataType của bản tin OpenLogicalChannel. Khóa mã hóa sẽ được truyền đi thông qua trường EcryptionSync trong bản tin OpenLogicalChannel hay OpenLogicalChannelAck phụ thuộc vào mối quan hệ chủ/ tớ. OpenLogicalChannelAck đóng vai trò xác nhận chế độ mã hóa. Nếu OpenLogicalChannel không được chấp nhận bởi bên bị gọi, trường dataTypeNotSupport hay dataTypeNotAvailable trong bản tin OpenLogicalChannelReject sẽ được gửi lại. Trong suốt quá trình trao đổi thiết lập kênh media, khóa mã hóa sẽ được chuyển từ master đến slave (không phụ thuộc vào người gửi bản tin OpenLogicalChannel). Đối với trường hợp đầu cuối mở kênh truyền thông không phải là master, master sẽ gửi khóa mã hóa trong bản tin OpenLogicalChannelAck (trường EcryptionSync ). Ngược lại thì OpenLogicalChannel sẽ mang theo khóa mã. 44 Hình 2.9 Trường EncytionSync 2.2.3.3. Thủ tục kết nối đa điểm Xác thực: Việc xác thực xảy ra giữa 1 đầu cuối và MC(U) giống với khi nó xảy ra trong hội nghị điểm-điểm. Ban đầu MC(U) sẽ được tin tưởng (trusted) ; những đầu cuối có mặt trong hội nghị có thể được giới hạn bởi mức độ xác thực được tận dụng bởi MC(U). Việc gửi các bản tin ConferenceRequest/ConferenceResponse cho phép các đầu cuối thu được các chứng nhận điện tử của các bên tham gia từ MC(U). Bảo mật: MC(U) sẽ là master đối với tất cả những lần trao đổi khả năng, và nó sẽ cung cấp khóa mã hóa cho các bên tham gia của hội nghị đa điểm. Khóa này có thể được sử dụng đối với tất cả các kênh truyền thông hay từng kênh riêng biệt. 2.2.3.4. Thủ tục mã hóa luồng dữ liệu kênh truyền thông Luồng dữ liệu truyền thông sẽ được mã hóa bởi thuật toán và khóa được đưa ra trên kênh H.245. Chú ý rằng các header chỉ được gắn vào các SDU (Service Data Unit) sau khi các SDU này đã được mã hóa. 45 Hình 2.10 Mã hóa luồng dữ liệu Hình 2.11 Giải mã luồng dữ liệu Khóa của phiên truyền thông : Bất cứ lúc nào trong hội nghị, bên nhận hoặc bên truyền có thể yêu cầu 1 khóa mới (sử dụng encrytionUpdateRequest). Chủ cuộc gọi (master) sẽ sinh ra 1 khóa mới đáp ứng cho yêu cầu này. Tuy nhiên, chủ cuộc gọi hoàn toàn có thể đơn phương lựa chọn khóa mới và phân phối nó đến các đầu cuối khác sử dụng bản tin MiscellaneousCommand với trường encryptionUpdate. Sau khi nhận bản tin MiscellaneousCommand với trường encryptionUpdateRequest, master sẽ gửi đi bản tin encrytionUpdate. Nếu đây là hội nghị đa điểm, MC (cũng là chủ cuộc gọi) sẽ phân phối khóa mới đến tất cả các 46 đầu cuối trước khi đưa nó đến người phát tín hiệu (transmitter). Người phát tín hiệu của dữ liệu trên kênh truyền thông sẽ sử dụng khóa mới vào thời điểm sớm nhất có thể sau khi nhận được bản tin. Transmitter cũng có thể yêu cầu khóa mới. Nếu Transmitter là 1 phần của hội nghị đa điểm, các thủ tục sẽ diễn ra như sau : o Transmitter sẽ gửi bản tin MiscellaneousCommand với trường encryptionUpdateRequest đến MC (master). o MC sẽ sinh ra khóa mới và gửi nó thông qua trường encrytionUpdate đến tất cả các thành viên trong hội nghị ngoại trừ transmitter. o Sau khi gửi khóa mới cho tất cả các thành viên khác, MC sẽ gửi encryptionUpdate đến cho transmitter. Transmitter sau đó sẽ bắt đầu sử dụng khóa mới. Hình 2.12 Cập nhật khóa Các kĩ thuật cần thiết khi sử dụng RTP : Khi sử dụng các thuật toán mã hóa khối đễ mã hóa dữ liệu truyền, có 2 vấn đề cần quan tâm ( trong tài liệu này chỉ đề cập đến mã hóa khối kiểu CBC ). Initialization vector (Giá trị khởi tạo). Padding (Gán thêm dữ liệu). 47 Hình 2.13 Mã hóa CBC Hình 2.14 Giải mã CBC Initialization vector : Initialization vector (IV) được yêu cầu khi sử dụng chế độ mã hóa khối CBC đễ mã hóa thông tin trong RTP. Kích thước của IV bằng kích thước của 1 khối dữ liệu được đưa vào mã hóa ứng với mỗi thuật toán. Cụ thể, kích thước IV đối với DES và 3- DES là 64-bit trong khi đối với AES là 128-bit. Một IV sẽ được tạo thành bởi B byte (B là độ dài khối ) với cấu trúc : Sequence kết hợp với timestamp. Nó sẽ được biểu diễn như sau : SSTTTT, với SS là 2 byte chứa Sequence còn TTTT là 4 byte chứa timestamp và cứ tiếp tục cho đến khi đủ B bytes. Ví dụ, đối với 64 và 128-bit IV sẽ tương ứng với SSTTTTSS và SSTTTTSSTTTTSSTT. Padding : Khi mà dữ liệu sẽ được đưa vào gói RTP không đủ độ dài khối (multiple of block) để đưa vào mã hóa thì một số lượng byte nhất định sẽ được thêm vào cho phù hợp. Giá trị của byte cuối cùng sẽ chỉ ra số lượng byte được thêm vào (gồm cả chính nó) và bit P trong phần đầu của RTP sẽ được thiết lập. Giá trị của byte thêm vào được quyết định bởi thuật toán mã hóa (Đối với AES là 0). 48 Ngoài ra, khi nhận được gói RTP mà phần thông tin đã được mã hóa, bit P trong phần đầu RTP không được thiết lập nhưng dữ liệu trong RTP không đủ độ dài khối (multiple of block), khi đó chế độ Ciphertext Stealing đã được áp dụng. Hình 2.15 Kĩ thuật Ciphertext Stealing Chống Spam trên kênh truyền thông : Người nhận dữ liệu RTP trên kênh truyền thông luôn muốn chống lại các kiểu tấn công từ chối dịch vụ (DoS) hay tấn công flooding trên các cổng RTP/UDP. Đối với người nhận có khả năng anti-spam có thể nhanh chóng quyết định nhận ra gói RTP từ 1 nguồn gửi trái phép và loại bỏ nó. Khả năng anti-spamming khi được thiết lập sẽ được sử dụng cho trường hợp : o Cho luồng dữ liệu thông thường không được mã hóa. o Kết hợp với luồng truyền thông đã được mã hóa . Cả 2 tùy chọn này cung cấp xác thực gói RTP thông qua mã thông điệp xác thực (MAC- Message authentication code). MAC được tính toán dựa trên việc sử dụng thuật toán mã hóa (DES -MAC) hay hàm mã hóa 1 chiều (SHA). Thuật toán tính MAC được chỉ ra trong trường OID của antiSpamAlgorithm, nó cũng chỉ ra kích thước của MAC. VD : 1 khối = 64bit đối với DES MAC. 49 Hình 2.16 Định dạng gói RTP dành cho anti spamming. Bit P trong RTP header sẽ được gán là 1. Những byte được gán thêm sẽ được nối vào phần cuối của của phần payload như định dạng trong hình trên. Trường hợp chỉ sử dụng anti – spamming : Trường hợp này được áp dụng khi dữ liệu truyền thông không được mã hóa và trường gán thêm dữ liệu (padding) bị bỏ trống. Byte cuối cùng của RTP padding sẽ chỉ ra bao nhiêu byte sẽ được bỏ qua trong gói RTP. Còn những padding khác sẽ chỉ ra MAC. MAC được tính toán dựa trên khối đầu tiên của RTP header bao gồm nhãn thời gian và số thứ tự sử dụng thuật toán MAC(được chỉ ra trong antiSpamAlgorithm) với khóa là khóa chung(share secret) đã được trao đổi trước đó. Đối với việc tính toán MAC, nên sử dụng khóa phiên H.235 mặc dù nó không được sử dụng cho việc mã hóa payload. Người gửi tính toán MAC theo mô tả ở phần trên và đưa kết quả vào trong phần RTP padding AUTH. Cả bên gửi và nhận đều biết được kích thước của MAC thông qua antiSpamAlgorithm. Đối với việc kiểm tra MAC bên phía nhận, đầu tiên người nhận tính toán lại MAC đúng theo cách mà bên gửi đã làm sau đó so sánh giá trị tính được với giá trị MAC trong RTP padding. Nếu hai giá trị này không giống nhau, RTP header đã bị thay đổi trong quá trình truyền hoặc được gửi bởi 1 đầu cuối không được xác nhận và không sở hữu khóa. Vì vậy gói RTP này sẽ bị loại bỏ và sự việc này sẽ được lưu lại; nó chỉ ra khả năng bị tấn công từ chối dịch vụ (DoS). Nếu không thì gói RTP này được xác thực và tiếp tục được xử lý, RTP padding được loại bỏ và payload được đưa vào codec. Trường hợp dữ liệu được mã hóa : Trường hợp này được áp dụng khi dữ liệu truyền thông được mã hóa và phương pháp chống spam được sử dụng. Nếu độ dài của payload không khớp với độ dài block (dành cho mã hóa ), 1 vài byte sẽ được thêm vào sau phần payload và trước phần MAC. EncrytionAlgorithm xác định thuật toán mã hóa payload trong khi antiSpamAlgorithm xác định phương pháp chống spam. Vì lý do bảo mật, mã 50 hóa truyền thông và MAC sẽ sử dụng những khóa khác nhau. Khóa dành cho MAC được tính toán dựa trên thông qua hàm mã hóa 1 chiều SHA. Sau khi bên nhận thành công trong việc xác nhận gói RTP, payload sẽ được giải mã và padding sẽ được bỏ đi. Bảng 2.1 OID anti-spamming Phục hồi lỗi bảo mật : Nếu đầu cuối phát hiện lỗ hổng bảo mật của kênh báo hiệu cuộc gọi (H.225.0 ), kênh điều khiển cuộc gọi (H.245) hay kênh truyền thông, nó nên đóng kết nối ngay lập tức theo những thủ tục thích hợp. Nếu 1 đầu cuối phát hiện lỗ hổng bảo mật của 1 trong số các kênh logic, ngay lập tức nó sẽ yêu cầu 1 khóa mới (encrytionUpdateRequest) hoặc đóng kênh logic đó lại. Đối với MC(U) nó sẽ đóng kênh logic này lại và tạo khóa mới. 51 2.2.4. Các thủ tục xác thực trong cuộc gọi sử dụng H.235 2.2.4.1. Cơ chế xác thực Baseline security profile Bảng 2.2 Baseline security profile Đối với cơ chế xác thực này, người sử dụng sẽ dùng mật khẩu chung hay khóa bí mật, nó sẽ được sử dụng trong hàm băm để áp dụng băm tất cả các trường trong bản tin H.225 RAS và báo hiệu nhằm mục đích đảm bảo sự toàn vẹn cho bản tin. Đối với tùy chọn bảo mật thoại, lược đồ trên đề xuất sử dụng các thuật toán AES-128, RC2-compatible , DES hay triple-DES dựa trên sự trao đổi về chế độ và yêu cầu diễn ra trước đó. Các cách thức điều khiển truy cập được áp dụng dựa trên thông tin truyền tải nhận được trong các trường báo hiệu H.235 ( ClearToken, CrytoToken ). Các thực thể truyền thông liên quan có thể quyết định chế độ xác thực thông qua thông qua các trường tokenOID và algorithmOID trong các bản tin. Có 2 dịch vụ được cung cấp trong Baseline security profile : o Authentication and integriy : Nó kết hợp sự hỗ trợ về toàn vẹn thông tin với xác thực người sử dụng. Có thể chắc chắn về sự xác thực này bằng cách áp dụng đúng thủ tục trao đổi khóa chung (share secret). o Authenticaton-only : Đây là 1 tùy chọn cung cấp sự xác thực cho 1 vài trường được lựa chọn chứ không phải toàn bộ bản tin. Nó được áp dụng cho các bản tin báo hiệu đi qua các thiết bị NAT hay tường lửa. 52 Người sử dụng có thể chắc chắn về sự xác thực này bằng cách áp dụng đúng thủ tục trao đổi share secret. Thủ tục xác thực : Bên gửi bản tin xác thực sẽ tính toán như sau : - Thiết lập giá trị băm có độ dài là 96 bit. - ASN.1- mã hóa toàn bộ bản tin. - Xác định và ghi lên trường chứa giá trị băm 96 bit 0 trong bản tin đã được mã hóa bằng ASN.1. - Tính giá trị băm dựa trên bản tin được mã hóa bởi ASN.1 sử dụng HMAC-SHA1- 96. - Thay thế giá trị trường hash bằng giá trị vừa tính được. 53 Hình 2.17 Quá trình tính toán xác thực ở bên gửi. Bên nhận bản tin sẽ xử lý như sau : - ASN.1 – giải mã bản tin. - Tách giá trị băm nhận được và lưu nó vào biến cục bộ RV. 54 - Tìm và xác định vị trị trí của giá trị RV trong bản tin chưa được giải mã. Ghi chồng lên giá trị đó 96 bit 0. - Tính lại giá trị băm đối với bản tin chưa được giải mã đó sử dụng HMAC- SHA1-96. - So sánh RV với giá trị băm vừa tính được. Bản tin được xem như là toàn vẹn nếu 2 giá trị này bằng nhau, khi đó việc xác nhận thành công và thủ tục được kết thúc. - Nếu 2 giá trị không bằng nhau thì việc xác thực thất bại và bản tin đã bị sửa đổi (do lỗi đường truyền hay cố ý) trong quá trình truyền. 55 Hình 2.18 Quá trình xác thực bên nhận Tóm lại: Sử dụng cơ chế xác thực này có thể chống lại các nguy cơ tấn công sau : 56 Denial-of-service attacks : Kiểm tra nhanh các giá trị băm có thể tránh được dạng tấn công này. Man-in-the-middle attacks : sử dụng authentication and integrity. Replay attacks : Sử dụng sequence và timestamp. Spoofing(Giả mạo) : Sử dụng cơ chế xác nhận. Connection hijacking : sử dụng authentication and integrity. 2.2.4.2. Cơ chế xác thực Signature security profile Signature security profile được đề xuất như là 1 tùy chọn, thường được áp dụng trong trường hợp có nhiểu điểm cuối mà việc sử dụng mật khẩu/khóa chung là không khả thi. Nó cung cấp thêm dịch vụ bảo mật không thể chối bỏ với chữ ký điện tử và chứng chỉ điện tử. Chữ ký điện tử sử dụng hàm băm SHA1 hoặc MD5 cho việc xác thực và toàn vẹn bản tin. Bảng 2.3 Signature security profile Bên gửi bản tin sẽ tính toán chữ ký điện tử như sau : - Giá trị của trường chứa chữ ký điện tử sẽ được thiết lập thành 1 giá trị cố định (có thể là 1024 bit). Bước này nhằm dành ra 1 khoảng trống cho độ dài tối đa của chữ ký điện tử. - ASN.1 mã hóa toàn bộ bản tin. - Xác định đoạn đã được dành ra trong bản tin mã hóa và chồng lên những bit 0. - Tính toán chữ ký điện tử trên bản tin được mã hóa ASN.1 - Thay thế các bit 0 bằng chữ ký điện tử. 57 Hình 2.19 Quá trình tính toán giá trị xác thực bên gửi, sử dụng chữ ký điện tử 58 Bên nhận sẽ xác thực như sau : - ASN.1 giải mã bản tin. - Tách chữ ký điện tử nhận được và lưu nó vào trong biến cục bộ SV. - Tìm và xác định vị trí của giá trị RV trong bản tin mã hóa. - Ghi đè lên vị trí đó các bit 0. - Tính toán lại chữ ký điện tử trên bản tin mã hóa dựa và phương thức chỉ ra bởi algorithmOID. - So sánh SV với giá trị vừa tính được. Bản tin được coi là không bị sửa đổi nếu 2 giá trị này bằng nhau, khi đó việc xác thực thành công và thủ tục dừng lại. 59 Hình 2.20 Quá trình xác thực ở bên nhận. Tóm lại: Sử dụng cơ chế xác thực này, đầu cuối không chỉ chống lại được các nguy cơ tấn công được trình bày trong Baseline security profile mà còn cung cấp khả năng xác thực người dùng bên kia nhờ các thông tin chỉ ra trong chứng chỉ điện tử. 60 CHƯƠNG 3 THỰC NGHIỆM 3.1 Giới thiệu phần mềm Xcall 3.1.1 Tổng quan hệ thống Hình 3.1 Tổng quan hệ thống  XCall Application: Là một ứng dụng H.323 client đơn giản được xây dựng dựa trên bộ thư viện mã nguồn mở Open H.323, cho phép thực hiện các cuộc gọi bảo mật giữa 2 điểm đầu cuối.  Open H.323: bộ thư viện mã nguồn mở được viết bằng ngôn ngữ lập trình C++, cung cấp các giao diện cần thiết cho việc thiết lập một hệ thống VOIP sử dụng giao thức H.323 làm giao thức báo hiệu.  Codecs: bộ mã hóa và giải mã tín hiệu audio. Tín hiệu audio trước khi truyền đi phải được mã hóa, bên nhận sau khi nhận được tín hiệu phải tiến hành giải mã trước khi phát ra loa.  RTP: thư viện được tích hợp sẵn trong bộ thư viện mã nguồn mở OpenH.323, làm nhiệm vụ vận chuyển tín hiệu audio giữa các điểm đầu cuối. Các chức năng chính của XCall: - Gọi điểm – điểm giữa 2 client - Bảo mật cuộc gọi sử dụng giao thức H.235 3.1.2 Thiết kế chương trình RecorderPlayer XCall PSoundChannel PSoundChannelOpenH.323 H323Endpoint Codecs H323Codec RTP H323Channel Hình 3.2 Tương tác giữa các module 61 Chương trình bao gồm 6 module chính tương tác với nhau: - XCall: đây là module ứng dụng bao gồm giao diện của phần mềm và xử lý nghiệp vụ của phần mềm, XCall giao tiếp với OpenH.323 thông qua đối tượng H323Endpoint. - OpenH.323: đây là module lõi của hệ thống thực hiện các chức năng như: Quản lý các cuộc gọi H.323, trao đổi các khóa bảo mật sử dụng giao thức H.235, thu, phát, mã hóa và giải mã tín hiệu âm thanh. Module này bao gồm các module con như: Module thu tín hiệu âm thanh (Recorder), module phát tín hiệu âm thanh (Player), module mã hóa giải mã (Codecs) và module thực hiện chức năng vận chuyển tín hiệu giữa các đầu cuối (RTP). - Recorder: Giao tiếp với thiết bị microphone để thu tín hiệu âm thanh và chuyển cho khối mã hóa. - Codecs: Thực hiện chức năng mã hóa tín hiệu âm thanh trước khi truyền đi và giải mã sau khi nhận được. - Player: Phát âm thanh ra loa. 3.1.3 Class diagram Hình 3.3 Class Diagram 62 Hình 3.4 Biểu đồ sequence huỷ cuộc gọi 3.1.4 Giao diện chương trình Hình 3.5 Giao diện chương trình Xcall 63 3.2 Giới thiệu chương trình Wireshark Wireshark là một chương trình bắt gói tin trên mạng. Nó sẽ cố gắng bắt tất cả các gói tin và hiển thị thông tin chi tiết nhất có thể. Mục đích của việc sử dụng Wireshark có thể là: - Quản trị mạng: kiểm tra các lỗi trên mạng - Bảo mật hệ thống: kiểm tra các lỗi về bảo mật - Phát triển hệ thống: gỡ rối hoạt động của giao thức - Các đối tượng khác: học về các giao thức nội tại của mạng Hình 3.6 Chương trình Wireshark Wireshark có một số ưu điểm như sau: - Có thể chạy trên cả hệ thống UNIX và Windows - Bắt các bản tin trực tuyến trên card mạng - Hiện gói tin với thông tin về giao thức - Có thể mở và lưu lại các dữ liệu đã bắt được - Import and Export các gói tin từ rất nhiều chương trình khác - Lọc gói tin với nhiều tiêu chí khác nhau - Tìm kiếm gói tin với nhiều tiêu chí - Hiển thị gói tin với màu nổi bật dựa trên bộ lọc - Tạo rất nhiều thống kê 64 3.3 Khảo sát cuộc gọi VoIP thực tế Cuộc gọi được tiến hành trong thực tế là cuộc gọi trong mạng LAN giữa 2 PC sử dụng phần mềm Xcall hỗ trợ G711 gọi trực tiếp cho nhau. Phần mềm wireshark chạy trên máy bị gọi bắt được các bản tin trao đổi giữa 2 máy 3.3.1 Đối với cuộc gọi khi không sử dụng giao thức bảo mật H.235 Hai máy trao đổi các bản tin H.225 mà không kèm theo trường Token chứa khóa Hình 3.7 Bản tin Setup Sau khi trao đổi xong các bản tin điều khiển và mở kênh truyền thông, các gói tin RTP mang thông tin thoại sẽ được truyền đi giữa 2 PC. Wireshark cũng bắt được các gói tin này và có khả năng giải nén cũng như nghe lại. Như vậy, khi không sử dụng H.235, thông tin truyền đi không được mã hóa và có thể bị nghe lén 65 Hình 3.8 Giải nén gói tin RTP 3.3.2 Trường hợp sử dụng H.235 1. Máy gọi gửi cho máy nhận bản tin Setup có thông số DH trong trường token. Hình 3.9 Bản tin Setup H.235 66 2. Máy bị gọi nhận được bản tin Setup sẽ chọn thông số DH phù hợp nhất và gửi lại nó cho bên gọi. Hình 3.10 Bản tin Connect H.235 3.Hai bên sau đó sẽ trao đổi các bản tin H.245 về các thông số như audio, video CODEC, master/slave. Sau đó, điểm cuối là master sẽ gửi đi bản tin mở kênh có kèm theo khóa phiên ( đã được mã hóa bởi khóa chung DH) trong trường encrytionSync. Hình 3.11 Bản OpenLogicalChannel H.235 4. Sau khi mở kênh thoại, các gói tin sau đó sẽ được mã hóa bằng khóa và thuật toán trao đổi trước đó. Khi này Wireshark cũng bắt được các bản tin trao đổi giữa 2 PC. Tuy nhiên khi giải nén các gói tin RTP chỉ nhận được các tín hiệu vô nghĩa. 67 Hình 3.12 Giải nén gói tin RTP H.235 68 KẾT LUẬN Những kết quả luận văn đã đạt được Luận văn đã tìm hiểu tổng quan về VoIP. Kiến trúc, cấu trúc kết nối, các ưu nhược điểm của hệ thống VoIP. Tìm hiểu một số nguy cơ tấn công vào mạng VoIP, các công nghệ và thuật toán bảo mật sử dụng trong mạng VoIP. Tìm hiểu giao thức báo hiệu H.323, các bước thiết lập cuộc gọi cơ bản sử dụng giao thức báo hiệu H.323. Đặc biệt nghiên cứu kỹ giao thức bảo mật H.235 sử dụng giao thức báo hiệu H.323 cho hệ thống VoIP. Xây dựng phần mềm VoIP Xcall dựa trên mã nguồn mở OpenH323. Phần mềm Xcall có hỗ trợ giao thức bảo mật H.235 sử dụng giao thức báo hiệu H.323. Phương hướng nghiên cứu tiếp theo Nghiên cứu cải tiến phần mềm Xcall để có chất lượng cuộc thoại tốt hơn. Có thể cài đặt trong môi trường Internet, hội nghị đa điểm... Nghiên cứu về giao thức báo hiệu khác trong VoIP như SIP... cũng như các hỗ trợ bảo mật áp dụng cho các giao thức báo hiệu này. Tuy đã cố gắng hết sức trong quá trình nghiên cứu và thực hiện đề tài nhưng do thời gian và kiến thức hạn chế, luận văn của tôi không tránh khỏi những sai xót. Một lần nữa cho phép tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Nguyễn Văn Tam, thầy cô giáo khoa Công nghệ thông tin trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, bạn bè đồng nghiệp đã tận tình giúp đỡ và động viên tôi để tôi có thể hoàn thành luận văn này.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-GIAO THỨC BẢO MẬT H.235 SỬ DỤNG TRONG HỆ THỐNG VOIP.pdf
Tài liệu liên quan