Nghiên Cứu Triển Khai Giải Pháp Bảo Vệ Thông Tin Thoại Trên Nền Mạng IP Sử Dụng Asterisk Và Linphone (Luận Văn Thạc Sĩ) MỤC LỤC i CÁC KÝ HIỆU, CHỮ VIẾT TẮT iii LỜI MỞ ĐẦU 1 Chương 1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP (VoIP) 2 1.1. Hệ thống thông tin thoại trên nền mạng IP 2 1.1.1. Tổng quan về mạng VoIP 2 1.1.1.1. Ưu điểm của mạng VoIP 2 1.1.1.2. Nhược điểm của mạng VoIP 3 1.1.1.3. Các kiểu kết nối đầu cuối trong mạng VoIP 3 1.1.2. Mô hình kiến trúc tổng quan của mạng VoIP 4 1.1.3. Quá trình thiết lập cuộc gọi 5 1.1.4. Các nhân tố ảnh hưởng đến chất lượng của mạng VoIP 6 1.2. Các giao thức báo hiệu (Signaling Protocol) 7 1.2.1. Giao thức báo hiệu SIP (Session Initiation Protocol) 7 1.2.1.1. Các loại bản tin SIP 8 1.2.1.2. Mô tả cuộc gọi SIP 12 1.2.1.3. Các thành phần trong mạng SIP 14 1.2.2. Giao thức báo hiệu H.323 16 1.2.2.1. Các thành phần chính trong mạng H.323 17 1.2.2.2. Giao thức H.225 19 1.2.2.3. Giao thức H.245 20 1.3. Các giao thức truyền tải (Media Protocols) 20 1.3.1. RTP (Real-time Protocol) 20 1.3.2. RTCP (RTP Control Protocol) 21 Chương 2 GIẢI PHÁP BẢO VỆ CHO HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP 24 2.1. Các nguy cơ mất an toàn và một số tấn công thường gặp 24 2.1.1. Các nguy cơ mất an toàn từ môi trường mạng Internet 24 2.1.1.1. Tấn công nghe lén (Sniffing) 24 2.1.1.2. ARP – Address Resolution Protocol 25 2.1.1.3. Spam VoIP (SPIT) 26 2.1.1.4. DoS - Denial of Service 26 2.1.1.5. DDoS – Distribute DoS 28 2.1.2. Điểm yếu bảo mật trong giao thức SIP 30 2.2. Giải pháp bảo vệ hệ thống thông tin thoại cho hệ thống VoIP 31 2.2.1. Giải pháp bảo vệ giao thức báo hiệu SIP (SIPS) 32 2.2.2. Giải pháp bảo vệ giao thức truyền tải 35 2.2.2.1 SRTP (Secure Real-time Transport Protocol) 36 2.2.2.2 SRTCP (Secure RTCP) 38 2.2.3. Một số giải pháp nâng cao độ an toàn cho hệ thống VoIP 39 2.2.3.1. Firewall 39 2.2.3.2. DNSSEC (DNS Security Extensions) 40 2.2.3.3. IDS (Intrusion Detection System) 41 2.3. Bảo vệ hệ thống thông tin thoại sử dụng Asterisk và Linphone 42 2.3.1. Bộ phần mềm mã nguồn mở Asterisk 42 2.3.1.1. Kiến trúc của Asterisk 44 2.3.1.2. Cơ chế bảo mật của Asterisk 45 2.3.1.3. Các dịch vụ cơ bản của Asterisk 47 2.3.2. Bộ phần mềm mã nguồn mở Linphone 47 2.3.2.1. Kiến trúc hệ thống của Linphone 48 2.3.2.2. Ưu điểm bảo mật của Linphone 50 Chương 3 TRIỂN KHAI HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP SỬ DỤNG ASTERISK VÀ LINPHONE 53 3.1 Mô hình hệ thống 53 3.2 Quá trình cài đặt 53 3.3 Nhận xét độ an toàn 58 VoIP (Voice over Internet Protocol - truyền giọng nói trên giao thức IP) là công nghệ truyền thông tin thoại qua mạng Internet. Công nghệ này bản chất là dựa trên chuyển mạch gói nhằm phát triển công nghệ truyền thoại cũ dùng chuyển mạch kênh. Nó nén thông tin thoại thành các gói IP và sau đó truyền qua mạng Internet, vì thế nó có thể cung cấp các cuộc gọi miễn phí hoặc giúp làm giảm chi phí cuộc gọi đến mức thấp nhất. Giải pháp VoIP ngày càng được phổ biến bởi sự linh hoạt, tiện dụng và chi phí quản lý cũng như bảo trì hệ thống rất thấp. Tuy nhiên, bên cạnh những lợi ích mà VoIP mang lại, người dùng cũng phải đối mặt với rất nhiều nguy cơ mất an toàn khi sử dụng hệ thống này. Điển hình là các tấn công từ mạng Internet như đánh cắp dữ liệu, nghe lén, mạo danh,… Do đó, cần phải triển khai các giải pháp bảo vệ thông tin thoại trên nền mạng IP (VoIP). Một trong những giải pháp đó là dùng hệ thống VoIP sử dụng Asterisk và Linphone. Asterisk và Linphone là hai bộ phần mềm mã nguồn mở được cung cấp miễn phí và tương thích với khá nhiều thiết bị phần cứng. Trong đó, Asterisk thực hiện chức năng là một tổng đài điện thoại (PBX) cung cấp đầy đủ tính năng một tổng đài điện thoại thương mại, cũng như hỗ trợ rất nhiều giao thức VoIP như SIP, H.323,… Đặc biệt, Asterisk còn hỗ trợ thêm các giao thức an toàn như SIPS, SRTP,... để nâng cao độ an toàn của hệ thống. Linphone là một phần mềm mã nguồn mở và hỗ trợ nhiều giao thức bảo mật nên có độ an toàn cao và tương thích với nhiều hệ thống VoIP. Hơn hết Linphone có thể triển khai trên rất nhiều môi trường như Windows, Linux, IOS, Android,…
Trang 1Viện Công Nghệ Thông Tin Và Truyền Thông
ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2ii
MỤC LỤC
MỤC LỤC i
CÁC KÝ HIỆU, CHỮ VIẾT TẮT iv
LỜI MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP (VoIP) 2
1.1 Hệ thống thông tin thoại trên nền mạng IP 2
1.1.1 Tổng quan về mạng VoIP 2
1.1.1.1 Ưu điểm của mạng VoIP 2
1.1.1.2 Nhược điểm của mạng VoIP 3
1.1.1.3 Các kiểu kết nối đầu cuối trong mạng VoIP 3
1.1.2 Mô hình kiến trúc tổng quan của mạng VoIP 4
1.1.3 Quá trình thiết lập cuộc gọi 5
1.1.4 Các nhân tố ảnh hưởng đến chất lượng của mạng VoIPLỗi! Thẻ đánh dấu không được xác định 1.2 Các giao thức báo hiệu (Signaling Protocol)Lỗi! Thẻ đánh dấu không được xác định 1.2.1 Giao thức báo hiệu SIP (Session Initiation Protocol)Lỗi! Thẻ đánh dấu không được xác định 1.2.1.1 Các loại bản tin SIP Lỗi! Thẻ đánh dấu không được xác định 1.2.1.2 Mô tả cuộc gọi SIP Lỗi! Thẻ đánh dấu không được xác định 1.2.1.3 Các thành phần trong mạng SIPLỗi! Thẻ đánh dấu không được xác định 1.2.2 Giao thức báo hiệu H.323Lỗi! Thẻ đánh dấu không được xác định 1.2.2.1 Các thành phần chính trong mạng H.323Lỗi! Thẻ đánh dấu không được xác định 1.2.2.2 Giao thức H.225 Lỗi! Thẻ đánh dấu không được xác định 1.2.2.3 Giao thức H.245 Lỗi! Thẻ đánh dấu không được xác định 1.3 Các giao thức truyền tải (Media Protocols) 6
1.3.1 RTP (Real-time Protocol) 6
1.3.2 RTCP (RTP Control Protocol) 7
Chương 2 GIẢI PHÁP BẢO VỆ CHO HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP 10
Trang 32.1 Các nguy cơ mất an toàn và một số tấn công thường gặp 10
2.1.1 Các nguy cơ mất an toàn từ môi trường mạng Internet 10
2.1.1.1 Tấn công nghe lén (Sniffing) 10
2.1.1.2 ARP – Address Resolution Protocol 11
2.1.1.3 Spam VoIP (SPIT) 12
2.1.1.4 DoS - Denial of Service 12
2.1.1.5 DDoS – Distribute DoS 14
2.1.2 Điểm yếu bảo mật trong giao thức SIP 16
2.2 Giải pháp bảo vệ hệ thống thông tin thoại cho hệ thống VoIP 17
2.2.1 Giải pháp bảo vệ giao thức báo hiệu SIP (SIPS) 18
2.2.2 Giải pháp bảo vệ giao thức truyền tải 21
2.2.2.1 SRTP (Secure Real-time Transport Protocol) 22
2.2.2.2 SRTCP (Secure RTCP) 24
2.2.3 Một số giải pháp nâng cao độ an toàn cho hệ thống VoIP 25
2.2.3.1 Firewall 25
2.2.3.2 DNSSEC (DNS Security Extensions) 26
2.2.3.3 IDS (Intrusion Detection System) 27
2.3 Bảo vệ hệ thống thông tin thoại sử dụng Asterisk và Linphone 28
2.3.1 Bộ phần mềm mã nguồn mở Asterisk 28
2.3.1.1 Kiến trúc của Asterisk 30
2.3.1.2 Cơ chế bảo mật của Asterisk 31
2.3.1.3 Các dịch vụ cơ bản của Asterisk 33
2.3.2 Bộ phần mềm mã nguồn mở Linphone 33
2.3.2.1 Kiến trúc hệ thống của Linphone 34
2.3.2.2 Ưu điểm bảo mật của Linphone 36
Chương 3 TRIỂN KHAI HỆ THỐNG THÔNG TIN THOẠI TRÊN NỀN MẠNG IP SỬ DỤNG ASTERISK VÀ LINPHONE 39
3.1 Mô hình hệ thống 39
3.2 Quá trình cài đặt 39
3.3 Nhận xét độ an toàn 44
KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
Trang 4iv
CÁC KÝ HIỆU, CHỮ VIẾT TẮT
AES Advance Encryption Standard Chuẩn mã hóa tiên tiến
ARP Address Resolution Protocol Giao thức phân giải địa chỉ DOS Denial of Service Tấn công từ chối dịch vụ
DNS Domain Name System Hệ thống phân giải tên miền DSP Digital Signal Processor Công nghệ xử lý tín hiệu số
HTTP Hypertext Transfer Protocol Giao thức trao đổi thông tin
của website IETF Internet Engineering Task Force Tổ chức quản lý kỹ thuật
IP Internet Protocol Giao thức Internet
ITU-T International
Telecommunication Union – Telecommunication
Standardization Sector
Tiêu chuẩn viễn thông – Thuộc tổ chức viễn thông quốc tế
MAC Media Access Control Điều khiển truy cập môi
trường MCU Multipoint Control Unit Đơn vị điều khiển đa điểm PBX Private Branch Exchange Tổng đài nhánh riêng
PSTN Public Switched Telephone
Trang 5RTCP Real Time Control Protocol Giao thức điều khiển truyền
tải thời gian thực SDP Session Description Protocol Giao thức mô tả phiên
SIP Session Initiation Protocol Giao thức khởi tạo phiên
SIPS Secure Session Initiation
SPIT Spam Over Internet Telephony Hiện tượng nhiều cuộc gọi
không mong muốn trong hệ thống VoIP
SRTP Secure Real Time Protocol Giao thức truyền tải thời gian
thực an toàn TCP Transmission Control Protocol Giao thức điều khiển truyền
vận TLS Transport Layer Security Bảo mật tầng giao vận
UA User Agent Thiết bị đầu cuối trong giao
thức SIP UDP User Datagram Protocol Giao thức truyền dữ liệu
VoIP Voice over Internet Protocol Truyền giọng nói trên giao
thức IP ZRTP Zimmermann RTP Giao thức thỏa thuận khóa
Zimmermann
Trang 61
LỜI MỞ ĐẦU
VoIP (Voice over Internet Protocol - truyền giọng nói trên giao thức IP)
là công nghệ truyền thông tin thoại qua mạng Internet Công nghệ này bản chất
là dựa trên chuyển mạch gói nhằm phát triển công nghệ truyền thoại cũ dùng chuyển mạch kênh Nó nén thông tin thoại thành các gói IP và sau đó truyền qua mạng Internet, vì thế nó có thể cung cấp các cuộc gọi miễn phí hoặc giúp làm giảm chi phí cuộc gọi đến mức thấp nhất
Giải pháp VoIP ngày càng được phổ biến bởi sự linh hoạt, tiện dụng và chi phí quản lý cũng như bảo trì hệ thống rất thấp Tuy nhiên, bên cạnh những lợi ích mà VoIP mang lại, người dùng cũng phải đối mặt với rất nhiều nguy cơ mất an toàn khi sử dụng hệ thống này Điển hình là các tấn công từ mạng Internet như đánh cắp dữ liệu, nghe lén, mạo danh,… Do đó, cần phải triển khai các giải pháp bảo vệ thông tin thoại trên nền mạng IP (VoIP) Một trong những giải pháp đó là dùng hệ thống VoIP sử dụng Asterisk và Linphone
Asterisk và Linphone là hai bộ phần mềm mã nguồn mở được cung cấp miễn phí và tương thích với khá nhiều thiết bị phần cứng Trong đó, Asterisk thực hiện chức năng là một tổng đài điện thoại (PBX) cung cấp đầy đủ tính năng một tổng đài điện thoại thương mại, cũng như hỗ trợ rất nhiều giao thức VoIP như SIP, H.323,… Đặc biệt, Asterisk còn hỗ trợ thêm các giao thức an toàn như SIPS, SRTP, để nâng cao độ an toàn của hệ thống Linphone là một phần mềm mã nguồn mở và hỗ trợ nhiều giao thức bảo mật nên có độ an toàn cao và tương thích với nhiều hệ thống VoIP Hơn hết Linphone có thể triển khai trên rất nhiều môi trường như Windows, Linux, IOS, Android,…
Trang 7Chương 1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN THOẠI TRÊN
vụ
VoIP cho phép tạo cuộc gọi dùng kết nối băng thông rộng thay vì dùng đường dây điện thoại tương tự (analog) Nhiều dịch vụ VoIP có thể chỉ cho phép bạn gọi người khác dùng cùng loại dịch vụ, tuy nhiên cũng có những dịch
vụ cho phép gọi những người khác dùng số điện thoại như số nội bộ, đường dài, di động, quốc tế
Nguyên tắc hoạt động của VoIP bao gồm việc số hoá tín hiệu tiếng nói, thực hiện việc nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng Khi tới nơi nhận các gói tin này được ráp lại theo đúng thứ tự của bản tin, giải mã tín hiệu tương tự phục hồi lại tiếng nói ban đầu
Chuyển đổi Analog - Digital
Nén dữ liệu thoại
Endpoint
RTP
UDP Packet UDP Packet
RTP
Giải Nén dữ liệu thoại
Chuyển đổi Digital - Analog
Hình 1.1 Quá trình xử lý dữ liệu trong VoIP
1.1.1.1 Ưu điểm của mạng VoIP
Giảm chi phí dịch vụ đường dài: Đây là ưu điểm nổi bật của mạng
VoIP so với điện thoại thông thường Chi phí cuộc gọi sẽ chỉ bằng chi phí truy cập Internet Các kỹ thuật nén thoại tiên tiến giúp có thể sử dụng tối ưu băng thông
Trang 83
Khả năng mở rộng và nâng cao ứng dụng: Ngoài các ứng dụng thoại
và fax, mạng VoIP còn có thể mở ra nhiều tính năng mới trong dịch vụ thoại thông qua các ứng dụng đa phương tiện như truyền hình ảnh, dữ liệu,… Ngoài
ra mạng có thể được mở rộng một cách dễ dàng
Quản lý băng thông: Khi một cuộc gọi diễn ra, nếu lưu lượng của mạng
thấp thì băng thông dành cho cuộc gọi sẽ cho chất lượng tốt nhất, nhưng khi lưu lượng của mạng cao thì băng thông dành cho mỗi cuộc gọi sẽ duy trì ở mức trung bình để có thể đáp ứng cho nhiều người nhất Điều này làm tăng hiệu quả
sử dụng của điện thoại IP
Tối ưu hệ thống: Vì truyền tin qua Internet nên khi có nhiều cuộc gọi
cũng không chiếm hết toàn bộ kênh truyền như cuộc gọi thông thường Từ đó người dùng có thể sử dụng tối đa các tài nguyên của hệ thống, kết hợp việc thoại với việc truyền file, mail, web,…
1.1.1.2 Nhược điểm của mạng VoIP
Kỹ thuật phức tạp: Truyền tín hiệu theo thời gian thức trên mạng
chuyển mạch gói là rất khó thực hiện nên có thể xảy ra các hiện tượng mất gói
và có độ trễ khi truyền tin trên mạng Để có thể đạt được chất lượng dịch vụ ổn định cần phải đạt những yêu cầu như: Tỉ số nén lớn, có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc, tốc độ xử lý của bộ Codec,…
Vấn đề bảo mật: Do sử dụng mạng Internet nên nguy cơ mất an toàn từ
các mã độc và hacker là rất cao Các kẻ tấn công có thể ngăn chặn việc truyền
dữ liệu, nghe lén và thực hiện ăn cắp thông tin,…
1.1.1.3 Các kiểu kết nối đầu cuối trong mạng VoIP
Computer to Computer: 2 người dùng chỉ cần sử dụng chung một dịch
vụ VoIP, có các thiết bị hỗ trợ là có thể hội thoại không giới hạn Mô hình này thường được công ty, tổ chức, cá nhân sử dụng đáp ứng nhu cầu liên lạc mà không cần tổng đài nội bộ
Computer to Phone: Cần phải có 1 tài khoản và 1 phần mềm của nhà
cung cấp Với dịch vụ này máy PC có thể kết nối với điện thoại trong phạm vi cho phép của nhà c ung cấp, người gọi sẽ bị tính cước phí dựa trên lưu lượng cuộc gọi Chất lượng cuộc gọi phụ thuộc vào kết nối Internet và dịch vụ của nhà cung cấp
Phone to Phone: Cần 2 IP Phone, cuộc thoại được truyền thông qua
mạng IP
Trang 91.1.2 Mô hình kiến trúc tổng quan của mạng VoIP
Mô hình kiến trúc tổng quan của VoIP
Hình 1.2 Mô hình kiến trúc tổng quan VoIP
Hình trên cho ta thấy mô hình tổng quát với những yếu tố phổ biến nhất trong mạng VoIP, cụ thể bao gồm:
‒ Telephone: Telephone có thể là các IP Phone, các softphone hoặc các điện thoại truyền thống
‒ Gateway: Liên kết mạng VoIP với mạng điện thoại thông thường,
xử lý các gói tin và chuyển các gói tin cho điện thoại
‒ MCU (Multipoint control units): Dùng để hội thoại nhiều bên, MCU quản lý các thành phần tham gia cuộc gọi
‒ Application Server: Cung cấp các dịch vụ cơ bản cho IP phone
‒ Gatekeepers: Cung cấp chức năng đăng ký, định tuyến và quản lý các thiết bị đầu cuối
‒ Call Agents: Cung cấp chức năng điều khiển cuộc gọi, quản lý băng thông,…
‒ Video endpoint: Cung cấp tính năng video cho người sử dụng
Trang 105
1.1.3 Quá trình thiết lập cuộc gọi
Hình 1.3 Quá trình thiết lập cuộc gọi của mạng VoIP
Trong mô hình này có hai thành phần chính của mạng VoIP:
‒ IP Phone: Là thiết bị giao diện đầu cuối giữa người dùng với mạng
VoIP Cấu tạo của một IP Phone gồm hai thành phần chính:
+ Thành phần báo hiệu mạng VoIP: Thường sử dụng giao thức SIP + Thành phần truyền tải media: Sử dụng giao thức RTP để truyền tải luồng media theo thời gian thực và được điều khiển bởi giao thức RTCP
‒ VoIP Server: Là đầu não điều khiển mọi hoạt động trong mạng
Chức năng chính của server tùy thuộc vào giao thức báo hiệu được sử dụng nhưng thường có các chức năng chung như định tuyến, đăng kí và xác thực người dùng, dịch địa chỉ,…
Quá trình xử lý dữ liệu: VoIP chuyển đổi tín hiệu giọng nói thông qua
môi trường Internet Do vậy, trước hết giọng nói phải được chuyển thành các dãy bit kỹ thuật số và được đóng gói để truyền tải qua mạng và cuối cùng được chuyển lại thành tín hiệu âm thanh đến người sử dụng
Tiến trình hoạt động của VoIP thông qua hai bước:
Trang 11‒ Call setup: Trong quá trình này, người gửi phải xác định địa chỉ của
người nhận và yêu cầu một kết nối để liên lạc với người nhận Khi địa chỉ của người nhận xác định là tồn tại trên các proxy server thì giữa hai người sẽ thiết lập một kết nối và bắt đầu quá trình trao đổi dữ liệu
‒ Voice data processing: Tín hiệu giọng nói (analog) sẽ được chuyển
đổi sang tín hiệu số (digital), sau đó sẽ được nén lại và mã hóa trước khi gửi đi Các tín hiệu mẫu sẽ được chèn vào các gói dữ liệu để vận chuyển trên mạng thông qua giao thức RTP Các gói tin sau đó sẽ được truyền đi bởi giao thức UDP Ở thiết bị cuối, tiến trình sẽ được thực hiện ngược lại
1.3 Các giao thức truyền tải (Media Protocols)
Hình 1.4 Cấu trúc gói tin RTP Version: Gồm 2 bits Dùng để xác định version của RTP Hiện nay trong
truyền video và audio RTP đang sử dụng version 2
Padding (P): 1 bit Bit đệm này được đặt giá trị 1, báo rằng gói tin có
chứa một số byte điều kiện phụ ở phần cuối Các bit này dùng để mã hóa hoặc dùng trong trường hợp đóng gói nhiều gói RTP
Extension (X): 1 bit Khi bit này được gắn giá trị 1 tức là sau phần tiêu
đề cố định sẽ là phần tiêu đề mở rộng Việc mở rộng tiêu đề nhằm tăng thêm lượng thông tin cho gói RTP khi cần thiết
CSRC count (CC): 4 bits Chứa số lượng các bộ nhận dạng CSRC sẽ
được thêm vào sau phần tiêu đề cố định
Marker (M): 1 bit Dùng để báo hiệu khung trong trường hợp truyền các
gói tin thành dòng, bit này có thể tùy ý sử dụng
Trang 127
Payload Type (PT): 7 bits Dùng để xác định định dạng dữ liệu để lựa
các ứng dụng phù hợp
Sequence Number: 16 bits Số thứ tự được đánh tăng dần theo số lượng
gói RTP được phát đi Bên nhận sẽ dùng số thứ tự này để khôi phục lại hoặc phát hiện số lượng gói bị mất
Timestamp: 32 bits Nhãn thời gian được tính theo thời điểm lấy mẫu
của byte đầu tiên trong gói RTP Nhãn phải được lấy từ đồng hồ nhịp chuẩn,
có độ chính xác cao nhằm đảm bảo việc kiểm tra đồng bộ Nhãn thời gian được khởi tạo một cách ngẫu nhiên cho mỗi phiên
SSRC: 32 bits Trường này dùng để định danh một nguồn đồng bộ Giá
trị trường này được chọn một cách ngẫu nhiên (có kiểm tra xung đột) để tránh trường hợp trong một phiên RTP có nhiều nguồn đồng bộ sử dụng cùng một giá trị SSRC
CSRC: Gồm 15 phần tử, mỗi phần tử chiếm 32 bit Nó được dùng để
xác định rõ xem thông tin nào của nguồn nào gửi
Mục đích lớn nhất của giao thức RTP là nhằm đảm bảo cho các ứng dụng hội thảo đa phương tiện Nó có thể điều chế và cung cấp nhiều dịch vụ khác nhau có tính thời gian thực Vì vậy mạng VoIP cũng sử dụng giao thức RTP để đáp ứng nhu cầu truyền dữ liệu qua mạng Internet
1.3.2 RTCP (RTP Control Protocol)
RTCP là giao thức hỗ trợ RTP để đảm bảo các gói tin có thể đến đích theo đúng thứ tự, đúng thời gian Hai giao thức này đi kèm với nhau được gọi
là bộ giao thức RTP
Trang 13Hình 1.5 Hoạt động của RTCP
Như hình trên ta có thể thấy, các gói mang thông tin điều khiển RTCP được truyền trên hai cổng UDP khác nhau Thường thì các gói mang thông tin điều khiển sẽ đi qua cổng lẻ, các gói dữ liệu sẽ đi qua cổng chẵn
Sự liên kết giữa giao thức RTP và RTCP được thể hiện như sau:
‒ RTP: Với chức năng truyền tải các dữ liệu có tính thời gian thực
‒ RTCP: Với chức năng giám chất lượng dịch vụ và truyền các thông
tin về những phiên truyền RTCP còn hỗ trợ cho việc điều khiển các phiên
Hình 1.6 Mô hình tổng quát về bộ giao thức RTP
Ngoài ra RTCP cũng còn sử dụng với một số chức năng khác như:
‒ Cung cấp các thông tin phản hồi về chất lượng của đường truyền dữ liệu: Chức năng này được thực hiện dựa trên các bản tin thông báo từ phía người gửi và phía người nhận Thông tin hồi đáp có thể sử dụng cho việc thay đổi phương pháp mã hóa và chuẩn đoán các sự cố xảy ra trong quá trình truyền Ngoài ra nó có thể giúp các người dùng quan sát lỗi và đánh giá lỗi Giao thức này đóng vai trò bên thứ 3, quan sát và phân tích các vấn đề xảy ra
‒ Mang thông tin định danh (CNAME): Giúp định danh một nguồn phát RTP Nó có thể xác định thông tin người dùng và phân loại tài liệu tương
Trang 149
ứng với từng người Ngoài ra nó còn dùng để duy trì kết nối giữa các thành viên
Cấu trúc gói tin RTCP được miêu tả như sau:
Hình 1.7 Cấu trúc gói tin RTCP Version (2 bit): Version RTP hiện tại (version 2)
Padding (1 bit): Có chức năng như một bit cờ chỉ rõ xem trong gói có
các byte được chèn thêm hay không
Report counter (5 bit): Số thông báo chứa trong gói
Packet type (8 bit): Xác định loại thông báo của gói (SR hoặc RR hoặc
APP)
Length (16 bit): Chỉ rõ độ dài của gói tin
Report (độ dài thay đổi): Chứa các thông báo chi tiết
Kết luận chương: Chương này đã trình bày tổng quan về hệ thống VoIP,
các thành phần trong một hệ thống và quá trình thiết lập cuộc gọi Trong đó, tập trung tìm hiểu về các giao thức báo hiệu và các giao thức truyền tải trong
hệ thống VoIP Kiến thức tìm hiểu trong chương này sẽ là nền tảng để tìm hiểu các phương thức bảo vệ cho hệ thống trong chương sau
Trang 15Chương 2 GIẢI PHÁP BẢO VỆ CHO HỆ THỐNG THÔNG TIN THOẠI
TRÊN NỀN MẠNG IP
2.1 Các nguy cơ mất an toàn và một số tấn công thường gặp
2.1.1 Các nguy cơ mất an toàn từ môi trường mạng Internet
2.1.1.1 Tấn công nghe lén (Sniffing)
Nghe lén trên mạng là một loại tấn công phổ biến, nguy hiểm và khó phòng chống nhất hiện nay Kỹ thuật này không tấn công trực tiếp vào máy khách hay máy chủ mà chỉ nhằm vào các dữ liệu được truyền qua tín hiệu vô tuyến giữa các máy Kẻ tấn công sẽ tìm cách tiếp cận hệ thống và cài đặt một chương trình nghe lén vào một máy nào đó để thực hiện nghe lén từ xa
Hình 2.1 Tấn công nghe lén
Những giao dịch giữa các hệ thống mạng máy tính thường là những dữ liệu ở dạng nhị phân Bởi vậy để nghe lén và hiểu được những dữ liệu ở dạng nhị phân này, các chương trình nghe lén phải có tính năng như là phân tích các giao thức, cũng như tính năng giải các dữ liệu ở dạng nhị phân sang dạng khác
để hiểu được chúng Các thông tin thường bị nghe lén bao gồm: Password, các thông tin về thẻ tín dụng, email,…
Các chương trình nghe lén thường được sử dụng vào hai mục đích khác biệt Nó có thể là một công cụ để giúp cho các quản trị viên theo dõi và bảo trì
hệ thống mạng hoặc có mục đích xấu là ăn cắp các thông tin trên mạng này Các chương trình này sẽ ghi lại thông tin về các gói dữ liệu, các phiên truyền, các hoạt động của mạng,… Một số chương trình nghe lén thường được sử dụng hiện nay như: Wireshark, NetworkMiner, TCPDump,…
Trang 1611
2.1.1.2 ARP – Address Resolution Protocol
ARP là giao thức Ethernet cơ bản Do nó không có cơ chế chứng thực các bản tin truy vấn (Request) và hồi đáp truy vấn (Reply) nên kẻ tấn công có thể lợi dụng vào lỗ hổng này để tấn công mạng VoIP
Máy tính thường dùng giao thức ARP để gửi bản tin cho một máy tính nào đó mà mới chỉ có thông tin về địa chỉ IP của máy đó, địa chỉ MAC chưa có
do đó chưa thể thực hiện việc gửi bản tin được, để có thể biết được địa chỉ MAC của một máy tính khi đã biết địa chỉ IP thì giao thức ARP sẽ được sử dụng để tìm MAC của một máy tính khi đã có địa chỉ IP Máy tính (PC) gởi broadcast ARP Request mà chứa địa chỉ IP của PC mà nó cần tìm địa chỉ MAC Nếu có bất kỳ PC nào dùng địa chỉ IP đó, nó sẽ trả lời địa chỉ MAC tương ứng Tuy nhiên một ARP Reply có thể được tạo ra mà không cần ARP Request, để cho những PC khác trong mạng có thể cập nhật bảng ARP khi có sự thay đổi xảy
ra Lợi dụng điều này kẻ tấn công thực hiện gởi ARP Reply với thông tin giả,
nó sẽ thay thể địa chỉ MAC của nó với địa chỉ IP của máy đích (máy đích ở đây chính là máy có địa chỉ MAC thật sự), điều này sẽ buộc máy nạn nhân thay đổi lại bảng ARP với thông tin sai
Do attacker đã thực hiện giả mạo địa chỉ MAC nên khi người gửi gửi bản tin, lúc này bản tin sẽ được truyền đến máy của kẻ tấn công do phía máy gửi căn cứ vào bảng địa chỉ MAC mà tiến hành gửi gói tin mà bảng địa chỉ MAC
đã bị làm giả do kẻ tấn công đã gửi thông tin giả mạo địa chỉ MAC dẫn đến việc gói tin thay vì được gửi đến đúng đích sẽ bị gửi đến máy của kẻ tấn công
Hình 2.2 ARP Spoofing
Trang 17Khi A dùng 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ó và gửi địa chỉ MAC cho A Như vậy, gói từ A tới C sẽ được chuyển cho B Kẻ tấn công đánh lừa ARP bằng cách gửi đến A bản tin chứa địa chỉ của máy C và địa chỉ MAC của máy B Khi A nhận được gói tin
sẽ so sánh đúng với địa chỉ IP của máy C nhưng địa chỉ MAC lại là của B Như vậy khi thực hiện truyền tin trong mạng thì các gói tin chuyển đến C sẽ được chuyển đến B vì A đã lưu địa chỉ MAC của B trên mạng truyền tin
2.1.1.3 Spam VoIP (SPIT)
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 cũng giống như email-spam, hầu hết đều với mục đích quảng cáo,… Phương pháp spam là dùng các đoạn mã tự động để thực hiện 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
Các cuộc gọi SPIT sẽ được nhận hoặc chuyển sang hộp thư thoại Tuy nhiên nhận SPIT sẽ tốn rất nhiều thời gian và có thể gây ra tắc nghẽn mạng Chặn SPIT rất khó vì không thể phân biệt được với cuộc gọi bình thường và thông tin của người gọi chỉ được tiết lộ khi cuộc gọi đã được thiết lập và bắt đầu gửi thư thoại
Những thông điệp này nếu được gửi đến với số lượng lớn sẽ làm tràn hộp mail làm cho hệ thống voicemail trong VoIP bị tắc nghẽn và quá tải Lúc này SPIT có thể trở thành một dạng tấn công DoS mới làm tràn ngập tài nguyên của
hệ thống mail trong doanh nghiệp Những thông điệp này chỉ có thể xóa bằng tay và người dùng không thể làm thế nào để lọc bỏ nó
Để ngăn chặn sự “tấn công” của những spammer thì rất là khó Với một
PC và một kết nối thì bất cứ ai cũng có thể trở thành một Spammer Mặt khác giá thành phải trả cho một thông điệp là rất nhỏ, không giống như cước phí voicemail ở điện thoại truyền thống Chỉ với một số tiền nhỏ thôi thì spammer
có thể gởi đến hàng ngàn thông điệp Vì thế các spammer không gặp nhiều khó khăn về cước phí
2.1.1.4 DoS - Denial of Service
Tấn công DoS là dạng tấn công rất phổ biến và cũng rất khó ngăn chặn
Kẻ tấn công DoS làm tràn ngập các gói, dẫn đến mất liên lạc giữa các phần trong cấu trúc mạng liên quan đến thiết bị đó Do đó các dịch vụ bị bẻ gãy và làm giảm băng thông và tài nguyên CPU
Trang 1813
Cách thức tấn công dễ nhất của DoS là giới hạn nguồn tài nguyên, chẳng hạn như băng thông dành cho dịch vụ Internet Tác động của việc tấn công sẽ lớn hơn nếu vị trí bị tấn công từ một vài host ở cùng một thời điểm Các biến thể của tấn công DoS được gọi là tấn công từ chối phân bổ của dịch vụ DDoS Tấn công DoS có thể ảnh hưởng đến tất cả các dịch vụ trong mạng IP Hậu quả của tấn công DoS có thể làm giảm chất lượng dịch vụ hoặc nặng hơn có thể làm mất dịch vụ
Hình 2.3 Tấn công DoS
Tấn công DoS có nhiều dạng khác nhau là do kẻ tấn công sử dụng những phương pháp tấn công khác nhau như:
* Tấn công Ping of Death: Đây là kiểu tấn công DoS bằng cách kẻ tấn
công sẽ sử dụng lệnh Ping liên tục đến một địa chỉ cố định làm giảm băng thông, tràn bộ đệm,… khiến cho mạng và thiết bị bị tấn công giảm tốc độ hoặc
ngưng hoạt động
Hình 2.4 Ping of Death
* Tấn công SYN flood: Kẻ tấn công sử dụng phương pháp “bắt tay 3
bước” của kết nối TCP Kẻ tấn công gửi liên tục các gói yêu cầu SYN tới một
Trang 19địa chỉ cố định như là một VoIP server hoặc một Web server Server này đáp ứng lại cho các yêu cầu đó bằng SYN-ACK Tuy nhiên khi nhận được đáp ứng
kẻ tấn công không gửi ACK báo nhận cho Server và khi đó các Server ở tình trạng chờ báo nhận và từ chối bất kì yêu cầu nào từ người sử dụng Hậu quả của loại tấn công này khiến các Server ngừng hoạt động và người sử dụng
không sử dụng được dịch vụ
Web Server
Web Server
Web Server
Kẻ tấn công gửi nhiều
gói SYN yêu cầu tới
* Tấn công Smurf: Kẻ tấn công sẽ giả danh địa chỉ của một host trong
một mạng nội bộ để gửi gói tin quảng bá ICMP yêu cầu đến tất cả các host nội mạng hoặc ngoài mạng Khi các host nhận được yêu cầu thì tiến hành trả lời về
đúng địa chỉ thật và khi đó Host bị giả dạng sẽ bị đầy bộ nhớ và CPU quá tải
Hình 2.6 Smurf
2.1.1.5 DDoS – Distribute DoS
Đây là kiểu tấn công DoS ở quy mô lớn kẻ tấn công sẽ điều khiển các host gần nó nhất cùng thực hiện một trong các kiểu tấn công DoS ở trên (tấn
Trang 20Agents/ Zombies
Hình 2.7 Tấn công DDoS
Đối với VoIP tấn công DoS có thể làm cho các dịch vụ VoIP mất đi một phần hoặc toàn bộ giá trị thông qua việc ngăn chặn thành công các cuộc gọi, ngắt các cuộc gọi hoặc ngăn chặn các dịch vụ tương tự như là voice mail Ngoài các tấn công trên còn có một số tấn công DoS thường gặp trên hệ thống VoIP như:
‒ Tấn công chuyển tiếp các gói VoIP (VoIP packet relay Attack): Bắt
và gửi lại các gói VoIP đến điểm cuối, cộng thêm việc trì hoãn tiến trình cuộc gọi sẽ làm giảm chất lượng cuộc gọi
‒ Tấn công thay đổi chất lượng dịch vụ (QoS Modification Attack): Thay đổi các trường thông tin điều khiển các giao thức VoIP riêng biệt trong gói dữ liệu VoIP và từ điểm cuối làm giảm hoặc từ chối dịch vụ thoại
‒ Tấn công bằng các gói VoIP giả mạo (VoIP packet Injection): Tức
là gửi các gói VoIP giả mạo đến điểm cuối, thêm vào đoạn thoại hay nhiễu hay khoảng lặng vào hoạt động thoại
‒ Thông điệp giả (Bonus Message DoS): Gửi đến VoIP server và các điểm cuối các giao thức VoIP giả mạo nhằm hủy kết nối hoặc tình trạng bận ở đầu cuối Kiểu tấn công này làm cho các phone phải xử lý các message giả và các thiết bị đầu cuối phải thiết lập những kết nối ảo hoặc làm cho người tham gia cuộc gọi lầm rằng đường dây đang bận
‒ Tràn ngập các gói điều khiển (Control Packet Flood): Làm tràn ngập VoIP server hoặc đầu cuối với những gói điều khiển cuộc gọi không rõ nguồn gốc Mục đích của kẻ tấn công là làm suy yếu thiết bị hệ thống hoặc tài nguyên
Trang 21mạng Do đó không thể dùng các dịch vụ VoIP Bất kể các port mở trong tiến trình cuộc gọi và VoIP server liên quan có thể trở thành mục tiêu của kiểu tấn công DoS này
2.1.2 Điểm yếu bảo mật trong giao thức SIP
SIP là một giao thức mới lại không có tích hợp công cụ bảo mật nào trong nó nên nó có một số vấn đề về bảo mật Tuy nhiên, theo khuyến nghị nên dùng các lớp dưới để bổ sung tính bảo mật cho SIP Giao thức SIP thường gặp một số tấn công như sau:
* Chiếm quyền đăng kí (Registration Hijacking)
Bản tin đăng ký thường được vận chuyển bằng giao thức UDP (không được tin cậy), hơn nữa các yêu cầu đăng ký không cần phải được chứng thực bởi SIP registrars hoặc nếu có chứng thực thì cũng chỉ bằng MD5 để mã hóa user name và password
Cách tấn công:
‒ Tìm một địa chỉ IP đã được đăng kí (Đối với các user trong mạng
dễ dàng biết được cấu trúc địa chỉ trong mạng, còn với những user ngoài mạng thì dùng kĩ thuật social engineering hay tool để quét ra địa chỉ của toàn mạng) Nếu có yêu cầu chứng thực thì có thể đoán password hoặc dùng kiểu từ điển Đối với tấn công kiểu từ điển thì mất thời gian do phải thử nhiều lần
‒ Gửi một yêu cầu đăng kí đặc biệt có kí tự “*” để xóa hết ràng buộc cho các địa chỉ SIP bị gọi
‒ Gửi bản tin yêu cầu đăng kí thứ hai chứa địa chỉ SIP của kẻ tấn công
Hình 2.8 Tấn công bằng bản tin đăng ký
Trang 2217
* Giả dạng Proxy
Kẻ tấn công dùng một proxy để chặn cuộc gọi từ UA đến proxy bên phía
bị gọi Cách tấn công này có thể lấy được tất cả bản tin SIP và do vậy có toàn quyền điều khiển cuộc gọi
Cách tấn công: Chèn proxy giả vào bằng DNS spoofing, ARP cache
spoofing hay đơn giản chỉ là thay đổi địa chỉ proxy cho SIP phone
2.2 Giải pháp bảo vệ hệ thống thông tin thoại cho hệ thống VoIP
Để đảm bảo an ninh cho hệ thống VoIP cần phải đạt được các yêu cầu sau:
‒ Đảm bảo người gọi chỉ kết nối với người mình cần gọi
‒ Loại bỏ tối đa các cuộc gọi không mong muốn
‒ Nội dung cuộc gọi phải được bí mật và toàn vẹn
‒ Thông tin về người gọi, người nghe được bảo mật
Trang 23Để đảm bảo yêu cầu thứ nhất và thứ hai, người gọi và người nghe phải được xác thực trước khi cuộc gọi được thiết lập Xác thực có thể được coi như một phần của giao thức khóa được sử dụng để thiết lập bộ tham số an toàn SA (Security Association) giữa người gọi và người nghe, tức là thỏa thuận bộ tham
số mật mã sẽ sử dụng (tạo khóa chủ của phiên liên lạc…) Những bộ tham số
đó được sử dụng trong giao thức an toàn để mã hóa, bảo đảm tính toàn vẹn dữ liệu theo yêu cầu thứ ba Đối với yêu cầu thứ tư, các thông tin báo hiệu phải được bảo mật
Giải pháp cho yêu cầu bảo mật cho thông tin báo hiệu là sử dụng SIPS (giao thức SIP được mở rộng với TLS) để bảo mật tín hiệu báo hiệu từ nút này tới nút kia
Để bảo mật luồng dữ liệu thoại thì các tham số mật mã được sử dụng giữa những người tham gia liên lạc cũng cần phải thỏa thuận trước khi nói chuyện Giao thức trao đổi khóa tùy thuộc vào phương thức bảo mật được lựa chọn Đối với mã thoại IP phương thức bảo mật phù hợp nhất (đảm bảo chất lượng, thuận tiện, an toàn) là giao thức giao vận thời gian thực có bảo mật SRTP (Secure Real-time Transport Protocol) và giao thức trao đổi khóa đi kèm
2.2.1 Giải pháp bảo vệ giao thức báo hiệu SIP (SIPS)
SIPS là giao thức SIP được mở rộng với TLS (Transport Layer Security)
Do SIP không có tích hợp công cụ bảo mật nên nó được khuyến nghị dùng các lớp dưới để bổ sung tính bảo mật
TLS cung cấp một kênh bảo mật giữa hai đầu cuối, tức là dữ liệu đi qua kênh này không bị thay đổi và nó cho phép các giao thức chạy được trên TCP cũng có thể chạy được trên TLS Vì vậy, TLS nằm ngay phía trên giao thức TCP và dưới SIP, hay nói cách khác là SIP được mã hóa bởi TLS và truyền qua kết nối TCP
Hình 2.10 Lớp bảo mật TLS cho giao thức SIP
Trang 24‒ Yêu cầu cần có cơ sở hạ tầng khóa PKI để chứng thực trên lớp SSL
‒ Không cung cấp cơ chế bảo mật trực tiếp đầu cuối
‒ TLS có thể được sử dụng với giao thức TCP, nhưng không thể sử dụng với giao thức UDP, bởi TLS sẽ ảnh hưởng đến sự thực thi của SIP nếu dùng UDP
‒ Dễ bị tấn công DoS như TCP floods (tấn công làm tràn các gói tin TCP) và RSTs (tấn công làm reset lại kết nối) Một tấn công TCP flood sẽ có mục tiêu khiến tiêu tốn tài nguyên của hệ thống làm RSA bị lộ mã Ngoài ra,
kẻ tấn công có thể tạo ra các gói RST giả mạo hoặc những bản ghi TLS làm chấm dứt sớm kết nối
Nhìn chung, TLS bảo vệ các bản tin báo hiệu của SIP bằng cách mã hóa trước khi truyền đi và giải mã trước khi chuyển lên lóp bên trên Việc mã hóa
và giải mã đều phải có chứng chỉ hợp lệ do CA cấp cho quá trình bắt tay của TLS
Quá trình bắt tay của TLS có ba đặc tính cơ bản sau:
‒ Định danh của điểm kết nối có thể được xác thực bằng cách sử dụng
mã hóa bất đối xứng hoặc khóa công khai (RSA, Elgamal,…) Việc xác thực
có thể tùy chọn thực hiện, nhưng thường yêu cầu cho ít nhất một trong các điểm kết nối
‒ Quá trình thỏa thuận khóa bí mật chia sẻ được an toàn: Các thỏa thuận bí mật không để nghe trộm trong bất kỳ kết nối xác thực nào, khóa bí mật không thể bị lấy trộm ngay cả khi một kẻ tấn công có thể xâm nhập vào giữa kết nối
‒ Quá trình thỏa thuận đáng tin cậy: Không kẻ tấn công nào có thể thay đổi quá trình thỏa thuận mà không bị phát hiện bởi các bên tham gia kết nối
Trang 25Hình 2.11 Quá trình bắt tay của TLS
Quá trình bắt tay của TLS như sau:
‒ Bản tin Client Hello và Server Hello trao đổi danh sách các thuật toán sẽ sử dụng
‒ Chứng chỉ của Server và khóa công khai được chứa trong bản tin chứng chỉ
‒ Khi Client nhận được bản tin chứng chỉ, nó sẽ có khóa công khai và dùng khóa này để mã hóa một khóa bí mật Pre-Master do nó tự tạo ra và gửi kèm theo bản tin ClientKeyExchange tới Server Trong khi đó, KDF (Key Derivation Function) sẽ tạo ra một Master key từ khóa bí mật Pre-Master
‒ Phía Server, bản tin ClientKeyExchange được giải mã bằng khóa riêng của Server, có được khóa bí mật Pre-Master và dùng cùng KDF để tạo ra Master key
‒ Client dùng Master key tạo ra MAC (Message Authentication Code – Mã xác thực thông điệp) của toàn bộ bản tin mà nó nhận được từ Server trước
đó rồi gửi kèm theo bản tin Finished tới Server
‒ Server dùng Master key tạo ra một MAC của toàn bộ bản tin mà nó nhận được từ Client trước đó rồi gửi kèm theo bản tin Finished tới Server