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.
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.
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ì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.
Hình 2.18 Quá trình xác thực bên nhận
Tóm lại:
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ử.
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.
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ử.
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
Xcall Application
Open H.323 Library Codecs
RTP/Internet
Application
API
IO
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 Recorder Recorder Player XCall PSoundChannel PSoundChannel OpenH.323 H323Endpoint Codecs H323Codec RTP H323Channel
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 +OnAnswerCall() +OnAnswerCall() +MakeCall() +ClearCall() +AnsweringCall() H323EndPoint +Initialize() +SetH235Flag() +isUsingH235() +OnAnswerCall() +OnConnectionEstablished() +OnConnectionCleared() +CreateConnection() -m_pParent XCallEndPoint +OnBnClickedBtcall() +OnBnClickedBtendcall() +OnBnClickedUseh235() +OnBnClickedButtonAnswer() +OnBnClickedButtonRefuse() +OnIpnFieldchangedDestaddr() -m_bUsingH235 -m_pEndPoint CXCallDlg CDialog Hình 3.3 Class Diagram
Hình 3.4 Biểu đồ sequence huỷ cuộc gọi
3.1.4 Giao diện chƣơng trình
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ê
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
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.
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.
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.
Tiếng Việt
1. Ths Nguyễn Trọng Minh (2010), Giáo trình Kỹ thuật chuyển mạch 1, Trường Học viện Công nghệ bưu chính viễn thông, tr.10-40
2. TS Nguyễn Đại Thọ(2007), Bài giảng môn học An toàn mạng, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.
Tiếng Anh
3. IETF(1996), RFC 1889 A Transport Protocol for Real-Time Applications(RTP),
Lawrence Berkeley National Laboratory, Internet Engineering Task Force - IETF, pp.10- 39
4. IETF(2002), RFC 3280 - Internet X.509 Public Key Infrastructure, Certificate and Certificate Revocation List (CRL) Profile, Internet Engineering Task Force - IETF, pp.24- 46, 50-53.
5. ITU-T (2009), Recommendation H.225.0, Call signalling protocols and media stream packetization for packet-based multimedia communication systems, International Telecommunication Union, pp.8-47
6. ITU-T(2000), Recommendation H.235 - Security and encryption for H-series (H.323 and other H.245-based) multimedia terminals, International Telecommunication Union,pp.5-21, 32-45, 48-73
7. ITU-T(2005), Recommendation H235.0 - H.323 security: Framework for security in H-
series (H.323 and other H.245-based) multimedia systems, International
Telecommunication Union, pp.9-24
8. ITU-T(2005), Recommendation H235.1 – H323 security : Baseline security profile,
International Telecommunication Union, pp.5-17
9. ITU-T(2005), Recommendation H235.2 – H323 security : Signature security profile,
International Telecommunication Union, pp.7-19.
10. ITU-T(2009), Reconmendation H.323 Visual telephone systems and equipment for local area networks which provide a non-guaranteend quality of service, International Telecommunication Union, pp.14-47, 51-70, 81-129,
11. ITU-T(2009), Recommendation H.245 Control protocol for multimedia communication, International Telecommunication Union, pp.8-10, 79-122.
12. P. Mehta and S. Udani(2001), “Overview of Voice over IP”, Technical Report MS- CIS-01-31, Department of Computer Information Science, University of Pennsylvania, pp.5-8, 26-28.
13. NIST(2001), Advanced Encryption Standard, National Institute of Standards and Technology, Information Technology Laboratory (ITL), pp.7-23
14. E.Rescola(1999), RFC 2631 Diffie-Hellman Key Agreement Method, Network Working Group, ITEF, pp.2-13
15. D. Richard Kuhn, Thomas J. Walsh, Steffen Fries (2005), Security Considerations for Voice Over IP Systems, National Institute of Standards and Technology(NIST), pp.19-37, 52-68
16. Rosemary Lewis (2003), Operational benefit of implementing VoIP in a tactical enviroment, Naval Postgraduate School, Monterey California, pp.15-18.
pp.123-143, 239-261
18. William Stallings(2005), Cryptography and Network Security Principles and Practices- Fourth Edition, Prentice Hall, pp.28-35, 62-90, 134-165, 289-313, 334-344, 377-393,