Các giải pháp bảo mật công nghệ VoIP
Tác giả: Nguyễn Tấn Hiệp
3.1 Nhu cầu bảo mật.Trước khi đi vào chi tiết về những công nghệ khác nhau để bảo vệ cho mạng VoIP. Bạn cần phải hiểu những vấn đề và tập hợp những nhu cầu mà bạn đã được thấy. Phần này sẽ phác thảo những nhu cầu bảo mật tiêu biểu.Không phải là một danh sách toàn diện.Những dịch vụ VoIP đặc biệt có thể cần những nhu cầu phụ:
Tính toàn vẹn: Người nhận nên nhận những gói dữ liệu của người khởi tạo gửi với nội dung không có sự thay đổi. Một bên thứ ba cần phải không có khả năng chỉnh sửa gói trong quá trình vận chuyển. Định nghĩa này được áp dụng một cách chính xác trong trường hợp của tín hiệu VoIP. Tuy nhiên, trong trường hợp của phương tiện truyền thông, sự mất mát gói thông thường có thể tha thứ được.
Tính bí mật: Một hãng thứ ba không nên có khả năng để đọc dữ liệu mà được dự định cho người nhận.
Tính xác thực: Bên gửi và bên nhận tín hiệu VoIP hay thông điệp truyền thông nên chắc chắn rằng chúng đang liên lạc ngang hàng nhau.
Tính sẵn sàng: Sự bảo vệ từ việc tấn công DoS(từ chối dịch vụ) đối với thiết bị VoIP nên sẵn có đối với những người sử dụng liên tục. Những người sử dụng/những thiết bị có ác tâm hoặc có cư xử không đúng đắn không được cấp quyền để phá vỡ dịch vụ. Để làm dịu các cuộc tấn công DoS đòi hỏi cách xử lý lây nhiễm để bảo vệ tài nguyên VoIP và bảo vệ mạng IP bên dưới.
3.2 Các công nghệ bảo mật.
Khi đưa ra những nhu cầu bảo mật cho những thiết bị VoIP, phần này mô tả một vài công nghệ có sẵn để đảm bảo tính toàn vẹn,tính bí mật, và tính chứng thực. Những công nghệ bao gồm trong phần này như sau:
Share-key(khóa dùng chung)
Những cách tiếp cận Chìa khóa- Dùng chung
Một cách tiếp cận tới sự chứng thực là một hệ thống mà trong đó người gửi và người nhận chia sẻ một mật khẩu bí mật ( đôi khi tham chiếu tới như một chìa khóa- dùng chung) mà không được biết đối với một bên thứ ba.
Người gửi tính toán một hash nội dung thông điệp và nối vào giá trị hash đó với một thông điệp. Bên phía nhận được thông điệp, người nhận cũng tính toán hash thông điệp với một mật khẩu dùng chung. Sau đó nó so sánh hash đã được tính toán với giá trị hash mà được bổ sung vào thông điệp. Nếu chúng phù hợp, sự toàn vẹn của thông điệp được bảo đảm như là tính xác thực của người gửi.
Bạn có thể sử dụng mật khẩu dùng chung để mã hóa nội dung thông điệp và truyền dữ liệu đã mã hóa tới người nhận. Trong trường hợp này, yêu cầu riêng tư được đề cập không vì bên thứ ba có thể đánh hơi dữ liệu đang vận chuyển và có thể nhìn nội dung thông báo của văn bản gốc. Người nhận chạy giải thuật giải mã (sự mở khóa) với mật khẩu dùng chung như một trong những đầu vào và tạo ra lại thông báo văn bản gốc.
Một hệ thống mà có nhiều nguồn dữ liệu có thể gặp phải yêu cầu xác thực bằng việc bảo đảm rằng mỗi người gửi sử dụng một chìa khóa duy nhất cho dữ liệu được gửi.
Trong một cách tiếp cận chìa khóa- dùng chung, người quản trị phải có sự chuẩn bị đối với mật khẩu bí mật dùng chung. Trong một hệ thống mà có nhiều cặp người gửi/ nhận, việc đương đầu với sự chuẩn bị có thể rất cao.
Ngoài ra, nếu một chìa khóa- dùng chung được thỏa hiệp ( stolen/ lost), Mọi thiết bị sử dụng chìa khóa dùng chung cần được chuẩn bị với chìa khóa dùng chung mới.
Public-Key Cryptography
Để làm giảm bớt sự đau đầu cho người quản trị với những cách tiếp cận chìa khóa- dùng chung, bạn có thể sử dụng mật mã chìa khóa- công cộng
Những khái niệm cơ bản trong mật mã chìa khóa chung là những chìa khóa và những chữ ký số hóa không cân đối, được mô tả trong những mục sau đây:
Những chìa khóa không cân đối
Những cặp chìa khóa không cân đối từng cặp là những chìa khóa (thông thường của độ dài cố định) được tham chiếu tới như chìa khóa công cộng và chìa khóa riêng tư mà có liên quan toán học đến lẫn nhau. Chúng thông thường được đại diện trong hệ mười sáu và có những đặc trưng sau đây:
Chỉ có chìa khóa công cộng tương ứng mới có thể giải mã dữ liệu mà được mã hóa với một chìa khóa riêng tư
Chỉ có cặp chìa khóa riêng tư tương ứng mới có thể giải mã dữ liệu mà được mã hóa với một chìa khóa công cộng
Có mối quan hệ một-một giữa những chìa khóa.
Chìa khóa riêng tư được giữ bí mật, còn chìa khóa công cộng thì được chia sẻ với mọi người.
Đối với sự chứng thực, một người gửi có thể sử dụng chìa khóa riêng tư của riêng mình để mã hóa thông điệp. Thông điệp chỉ có thể được giải mã với chìa khóa công cộng tương ứng. Người nhận có thể giải mã thông điệp miễn là anh ta có sự truy nhập tới chìa khóa công cộng của người gửi. Vì chỉ có người gửi mới biết chìa khóa riêng tư nên anh ta buộc phải mã hóa thông điệp.
Đối với truyền thông an toàn, một người gửi có thể mã hóa nội dung thông báo bằng cách sử dụng kỹ thuật mật mã chìa khóa- công cộng. Anh ta làm điều này bằng cách sử dụng chìa khóa công cộng của người nhận. Người nhận sau đó có thể giải mã thông điệp với chìa khóa riêng tư tương ứng. Bởi vì người nhận đã dự định có chìa khóa riêng tư nên anh ta có thể giải mã thông điệp. Không có bên thứ ba nào khác có thể giải mã thông báo này, bởi vì không ai khác biết chìa khóa riêng tư của người nhận.
Chú ý rằng người gửi phải sử dụng chìa khóa riêng tư để mã hóa thông điệp cho những mục đích chứng thực, trong khi mà người nhận phải sử dụng chìa khóa công cộng để mã hóa thông điệp cho sự truyền thông an toàn. Trong thế giới thực, pha chứng thực đến đầu tiên. Sau khi người gửi và người nhận xác nhận lẫn nhau thì họ chuyển tới pha truyền thông an toàn.
Sự mã hóa sử dụng những chìa khóa không cân đối là một tiến trình cường độ cao của CPU. Bởi vậy, khi mà bao gồm rất nhiều dữ liệu, những người quản lý nói chung sử dụng mật mã chìa khóa công cộng để đàm phán một bí mật dùng chung duy nhất trên phiên họp. Họ dùng những ký số chìa khóa cân đối bằng cách sử dụng bí mật dùng chung này cho phần còn lại của phiên họp.
Chữ ký số hóa
Một chữ ký số hóa là một thuộc tính nội dung của thông điệp và người ký của thông điệp đó. Một chữ ký số hóa phục vụ một mục đích tương tự tới một chữ ký trong thế giới thực nó thực sự là một công cụ để xác nhận một thông điệp hay mẩu dữ liệu nào đó. Những chữ ký số hóa sử dụng một tập hợp của những giải thuật bổ sung một để ký tên và để xác minh.
Đầu tiên, một chức năng hash được chạy qua nội dung của thông điệp. Rồi kết quả của hash được thay đổi vào trong một chữ ký số hóa bằng cách sử dụng chìa khóa riêng tư của người ký. Một chữ ký số hóa điển hình được bổ sung vào thông báo.
Người nhận xác minh chữ ký bằng việc chạy giải thuật xác minh qua nội dung nguyên bản của thông điệp (loại trừ chính chữ ký) và chìa khóa công cộng của người ký.
Những chữ ký số hóa cung cấp sự chứng thực. (Người ký phải có chìa khóa riêng tư.) Những chữ ký số hóa cũng cung cấp sự toàn vẹn của thông điệp, bởi vì bất kỳ sự thay đổi nào tới nội dung của thông điệp đang vận chuyển đều dẫn đến một sự thất bại của giải thuật xác minh chữ ký.
Tuy nhiên, một chữ ký số hóa không cung cấp sự riêng tư bởi chính bản thân nó. Chữ ký được bổ sung vào thông điệp, mà được gửi đến văn bản trống và có thể được nhìn thấy khi đang vận chuyển.
Chứng thực và căn cứ chứng thực
Bây giờ, câu hỏi đặt ra là chìa khóa công cộng được sinh sản như thế nào tới những người nhận có khả năng. Những cặp chìa khóa không cân đối thì chắc chắn để bảo trì và định hình. Những chứng thực được định nghĩa là như một giải pháp đối với vấn đề phân phối chìa khóa công cộng.
Tại thời điểm của sự phát sinh chìa khóa, chìa khóa công cộng của thực thể (gọi là subject) được gửi tới căn cứ chứng thực (CA). CA xác minh lai lịch của requestor (có khả năng là sự can thiệp bằng tay) và phát hành một chứng thực mà khẳng định lai lịch của requestor và chìa khóa công cộng của nó
Điều này chứng thực rằng những vấn đề của CA bao gồm thông tin về căn cước của subject, trong số những thứ khác, và được ký bởi CA.
Mỗi thiết bị trong hệ thống được preprovisioned với chìa khóa công cộng của CA ( Nếu có nhiều CA, chìa khóa công cộng của mỗi nhu cầu được provisioned trên mỗi thiết bị) và tin cậy những chứng thực đã được phát hành bởi CA.
Tại sự bắt đầu của việc thiết lập phiên họp, subject giới thiệu chứng thực của nó tới sự tương đương của nó. Sự tương đương chạy một giải thuật xác minh chữ ký để xác minh rằng một CA tin cậy đã ra hiệu chứng thực. Nếu chữ ký được làm cho có hiệu lực, chìa khóa công cộng và căn cước của subject (gọi là subject name) được lưu trữ cục bộ.
Nói chung, chìa khóa công cộng của CA đã tin cậy được preprovisioned trên những thiết bị. Mọi thực thể khác được xác nhận bằng phương pháp chứng thực và không yêu cầu provisioning bằng tay. Sau những chứng thực (mà chứa đựng những chìa khóa công cộng) được truyền lan, sự truyền thông giữa những thực thể trong hệ thống có thể được giữ an toàn.
Những giao thức trên nền khóa công cộng
Mục này quan sát một số những giao thức bảo mật mà sử dụng công nghệ mật mã chìa khóa- công cộng. Những giao thức này không bị hạn chế đối với cách dùng VoIP. Bạn có thể sử dụng chúng để bảo mật cho những dịch vụ khác.
TLS
Giao thức TLS, được chỉ rõ ở RFC 2246, phát triển từ SSL(secure socket layer). TLS dựa trên của những thủ tục vận chuyển đáng tin cậy nằm bên dưới như TCP. Trong tinh thần (của) lớp nghi thức, TLS thì độc lập với lớp ứng dụng mà đặt bên trên TLS. Như vậy, bạn có thể sử dụng TLS với những dịch vụ khác với VoIP. Trong văn cảnh VoIP, TLS là điển hình được sử dụng để bảo mật tín hiệu.
TLS được bao gồm hai lớp:
Giao thức record. Lớp mức thấp hơn mà cung cấp sự an toàn kết nối và là workhorse. Nó cung cấp sự riêng tư và sự toàn vẹn.
Giao thức record sử dụng những giải thuật mật mã cân đối như những Tiêu chuẩn mã hóa dữ liệu và RC4 cho sự mã hóa dữ liệu. Lớp khác mà đặt ở trên của lớp giao thức record đàm phán những chìa khóa và giải thuật sẽ được sử dụng cho một kết nối đặc biệt. Bạn có thể sử dụng lớp giao thức record mà không cần sự mã hóa.
Để toàn vẹn, mỗi thông điệp sẽ bao gồm một sự kiểm tra toàn vẹn thông điệp bằng cách sử dụng một keyed MAC. Sự sử dụng những tính toán MAC bảo mật cho những chức năng hash như MD5 và Giải thuật secure hash (SHA).
Client layer-lớp mức độ cao mà đăt ở trên lớp giao thức record. Nhiều giao thức, như giao thức bắt tay TLS, được định nghĩa tại lớp client. Giao thức bắt tay TLS chủ yếu được hứa hẹn tại sự bắt đầu của phiên họp truyền dữ liệu. Giao thức bắt tay TLS có hai chức năng sơ cấp:
Nó xác nhận sự tương đương bằng cách sử dụng kỹ thuật mật mã cân đối hay chìa khóa- công cộng.
Nó đàm phán một cách mở rộng trên một cơ sở kết nối, một giải thuật mã hóa bí mật dùng chung và cân đối. Giao thức bắt tay TLS sau đó chuyển xuống tới lớp giao thức record bí mật dùng chung và đàm phán giải thuật mã hóa. Lớp giao thức record làm sự mã hóa trọng tải tối đa thực tế.
Những giao thức lớp client khác bao gồm giao thức báo động, sự thay đổi viết mã số giao thức thuyết minh, và giao thức dữ liệu ứng dụng.
Bạn có thể sử dụng TLS trong kiểu server-auth hay kiểu chứng thực lẫn nhau. Trong kiểu server-auth, client xác nhận lai lịch của server theo đường TLS. Server sử dụng một vài yếu tố khác ở ngoài để xác nhận client. Trong kiểu chứng thực lẫn nhau, mỗi thực thể xác nhận sự tương đương của nó bằng việc xác minh chứng chỉ của nó.
Hình 10-1 cho thấy luồng thông điệp giữa một TLS client và TLS server trong kiểu chứng thực lẫn nhau.
IPsec
Trong khi mà TLS vận hành dựa trên TCP, thì IPsec vận hành tại lớp IP và cung cấp sự bảo mật cho gói dữ liệu IP bằng cách sử dụng kỹ thuật mật mã chìa khóa- công cộng. IPsec sử dụng hai giao thức để cung cấp securityAuthentication Header (AH) và Encapsulation Security Payload (ESP).
AH cung cấp sự chứng thực và sự toàn vẹn. ESP cung cấp sự riêng tư ngoài sự chứng thực và sự toàn vẹn bằng việc mã hóa những phần của thông điệp. IPsec có thể vận hành trong hai kiểu khác:
Kiểu vận chuyển: một IPsec Header sẽ được chèn vào giữa IP header và bên dưới giao thức (TCP/ UDP) header. Trong kiểu này chỉ có payload của gói dữ liệu IP được bảo vệ.
Kiểu tunnel: Toàn bộ gói IP được đóng gói trong gói dữ liệu IP khác. Một IPsec header được bổ sung giữa vòng ngoài và vòng trong IP header. Trong kiểu này, toàn bộ gói IP được bảo vệ. Kiểu này thì được sử dụng điển hình khi mà một thiết bị không bắt buộc gói dữ liệu cung cấp sự bảo mật. Điều này có thể xuất hiện qua một kết nối mạng riêng ảo (VPN) chẳng hạn.
Cả hai giao thức IPsec, AH và ESP có thể vận hành hoặc trong kiểu transport hoặc trong kiểu tunnel. Định dạng của AH và ESP header là giống nhau bất chấp sử dụng kiểu transport hay kiểu tunnel.
Hình 10-2 minh họa sự đóng gói của IPsec trong kiểu transport và kiểu tunnel
Một giao thức quản lý khóa riêng biệt gọi là sự trao đổi khóa Internet (IKE) được chỉ rõ cho việc quản lý những khóa bảo mật. IKE sử dụng kỹ thuật mật mã khóa- công cộng để đàm phán một khóa chứng thực, giao thức bảo mật ( AH hay ESp), băm giải thuật, và mã hóa giải thuật.
SRTP
Giao thức vận chuyển thời gian thực an toàn (SRTP), được định nghĩa ở RFC 3711, là một profile của giao thức vận chuyển thời gian thực (RTP). SRTP cung cấp sự toàn vẹn, tính xác thực, và sự bảo vệ riêng tư tới lưu thông RTP và tới điều khiển lưu thông cho RTP, RTCP (giao thức điều khiển vận chuyển thời gian thực)
SRTP không chỉ rõ những chìa khóa được trao đổi giữa người gửi và người nhận như thế nào. Những hệ thống quản lý chìa khóa thì nằm bên ngoài phạm vi của SRTP. Trong trường hợp của VoIP, giao thức báo hiệu có thể trao đổi những khóa trước khi SRTP thực hiện. Nếu bạn sử dụng giao thức báo hiệu cho sự trao đổi khóa, bạn cần bảo mật nó bằng cách sử dụng TLS, IPsec hay những phương tiện tương tự, ngược lại, những chìa khóa mà SRTP sử dụng có thể bị phơi bày ra cho hackers.
Comment