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