Khóa luận Nghiên cứu và xây dựng một hệ thống gán nhãn thời gian

Gán nhãn thời gian cho phép chúng ta chứng minh được sự tồn tại của một tài liệu tại một thời điểm cụ thể nào đó trong quá khứ. Dịch vụ này rất quan trọng trong nhiều ứng dụng: chứng minh tính không thể phủ nhận của chữ ký số, chứng minh sự tồn tại trước hay sau của các phát minh khoa học, xác nhận thời điểm của các giao dịch điện tử, . Một cách đơn giản cho phép ta xác địch thời điểm tồn tại của tài liệu là thêm 1 dòng ngày tháng vào trong tài liệu điện tử bằng 1 phần mềm xử lý văn bản. Tuy nhiên, phương pháp này không an toàn, chúng ta có thể dễ dàng xóa hay thay đổi ngày tháng này. Khóa luận khảo cứu một giao thức gán nhãn thời gian an toàn cho phép người dùng gán thời gian vào tài liệu đồng thời cho phép chứng minh tính đúng đắn của mốc thời gian đó mà không cần yêu cầu một bên ủy quyền thứ ba. Hệ thống gán nhãn thời gian dựa trên giao thức liên kết đáp ứng được đầy đủ các yêu cầu nêu trên. Giao thức hoạt động bằng việc liên kết các nhãn thời gian đã được cấp lại với nhau, mỗi nhãn thời gian đều chứa thông tin về các nhãn khác. Điều đó làm giảm việc phải tin tưởng hoàn toàn vào server cấp nhãn như trong các hệ thống đơn giản và như vậy hệ thống sẽ bảo mật hơn.

pdf48 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2004 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và xây dựng một hệ thống gán nhãn thời gian, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Sỹ Tuấn NGHIÊN CỨU VÀ XÂY DỰNG MỘT HỆ THỐNG GÁN NHÃN THỜI GIAN KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Sỹ Tuấn NGHIÊN CỨU VÀ XÂY DỰNG MỘT HỆ THỐNG GÁN NHÃN THỜI GIAN KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công nghệ thông tin Cán bộ hƣớng dẫn: PGS. TS Hồ Sĩ Đàm Cán bộ đồng hƣớng dẫn: TS Lê Đức Phong HÀ NỘI - 2010 LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn sâu sắc đến PGS. TS Hồ Sĩ Đàm và TS Lê Đức Phong, những người đã tận tình chỉ bảo, giúp đỡ em hoàn thành khóa luận này. Em xin chân thành cảm ơn các thầy cô trong bộ môn Mạng và truyền thông máy tính, trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo điều kiện cho em thực hiện đề tài. Cuối cùng, em xin cảm ơn những người thân trong gia đình và bạn bè đã giúp đỡ, động viên em hoàn thành khóa luận. Sinh viên Nguyễn Sỹ Tuấn TÓM TẮT KHÓA LUẬN Gán nhãn thời gian cho phép chúng ta chứng minh được sự tồn tại của một tài liệu tại một thời điểm cụ thể nào đó trong quá khứ. Dịch vụ này rất quan trọng trong nhiều ứng dụng: chứng minh tính không thể phủ nhận của chữ ký số, chứng minh sự tồn tại trước hay sau của các phát minh khoa học, xác nhận thời điểm của các giao dịch điện tử, …. Một cách đơn giản cho phép ta xác địch thời điểm tồn tại của tài liệu là thêm 1 dòng ngày tháng vào trong tài liệu điện tử bằng 1 phần mềm xử lý văn bản. Tuy nhiên, phương pháp này không an toàn, chúng ta có thể dễ dàng xóa hay thay đổi ngày tháng này. Khóa luận khảo cứu một giao thức gán nhãn thời gian an toàn cho phép người dùng gán thời gian vào tài liệu đồng thời cho phép chứng minh tính đúng đắn của mốc thời gian đó mà không cần yêu cầu một bên ủy quyền thứ ba. Hệ thống gán nhãn thời gian dựa trên giao thức liên kết đáp ứng được đầy đủ các yêu cầu nêu trên. Giao thức hoạt động bằng việc liên kết các nhãn thời gian đã được cấp lại với nhau, mỗi nhãn thời gian đều chứa thông tin về các nhãn khác. Điều đó làm giảm việc phải tin tưởng hoàn toàn vào server cấp nhãn như trong các hệ thống đơn giản và như vậy hệ thống sẽ bảo mật hơn. MỤC LỤC MỜ ĐẦU .................................................................................................................... 1 Chƣơng 1. HỆ THỐNG GÁN NHÃN THỜI GIAN ................................................. 2 1.1 Giới thiệu hệ thống gán nhãn thời gian ................................................................... 2 1.1.1 Gán nhãn thời gian là gì? ................................................................................. 2 1.1.2 Nguyên tắc hoạt động của hệ thống gán nhãn thời gian .................................... 2 1.1.3 Phân loại .......................................................................................................... 2 1.1.4 Các công nghệ dùng trong hệ thống ................................................................. 3 1.2 Các công nghệ sử dụng trong hệ thống gán nhãn thời gian ..................................... 4 1.2.1 Hàm băm mật mã học – cryptographic hash function ....................................... 4 1.2.1.1 Định nghĩa hàm băm.................................................................................. 4 1.2.1.2 Định nghĩa hàm băm mật mã học – cryptographic hash function ............... 4 1.2.1.3 Tính chất hay yêu cầu đối với hàm băm mật mã ........................................ 4 1.2.1.4 Giới thiệu về các hàm băm chuyên dụng trong lớp MDx ........................... 4 1.2.1.5 Giải thuật MD5 .......................................................................................... 5 1.2.1.6 Mô tả giải thuật SHA-1.............................................................................. 7 1.2.1.7 So sánh các hàm băm MD5 và SHA-1 trong lớp MDx ............................... 9 1.2.2 Từ điển xác thực - Authenticated Dictionary .................................................... 9 1.2.2.1 Giới thiệu .................................................................................................. 9 1.2.2.2 Mục tiêu của thiết kế ............................................................................... 10 1.2.2.3 Từ điển xác thực sử dụng Merkle tree ...................................................... 10 1.2.2.3.1 Định nghĩa Merkle tree ......................................................................... 10 1.2.2.3.2 Đường dẫn xác thực .............................................................................. 11 1.2.2.3.3 Giải thuật tạo cây .................................................................................. 11 1.2.2.3.4 Sử dụng Merkle tree trong hệ thống gán nhãn ....................................... 12 1.2.2.4 Từ điển xác thực sử dụng SkipList........................................................... 14 1.2.2.4.1 SkipList ................................................................................................ 14 1.2.2.4.2 Sử dụng skiplist trong hệ thống gán nhãn.............................................. 17 1.2.3 Chữ ký số - Digital signature ......................................................................... 17 1.2.3.1 Định nghĩa ............................................................................................... 17 1.2.3.2 Giải thuật chữ ký số ................................................................................. 18 1.2.4 Nguồn thời gian – Time Source ..................................................................... 20 Chƣơng 2. MỘT VÀI HỆ THỐNG GÁN NHÃN THỜI GIAN ............................. 21 2.1 Hệ thống trên lý thuyết......................................................................................... 21 2.1.1 Hệ thống đơn giản ......................................................................................... 21 2.1.2 Hệ thống dựa trên giao thức liên kết .............................................................. 22 2.1.3 Bảo mật của hệ thống liên kết ........................................................................ 26 2.2 Hệ thống trên thực tế ............................................................................................ 27 2.2.1 Hệ thống Electronic TimeStamping (e-TS) .................................................... 27 2.2.2 Hệ thống Surety ............................................................................................. 28 Chƣơng 3. HỆ THỐNG GÁN NHÃN DỰA TRÊN GIAO THỨC LIÊN KẾT .... 30 3.1 Mô tả hệ thống cài đặt .......................................................................................... 30 3.1.1 Quá trình gán nhãn......................................................................................... 30 3.1.2 Quá trình xác thực ......................................................................................... 31 3.1.2.1 Khi chưa kết thúc vòng ............................................................................... 31 3.1.2.2 Sau khi kết thúc vòng .................................................................................. 32 3.1.3 Server thực thi theo vòng ............................................................................... 32 3.1.4 Định dạng XML sử dụng trong hệ thống cài đặt ............................................ 34 3.2. Kết quả đạt được và đánh giá .............................................................................. 35 3.2.1 Kết quả đạt được ............................................................................................ 35 3.2.2 Đánh giá ........................................................................................................ 36 3.2.3 Hướng nghiên cứu ......................................................................................... 36 KẾT LUẬN .............................................................................................................. 37 CÁC TÀI LIỆU THAM KHẢO .............................................................................. 38 DANH SÁCH CÁC HÌNH Hình 1 Lịch sử của MDx-class .......................................................................... 5 Hình 2 Thực thi bước của MD5......................................................................... 6 Hình 3 Thực thi bước của SHA-1 ...................................................................... 8 Hình 4 Từ điển xác thực .................................................................................. 10 Hình 5 Cây merkle với 8 node lá ..................................................................... 11 Hình 6 Merkle tree của các tài liệu cùng nhãn thời gian .................................. 13 Hình 7 Chuỗi các giá trị băm được kết nối với nhau ........................................ 13 Hình 8 Cây Merkle tổng hợp giá trị AHV ....................................................... 14 Hình 9 Ví dụ Skiplist ...................................................................................... 15 Hình 10 Tìm kiếm giá trị 39 trong skiplist ....................................................... 16 Hình 11 Quá trình ký và xác thực chữ ký số .................................................... 19 Hình 12 Sử dụng chữ ký số trong hệ thống e-timestamp ................................. 20 Hình 13 Hoạt động của hệ thống gán nhãn đơn giản ....................................... 21 Hình 14 Cây Merkle với 7 yêu cầu được gửi ................................................... 23 Hình 15 Giá trị các vòng được liên kết với nhau ............................................. 23 Hình 16 Thực thi hệ thống dựa trên giao thức liên kết ..................................... 24 Hình 17 Hệ thống e-TS ................................................................................... 27 Hình 18 Giao diện của client khi gán nhãn ...................................................... 30 Hình 19 Giao diện của client khi xác thực ....................................................... 31 Hình 20 Proof record....................................................................................... 32 Hình 21 Cây Merkle và đường dẫn xác thực ................................................... 33 Hình 22 Witness Record ................................................................................. 34 Hình 23 Các giá trị của vòng được công bố ..................................................... 36 DANH MỤC TỪ VIẾT TẮT TSA TimeStamping Authority MD5 Message Digest 5 SHA Secure Hash Algorithm 1 MỜ ĐẦU Ngày nay trong thế giới của truyền thông kỹ thuật số, các dạng văn bản, âm thanh, tranh ảnh và tài liệu hình trở nên hết sức phổ biến. Vấn đề nảy sinh là làm thế nào để chứng thực một văn bản được tạo ra hoặc được sửa đổi gần nhất khi nào. Ví dụ như trong vấn đề sở hữu trí tuệ, việc xác thực thời gian của một phát minh lần đầu tiên được công nhận là rất quan trọng, mục đích là để được ưu tiên hơn trong việc cấp bằng sở hữu khi có tranh chấp xảy ra. Thêm một ví dụ nữa về sự cần thiết của việc chứng thực ngày tạo văn bản, đó là việc tạo di chúc, việc lưu di chúc bằng văn bản kỹ thuật số được thực hiện hết sức dễ dàng nhưng để chứng minh thời gian nó được tạo ra lại hết sức khó khăn. Khi có tranh chấp xảy ra, có thể có nhiều bản di chúc khác nhau nhưng việc chứng minh được bản di chúc được tạo ra cuối cùng rất khó khăn. Có khá nhiều vấn đề liên quan đến thời gian tạo tài liệu kỹ thuật số vì các tài liệu này không dễ để gán nhãn, và sự thay đổi của nó không có tín hiệu vật lý nào báo hiệu. Chính vì vậy việc xây dựng một hệ thống gán nhãn thời gian là rất cần thiết, nó giúp cho ta chứng minh được một văn bản tồn tại ở một thời điểm. Có ba thiết kế của các hệ thống gán nhãn được sử dụng phổ biến trên thế giới; đó là hệ thống đơn giản, hệ thống dựa trên giao thức liên kết và hệ thống phân tán. Khóa luận lựa chọn thiết kế hệ thống dựa trên giao thức liên kết do những ưu điểm của nó. Khóa luận này trình bày về hệ thống gán nhãn thời gian một cách chính xác, cụ thể, tổng quan nhất. Dựa trên cơ sở lý thuyết đã tìm hiểu được, tác giả đã đưa ra thiết kế và xây dựng một hệ thống gán nhãn thời gian dựa trên giao thức liên kết. Khóa luận được chia làm ba phần chính. Phần đầu gồm chương 1, 2 giới thiệu về gán nhãn thời gian. Chương 1 giới thiệu tổng quan về gán nhãn thời gian, về các công nghệ sử dụng trong hệ thống gán nhãn, cách thức chúng được sử dụng như thế nào trong các hệ thống. Chương 2 nói về các hệ thống gán nhãn trên lý thuyết và trong thực tế. Phần thứ hai giới thiệu về thiết kế của hệ thống gán nhãn thời gian được xây dựng dựa trên giao thức liên kết. Phần này gồm chương 3, trình bày về việc triển khai hệ thống gán nhãn sử dụng các kỹ thuật được đề cập ở phần đầu, kết quả đạt được, đánh giá cũng như hướng nghiên cứu trong tương lại. Phần thứ ba là kết luận. Cuối cùng là các tài liệu tham khảo. 2 Chƣơng 1. HỆ THỐNG GÁN NHÃN THỜI GIAN 1.1 Giới thiệu hệ thống gán nhãn thời gian 1.1.1 Gán nhãn thời gian là gì? Là một kỹ thuật mật mã cung cấp bằng chứng chứng minh sự tồn tại của một tài liệu kỹ thuật số tại một thời gian nhất định.[1] 1.1.2 Nguyên tắc hoạt động của hệ thống gán nhãn thời gian Thông thường nguyên tắc hoạt động của hệ thống gán nhãn chỉ gồm hai phần: - Gán nhãn: người dùng gửi giá trị băm của tài liệu cần gán nhãn cho TSA. TSA thực thi và trả lại cho người dùng nhãn thời gian của tài liệu. Người dùng lưu nhãn này cho quá trình xác thực. - Xác thực nhãn: người dùng gửi giá trị băm của tài liệu cần xác thực và nhãn thời gian của tài liệu đó cho TSA. TSA thực thi và trả về kết quả nhãn thời gian hợp lệ hoặc không. 1.1.3 Phân loại Các hệ thống gán nhãn thường được chia ra làm ba loại [6]: - Hệ thống đơn giản: là giao thức từng bước, thường được chia thành hai phần ( client và TSA) tương tác và đồng bộ với nhau. Kết quả của hệ thống này là các nhãn thời gian độc lập. Thiết kế này khá đơn giản và dễ thực hiện. Nhãn thời gian được tạo ra bởi nhiều TSA khác nhau có thể so sánh được sử dụng thời gian và các thông số về độ chính xác. Điểm yếu lớn nhất của hệ thống này là việc phải tin tưởng vô điều kiện vào TSA. Khi mà TSA đảm bảo tính đúng đắn của thông số thời gian, nó có đủ khả năng thay đổi nhãn thời gian bằng tấn công back-date. - Hệ thống liên kết: khó thực hiện hơn so với hệ thống đơn giản, nhưng việc tấn công back-date khó thực hiện hơn. Trong trường hợp này, TSA tạo ra các nhãn thời gian mà trong nó chứa các thông tin về các nhãn đã được cấp phát. Kết quả là một chuỗi các nhãn thời gian được xây dựng, kết nối tất cả các nhãn thời gian được tạo ra bởi TSA. Khi mà kẻ xấu cố gắng thay đổi một nhãn thời gian thì toàn bộ chuỗi kết nối của các nhãn thời gian cũng bị thay đổi theo. Đây chính là ưu điểm so với hệ thống đơn giản, nhưng điều đó cũng 3 dẫn đến việc phức tạp trong thủ tục xác minh, khi đó người dùng không thể xác thực được nhãn thời gian mà không có sự giúp đỡ từ TSA. - Hệ thống phân tán: hệ thống này bao gồm nhiều TSA thuộc một trong hai hệ thống đã trình bày ở trên, cùng chịu trách nhiệm tạo ra nhãn thời gian. Trọng tâm là thiết lập việc tăng cường bảo mật chống lại việc thao túng nhãn thời gian bằng cách chia sẻ các giá trị bí mật (trong hầu hết trường hợp, khóa được sử dụng để ký dữ liệu). Hệ thống này bảo mật hơn hệ thống đơn giản. Để việc tấn công back-date có thể diễn ra, tất cả các TSA tham gia tạo nhãn thời gian phải trở thành một phần của cuộc tấn công. Điều quan trọng là nhận ra rằng, trong khi tất cả các hệ thống đơn giản giả định TSA là bên thứ ba đáng tin thì hệ thống liên kết và hệ thống phân tán làm cho giả định này là không cần thiết. 1.1.4 Các công nghệ dùng trong hệ thống Có bốn kỹ thuật được dùng phổ biến trong các hệ thống gán nhãn là: - Hàm băm mật mã học - Từ điển xác thực - Chữ ký số - Nguồn thời gian Hàm băm mật mã học dùng để băm các tài liệu cần gán nhãn, giá trị băm nhận được được dùng trong quá trình gán nhãn cũng như xác thực vì khi tài liệu bị thay đổi dẫn tới giá trị băm cũng thay đổi theo. Mặt khác việc gửi tài liệu qua mạng sẽ tốn băng thông và không an toàn, việc băm tài liệu ra và gửi giá trị băm sẽ tiết kiệm được băng thông và mức độ bảo vệ quyền riêng tư cũng cao hơn. Từ điển xác thực thường được sử dụng trong hệ thống gán nhãn dựa trên giao thức liên kết. Nó được sử dụng để liên kết thông tin của các nhãn thời gian đã được cấp lại với nhau, tạo ra nhãn thời gian chứa các thông tin của các nhãn thời gian khác. Việc này làm tăng tính bảo mật của hệ thống chống lại các hình thức tấn công. Chữ ký số được sử dụng trong hệ thống để ký vào nhãn thời gian cấp phát cho người dùng. Việc sử dụng chữ ký số làm tăng tính an toàn, tránh việc làm giả nhãn thời gian. 4 Nguồn thời gian dùng để đồng bộ hóa thời gian của các yêu cầu gán nhãn được gửi đến TSA, dùng trong việc liên kết các nhãn thời gian đã được cấp phát theo thứ tự thời gian. 1.2 Các công nghệ sử dụng trong hệ thống gán nhãn thời gian 1.2.1 Hàm băm mật mã học – cryptographic hash function 1.2.1.1 Định nghĩa hàm băm Là hàm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối tượng, v.v...). Giá trị băm đóng vai gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng tìm cách giảm thiểu sự đụng độ đó. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn) [14]. 1.2.1.2 Định nghĩa hàm băm mật mã học – cryptographic hash function Là một hàm băm với yêu cầu là giá trị băm nhận được là duy nhất với mỗi thông điệp đầu vào. Điều đó có nghĩa là không khả thi khi tìm những thông điệp mà khi băm chúng, ta nhận được cùng kết quả [5]. 1.2.1.3 Tính chất hay yêu cầu đối với hàm băm mật mã - Có thể áp dụng đối với thông báo M có độ dài bất kỳ, kết quả H(M) có độ dài cố định. - H(M) tính được dễ dàng với bất kỳ M nào. - Tính một chiều : từ h rất khó để tính được M sao cho H(M) = h. 1.2.1.4 Giới thiệu về các hàm băm chuyên dụng trong lớp MDx Các hàm băm trong nhóm này đều có ý tưởng thiết kế tương tự nhau [5]. Hàm băm đầu tiên trong nhóm là giải thuật MD4, được đề xuất bởi R.Rivest vào năm 1990. Mặc dù MD4 không phải là một hàm băm an ninh nhưng có một số giải thuật khác có nguồn gốc từ MD4 với sự cải thiện về sức mạnh, người ta gọi đó là MDx-class. Trong MDx-class bao gồm giải thuật MD5 ( một thiết kế khác của Rivest), giải thuật HAVAL ( được đề xuất bởi một nhóm các nhà nghiên cứu ở Australia), giải thuật SHA ( hàm băm chuẩn U.S của NIST ), và giải thuật RIPEMD ( ban đầu được phát 5 triển trong framework của dự án European RIPE ). Các hàm băm này được sử dụng rỗng rãi nhất hiện nay. Hình 1 Lịch sử của MDx-class 1.2.1.5 Giải thuật MD5 Giải thuật MD4 và MD5 [5] đều được thiết kế bởi Rivest. Giải thuật MD5 được thiết kế như là một biến thể tăng cường của MD4. Giải thuật này tính ra giá trị băm dài 128 bit , vì vậy loạt các biến được chia thành 4 thanh ghi (A, B, C, D) 32 bit mỗi thanh. Thiết kế của MD5 tương tự như MD4 nhưng có một số thay đổi: - Hàm nén bao gồm 64 bước liên tiếp, chia ra thành 4 vòng ( MD4 chỉ có 48 bước và 3 vòng). - Việc thực hiện bước chỉ khác nhau nhỏ : mỗi bước bây giờ được thêm vào kết quả của bước trước. - Sự sắp xếp được áp dụng tại vòng 2 và vòng 3 khác với MD4. - Hàm Boolean ở vòng 2 được chuyển từ hàm đa số sang hàm lựa chọn ( khác với hàm lựa chọn dùng ở vòng 1). Một hàm Boolean mới được giới thiệu cho vòng 4. 6 - Mỗi bước bây giờ sử dụng hằng số thêm vào duy nhất (như vậy là có 64 hằng số). - Hắng số quay được thay đổi, các