CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC. Có rất nhiều ứng dụng hiện nay đòi hỏi tính thời gian thực (real time). Trong các dịch vụ truyền hình qua mạng, hội thảo trực tuyến, chat hình, chat tiếng…mỗi ứng dụng có những đặc điểm riêng của nó, tuy nhiên có một số điều chung nhất mà các dịch vụ này đều yêu cầu đó là việc truyền dữ liệu theo dòng (streaming) một cách an toàn. Do vậy trong chương này sẽ tìm hiểu khái niệm truyền dòng, cách thực hoạt động của nó và phương pháp đảm bảo an toàn cho dữ liệu 1.1 Quá trình truyền dòng của dữ liệu video thời gian thực 1.1 Tổng quan về video thời gian thực Video là một loại dữ liệu đa phương tiện quan trọng trong các lĩnh vực truyền thông và giải trí.
Trong thời kì sơ khai, Video được xử lý và truyền dưới dạng tín hiệu Analog. Nhưng sự phát triển mạnh mẽ của mạch điện tử và máy tính đã thúc đẩy việc số hóa Video và mở ra một cuộc cách mạng về các công nghệ nén và truyền Video. Trong những năm 90, với sự phát triển và phổ biến của Internet, Video được truyền bằng công nghệ chuyển mạch gói. Dù vậy, khi truyền qua mạng Internet, người ta vẫn thường xuyên gặp những yếu tố bất lợi về băng thông, độ trễ và mất gói tin, cùng với đó là vấn đề chia sẻ tài nguyên mạng giữa các luồng và làm thế nào để triển khai hiệu quả các phương thức truyền thông Multicast.
Thông thường, người dùng chỉ có thể đọc Video sau khi đã tải toàn bộ Video về đĩa cứng trên máy mình. Thế nhưng, trong bối cảnh các Video đang được cung cấp dưới dạng chất lượng cao thông qua Internet cũng như yêu cầu nhanh chóng, tiện dụng đang được người dùng Internet đặt lên hàng đầu thì phương pháp ấy đã không còn hiệu quả. Từ đây, một bài toán được đặt ra nhằm truyền tải Video đến người dùng một cách nhanh chóng, thuận tiện mà vẫn đảm bảo được chất lượng cần thiết. Ta có khái niệm truyền dòng dữ liệu video thời gian thực (Video Streaming) là “truyền Video một cách liên tục từ một nguồn đến một hay nhiều đích nào thông 5 qua Internet mà vẫn đảm bảo thời gian tương ứng với thời gian thật một cách tương đối”.
Video Streaming cho phép việc giải nén kết hợp với hiển thị dữ liệu trong khi vẫn tiếp tục tải phần còn lại của Video về. Đây gọi là kĩ thuật Buffering: Video sẽ được chia ra thành từng gói nhỏ, sau đó liên tục truyền những gói ấy tới người dùng. Người dùng khi nhận được một phần nhỏ của dữ liệu Video sẽ bắt đầu giải nén và hiển thị phần dữ liệu ấy trong khi vẫn tiếp tục tải về các gói dữ liệu tiếp theo để tiếp tục giải nén và hiển thị. Vậy, có thể dễ dàng thấy rằng Video Streaming mang lại sự tiện dụng và nhanh chóng như thế nào.
Ứng dụng của Video Streaming rất rộng lớn, trong đó, dễ thấy nhất là trong lĩnh vực truyền thông báo chí trên mạng Internet, nơi các kênh báo hình đang ngày càng được chú trọng phát triển. Một số vị dụ điển hình của như : IPTV, Ipcamera, youtube.2 Quá trình truyền dòng Truyền dòng đối với video hay audio phải trải qua nhiều công đoạn với từng nhiệm vụ riêng để đi đến kết quả cuối cùng là đạt được khả năng thể hiện ngay ở bên nhận.1 Kiến trúc hệ thống Hình 1. Quá trình truyền đòng video 6 Trong đó: - Streaming Server: Là bộ phận đóng vai trò quan trọng trong việc cung cấp các dịch vụ trực tuyến mà cụ thể là Streaming Video. Để cung cấp dịch vụ Streaming Video một cách chất lượng, Streaming Server được yêu cầu phải xử lý dữ liệu Video với sự ràng buộc về thời gian thực, hạn chế độ trễ và hỗ trợ cho người dùng các tương tác trên Video như tạm dừng hay truy xuất đến bất kì thời điểm nào của Video.
- Video/Audio Compression: Là bộ phận thực hiện công đoạn nén các dữ liệu Video/Audio trước khi truyền nhằm giúp quá trình truyền đạt hiệu quả tốt nhất về tiết kiệm băng thông. - Application Layer QoS Control: Trong quá trình truyền, sự biến thiên về tài nguyên mạng là không thể tránh khỏi. Cùng với đó, yêu cầu chất lượng Video của mỗi đối tượng người dùng là khác nhau, vì thế nhiều kĩ thuật điều khiển chất lượng tầng ứng dụng đã được đưa ra. Kỹ thuạt này bao gồm điều khiển tắc nghẽn và kiểm soát lỗi nhằm ngăn ngừa việc làm mất gói dữ liệu và giảm độ trễ, mặt khác còn có thể cải thiện chất lượng Video được trình chiếu ở máy người dùng trong điều kiện đường truyền tốt.
- Media Synchronization: Là cơ chế đồng bộ cho phép Video và Audio được phát bên phía người nhận có được sự đồng bộ giống như Video và Audio gốc. - Transfer Protocols: Là giao thức được thiết kế và chuẩn hóa cho việc truyền dữ liệu giữa máy tính người dùng và Streaming Server bao gồm các giao thức tầng mạng (IP), giao thức tầng giao vận (UDP/TCP) và giao thức điều khiển phiên Real-time Streaming Protocol (RTSP). - Continous Media Distribution Service: Là dịch vụ được xây dựng trên nền mạng Internet, cho phép việc phân phối Video trên đường truyền đạt được Quality of Service (chất lượng dịch vụ) và hiệu quả cao.2 Cơ chế hoạt động Bước 1 – Nén dữ liệu: Quá trình truyền thông bắt đầu ở lớp mã hóa (video coding), các tín hiệu tương tự hoặc số được nén. Tín hiệu đầu ra của bộ nén là các dòng MPEG cơ bản.
Các dòng MPEG cơ bản được định nghĩa là các tín hiệu số liên tục thời gian thực. Có nhiều loại dòng cơ bản. Ví dụ âm thanh được mã hóa sử dụng MPEG được gọi là “dòng cơ bản âm thanh”. Một dòng cơ bản thực ra chỉ là tín hiệu ra thô từ bộ mã hóa.
Các dòng dữ liệu được tổ chức thành các khung tại lớp này. Các thông tin chứa trong một dòng cơ bản có thể bao gồm: Loại khung và tốc độ, vị trí của những block dữ liệu trên màn hình, tỉ số cạnh. Điều quan trọng phải chú ý là lớp này được chia thành 2 lớp phụ theo đặc tính của chuẩn H.264/AVC: lớp mã hóa video(VCL) và lớp trừu tượng(NAL). Lớp phụ VCL quan tâm tới việc nén các nội dung video.
Tín hiệu đầu ra của lớp này là chuỗi các slice ảnh. Dòng bit ở lớp NAL được tổ chức thành các gói rời rạc được gọi là các khối NAL. Định dạng của các khối NAL được mô tả trong Hình 1.2 Đơn vị header NAL Dữ liệu video payload NAL 1bit 2 bit cờ NAL kiểm 5 bit định nghĩa kiểu Chứa các section phân tán của đơn vị Nal hoặc slice video tra lỗi hay không Hình 1. Cấu trúc NAL Việc nén video là một công đoạn không bắt buộc nhưng rất cần thiết.
Với các loại dữ liệu video như dữ liệu thu từ camera, thì việc lưu trữ hay truyền video không nén sẽ phải trả giá cao, đôi khi là điều không thể. Ta lấy ví dụ với một định dạng 8 tiêu biểu thường được sử dụng trong các ứng dụng hội nghị từ xa bằng video là định dạng CIF (Common Intermediate Format). CIF sử dụng độ phân giải 352 pixel mỗi dòng và có 288 dòng tất cả. Một ảnh không nén cho một frame hình (chế độ 352x288x16bpp) chiếm 202752 byte.
Việc ghi video không nén với tốc độ 15 hình một giây sẽ cần xấp xỉ 3 MB và nếu truyền qua mạng thì băng thông cần thiết cho mét dòng video không nén là 24 Mbps. Từ ví dụ trên, ta thấy việc nén video gần như là không thể thiếu được nếu các dòng video được truyền trên môi trường mạng tốc độ thấp. Tuỳ theo yêu cầu chất lượng và băng thông, mà ta có thể lựa chọn được phương pháp nén thích hợp. Với việc áp dụng một chuẩn nén cho dữ liệu video, không gian lưu trữ cần thiết cùng băng thông mạng yêu cầu cho dòng video giảm đáng kể.
Hiện phổ biến hai họ chuẩn nén, là họ CCITT với các chuẩn dạng H. 36x và họ ISO MPEG với các chuẩn MPEG-1, MPEG-2, MPEG-4, MPEG-7. Bước 2 – Lấy mẫu: Việc lấy mẫu thực chất là việc chia nhỏ nội dung của video hay audio ra thành các khối nhỏ thích hợp để có thể truyền đi trong môi trường mạng. Đối với các dữ liệu audio, việc lấy mẫu được thực hiện theo thời gian.
Tương ứng sau một khoảng thời gian bằng chu kì lấy mẫu phần dữ liệu audio tương ứng trong khoảng thời gian đó sẽ được sử dụng để truyền đi. Với các dữ liệu video, ngoài việc lấy mẫu theo thời gian còn có việc lấy mẫu theo không gian. Việc lấy mẫu theo thời gian tương ứng với thời gian thể hiện của các khung hình và việc lấy mẫu theo không gian sẽ được thực hiện bằng cách chia nhỏ các khung hình thành các phần với kích thước thích hợp đối với việc truyền đi. Khi lấy mẫu, các mẫu phải chứa đựng đầy đủ các thông tin dùng cho việc khôi phục lại dữ liệu video hay audio về cả mặt không gian cũng như thời gian khi bên nhận nhận được các mẫu này.
Với việc sử dụng một giao thức truyền thông thời gian thực như RTP(Real-time Transport), quá trình lấy mẫu sẽ được tiến hành tự động. 9 Bước 3 - Truyền các mẫu qua mạng: Việc truyền các mẫu dữ liệu video có thể được thực hiện một cách trực tiếp thông qua các giao diện của môi trường mạng như Socket hay được thực hiện thông qua một giao thức cấp cao ở tầng ứng dụng như RTP. Thông thường người ta sẽ chọn giải pháp thứ hai, tức là sử dụng một giao thức truyền dòng thời gian thực cho việc truyền các mẫu nếu như giao thức đó được hỗ trợ trên nền phần cứng cũng như phần mềm. RTP sử dụng TCP và UDP là 2 giao thức để truyền tải gói tin qua mạng.
Trong đó TCP mang đến sự ổn định trong việc truyền dữ liệu, UDP có tốc độ truyền dự liệu tốn hơn nhưng độ ổn định thấp hơn TCP. Việc sử dụng một giao thức truyền dòng thời gian thực có nhiều ưu điểm. Ưu điểm thứ nhất là tính hiệu quả, bởi vì các giao thức truyền thông thời gian thực được thiết kế cho việc truyền các loại dữ liệu động, như dữ liệu video chẳng hạn, khi đó tính thời gian thực sẽ được chú trọng hơn là tính chính xác về mặt dữ liệu. Ưu điểm thứ hai là các giao thức thời gian thực hỗ trợ mạnh việc đồng bộ các dòng dữ liệu từ các nguồn khác nhau nhưng có quan hệ với nhau về mặt thời gian thực.