Ngày nay, công nghệ viễn thông đã đạt được những thành tựu to lớn. Sự phát triển của kỹ thuật số, kỹ thuật phần cứng và công nghệ thông tin đã đem lại cho người sử dụng nhiều dịch vụ mới đa dạng và phong phú. Một trong những dịch vụ đó là VoIP (Voice over Internet Protocol) - truyền thoại qua internet. Chi phí thấp và sự linh hoạt trong kiến trúc là những lợi thế rất lớn của VoIP đối với người dùng nói chung và các doanh nghiệp nói riêng so với phương thức điện thoại truyền thống. Tuy nhiên, để thiết lập một hệ thống VoIP thì ngoài việc xem xét về mặt chất lượng dịch vụ (QoS) thì cũng cần phải tính đến an toàn cho hệ thống VoIP. Việc tích hợp các dịch vụ thoại, dữ liệu, video trên cùng một hạ tầng mạng IP đã mang đến nhiều nguy cơ tiềm tàng về an toàn. Các yêu cầu bảo mật mới đặt ra cho VoIP không chỉ vì mạng IP là một mạng công cộng, có nguy cơ bị tấn công cao, mà còn vì bản thân các giao thức VoIP cũng tiềm ẩn những nguy cơ về bảo mật.
Xuất phát từ những ý nghĩ trên mà em đã quyết định chọn đề tài “ Bảo mật VoIP”. Trong giới hạn đề tài, em chỉ tìm hiểu lý thuyết bảo mật cho hệ thống VoIP. Nội dung của đề tài bao gồm tìm hiểu về kiến trúc và các giao thức các mạng VoIP cụ thể, từ đó phân tích những điểm yếu về bảo mật trong mạng VoIP và các giải pháp khắc phục các điểm yếu đó. Nội dung đồ án của em được chia thành ba chương:
Chương I : Tổng quan VoIP
Chương II: Các bộ giao thức của VoIP
Chương III: Các kỹ thuật bảo mật cho VoIP
MỤC LỤC
LỜI NÓI ĐẦU 1
CHƯƠNG I: TỔNG QUAN VoIP 3
1.1. Điện thoại IP 4
1.1.1. Giới thiệu 4
1.1.2. Lợi ích của điện thoại IP 6
1.1.3. Ưu điểm và nhược điểm của điện thoại IP . 7
1.2. Kết nối mạng VoIP 9
1.2.1. Kết nối PC - PC 9
1.2.2. Kết nối PC - máy thoại . 9
1.2.3. Kết nối máy thoại - máy thoại . 11
1.3. Đặc điểm của điện thoại IP . 11
1.4. Các ứng dụng của VoIP 13
1.4.1. Dịch vụ thoại qua Internet . 13
1.4.2. Thoại thông minh . 14
1.4.3. Dịch vụ tính cước cho bị gọi 14
1.4.4. Dịch vụ Callback Web . 15
1.4.5. Dịch vụ fax qua IP . 15
1.4.6. Dịch vụ Call center . 16
CHƯƠNG II: CÁC GIAO THỨC TRONG HỆ THỐNG VoIP 17
2.1. Giao thức H323 . 17
2.1.1. Giới thiệu giao thức H323 . 17
2.1.2. Kiến trúc của H323 17
2.2. Báo hiệu trong H323 . 22
2.2.1. Thiết lập cuộc gọi 22
2.2.2. Thiết lập kênh điều khiển . 25
2.2.3. Thiết lập kênh truyền thông 26
2.2.4. Dịch vụ cuộc gọi . 26
2.2.5. Kết thúc cuộc gọi 26
2.3. Giao thức H225 . 28
2.3.1. RAS (Registration, Admission, Status) . 28
2.3.2. Q.931 29
2.4. Giao thức H245 . 29
2.5. Giao thức SIP 30
2.5.1. Kiến trúc của SIP . 30
2.5.2. Giao thức mô tả phiên (SDP) . 32
2.5.3. Quá trình trao đổi bản tin của SIP 34
2.5.4. Các giao thức vận chuyển của SIP 38
2.6. So sánh H323 và SIP . 40
2.7. Giao thức MGCP 41
2.8. MEGACO/H248 43
CHƯƠNG III: KỸ THUẬT BẢO MẬT CHO VoIP 44
3.1. Các điểm yếu về bảo mật VoIP . 44
3.1.1.Điểm yếu về bảo mật của giao thức H323 44
3.1.2. Điểm yếu về bảo mật của giao thức SIP 46
3.2. Kỹ thuật bức tường lửa áp dụng cho VoIP . 48
3.3. Kỹ thuật NAT áp dụng cho VoIP 49
3.4. Kỹ thuật VPN áp dụng cho VoIP 50
3.5. Một số giải pháp kỹ thuật bổ trợ cho bảo mật VoIP 54
3.5.1. Giải pháp "Khu phi quân sự" - DMZ bổ trợ cho bức tường lửa 54
3.5.2. Giải pháp đường viền bổ trợ cho NAT 58
3.5.3. Hệ thống phát hiện xâm nhập IDS . 60
3.6. Bảo mật cho VoIP khi truyền qua mạng cục bộ không dây (WLAN) 61
KẾT LUẬN . 68
TÀI LIỆU THAM KHẢO
70 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 4021 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bảo mật VoIP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đăng ký tới một GK và GK chọn phương thức truyền báo hiệu trực tiếp giữa hai thuê bao.
- Đầu tiên, thuê bao chủ gọi trao đổi với GK thông qua cặp bản tin ARQ (1)/ACF (2) để thiết lập báo hiệu. Trong bản tin ACF do GK trả lời cho thuê bao chủ gọi có chứa địa chỉ kênh báo hiệu của thuê bao bị gọi.
- Sau đó thuê bao chủ gọi sẽ căn cứ vào địa chỉ này để gởi bản tin Setup (3) tới thuê bao bị gọi. Nếu thuê bao bị gọi chấp nhận yêu cầu, nó sẽ thay đổi cặp bản tin ARQ (5)/ACF (6) với GK. Nếu thuê bao bị gọi nhận được ARJ (6) thì nó sẽ gởi bản tin Release Complete tới thuê bao chủ gọi.
Hình 25: Hai thuê bao đăng ký với một GK – báo hiệu trực tiếp
Hai thuê bao đăng ký với hai GK khác nhau.
Tình huống này có 4 trường hợp xảy ra:
(1) Cả hai GK đều chọn cách định tuyến báo hiệu trực tiếp giữa hai thuê bao.
(2) GK 1 phía chủ gọi truyền báo hiệu theo phương thức trực tiếp còn GK 2 phía bị gọi định tuyến báo hiệu cuộc gọi qua nó.
(3) GK 1 phía chủ gọi định truyền báo hiệu cuộc gọi qua nó còn GK 2 phía bị gọi chọn phương thức truyền báo hiệu trực tiếp .
(4) Hai thuê bao đăng ký với 2 GK và cả hai GK này đều chọn phương thức định tuyến báo hiệu cuộc gọi qua chúng.
Dưới đây là chi tiết về trường hợp (4):
Hai thuê bao đăng ký với 2 GK và cả hai GK này đều chọn phương thức định tuyến báo hiệu cuộc gọi qua chúng:
Đầu tiên thuê bao chủ gọi trao đổi ARQ(1)/ACF(2) với GK 1, trong bản tin ACF có chứa địa chỉ kênh báo hiệu của GK 1. Căn cứ vào địa chỉ này thuê bao chủ gọi gởi bản tin Set-up (3) tới GK 1.
GK 1 sẽ gởi bản tin Set-up (4) tới địa chỉ kênh báo hiệu của thuê bao bị gọi, nếu chấp nhận thuê bao bị gọi sẽ trao đổi ARQ(6)/AR J(7) với GK 2. Trong bản tin ARJ (7) mà GK 2 trả lời cho thuê bao bị goi chứa địa chỉ kênh báo hiệu của nó và mã chỉ thị báo hiệu định tuyến cuộc gọi qua GK 2 (route CallToGK ). Thuê bao bị gọi trả lời GK1 bản tin Facility(8) chứa địa chỉ kênh báo hiệu của GK2.
Tiếp đó, GK 1 gởi bản tin Release Complete tới thuê bao bị gọi và gởi bản tin Set-up (10) tới địa chỉ kênh báo hiệu của GK2 và GK 2 gởi Set-up(11) tới thuê bao bị gọi. Thuê bao bị gọi trao đổi ARQ(12)/ACF(13) với GK 2 và trả lời GK 2 bằng bản tin Connect(15) chứa địa chỉ kênh điều khiển H.245 của nó để sử dụng báo hiệu H.245.
GK 2 gởi Connect(16) tới GK 1, bản tin này chứa địa chỉ kênh điều khiển H.245 của thuê bao bị gọi hoặc địa chỉ kênh điều khiển H.245 của GK 2 tuỳ thuộc vào GK 2 có chọn định tuyến kênh điều khiển H.245 hay không.
Sau đó, GK 1 gởi bản Connect (17) tới thuê bao chủ gọi, bản tin này chứa địa chỉ kênh điều khiển mà GK 1 nhận được từ GK 2 hoặc là địa chỉ kênh điều khiển H.245 của GK 1 nếu nó chọn định tuyến kênh điều khiển H.245.
Hình 2 6: Hai thuê bao đều đăng ký – Định tuyến qua hai GK
Thiết lập kênh điều khiển
Khi kết thúc giai đoạn 1 tức là cả chủ gọi lẫn bị gọi đă hoàn thành việc trao đổi các bản tin thiết lập cuộc gọi, thì các đầu cuối sẽ thiết lập kênh điều khiển H.245:
Bản tin đầu tiên được trao đổi giữa các đầu cuối là terminalCapabilitySet để các bên thông báo cho nhau khả năng làm việc của mình (chế độ mã hoá, truyền, nhận và giải mã các tín hiệu đa dịch vụ).
Kênh điều khiển này có thể do thuê bao bị gọi thiết lập sau khi nó nhận được bản tin Set-up hoặc do thuê bao chủ gọi thiết lập khi nó nhận được bản tin Alerting hoặc Call Proceeding. Trong trường hợp không nhận được bản tin Connect hoặc một đầu cuối gởi Release Complete, thì kênh điều khiển H.245 sẽ được giải phóng.
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.
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. Dưới đây là hai loại dịch vụ điển hình: hay đổi độ rộng băng tần và giám sát trạng thái hoạt động.
Kết thúc cuộc gọi
Một thiết bị đầu cuối có thể kết thúc cuộc gọi theo các bước của thủ tục sau:
- Dừng truyền luồng tín hiệu video khi kết thúc truyền hình ảnh, sau đó giải phóng tất cả các kênh logic phục vụ truyền video.
- Dừng truyền dữ liệu và đóng tất cả các kênh logic dùng để truyền dữ liệu.
- Dừng truyền audio sau đó đóng tất cả các kênh logic dùng để truyền audio.
Truyền bản tin H.245 endSessionCommand trên kênh điều khiển H.245 để báo cho thuê báo đầu kia biết nó muốn kết thúc cuộc gọi. Sau đó nó dừng truyền các bản tin H.245 và đóng kênh điều khiển H.245. Nó sẽ chờ nhận bản tin endSessionCommand từ thuê bao đầu kia và sẽ đóng kênh điều khiển H.245. Nếu kênh báo hiệu cuộc gọi đang mở, thì nó sẽ truyền đi bản tin ReleaseComplete sau đó đóng kênh báo hiệu.
Nó cũng có thể kết thúc cuộc gọi theo các thủ tục sau đây: Một đầu cuối nhận bản tin endSessionCommand mà trước đó nó không truyền đi bản tin này, thì nó sẽ lần lượt thực hiện các bước từ 1 đến 6 ở trên chỉ bỏ qua bước 5.
Chú ý: Kết thúc một cuộc gọi không có nghĩa là kết thúc một hội nghị (cuộc gọi có nhiều đầu cuối tham gia). Một hội nghị sẽ chắc chắn kết thúc khi sử dụng bản tin H.245 dropConference. Khi đó các đầu cuối sẽ chờ MC kết thúc cuộc gọi theo thủ tục trên.
Hình 27: Kết thúc cuộc gọi có sự tham gia của GK
Thiết bị đầu cuối kết thúc cuộc gọi có sự tham gia của GK
Trong một cuộc gọi không có sự tham gia của GK thì chỉ cần thực hiện các bước 1 đến 6. Trong cuộc gọi có sự tham gia của GK thì cần có hoạt động giải phóng băng tần. Vì vậy, sau khi thực hiện các bước từ 1 đến 6, mỗi đầu cuối sẽ truyền đi bản tin DRQ(3) tới GK. Sau đó, GK sẽ trả lời bằng bản tin DCF(4). Sau khi gởi DRQ, đầu cuối sẽ không gởi bản tin IRR tới GK nữa và khi đó cuộc gọi kết thúc.
Thủ tục kết thúc cuộc gọi do GK thực hiện
Đầu tiên, GK gởi bản tin DRQ tới đầu cuối. Khi nhận được bản tin này, đầu cuối sẽ lần lượt thực hiện các bước từ 1 đến 6, sau đó trả lời GK bằng bản tin DCF. Thuê bao đầu kia khi nhận được bản tin endSessionCommand sẽ thực hiện thủ tục giải phóng cuộc gọi giống trường hợp đầu cuối chủ động kết thúc cuộc gọi. Nếu cuộc gọi là một hội nghị thì GK sẽ gởi DRQ tới tất cả các đầu cuối tham gia hội nghị.
Hình 28: Kết thúc cuộc gọi bắt đầu từ GK
Giao thức H225
H.225 bao gồm các bản tin RAS và Q.931. Các bản tin RAS liên quan đến việc quản lý user, còn Q.931 mang phần báo hiệu cuộc gọi. Cả hai giao thức dùng kênh kết nối riêng là kênh RAS và kênh báo hiệu cuộc gọi.
RAS (Registration, Admission, Status)
Chức năng chính của các bản tin RAS:
EP phát hiện ra GK mà chúng sẽ phải đăng ký.
EP đăng ký với GK của nó.
EP phải yêu cầu sự cho phép của GK khi khởi tạo một cuộc gọi.
EP yêu cầu giải phóng cuộc gọi.
Trước khi ngắt kết nối với GK, EP phải ngắt đăng ký.
Bản tin RAS được gửi đi bằng giao thức vận chuyển UDP. EP và GK trao đổi thông tin trên kênh RAS theo dạng client-server.
Q.931
Q.931 là khuyến nghị của ITU-T cho báo hiệu cuộc gọi, làm chức năng thiết lập, duy trì và kết thúc cuộc gọi. Bản tin Q.931 được vận chuyển bằng giao thức TCP. EP sẽ thương lượng lắng nghe trên port nào. Quá trình thỏa thuận này được thực hiện bằng các bản tin RAS (trong call Admission), port 1720 thường được chọn.
Giao thức H245
H.245 là giao thức điều khiển báo hiệu cuộc gọi giữa các EP bao gồm năng lực trao đổi, xác định master-slave, quản lý kênh luận lý. Giao thức này được vận chuyển bằng TCP.
Xác định Master-slave: để tránh xung đột khi cả hai bên đều khởi tạo cùng một cuộc gọi. Đầu cuối thỏa thuận vai trò này bằng cách áp dụng theo một cách nào đó. Vai trò này sẽ giữ nguyên trong suốt cuộc gọi.
Trao đổi năng lực: mỗi đầu cuối phải biết được khả năng của nhau bao gồm khả năng truyền và nhận, nếu không nó có thể không chấp nhận cuộc gọi.
Quản lý kênh luận lý: đảm bảo cho đầu cuối có khả năng nhận và đọc được dữ liệu khi kênh luận lý mở. Bản tin OpenLogicalChannel sẽ mô tả loại dữ liệu sẽ truyền
Giao thức SIP
Kiến trúc của SIP
Hình 29: Kiến trúc báo hiệu SIP và thủ tục báo hiệu
Thành phần SIP bao gồm: SIP User Agent (UA) và SIP Server:
SIP UA: đóng vai trò là một UA Client khi nó gửi yêu cầu để khởi tạo cuộc gọi và nhận hồi đáp. Ngược lại, nó là UA server khi nó nhận yêu cầu và gửi hồi đáp.
SIP Server: cần phân biệt SIP server và UA server cũng như mô hình client-server. Ở đây, SIP server là một thực thể luận lý, một SIP server có thể có chức năng của nhiều loại server hay nói cách khác một SIP Server có thể hoạt động như các loại server khác nhau trong các trường hợp khác nhau.
Hình 260: Tương tác giữa UA và các loại server
Proxy server:
Proxy nhận yêu cầu từ UA hoặc một proxy khác rồi định tuyến bản tin đi hoặc hồi đáp yêu cầu mà không tạo ra bản tin yêu cầu (trừ bản tin CANCEL). Proxy có thể truy nhập vào cơ sở dữ liệu và dịch vụ định vị để tìm điểm tiếp theo trong quá trình định tuyến. Proxy không cần phân tích cả bản tin SIP thì mới chuyển nó đi được mà nó chỉ cần dựa vào header của bản tin để định tuyến.
Ngoài chức năng định tuyến, proxy còn có chức năng chứng thực, điều khiển truy cập mạng và firewall.
Redirect server:
Truy nhập cơ sở dữ liệu và dịch vụ định vị để tìm địa chỉ của user và gửi thông tin này về cho người gọi.
Server đăng ký:
Chấp nhận yêu cầu đăng ký của các UA. Ngoài ra server đăng ký chứng thực user và đăng ký dịch vụ.
Giao thức mô tả phiên (SDP)
Là giao thức cho phép client chia sẻ thông tin về phiên kết nối cho các client khác. Nó đóng một vai trò quan trọng trong VoIP.
Mô tả SDP:
SDP không phải là một giao thức lớp vận chuyển, nó không thực sự vận chuyển dữ liệu giữa các client mà nó chỉ thiết lập cấu trúc thông tin về các thuộc tính của luồng dữ liệu, dữ liệu thực sự được truyền đi bởi các giao thức SIP, RTSP hay HTTP.
Thông tin trong gói SDP ở dạng ASCII gồm nhiều dòng, mỗi dòng là 1 trường. Ví dụ bản tin SDP:
v=0
o=bsmith 2208988800 2208988800 IN IP4 68.33.152.147
s=
e=bsmith@foo.com
c=IN IP4 20.1.25.50
t=0 0
a=recVonly
m=audio 0 RTP/AVP 0 1 101
a=rtpmap:0 PCMU/8000
Trường
Ý nghĩa
V
Phiên bản của giao thức
O
Chủ của phiên kết nối, nhận dạng, phiên bản phiên kết nối, Loại mạng, Loại địa chỉ, IP của chủ.
S
Tên phiên kết nối
I
Miêu tả kết nối
U
URI
E
E-mail của người cần liên lạc
P
Số điện thoại của người cần liên lạc
C
Thông tin kết nối:: IP version and CIDR IP address
k
Khóa mã hóa như clear text,base64, uri
m
Loại mạng, port kết nối,phương thức vận chuyển,danh sách định dạng
t
Thời điểm bắt đầu và kết thúc kết nối
a
Thuộc tính.
Bảng 23: Ý nghĩa của các trường
Hoạt động của SDP:
Client gửi SIP request, thiết bị sẽ tạo một gói SDP gửi trả lại. Gói SDP này mang thông tin về phiên kết nối. Sau đây là một ví dụ:
v=0
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com
s=
c=IN IP4 host.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0 8 97
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
m=video 51372 RTP/AVP 31 32
a=rtpmap:31 H261/90000
a=rtpmap:32 MPV/90000
Trong ví dụ trên, người gửi là Alice, lắng nghe kết nối từ host.atlanta.example.com. Gói được gửi tới bất kỳ ai muốn tham gia phiên kết nối. Kết nối của Alice hỗ trợ ba loại kết nối cho audio là PCMU, PCMIA và iLBC, hai loại kết nối video H.261 và MPV. Nếu Bob muốn tham gia kết nối thì gửi lại bản tin SDP:
v=0
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com
s=
c=IN IP4 host.biloxi.example.com
t=0 0
m=audio 49174 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 49170 RTP/AVP 32
a=rtpmap:32 MPV/90000
Bảo mật cho SDP:
Bản tin SDP mang thông tin về phiên kết nối như nhận dạng phiên kết nối, IP người gửi, người nhận,… Nếu kẻ tấn công bắt được những gói SDP này nó có thể thay đổi giá trị trong các trường rồi gửi đi. Nhưng điều này hoàn toàn có thể khắc phục bằng phương pháp chứng thực user của SIP.
Quá trình trao đổi bản tin của SIP
Để hiểu về SIP ta xem xét các ví dụ trao đổi bản tin trong các trường hợp sau:
a. Sự trao đổi bản tin SIP giữa hai đầu cuối SIP
Hình 211: Sự trao đổi bản tin SIP đơn giản giữa hai đầu cuối
INVITE: Là một bản tin yêu cầu. Bản tin INVITE chứa loại phiên kết nối, có thể là thoại hoặc cả thoại và video như một kết nối của dịch vụ hội nghị truyền hình.
Bản tin INVITE gồm các trường sau:
INVITE sip:marconi@radio.org SIP/2.0
Via:SIP/2.0/UDP lab.high-Voltage.org:5060;branch=z9hG4bKfw19b
Max-Forwards: 70
Dòng đầu tiên chứa địa chỉ (URI) của người được mời. Trường Via chứa địa chỉ của người gọi, port well-known của SIP, branch là chuỗi nhận dạng phiên trao đổi, bản tin hồi đáp cho bản tin này phải có cùng chuỗi branch.
180 Ringing: Đây là bản tin đại diện cho bản tin hồi đáp:
SIP/2.0 180 Ringing
Via:SIP/2.0/UDPlab.high-Voltage.org:5060; branch=z9hG4bKfw19b;received=100.101.102.103
To: G. Marconi ;tag=a53e42
From: Nikola Tesla ;tag=76341
Call-ID: 123456789@lab.high-Voltage.org
CSeq: 1 INVITE
Contact:
Content-Length: 0
Trường Via có thêm chuỗi received chứa địa chỉ của người nó nhận được bản tin yêu cầu. Trường To và From không hoán đổi lại bởi vì nó chỉ chiều của yêu cầu chứ không phải chiều của bản tin. Ở đây, Tesla là người yêu cầu cuộc gọi và Marconi hồi đáp nên hai trường này vẫn giống với trong bản tin INVITE. Lúc này, Marconi cũng tạo ra một chuỗi tag ngẫu nhiên duy nhất. Hai chuỗi tag sau trường To và From sẽ giữ nguyên như thế trong suốt cuộc gọi.
200 OK
Khi chấp nhận lời mời cuộc gọi, M. (Marconi) gửi bản tin 200 OK để thông báo cho T. (Tesla).
ACK
Bản tin này khẳng định kết nối đã thiết lập và cho phép chuyển sang giao thức vận chuyển RTP để bắt đầu nói chuyện.
BYE
M. muốn kết thúc cuộc gọi, nó gửi bản tin BYE
200 OK
T. chấp nhận kết thúc cuộc gọi:
SIP/2.0 200 OK
Via: SIP/2.0/UDP tower.radio.org:5060;branch=z9hG4bK392kf
;received=200.201.202.203
To: Nikola Tesla ;tag=76341
From: G. Marconi ;tag=a53e42
Call-ID: 123456789@lab.high-Voltage.org
CSeq: 1 BYE
Content-Length: 0
b. SIP call có sự tham gia của Proxy server
Trong trường hợp 1: Tesla biết địa chỉ IP của Marconi nên có thể gửi trực tiếp bản tin INVITE tới địa chỉ đó. Điều này không phải lúc nào cũng có được. Trong phiên kết nối này nó là IP này nhưng phiên kết nối khác thì nó có IP khác do dùng DHCP.
SIP dùng địa chỉ giống tên email gọi là URI. SIP URI là tên có thể được phân giải sang địa chỉ IP bằng SIP proxy server và DNS lookup. SIP proxy không thiết lập hay kết thúc phiên kết nối mà nó đứng giữa khi trao đổi các bản tin SIP, nhận rồi chuyển các bản tin này đi. Ví dụ sau sẽ cho thấy rõ:
Hình 212: Cuộc gọi có sự tham gia của Proxy server
Đầu tiên, DNS dò tìm trong miền địa chỉ của H (munich.de), trả về IP của proxy server proxy.munich.de, sau đó, bản tin INVITE được gửi tới IP của proxy.
c. Đăng ký SIP
H. gửi một bản tin yêu cầu đăng ký tới server đăng ký. Server đăng ký dùng thông tin trong yêu cầu này để cập nhật cho dữ liệu của proxy dùng để định tuyến yêu cầu.
Hình 213: Quá trình đăng ký với Server đăng ký
REGISTER sip:registrar.munich.de SIP/2.0
Via: SIP/2.0/UDP 200.201.202.203:5060;branch=z9hG4bKus19
Max-Forwards: 70
To: Werner Heisenberg
From: Werner Heisenberg
;tag=3431
Call-ID: 23@200.201.202.203
CSeq: 1 REGISTER
Contact: sip:werner.heisenberg@200.201.202.203
Content-Length: 0
Server đăng ký hồi đáp lại bằng bản tin 200 OK
Các giao thức vận chuyển của SIP
a. UDP
UDP là giao thức tầng vận chuyển không có điều khiển tắc nghẽn. Nó được dùng để vận chuyển bản tin SIP vì đơn giản và thích hợp với các ứng dụng thời gian thực. Các bản tin SIP thường có kích thước nhỏ hơn MTU (Message Transport Unit). Nếu bản tin lớn thì phải dùng TCP, vì lý do này mà SIP không có chức năng chia nhỏ gói.
Hình 214: Trao đổi bản tin SIP bằng UDP
b. TCP
TCP là giao thức ở tầng vận chuyển đáng tin cậy do có điều khiển tắc nghẽn, hơn nữa nó có thể vận chuyển gói tin có kích thước bất kỳ. Nhược điểm của nó là tăng độ trễ.
Hình 215: Vận chuyển bản tin SIP bằng TCP
Để tăng cường tính bảo mật thì còn có những giao thức bổ sung để vận chuyển bản tin SIP như TLS, SRTP.
So sánh H323 và SIP
SIP và H.323 được phát triển với những mục đích khác nhau bởi các tổ chức khác nhau. H.323 được phát triển bởi ITU-T từ theo PSTN, dùng mã hóa nhị phân và dùng lại một phần báo hiệu ISDN. SIP được IETF phát triển dựa trên mạng Internet, dùng một số giao thức và chức năng của mạng Internet.
Hệ thống mã hóa: SIP là giao thức text-based (text dạng ASCII) giống như HTTP trong khi đó H.323 dùng các bản tin mã hóa nhị phân. Mã hóa nhị phân giúp giảm kích thước bản tin nhưng nó phức tạp hơn dạng text bình thường. Ngược lại các bản tin text dễ dàng tạo ra, lưu lại, kiểm tra và không cần bất cứ một tool nào để biên dịch nó, điều này làm cho SIP thân thiện với môi trường Internet và các nhà phát triển web. Bản tin SIP có cấu trúc ABNF, (Augmented Backus-Naur Form) còn bản tin H.323 ASN.1 không có cấu trúc.
H.323 chỉ có chức năng báo hiệu, SIP có thêm khả năng thông tin về trạng thái của user (presense and Instant message) vì SIP sử dụng địa chỉ URI. Điều này là thế mạnh của SIP và hầu hết các dịch vụ ngày nay dùng SIP nhiều hơn so với H.323. SIP được hỗ trợ bởi thiết bị của các nhà cung cấp dich vụ và đang dần thay thế H.323. SIP cũng được các hãng di động sử dụng như giao thức báo hiệu cuộc gọi.
Tính cước: SIP muốn có thông tin tính cước phải ở trong quá trình báo hiệu cuộc gọi để phát hiện ra thời điểm kết thúc cuộc gọi. Còn với H.323, tại thời điểm khởi tạo và kết thúc cuộc gọi, các thông tin tính cước nằm trong các bản tin ARQ/DRQ. Với trường hợp cuộc gọi báo hiệu trực tiếp, EP thông báo cho GK thời điểm bắt đầu và kết thúc cuộc gọi bằng bản tin RAS.
Về mức độ bảo mật: SIP có nhiều hỗ trợ bảo mật đảm bảo mã hóa, chứng thực dùng certificate, toàn vẹn bản tin end-to-end. Bản thân SIP không phát triển những hỗ trợ này mà nó thừa hưởng từ các giao thức hỗ trợ bảo mật của Internet như TLS và S/MIME. Còn H.323 thì xây dựng H.235 cho chứng thực và mã hóa.
Các thiết bị SIP còn hạn chế về việc trao đổi khả năng. Còn các thiết bị trong mạng H.323 có khả năng trao đổi khả năng và thương lượng mở kênh nào (audio, thoại, video hay dữ liệu).
H.323 và SIP cùng tồn tại và có chức năng tương tự như nhau. SIP được hỗ trợ DNS và URL ngay từ đầu còn H.323 thì không. Tương tự như vậy H.323 hỗ trợ hội nghị truyền hình với khái niệm MCU ngay từ đầu thì với SIP tính năng đó được phát triển sau gọi là “focus”.
SIP ban đầu dùng UDP, sau đó dùng TCP. Còn với H.323 thì ban đầu không dùng UDP nhưng bây giờ đã có hỗ trợ thêm UDP.
Ưu điểm của từng giao thức:
H.323 dùng thay thế một phần trong hệ thống PSTN và chiếm lĩnh thị trường hội nghị truyền hình. Đối với những bộ phận chỉ dùng tính năng báo hiệu (thiết lập và kết thúc) cuộc gọi, không dùng hết những ưu điểm nổi trội của SIP thì không cần thay thế H.323 bằng SIP.
SIP hiện tại vẫn chưa hỗ trợ hội nghị truyền hình. Điểm mạnh của nó hiện tại vẫn là một giao thức đơn giản, dựa trên kiến trúc Internet.
Giao thức MGCP
Giao thức điều khiển cổng nối phương tiện (MGCP) là giao thức dùng để điều khiển các cổng nối thoại từ các thiết bị điều khiển cuộc gọi, được thiết kế nhằm địa chỉ hoá các thành phần của mạng truyền tiếng nói, xây dựng bằng cách tách hoá thành phần VoIP. Các chức năng của nó như là một giao thức bên trong giữa các MGC và MG cho việc tách hóa kiến trúc Gateway. Nó được chia thành báo hiệu cuộc gọi thông minh và xử lý phương thức. Giao thức này là chứ năng của bộ điều khiển cổng nối phương tiện (MGC) hoặc đại lý cuộc gọi (CA) cho việc điều khiển các MG. Trong đó, MGC thực hiện báo hiệu cuộc gọi, điều khiển MG. MG có nhiệm vụ chuyển đổi giữa dạng tín hiệu tương tự từ các mạng điện thoại, với các gói tin trong mạng chuyển mạch gói. MGCP hoàn toàn tương thích với VoIP Gateway, nó cung cấp một giải pháp mở cho truyền thông qua mạng và sẽ cùng tồn tại với SIP và H323.
Kiến trúc hệ thống
MGCP là một giao thức chủ/tớ sử dụng giao thức SDP để mô tả phương thức truyền thông và RTP/RTCP cho việc vận chuyển và giám sát truyền tin.
H ình 2-16: Kiến trúc tổng quát
Đánh giá vấn đề bảo mật
Không có cơ chế bảo mật nào được thiết kế vào trong chính giao thức MGCP. Các thông tin RFC 2705 đề cập đến việc sử dụng IPsec( hoặc AH hoặc ESP) để bảo vệ các bản tin MGCP. Nếu không có việc bảo vệ này thì sự tấn công tiềm tàng có thể thiết lập các cuộc gọi một cách trái phép hoặc sẽ tiếp tục can thiệp vào các cuộc gọi. Bên cạnh việc sử dụng IPsec, MGCP cho phép các đại lý cuộc gọi cung cấp các cổng với các khoá phiên để có thể được sử dụng để mã hoá các tin nhắn, bảo vệ chống lại việc nghe trộm. Các khoá phiên sẽ được sử dụng muộn hơn trong việc mã hoá RTP. Mã hoá RTP, được miêu tả trong RFC 1889, có thể được ứng dụng. Các khoá phiên có thể được chuyển đổi giữa các đại lý cuộc gọi và các cổng bằng cách sử dụng SDP( cf RFC 2327).
MEGACO/H248
MEGACO được phát triển từ giao thứuc MGCP vẫn dựa trên mô hình chủ/tớ và là chuẩn mở quốc tế cho việc điều khiển cổng kết nối trong mạng phân tán. MEGACO tuy còn đơn giản nhưng hiệu quả và rất linh hoạt trong việc mở rộng, cho phép xây dựng phân chia các chức năng cổng kết nối bên dưới lớp điều khiển cuộc gọi (SIP, H323…). Nó là giao thức điều khiển giữa thiết bị điều khiển cổng nối phương tiện MGC và MG với các chức năng:
Điều khiển các dạng thiết bị kết nôi
Hỗ trợ khả năng dàn xếp cuộc gọi
Các phương án cuộc gọi đa người sử dụng
Chất lượng dịch vụ và hỗ trợ cho đo lưu lượng
Báo lỗi trong giao thức, cuộc gọi, dung lượng và lỗi mạng
MEGACO có cấu trúc lệnh khá đơn giản, mềm dẻo trong thiết kế, cung cấp các ưu điểm nhằm giảm dung lượng header bản tin, giảm giá thành và độ phức tạp, có khả năng đáp ứng với rất nhiều ứng dụng khác nhau.
CHƯƠNG III: KỸ THUẬT BẢO MẬT CHO VoIP
Các điểm yếu về bảo mật VoIP
Điểm yếu về bảo mật của giao thức H323
Do H.323 sử dụng phương thức chứng thực tương đối chắc chắn giữa các thành phần H.323 và là giao thức có hỗ trợ bảo mật (H.235) nên luồng dữ liệu rất bảo mật. Tuy vậy cũng có một vài lỗ hổng, nghiêm trọng nhất là tràn bộ đệm do nó dùng định dạng bản tin ASN.1, dễ dàng bị DoS.
Can thiệp vào thông tin tính cước:
GK là nơi quản lý cuộc gọi, nó có chức năng tập trung thông tin tính cước và gửi về cho BES, BES lưu giữ thông tin này và gọi là CDR (Call Detail Record), thông tin này tối thiểu phải gồm có:
- Thời gian cuộc gọi: thời gian bắt đầu và kết thúc cuộc gọi, do GK theo dõi.
- CallID: mỗi cuộc gọi có 1 giá trị duy nhất khác nhau do GK tạo ra.
- UserID: duy nhất cho mỗi user được cấp quyền, giá trị này xác định tại thời điểm đăng ký.
CDR được gửi từ GK tới BES, do đó có thể chặn các gói này, sửa thông tin thời gian cuộc gọi. Để khắc phục phải chứng thực giữa GK và BES đồng thời phải đảm bảo toàn vẹn dữ liệu.
Cuộc gọi trực tiếp
Tính cước dựa trên việc cuộc gọi được định tuyến thông qua GK. Tuy nhiên, đầu cuối trong mạng H.323 có khả năng gọi trực tiếp mà không thông qua GK miễn là nó biết được địa chỉ IP của người bị gọi.
Traffic RTP luôn được gửi trực tiếp giữa các đầu cuối, do đó chỉ cần 1 cuộc gọi là có thể xác định được địa chỉ IP của bên bị gọi. Để khắc phục thì gateway chỉ cho phép thông tin báo hiệu từ GK đi qua.
Giả dạng đầu cuối
Để khởi tạo cuộc gọi, EP phải tiến hành 3 bước: đăng ký, xin chấp nhận cuộc gọi (Call Admission) và Q.931 thiết lập cuộc gọi. Quá trình đăng ký và xin chấp nhận cuộc gọi sử dụng bản tin RAS truyền qua UDP. Do đó, không có một phiên thực sự nào dành cho bản tin RAS, kẻ tấn công có thể chèn các bản tin này vào. Thông tin báo hiệu thực sự dùng bản tin Q.931 và được vận chuyển thông qua TCP.
Giả dạng EP trong giai đoạn đăng ký, sau đó kẻ giả dạng có thể thực hiện tất cả các dịch vụ mà một user được phân quyền có. Kiểu giả dạng này thành công nếu user bị giả dạng không đăng ký vào thời điểm giả dạng và nếu UserID là một IP thì chỉ có user trong cùng mạng mới có thể giả dạng được.
Tấn công trong giai đoạn xin chấp nhận cuộc gọi, cũng phải cùng mạng mới tấn công được vì phải biết được UserID của user muốn giả dạng.
Tấn công bằng các bản tin Q.931. Các bản tin Q.931 được xác định bằng trường CallID nên giá trị này phải hợp lệ. CallID được sinh ra trong quá trình xin chấp nhận cuộc gọi vì vậy kẻ tấn công hoàn toàn có được vì cuộc gọi đã được cho phép. Nhưng nếu giá trị CallID đã được dùng thì tấn công không thành công.
Bỏ qua giai đoạn xin chấp nhận cuộc gọi, dùng preGranted ARQ cho một nhóm user, GK không thể phát hiện ra và sẽ thiết lập cuộc gọi bình thường. Chứng thực có thể ngăn chặn được kiểu tấn công này.
Các kiểu tấn công trên chỉ có thể thực hiện khi không có các biện pháp bảo mật. Nếu chứng thực được dùng thì độ bảo mật phụ thuộc vào độ phức tạp của password.
Giả dạng GK
Giả dạng một bằng một GK khác: GK giả mạo chấp nhận yêu cầu thiết lập cuộc gọi do không có hỗ trợ bảo mật cho Q.931. Có thể ngăn chặn bằng cách thông tin cho GK về toàn bộ GK có trong mạng. Thông thường thì các GK đăng ký với BES nên 1 GK có thể lấy thông tin và địa chỉ IP khi đăng ký với BES.
Giả dạng BES
BES chỉ giao tiếp với GK bằng 1 giao thức client-server riêng. Có thể tấn công bằng cách chặn 1 bản tin từ GK tới BES, sau đó thay đổi một số trường như password của EP.
Điểm yếu về bảo mật của 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ị khuyên nên dùng các lớp dưới để bổ sung tính bảo mật cho SIP. Mặt khác là giao thức text-based nên cần dùng TLS để mã hóa.
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 (MD5 là một thuật toán mã hóa yếu).
- 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 3- 1: Tấn công bằng bản tin đăng ký
Một kiểu cướp quyền đăng kí khác là dùng tool chặn và thêm vào yêu cầu đăng kí khi nó được gửi từ một UA và server đăng ký. Kiểu tấn công này ít phổ biến hơn.
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.
Kiểu 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.
Hình 3- 2: Giả dạng Proxy
Message Tempering
Đây là kiểu tấn công chặn và thêm vào các gói mà các thành phần của SIP trao đổi với nhau.
Có thể dùng các cách sau để chặn gói:
Cướp quyền đăng kí
Giả dạng proxy
Tấn công một trong các thành phần tin cậy trong mạng
Có thể dùng S/MIME (chứng thực và mã hóa văn bản) nhưng nếu như văn bản ở dạng plaintext thì kẻ tấn công vẫn có thể lấy được thông tin định tuyến.
Kết thúc session
Quan sát các thông số trong 1 session như “To” và “From” sau đó chèn bản tin “BYE” hay re-INVITE để kết thúc cuộc gọi. Cách tấn công này có thể làm chuyển hướng cuộc gọi. Kiểu tấn công này rất khó phòng chống vì các trường như địa chỉ đích cần gửi đi ở dạng plaintext để cho phép định tuyến.
Kỹ thuật bức tường lửa áp dụng cho VoIP
Đóng vai trò rất quan trọng trong việc bảo mật mạng dữ liệu khỏi những tấn công từ bên ngoài. Một số loại firewall cơ bản sau có thể bảo vệ dữ liệu ở các lớp khác nhau trong mô hình OSI:
Packet filtering firewall
Circiut level gateway firewall
Personal firewall
Chức năng cơ bản của firewall được thiết kế không phải dành cho các ứng dụng thời gian thực như VoIP nên việc thiết lập firewall cho hệ thống VoIP sẽ làm cho hệ thống phức tạp hơn ở một số quá trình: port động trunking, thủ tục thiết lập cuộc gọi.
Ngoài ra, firewall còn có nhiệm vụ điều khiển luồng thoại và dữ liệu. Nếu không cài đặt firewall thì tất cả các lưu lượng đến và đi từ IP phone đều phải được cho phép vì RTP dùng port UDP động, và như vậy thì tất cả các port UDP đều phải mở, thiếu bảo mật. Vì vậy, IP phone thường đặt sau firewall để tất cả các lưu lượng đều được kiểm soát mà không cần phải mở tất cả các port UDP à firewall được sử dụng để cách ly về mặt luận lý giữa thoại và dữ liệu.
Kỹ thuật NAT áp dụng cho VoIP
Là kỹ thuật mà địa chỉ nguồn hay địa chỉ đích thay đổi khi đi qua thiết bị có chức năng NAT, cho phép nhiều host trong mạng nội bộ dùng chung một địa chỉ IP để đi ra mạng bên ngoài.
Ngoài one-to-one mapping thì còn có many-to-one mapping hay còn gọi là NAPT (Network Address Port Translation).
Hình 3- 3: Quá trình thay đổi địa chỉ trong NAT
NAT có 4 chính sách:
Full: tất cả các yêu cầu từ cùng các host bên trong (địa chỉ IP và port) được ánh xạ tới cùng một IP hay port đại diện bên ngoài, vì vậy bất kỳ một host bên ngoài có thể gửi gói tới 1 host bên trong nếu biết địa chỉ được ánh xạ đó.
Restricted: chỉ cho phép 1 host bên ngoài với IP X gửi gói cho host mạng bên trong nếu host của mạng bên trong đã gửi tới IP X một gói trước đó.
Port restricted: Giống Restricted one nhưng có thêm port. Chính sách này được sử dụng để có thể dùng chung một địa chỉ IP đại diện bên ngoài.
Symmetric: tất cả các request từ cùng 1 IP hay port đến 1 đích nào đó được ánh xạ đi bằng 1 IP đại diện, nếu đi tới 1 đích khác thì nó sẽ đi bằng IP đại diện khác à Chỉ có những host bên ngoài nhận được gói thì mới gửi gói ngược trở lại các host bên trong được.
Lợi ích của NAT:
Giảm bớt số IP cần dùng bằng cách sử dụng chung 1 IP đại diện để đi ra bên ngoài. Với việc sử dụng chung 1 IP đại diện để đi ra bên ngoài như vậy thì mọi lưu lượng muốn truy nhập vào mạng bên trong thì phải qua NAT, bảo mật hơn.
Kỹ thuật VPN áp dụng cho VoIP
Công nghệ VPN cung cấp một phưong thức giao tiếp an toàn giữa các mạng riêng dựa trên hạ tầng mạng công cộng (Internet). VPN thường được dùng để kết nối các văn phòng, chi nhánh với nhau, các người dùng từ xa về văn phòng chính. Công nghệ này có thể triển khai dùng các giải pháp sau: Frame Relay, ATM hay Leased line.
Các giao thức và thuật toán được dùng trong VPN bao gồm DES (Data Encryption Standard), Triple Des (3DES), IP Security (IPSec) và Internet key Exchange (IKE).
Có hai loại kết nốit VPN:
Client – to – LAN
LAN – to – LAN
Hình 3- 4: Client-to-LAN VPN
Công nghệ VPN dựa trên kỹ thuật đường hầm (tunneling). Kỹ thuật này bao gồm đóng gói, truyền đi, giải mã, định tuyến. VPN có ba loại: Point – to – Point Tunneling Protocol (PPTP), Layer 2 Tunneling Protocol (L2TP), IPsec.
Point – to – Point Tunneling Protocol(PPTP)
Đây là một giao thức phát triển bởi Microsoft, làm việc ở lớp 2 trong mô hình OSI. PPTP đóng gói frame PPP vào gói IP bằng cách sử dụng GRE (General Routing Encapsulation).Các hình thức đảm bảo sự bảo mật gồm: chứng thực, mã hóa dữ liệu, lọc gói PPTP.
PPTP dùng các giao thức chứng thực PPP gồm: EAP, MS-CHAP (ver 1 và ver 2), PAP, trong đó MS-CHAP ver2 và EAP-TLS được xem là bảo mật nhất vì cả VPN server và VPN client đều chứng thực lẫn nhau. Tải trong PPP frame được mã hóa bằng RSA (Rivest, Shamir and Adleman), RC4 (Rivest Cipher 4).
Trong MS-CHAP ver1 giá trị băm của LAN và của Windows NT được sinh ra dựa trên cùng một password và được gửi song song từ client đến server. Vì giá trị LAN manager hash được bảo mật kém nên các chương trình bẻ password có thể tấn công được, khi đã biết được giá trị băm của LAN, có thể dùng nó để tìm ra giá trị của Windows NT. MS-CHAP ver 2 khắc phục được lỗi trên nhờ dùng cơ chế mã hóa.
RSA và RC4 cũng có các điểm yếu do khóa mã hóa dựa trên password của user và cả client và server đều dùng chung khóa mã hóa.
Layer 2 Tunneling Protocol
L2TP là giao thức chuẩn của IETF (RFC 2661). Khác với PPTP, L2TP có thể chạy trên nhiều chuyển mạch khác nhau như X.25, Frame Relay, ATM, nhưng thường thì L2TP đóng gói PPP frame trong L2TP frame và dùng UDP để truyền đi (không dùng GRE). Dùng UDP tốt hơn cho các dịch vụ thời gian thực.
Bản thân L2TP không đảm bảo bảo mật, nó cần các giao thức vận chuyển bên dưới làm điều này. Điều này được thực hiện qua việc bảo mật trong PPP hoặc dùng IPsec.
Hình 3- 5: Cấu trúc L2PT
IP Security
Với đặc điểm là dễ bị bắt gói trong mạng IP nên yêu cầu mã hóa là cần thiết cho hệ thống VoIP. IPsec có thể bảo mật thông tin của EP và luồng dữ liệu. IPsec là tập giao thức phát triển bởi IETF, bảo mật ở lớp IP.
IPSec bao gồm 4 thành phần: thành phần mã hóa (Encryption), trao đổi khóa (Security Association), đảm bảo toàn vẹn dữ liệu (Data Integrity) và kiểm tra nguồn gốc dữ liệu (Origin Authentication).
IPsec gồm hai giao thức: Authenticaion Header (AH) và Encapsulating Security Payload (ESP).
AH: chứng thực data và chống replay, dùng giao thức IP số 51
ESP: dùng giao thức IP số 50
ESP chỉ mã hóa và chứng thực trên gói ban đầu (không có header), còn AH thì chứng thực toàn bộ gói (có header) và không mã hóa.
Hình 3- 6: Chứng thực và mã hóa của AH và ASP
IPsec gồm 2 mode:
+ Tunnel mode: tạo thêm một IP header mới gồm một địa chỉ nguồn và một địa chỉ đích (có thể khác với địa chỉ nguồn và địa chỉ đích trong gói IP). ESP chứng thực và mã hóa trên gói IP, còn AH chứng thực thêm một phần của header mới.
+ Transport mode: ESP mã hóa và chứng thực gói IP (không có phần header), AH thì có chứng thực thêm một phần header mới.
Hình 3- 7: Cấu trúc gói IPsec ở transport mode
Hình 3- 8: Cấu trúc gói IPsec ở tunnel mode
Trong quá trình thiết lập kết nối, VPN client và VPN server sẽ thương lượng thuật toán mã hóa được sử dụng trong số các thuật toán sau: DES, MD5, SHA, DH
Security Association (SA) thường được quản lý bời IKE. SA thường có thể dùng pre-shared key, mã hóa RSA hoặc chữ ký số. IPsec chứng thực bằng shared secret và certificate, bảo mật hơn so với PPTP chứng thực bằng password của user.
Một số giải pháp kỹ thuật bổ trợ cho bảo mật VoIP
Giải pháp “Khu phi quân sự”- DMZ bổ trợ cho bức tường lửa
DMZ là vùng trung gian giữa mạng tin cậy bên trong và mạng bên ngoài như Internet, là giải pháp ngăn ngừa sự tương tác trực tiếp giữa người bên trong và bên ngoài hệ thống, được xây dựng với mục đích làm cho hệ thống an toàn hơn. Có hai cấu hình thường thấy là DMZ một firewall và DMZ được đặt giữa hai firewall như hình vẽ.
Hình 3- 9: Kiến trúc DMZ và một firewall
Hình 3- 10: Vùng DMZ nằm giữa hai firewall
H.323 gatekeeper hay SIP proxy được đặt trong vùng DMZ có thể được giải quyết được vấn đề port động, chỉ cần cấu hình firewall sao cho đầu cuối có thể liên lạc được với gatekeper/proxy. Như vậy, vấn đề port động vẫn có thể khắc phục được bên ngoài firewall mà vẫn nằm trong vùng an toàn.
ALG (Application Level Gateway)
ALG là giải pháp cho vấn đề firewall/NAT trong mô hình doanh nghiệp. ALG là một phần mềm cài đặt trên firewall. Nó cho phép một ứng dụng được yêu cầu có được phép không, giúp cho những ứng dụng đuợc cho phép trong hệ thống được quản lý một cách dễ dàng.
Firewall có tích hợp ALG có khả năng phân tích và nhận biết các giao thức báo hiệu SIP/H.323 và đóng/mở các port một cách linh động bằng cách đọc các bản tin báo hiệu SIP/H.323.
Khi có cài đặt NAT thì ALG cần phải mở gói thoại và sửa lại thông tin header cho tương ứng với địa chỉ IP của mạng nội bộ hay IP bên ngoài đối với lưu lượng đi ra. Vấn đề của NAT được giải quyết khi ALG thay thế địa chỉ IP của mạng nội bộ bằng IP của chính ALG, không những thế nó còn ánh xạ lưu lượng RTP đến những port mà ALG có thể đọc và chuyển đến đúng các ứng dụng bên trong.
Hình 3- 11: Hoạt động của ALG
Giải pháp này đòi hỏi phải nâng cấp phần mềm hoặc thay thế hệ thống firewall/NAT cũ. Hơn nữa, tất cả các lưu lượng thoại đều được định tuyến qua ALG nên khi lưu lượng tăng lên thì nhu cầu các port cho RTP và RTPC không đủ. Vì vậy mặc dù đầu cuối có port thích hợp để thực hiện cuộc gọi nhưng cuộc gọi vẫn bị ALG từ chối.
Nhược điểm của ALG:
- ALG tốn kém do phải nâng cấp khi chuẩn thay đổi.
- ALG xử lý các gói thoại thì gây ra trễ và jitter, khi số lượng cuộc gọi tăng lên có thể gây nghẽn mạng.
- ALG được cài đặt trên firewall nên có thể làm firewall mất ổn định.
Middlebox Communication (MIDCOM)
ALG được cài đặt trên firewall nên có thể gây trễ và nghẽn. MIDCOM là giải pháp giải quyết vấn đề của ALG bằng cách đưa các chức năng của ALG vào một thiết bị nằm ngoài firewall gọi là Midcom agent. Thường thiết bị này là H.323 gatekeeper/SIP proxy nằm trong vùng DMZ vì đây là thành phần đáng tin cậy và có tham gia vào quá trình điều khiển phiên kết nối. Các thiết bị này bây giờ có thể phân tích lưu lượng VoIP và ra lệnh cho firewall mở/đóng các port dựa trên yêu cầu báo hiệu thông qua giao thức MIDCOM.
Giải pháp này có thể tăng tính linh động và giảm chi phí nâng cấp mạng. Ngoài ra còn cải tiến hơn về mặt hoạt động vì tách rời việc phân tích và chặn gói.
Nhược điểm của MIDCOM:
- Phải cấu hình cho firewall để Midcom agent điều khiển nó.
- Midcom agent phải được bảo vệ an toàn vì nó có khả năng điều khiển firewall, nếu kẻ tấn công nắm được quyền điều khiển Midcom agent thì có thể mở bất cứ port nào trên firewall, nên phải đặt thêm một firewall thứ 2 để bảo vệ nó..
Hình 3- 12: Hệ thống dùng Middlebox Com
Session Border Controller
Ngoài giải pháp ALG và MIDCOM, giải pháp SBC (Session Border Controller) cũng được phát triển dành cho doanh nghiệp. SBC thường đặt trong vùng DMZ và cung cấp các chức năng sau:
Firewall/NAT: SBC có thể hoạt động như một thiết bị NAT hay firewall hay kết hợp với firewall trong cùng DMZ. SBC có thể mở các lỗ (pinhole) để cho lưu lượng báo hiệu và thoại đi qua. Cho phép lưu lượng báo hiệu và lưu lượng thoại nhận và
chuyển tới các thiết bị nằm sau firewall và NAT tạo biên của mạng mà không cần phải nâng cấp firewall hay thiết bị.
Điều khiển chấp nhận cuộc gọi: SBC điều khiển các cuộc gọi báo hiệu qua mạng, có thể từ chối cuộc gọi khi cần thiết, vì vậy có thể bảo vệ mạng khỏi tấn công DoS. Điều khiển chấp nhận cuộc gọi có thể đảm bảo các thỏa thuận về mức độ dịch vụ, như vậy thuê bao có thể đảm bảo tốc độ kết nối trong giới hạn của mạng đường trục.
Ngoài ra, SBC còn có các chức năng khác:
- QoS: đảm bảo tài nguyên mạng cho thiết lập cuộc gọi và các dịch vụ cuộc gọi khẩn.
- Báo hiệu liên mạng: báo hiệu giữa H.323 và SIP.
Giải pháp đường viền bổ trợ cho NAT
STUN (Simple Traversal of UDP through NAT)
Cho phép các ứng dụng nhận biết sự có mặt và các loại NAT và firewall giữa nó và Internet. Có thể xác định địa chỉ IP đi ra bên ngoài do NAT tạo ra. Giải pháp này đòi hỏi client phải hỗ trợ STUN.
STUN nhận biết NAT bằng cách gửi các bản tin binding request đến STUN server yêu cầu địa chỉ và số cổng dùng để truyền và nhận lưu lượng. STUN server hồi đáp cho STUN client bằng bản tin binding response mang thông tin địa chỉ IP đi ra bên ngoài và số port của NAT. Các thông tin này sẽ dùng thiết lập bản tin thiết lập cuộc gọi.
Thực tế thì rất ít sản phẩm hỗ trợ STUN nên giải pháp này không được phổ biến.
TURN (Traversal Using Relay NAT)
TURN là giao thức cho phép một thiết bị nằm sau NAT/firewall nhận dữ liệu qua TCP/UDP, bổ sung cho hạn chế của STUN là có thể sử dụng được NAT đối xứng vì TURN nằm trên đường báo hiệu.
STUN không nằm trên đường báo hiệu cuộc gọi nên khi sử dụng NAT đối xứng, NAT sẽ ánh xạ cho lưu lượng đi ra một địa chỉ khác, đối với lưu lượng bên ngoài đi vào cũng tương tự.
ICE (Interactive Connectivity Establishment)
Các giải pháp STUN và TURN đều có những thuận lợi và hạn chế riêng. IETF đã phát triển một giải pháp khác là ICE.
ICE không phải là một giao thức mà nó là một phần làm việc cùng với STUN hay TURN, cho phép client khảo sát tìm ra cách thông tin với bên ngoài. Các ICE client sẽ trao đổi thông tin (IP private và public kể cả khi có sự thay đổi) và thương lượng tìm ra các con đường có thể kết nối giữa chúng và chọn con đường có chất lượng tốt nhất (trễ và jitter thấp nhất).
Đường hầm
Giải pháp này giải quyết vấn đề firewall/NAT bằng cách tạo đường hầm cho báo hiệu và cả lưu lượng thoại đi qua firewall/NAT. Giải pháp này đòi hỏi một server trong mạng nội bộ và một ở mạng bên ngoài. Hai server này sẽ tạo ra một đường hầm mang tất cả lưu lượng SIP, đường hầm này thường không cần mã hóa.
Giải pháp này có ưu điểm là thay đổi ít nhất chính sách bảo mật sẵn có. Tuy nhiên nó sẽ gây trễ trên lưu lượng thoại, làm giảm chất lượng cuộc gọi.
Hình 3- 13: Hoạt động của Tunneling
Hệ thống phát hiện xâm nhập IDS
IDS là hệ thống giám sát tất cả các lưu lượng trong mạng. IDS là thiết bị thụ động, lưu lượng không đi qua nó, mà nó chỉ lấy tất cả các gói trên mạng để phân tích. Nếu có lưu lượng không bình thường bản thân nó sẽ phát cảnh báo cho người quản trị mạng biết.
Hình 3- 14: Vị trí của IDS trong hệ thống
Hoạt động của IDS:
IDS theo dõi tất cả những trạng thái bình thường của hệ thống và do đó phát hiện ra những tấn công bất thường vào hệ thống. Kiến trúc của nó gồm Call State Fact Base, chứa các trạng thái điều khiển và các biến trạng thái, cho phép theo dõi tiến trình của cuộc gọi. Thông tin trạng thái được cập nhật từ Event Distributor. Attack Scenarino chứa những kiểu tấn công đã biết.
IDS quản lý sự thay đổi trạng thái của các gói được phân tích bằng chức năng Call basis. Tất cả gói của một cuộc gọi được phân thành một nhóm, rồi lại chia thành các nhóm nhỏ dựa trên loại giao thức, rồi đưa vào các bộ máy phân tích khác nhau, các bộ máy này được đồng bộ bằng các tham số chung và các sự kiện nội bộ. Event Destributor cũng phân loại các gói nhận được cho Attack Scenarino.
Các gói từ Event Destributor và thông tin trạng thái từ Attack Scenarino/ Call State Fact Base được đưa đến Analysis Engine. Khi có sự bất thường nào về giao thức hay trùng với một kiểu tấn công biết trước thì IDS sẽ bật cờ cảnh báo cho người quản trị phân tích thêm.
Hình 3-15: Cấu trúc bên trong của thiết bị IDS
Bảo mật cho VoIP khi truyền qua mạng cục bộ không dây(WLAN)
Không giống như hệ thống mạng có dây thông thường, ở các yếu tố bảo mật về mặt vật lý đã được đảm bảo, trong hệ thống mạng không dây có khả năng bảo mật của lớp vật lý không được đảm bảo như trong mạng có dây, môi trường sóng radio của các AP không bị hạn chế bởi khuôn viên toà nhà. Một thiết bị cầm tay với sử dụng anten thích hợp có thể kết nối ở khoảng cách lên tới 300m. Điều này khiến cho mạng WLAN không thể tránh khỏi những nguy cơ tấn công vốn có từ lớp vật lý. Điều này rất nguy hiểm cho các mạng WLAN không sử dụng cơ chế bảo mật nào. Vì thế chúng ta sẽ tìm hiểu sơ qua về một số phương pháp bảo mật cho mạng không dây cơ bản như SSID, WEP, phương pháp chặn địa chỉ MAC…
SSID
Là một chuỗi 32 ký tự xác định vùng roaming của AP trong số nhiều AP. SSID được coi như là một loại password mà không có nó không thể kết nối vào mạng.
AP quảng bá SSID nhiều lần trong 1s nên bất kỳ tool nào cũng có thể đọc được nó. Vì vậy nên đổi SSID khác giá trị mặc định. SSID không phải là một phương pháp bảo mật mạnh nên cần kết hợp với WAP hay WPA.
WEP
WEP dùng để chứng thực và mã hóa. Có 4 tùy chọn:
Không dùng WEP
Dùng WEP chỉ để mã hóa
Dùng WEP chỉ để chứng thực
Dùng WEP để mã hóa và chứng thực
WEP mã hóa bằng RC4, khóa 40 bit kết hợp với 24 bit ngẫu nhiên của vector khởi tạo để hình thành chuỗi RC4, sau đó XOR với plain text sẽ tạo ra cipher text.
AP và client phải có cùng khóa WEP. Hầu hết các nhà cung cấp hiện nay dùng.
WEP 128 bit, mạnh hơn, khó khăn hơn đối với việc nghe lén. 128 bit WEP dùng chuỗi 26 kí tự (A-Z và 0-9), mỗi kí tự 4 bit, 26x4=104 bit và 24 bit vector khởi tạo. 256 bit WEP dùng 56 kí tự Hexa.
Hình 3- 16: Quá trình tạo ra ciphertext trong WEP
Có hai cách WEP chứng thực: chứng thực hệ thống mở và khóa chung
Hệ thống mở: thực chất không có quá trình chứng thực diễn ra giữa client và AP. Nó có thể dùng WEP mã hóa luôn dữ liệu.
Khóa chung: Bắt tay 4 bên
AP gửi yêu cầu chứng thực tới client. Client mã hóa yêu cầu bằng khóa chung và gửi lại AP. Nếu AP giải mã thành công thì cho phép kết nối
.
Hình 3- 17: Quá trình bắt tay 4 bên
Lọc địa chỉ MAC
Bộ lọc địa chỉ MAC sẽ lọc địa chỉ MAC của các NIC không dây. Cách này không mang hiệu quả cao vì dễ dàng biết được địa chỉ MAC bằng các tool sniff.
Mô hình bảo mật WLAN
Có 4 loại tấn công: chặn, giả dạng, thêm thông tin và gián đoạn.
Kiếu tấn công
Ảnh hưởng
Giải pháp
Interception
Tính tin cậy và riêng tư
Mã hóa/giải mã
Fabrication
Tính xác thực
Chứng thực
Modification
Tính toàn vẹn
Interruption
Tính sẵn sàng
Repudiation
Không chối cãi
Bảng 3- 1: Các hình thức tấn công
Mô hình bảo mật WLAN như hình vẽ sau:
Hình 3- 18: Kiến trúc WLAN
Hình 3- 19: Kiến trúc WLAN có thêm wireless authentication firewall
Đánh giá độ bảo mật của WEP
Hình 3-20: Đánh giá độ bảo mật của WLAN
WPA dùng TKIP (Temportal Key Integrity Protocol) mã hóa bảo mật hơn so với WEP. TKIP dùng keyhashing (KeyMix) và MIC (Message Integrity Check) phi tuyến, rapid-keying (RaKey) cứ 10.000 gói thì thay đổi khóa.
WPA làm việc ở hai chế độ: preshared key mode và managed mode
Preshared key mode: chỉ cần nhập khóa là có thể truy cập mạng.
Managed mode: có server chứng thực, có hỗ trợ 802.1x/EAP cho phép thương lượng thông qua một AP với một server chứng thực, trong đó có mã hóa các phiên trao đổi khóa.
Phần lớn WPA có hỗ trợ các thuật toán như trong WEP, ngoài ra còn có thêm thuật toán mới AES (Advanced Encryption Standard) thay thế cho RC4.
802.1x và EAP
Chứng thực user một cách tập trung. Thuật toán chứng thực có thể là dùng certificate như là EAP-TLS, dùng password như EAP-MD5, smartcard như EAP-SIM.
Hình 3- 21: Quá trình chứng thực 802.1x
EAP-TLS: dùng PKI (Public Key Infrastructure), được hỗ trợ trong Win XP và Win 2000.
EAP-SIM: thiết kế bởi Nokia, chứng thực phần cứng cho chip SIM.
EAP MD5: chứng thực dựa trên user name và password.
VPN và 802.11
Phần mềm VPN client phải cài đặt trên tất cả các máy trong mạng LAN. Một VPN gateway được đặt giữa AP và WLAN. Một đường hầm mã hóa từ máy tính qua wireless gateway và kết thúc tại VPN gateway. Đường hầm VPN cung cấp chứng thực, tin tưởng và toàn vẹn dữ liệu, không cần đến các công cụ mã hóa khác như WEP nữa.
Giải pháp VPN cho phép người truy nhập từ xa có thể truy nhập mạng. Đường hầm bảo mật bắt đầu từ máy tính của user qua Internet, qua VPN gateway, đến VPN server và đi vào trong mạng.
Nhược điểm:
Chứng thực một chiều nên dễ bị tấn công theo kiểu man-in-the-middle-attack.
Triển khai VPN trong một tổ chức lớn đòi hỏi cài đặt và bảo trì các phần mềm client. Ngoài ra, các nhà cung cấp khác nhau có những giải pháp VPN khác nhau, do đó phải đồng bộ về phần mềm và thiết bị.
Để tăng tính bảo mật, VPN sử dụng giao thức Ipsec.
KẾT LUẬN
Sau một thời gian tìm hiểu đề tài “Bảo mật VoIP”, em đã hoàn thành đề tài với các nội dung chính sau:
Tìm hiểu tổng quan về VoIP
Tìm hiểu các bộ giao thức được sử dụng trong VoIP
Tìm hiểu các kỹ thuật bảo mật cho VoIP
Do hạn chế về kiến thức nên em mới chỉ nêu ra được một số giải pháp bảo mật áp dụng cho mạng VoIP. Mặc dù các giải pháp đề ra ở đây chưa phải là tối ưu nhưng cũng đã giải quyết các vấn đề có bản còn tồn tại trong mạng VoIP hiện nay.
Với những cải tiến về công nghệ bảo mật, đồng thời chất lượng dịch vụ thoại được nâng cao, VoIP sẽ ngày càng được chú ý và hoàn thiện hơn, sẽ bổ xung những dịch vụ mới cùng với sự hiện diện của mạng điện thoại chuyển mạch công cộng PSTN truyền thống.
Đồ án này được hoàn thành đúng hạn là nhờ công lao dạy dỗ của các thầy cô giáo khoa CNTT trường ĐH Phương Đông, đặc biệt là thầy giáo Phạm Minh Nghĩa đã hướng dẫn giúp đỡ em trong quá trình học tập cùng với sự giúp đỡ của gia đình và bè bạn. Em xin gửi lời cảm ơn chân thành tới các thầy cô giáo và gia đình, bạn bè đã giúp đỡ em trong suốt thời gian làm đồ án.
Em xin chân thành cảm ơn
Sinh viên: Trần Văn Hoàn
MỤC LỤC
LỜI NÓI ĐẦU 1
CHƯƠNG I: TỔNG QUAN VoIP 3
1.1. Điện thoại IP 4
1.1.1. Giới thiệu 4
1.1.2. Lợi ích của điện thoại IP 6
1.1.3. Ưu điểm và nhược điểm của điện thoại IP 7
1.2. Kết nối mạng VoIP 9
1.2.1. Kết nối PC - PC 9
1.2.2. Kết nối PC - máy thoại 9
1.2.3. Kết nối máy thoại - máy thoại 11
1.3. Đặc điểm của điện thoại IP 11
1.4. Các ứng dụng của VoIP 13
1.4.1. Dịch vụ thoại qua Internet 13
1.4.2. Thoại thông minh 14
1.4.3. Dịch vụ tính cước cho bị gọi 14
1.4.4. Dịch vụ Callback Web 15
1.4.5. Dịch vụ fax qua IP 15
1.4.6. Dịch vụ Call center 16
CHƯƠNG II: CÁC GIAO THỨC TRONG HỆ THỐNG VoIP 17
2.1. Giao thức H323 17
2.1.1. Giới thiệu giao thức H323 17
2.1.2. Kiến trúc của H323 17
2.2. Báo hiệu trong H323 22
2.2.1. Thiết lập cuộc gọi 22
2.2.2. Thiết lập kênh điều khiển 25
2.2.3. Thiết lập kênh truyền thông 26
2.2.4. Dịch vụ cuộc gọi 26
2.2.5. Kết thúc cuộc gọi 26
2.3. Giao thức H225 28
2.3.1. RAS (Registration, Admission, Status) 28
2.3.2. Q.931 29
2.4. Giao thức H245 29
2.5. Giao thức SIP 30
2.5.1. Kiến trúc của SIP 30
2.5.2. Giao thức mô tả phiên (SDP) 32
2.5.3. Quá trình trao đổi bản tin của SIP 34
2.5.4. Các giao thức vận chuyển của SIP 38
2.6. So sánh H323 và SIP 40
2.7. Giao thức MGCP 41
2.8. MEGACO/H248 43
CHƯƠNG III: KỸ THUẬT BẢO MẬT CHO VoIP 44
3.1. Các điểm yếu về bảo mật VoIP 44
3.1.1.Điểm yếu về bảo mật của giao thức H323 44
3.1.2. Điểm yếu về bảo mật của giao thức SIP 46
3.2. Kỹ thuật bức tường lửa áp dụng cho VoIP 48
3.3. Kỹ thuật NAT áp dụng cho VoIP 49
3.4. Kỹ thuật VPN áp dụng cho VoIP 50
3.5. Một số giải pháp kỹ thuật bổ trợ cho bảo mật VoIP 54
3.5.1. Giải pháp "Khu phi quân sự" - DMZ bổ trợ cho bức tường lửa 54
3.5.2. Giải pháp đường viền bổ trợ cho NAT 58
3.5.3. Hệ thống phát hiện xâm nhập IDS 60
3.6. Bảo mật cho VoIP khi truyền qua mạng cục bộ không dây (WLAN) 61
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO
Các file đính kèm theo tài liệu này:
- Bảo mật VoIP.doc