CHƯƠNG 1 GIỚI THIỆU 1. Giới thiệu đề tài Những năm gần đây, một lớp ứng dụng mới đã xuất hiện với nhiều thách thức về chức năng quản lý dữ liệu được đặt ra. Đó là các ứng dụng của Dòng dữ liệu. Một vài ví dụ điển hình như hệ thống Tradebot dùng trong lĩnh vực tài chính, hệ thống Hancock của AT&T theo dõi các mẫu cuộc gọi (calling patterns) của khoảng 100 triệu người gọi và đưa ra những cảnh báo gian lận theo thời gian thực.
Dòng dữ liệu là một chuỗi các đối tượng dữ liệu tuần tự, liên tục, không có giới hạn và có tính chất thời gian thực. Những ứng dụng dữ liệu dạng chuỗi này ngày càng phổ biến vì nhiều lý do khác nhau, cả về mặt kỹ thuật và thương mại. Sự phát triển như vũ bão của khoa học công nghệ đã dẫn đến việc những thiết bị cảm ứng tinh vi được sản xuất với chất lượng cao và giá thành thấp, kéo theo sự phát triển của những hệ thống sử dụng thiết bị cảm ứng nói riêng và các hệ thống quản lý nói chung. Dữ liệu trong những hệ thống này được thu thập một cách tự động, thành dòng liên tục, vô hạn và cần được xử lý trong thời gian thực để cung cấp thông tin cho hệ thống đưa ra quyết định phản ứng kịp thời với các tình huống thực tế.
Ví dụ như hệ thống phát hiện gian lận trong giao dịch của các thẻ tín dụng giúp ngân hàng ngăn chặn các cuộc tấn công ngay thời điểm mà những giao dịch bất thường đó xảy ra. Hoặc mạng các thiết bị cảm ứng thu nhận các tín hiệu thời tiết, môi trường và xử lý tự động các thông số thu được để đưa ra những dự báo thời tiết và thiên tai một cách kịp thời. Nói chung, các hệ thống Dòng dữ liệu được ứng dụng 1 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu đa dạng trong rất nhiều lĩnh vực quan trọng: quân sự, tài chính, quản lý bảo mật, mạng cảm ứng, hệ thống mạng, thương mại điện tử, v. Tuy nhiên, những hệ thống quản trị cơ sở dữ liệu hiện tại được xây dựng với mục đích ban đầu là hỗ trợ cho các ứng dụng dữ liệu tĩnh.
Dữ liệu trong những ứng dụng loại này được thay đổi hoặc truy vấn bởi các thao tác do người dùng kích hoạt. Nói cách khác, các hệ thống quản trị cơ sở dữ liệu hiện tại chỉ làm nhiệm vụ của một nơi lưu trữ dữ liệu tĩnh một cách thụ động nên không thể đáp ứng được các yêu cầu đặc biệt của ứng dụng dòng dữ liệu, đó là: phản ứng chủ động trong thời gian thực dựa trên thông tin được thu thập và phân tích từ các dòng dữ liệu khổng lồ, tốc độ cao. Để đáp ứng được các thách thức của lớp ứng dụng mới, nhiều công trình nghiên cứu đã và đang được thực hiện ngày càng nhiều trên thế giới. Đây là một hướng nghiên cứu trọng tâm ngày càng được quan tâm nhiều hơn trong lĩnh vực khoa học máy tính.
Cũng như bao vấn đề khác, các ứng dụng bao giờ cũng phải đi kèm những yêu cầu bảo mật mà bảo vệ tính riêng tư là một phần quan trọng không thể thiếu. Những thông tin cá nhân nhạy cảm của khách hàng hoặc của các đối tượng bị theo dõi bởi hệ thống thu thập thông tin trong các ứng dụng dòng dữ liệu cần phải được bảo vệ để tránh bị rò rỉ và bị sử dụng cho các mục đích xấu ảnh hưởng đến đời sống riêng tư và sự an toàn của họ. Trong số các bài toán cần được nghiên cứu của ứng dụng dòng dữ liệu, đề tài của chúng tôi đi vào hướng nghiên cứu một giải pháp cho việc xử lý câu truy vấn trên dòng dữ liệu nhưng vẫn bảo vệ được tính riêng tư cho dữ liệu cá nhân xuất hiện trong dòng dữ liệu. 2 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu 1.
Mục đích nghiên cứu Hiện nay đã có một số bài báo, bài nghiên cứu xây dựng các giải thuật để bảo vệ danh tính của khách hàng-người chủ sở hữu của thông tin chứa bên trong dữ liệu. Tuy nhiên, những giải thuật này vẫn chưa hiệu quả lắm và chưa chú trọng vào vấn đề xử lý câu truy vấn cũng như những đặc trưng của loại dòng dữ liệu mà trên đó câu truy vấn sẽ được thực hiện, mà chỉ tập trung vào việc che giấu thông tin trước khi dữ liệu được đưa đi xử lý. Vấn đề nghiên cứu này ở Việt Nam cũng còn rất mới mẻ, hầu như chưa được quan tâm. Luận văn này hướng tới việc nghiên cứu kết hợp kỹ thuật xử lý truy vấn trên loại dòng dữ liệu với kỹ thuật che giấu, làm mờ dữ liệu, nhờ đó bảo vệ được tính riêng tư cho khách hàng trong xử lý câu truy vấn trên dòng dữ liệu.
Trong bối cảnh các ứng dụng dòng dữ liệu ngày càng được áp dụng rộng rãi, ngay cả ở Việt Nam, đề tài nghiên cứu này giúp đưa ra một phương pháp bảo vệ tính riêng tư cho người dùng hệ thống, tạo niềm tin và thu hút người dân sử dụng các hệ thống này. Ý nghĩa khoa học và thực tiễn của đề tài Khoa học kỹ thuật ngày càng phát triển và chi phối hầu như tất cả các mặt của xã hội hiện đại. Các hệ thống dòng dữ liệu là một phần không thể thiếu trong sự bùng nổ đó. Đã có rất nhiều nghiên cứu về việc xử lý và sử dụng các dòng dữ liệu sao cho hiệu quả cả về mặt nội dung thông tin cũng như tài nguyên của hệ thống.
Rất nhiều nghiên cứu khai thác các khía cạnh tính năng của lớp ứng dụng mới mẻ này. Tuy nhiên, vấn đề bảo vệ thông tin riêng tư của các đối tượng trong hệ thống vẫn còn là một hướng nghiên cứu mở, tương đối mới và chưa được quan tâm đúng mức. Thiết nghĩ đây cũng là một vấn đề cấp thiết cần được đầu tư nghiên cứu nhiều hơn để có thể phát triển song hành cùng chất lượng các dịch vụ trên dòng 3 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu dữ liệu. Có như vậy mới bảo đảm được tính đúng đắn về mặt pháp lý trong việc sử dụng thông tin cá nhân của các đối tượng hệ thống và đảm bảo được sự an toàn, tạo tâm trạng yên tâm, tin tưởng cho khách hàng khi sử dụng các hệ thống này.
Kết quả nghiên cứu của đề tài có thể được áp dụng cho các hệ thống có sử dụng dòng dữ liệu như: hệ thống phát hiện giao dịch bất thường cho các thẻ tín dụng, hệ thống điều phối mạng điện thoại di động, các hệ thống mua bán/giao dịch trên mạng,. Đồng thời đây cũng sẽ là một đóng góp cho sự phát triển của lĩnh vực bảo vệ thông tin cá nhân (user privacy preserving). 4 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu CHƯƠNG 2 TỔNG QUAN VỀ DÒNG DỮ LIỆU 2. Định nghĩa Theo định nghĩa của Golab & Oszu (2003) [1]: Dòng dữ liệu (Data Stream) là một chuỗi các phần tử dữ liệu có thứ tự (một cách ngầm định bằng thời gian đến hoặc một cách tường minh theo nhãn thời gian), liên tục và theo thời gian thực.
Không thể điều khiển thứ tự đến của các phần tử, cũng như không thể lưu trữ một cách cục bộ toàn bộ chuỗi phần tử đó. Cấu trúc Một dòng dữ liệu là một chuỗi bất định (tức là không thể biết trước được khi nào dòng dữ liệu sẽ kết thúc) bao gồm nhiều phần tử. Tất cả các phần tử trong chuỗi đều có cùng một cấu trúc. Mỗi phần tử sẽ ở dạng thông tin có cấu trúc, ví dụ một hàng dữ liệu bảng hoặc một đối tượng.
Bên cạnh đó, mỗi phần tử cũng chứa một nhãn định thời (timestamp) để xác định thứ tự của chúng. Chúng ta có thể xác định thứ tự các phần tử một cách tường minh hoặc ngầm định. Theo cách tường minh, bản thân mỗi phần tử sẽ có thuộc tính chứa thông tin thời gian được sử dụng làm nhãn định thời. Ngược lại, thời điểm đến của các phần tử sẽ được sử dụng làm nhãn định thời.
Việc biểu diễn các nhãn định thời có thể theo hình thức biểu diễn thời gian cụ thể hoặc được đại diện bởi một số nguyên tương ứng. 5 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu Bảng 2.1 là một ví dụ minh họa cho dòng dữ liệu. Dòng dữ liệu trong bảng này ghi nhận các thông số của một hệ thống điện theo từng phút. Nhãn định thời của các phần tử trong ví dụ này được biểu diễn bởi các mốc thời gian cụ thể.1 – Dòng dữ liệu ghi nhận thông số của một hệ thống điện Nhãn định thời Puis.2 là một ví dụ khác của dòng dữ liệu.
Dòng dữ liệu trong bảng này là thông tin được ghi nhận tại một router trong một hệ thống mạng. Nhãn định thời của dòng được biểu diễn bởi các số nguyên dương.2 – Dòng dữ liệu ghi nhận thông tin của một router Nhãn định thời IP Nguồn IP Đích Thời lượng Bytes Giao thức … … … … … … 12342 10.8 18 80K ftp … … … … … … 6 Bảo vệ tính riêng tư trong xử lý câu truy vấn trên dòng dữ liệu 2. Đặc tính Một dòng dữ liệu có các đặc tính cơ bản sau: Liên tục (Continuous): Các phần tử dữ liệu xuất phát từ các hệ thống thu thập thông tin, ghi nhận sự kiện, mạng cảm biến,… và được chuyển đến hệ thống xử lý một cách liên tục với tốc độ cao, có thể lên đến vài triệu phần tử mỗi giây. Không có giới hạn (Unbounded): Dòng dữ liệu được gửi tới bộ phận xử lý liên tục không ngừng, không có giới hạn về thời gian, không biết trước khi nào việc gửi dữ liệu hoàn tất.
Thay đổi theo thời gian (Time-varying): Bởi vì dòng dữ liệu đến liên tục, không có giới hạn nên dữ liệu dùng để trả lời câu truy vấn thay đổi liên tục theo thời gian, dẫn đến kết quả cho các câu truy vấn cũng thay đổi liên tục theo thời gian. Đặc biệt, bản chất thống kê của dòng dữ liệu cũng có thể thay đổi theo thời gian để thể hiện xu hướng thay đổi của dòng thông tin. Thời gian thực (Real-time): Đa phần các hệ thống dòng dữ liệu được dùng cho các ứng dụng thu thập thông tin xảy ra thực tế, ghi nhận và đánh giá thông tin đó theo một số tiêu chí định sẵn và có những phản ứng thích hợp cho từng sự kiện xảy ra.