0
Tải bản đầy đủ (.pdf) (48 trang)

Hệ thống trên lý thuyết

Một phần của tài liệu NGHIÊN CỨU VÀ XÂY DỰNG MỘT HỆ THỐNG GÁNNHÃN THỜI GIAN (Trang 30 -48 )

2.1.1 Hệ thống đơn giản

Thiết kế này được trình bày trong [4]. Giải pháp đơn giản nhất cho hệ thống timestamp là sử dụng bên tin cậy thứ ba, đó là Time Stamp Authority (TSA) . TSA mở rộng mỗi yêu cầu với ngày và thời gian hiện tại và ký vào kết quả để tạo ra timestamp.Thiết kế này sử dụng hàm băm để nén văn bản gửi tới TSA. Việc này cho phép lưu trữ bản gốc dữ liệu một cách bảo mật, làm giảm băng thông và nơi lưu giữ cần thiết, làm tăng hiệu quả. Hệ thống này được xây dựng sử dụng hàm băm mật mã và nguồn thời gian đã được giới thiệu ở các chương trước .

Quá trình gán nhãn hoạt động như sau:

- Client C gửi định danh và giá trị băm của văn bản (X) cần gán nhãn lên

Server TSA ( Time-Stamping Authority) : client gửi IDc , h(X).

- TSA gửi lại chứng nhận timestamp T=SK(IDC, h(X) , n , t), trong đó n là số

thứ tự của chứng nhận, t là ngày và thời gian hiện tại, SK là chữ ký điện tử

của TSA.

- Client nhận được chứng nhận và kiểm tra xem nó có phải được ký bởi TSA

hay không, chứng nhận đó bao gồm giá trị băm của văn bản client muốn gán nhãn và thời gian chính xác.

Quá trình xác thực tương tự như quá trình gán nhãn, văn bản cũng được băm ra và kết hợp với time stamp có được từ quá trình gán nhãn để xác thực xem văn bản hợp lệ hay không theo các bước sau:

22

- Kiểm tra chữ ký điện tử của chứng nhận có đúng là của TSA tương ứng hay

không.

- Kiểm tra giá trị băm h(X) có tương ứng với văn bản X hay không.

Ưu điểm:

- Thiết kế đơn giản.

- TSA không phải lưu trữ bản ghi nào về các tài liệu đã được gán nhãn

Nhược điểm:

- Người dùng phải tin tưởng TSA tuyệt đối và không có gì đảm bảo là TSA sẽ

không sản xuất nhãn thời gian giả.

Chính vì vậy tôi tập trung vào nghiên cứu hệ thống gán nhãn dựa trên việc kết nối các nhãn thời gian được cấp bởi TSA lại với nhau. Đó là hệ thống dựa trên gia thức liên kết.

2.1.2 Hệ thống dựa trên giao thức liên kết

Thiết kế này được trình bày trong [3], hệ thống được chia ra làm ba phần: bên client, bên server và bên xác thực.

Bên Client: Người dùng có 1 phần mềm để giúp họ thực hiện nhiệm vụ. Client chọn văn bản mà nó muốn gán nhãn thời gian. Văn bản này bao gồm hầu hết mọi thứ : text file, sound file, image, video, … Phần mềm đó tạo ra 1 luồng dữ liệu tạm thời bao gồm giá trị băm của văn bản với hàm băm SHA-1 được theo sau bởi giá trị băm của các văn bản tương tự với hàm băm RIPEMD-160. Bằng cách tạo ra sự bắt buộc này, chúng ta chắc chắn rằng yêu cầu đủ ngắn và tránh các câu hỏi của việc kiểm tra nội dung chứa bên trong (về mặt riêng tư). Yêu cầu được gửi đến TSA, tại đây nó được thực thi và gửi lại chứng nhận thời gian (time certificate).

Bên server (TSA):

- Server thực thi theo vòng. Tất cả các vòng đều có khoảng thời gian giống

nhau ( bất kì slot time hợp lý nào cũng lên đến 1s) mà được cố định từ trước. Server sẽ bắt đầu thực thi các yêu cầu ngay khi nó nhận được chúng. Nó sẽ đưa ra giá trị cho mỗi vòng và cũng được kết nối với vòng trước. Với khái niệm này, cần thiết cho TSA đợi hết vòng để đưa ra nhãn thời gian cho các văn bản thuộc vòng này. Thời gian lớn nhất cho câu trả lời của TSA và giới hạn thời gian của vòng sẽ được định nghĩa lúc thực hiện. Cho phép TSA có

23

độ trễ trong việc đưa ra timestamp, nhưng nó nhất định phải gán nhãn thời gian cho văn bản ở vòng phù hợp với slot time bao gồm thời gian đến của yêu cầu từ client.

- Server lấy thời gian ở một nguồn đáng tin cậy ( trình bày ở chương 5).

- TSA xây dựng đồng thời hai cây nhị phân khi nó nhận được yêu cầu. Một

cây chứa giá trị băm của văn bản sử dụng hàm băm SHA-1 và cây còn lại chứa giá trị được tạo ra bởi hàm băm RIPEMD-160.

Hình 14 Cây Merkle với 7 yêu cầu đƣợc gửi

- Tiếp đó giá trị gốc (HVi) sẽ được nối với giá trị vòng trước đó (SHVi-1) để

lấy ra giá trị vòng hiện tại (SHVi).

24

- Giá trị SHVi được lưu bởi TSA. TSA sẽ đánh dấu vào chúng và đặt trên

online server. Phải chắc chắn rằng chỉ có TSA mới có thể viết hoặc sửa giá trị trên đó. Các giá trị đã được đánh dấu để ngăn chặn tấn công trong suốt quá trình truyền thông giữa client hoặc verifier với online server. Đối với việc chứng minh, các giá trị vòng sẽ được đánh dấu đơn giản và tồn tại trực tuyến. Nhưng đối với version thực tế tin cậy của dịch vụ timestamping, ít nhất một vòng giá trị phải được xuất bản rộng rãi như là đã được giải thích trước cho mỗi ngày. Mục đích của việc này là cho phép bên xác thực có được giá trị mà TSA không thể sửa đổi sau khi sinh ra. Giá trị này phải được công bố rộng rãi để làm cho nó không thể thay đổi được.

Bên xác thực: hệ thống này sử dụng bên thứ ba để xác thực nhãn thời gian có hợp lệ hay không. Giả sử bên xác minh có thể kiểm tra sự an toàn của chữ ký bên TSA. Khi bên xác minh kiểm tra tính hợp lệ của timestamp ban hành bởi TSA, nó sẽ kiểm tra chứng nhận. Nếu nó hợp lệ, bên xác thực sẽ tiếp xúc với dịch vụ trực tuyến để có được giá trị của vòng phù hợp với thời gian mà chứng nhận được đưa ra và so sánh nó với một trong những chứng nhận. Nếu bên xác thực tin rằng TSA thực sự trung thực , nó có thể kiểm tra giá trị cho vòng của bên thứ ba hoặc hỏi tất cả giá trị của vòng trong khoảng phù hợp giữa hai giá trị được xuất bản và kiểm tra rằng liên kết là hợp lệ.

Các bước thực thi của hệ thống:

25

1. h : SHA-1

h’ :RIPEMD-160

Client gửi yêu cầu (yij

h , yij h’ ) đến STA, với yij h = h(yij).

2. TSA tính cây và các giá trị cho vòng được giải thích trong phần trên.

3. TSA đánh dấu và lưu giá trị HVi, SHVi (phù hợp với h) và HVi’, SHVi’ (phù

hợp với h’) cho vòng ràng buộc bởi số i và thời gian ti của vòng.

4. TSA công bố các giá trị đã đánh dấu HVi, SHVi và HVi’, SHVi’ với nhau và

với các thông tin ràng buộc của chúng cho vòng trên site trực tuyến.

5. TSA gửi chứng nhận C cho client. Trong ví dụ, nếu yêu cầu của client là số

4 trong vòng , chứng nhận có dạng :

S là chữ ký cung cấp bởi TSA, ti là thời gian bắt đầu của vòng i. Có nghĩa là

văn bản đã được đăng ký giữa ti và ti+1. Giá trị y và y không cần thiết trong chứng nhận bởi vì chúng có thể lấy ra từ văn bản đã được chứng nhận nhưng nó hơi thừa, điều đó rất hữu dụng cho việc thực thi.

6. Client kiểm tra chứng nhận của nó. Đầu tiên là kiểm tra chữ ký, sau đó xây

lại hai cây, tính toán vòng giá trị SHVi và SHVi’ và so sánh nó với giá trị chứa trong chứng nhận. Sau đó nó có thể hỏi online server để xác thực vòng giá trị ở trong chứng nhận.

7. Client yêu cầu bên xác thực là anh ta đã tạo ra văn bản này tại thời điểm phù

hợp với vòng i. Bên xác thực (verifier) nói chuyện với client về cái chứng nhận của văn bản.

8. Client gửi yêu cầu chứng nhận tới bên xác thực cũng như nhận dạng của

TSA.

9. Bên xác thực làm việc xác minh như client trong bước 6.

10.Sau đó bên xác thực hỏi online server về các giá trị của vòng i: ti, SHVi,

SHVi’ và tất cả giá trị cần thiết xây lại chuỗi giữa hai giá trị được công bố

26

11.online server gửi vòng các giá trị SHV, SHV’ và giá trị HV, HV’ cần thiết

để xây dựng lại cái chuỗi mà ít nhất giá trị đầu và cuối đã được công bố.

12.Bên xác thực kiểm tra giá trị của vòng i có trùng với các giá trị trong chứng

nhận hay không, và xây dựng lại chuỗi để xác minh tính toàn vẹn của TSA.

13.Cuối cùng, bên xác thực gửi kết quả của việc xác minh cho client.

Bên xác thực nên có lựa chọn cho việc chỉ kiểm tra chứng nhận đối với một hàm băm. Việc chỉ kiểm tra một hàm băm trong hai hàm để nâng cao tốc độ bởi vì nó chỉ cần kiểm tra phần của chứng nhận sử dụng một hàm băm khi cái kia bị phá hoại.

2.1.3 Bảo mật của hệ thống liên kết

Việc sử dụng song song hai hàm băm giúp cho vấn đề an toàn trở nên tốt hơn. Nếu một hàm băm bị hỏng, bất cứ người nào cũng có thể xây cây với các giá trị mà hắn chọn và với giá trị gốc bằng với giá trị của cây trước. Nói cách khác, nếu một hàm băm bị hỏng, bất cứ người nào cũng có thể tạo ra chứng nhận hợp lệ cho giá trị mà chưa bao giờ được ban hành của timestamp. Tuy nhiên kẻ tấn công phải nghiên cứu STA để có được chữ ký của chứng nhận.

Một biến thể khác của tấn công, rất đơn giản để thực hiện, đó là kẻ tấn công tìm kiếm một văn bản với giá trị băm tương tự. Chính vì thế, chứng nhận cho văn bản đầu tiên luôn hợp lệ đối với cái thứ hai. Nếu trong thực tế không sử dụng hai hàm băm SHA-1 và RIPEMD-160, người dùng không trung thực có thể sử dụng hàm băm yếu và tìm sự xung đột trong tương lai mà hắn muốn.

Nếu một hàm băm bị phá vỡ, việc sử dụng hàm băm đó sẽ bị loại bỏ. Sẽ an toàn hơn nếu sử dụng hai hàm băm song song để có thời gian thay thế cái bị phá vỡ.

Vấn đề khác của an ninh là sự bảo mật của key bí mật của STA. Nếu key của chữ ký của STA bị hỏng, bên xác thực sẽ không tin bất kỳ chữ ký của chứng nhận nào, nhưng nó luôn có thể kiểm tra tính sự nhất quán của các chứng thực mà nó chứng nhận trước đó.

Trong trường hợp một hàm băm bị phá vỡ, việc sử dụng hàm băm khác phải được thực hiện. Để duy trì sự hợp lệ của các chứng nhận, chúng cần được gán nhãn lại với hàm băm mới trước khi cả hai hàm băm đều bị phá vỡ.

Trong trường hợp key của chữ ký của STA bị hỏng hoặc hết hạn, một key mới phải được tạo ra.

27

2.2 Hệ thống trên thực tế

2.2.1 Hệ thống Electronic TimeStamping (e-TS)

Hệ thống e-TS [10] là một hệ thống công chứng an toàn trên mạng, nó chứng nhận cho các dữ liệu đã tồn tại và chưa bị thay đổi ở một thời điểm cụ thể nào đó. Nó được coi là bên thứ ba đáng tin chứng thực cho sự tồn tại và chi tiết của các tài liệu điện tử.

Hệ thống này có thể gán nhãn cho bất cứ dữ liệu điện tử nào bất kể định dạng và nội dung. E-TS có thể được áp dụng cho các giao dịch kinh doanh trực tuyến, email, nhắn tin an toàn, bảo vệ sở hữu trí tuệ và các dịch vụ nhạy cảm về thời gian khác.

Hình 17 Hệ thống e-TS

Hệ thống này hoạt động như sau:

1. Một người dự định gán nhãn thời gian cho một phần của dữ liệu điện tử mà

ông ta có.

2. Người này ký vào dữ liệu sử dụng khóa bí mật của ông ấy và tạo ra chữ ký

số.

3. Một dấu vân tay (về mặt kỹ thuật, là một giá trị băm) cho chữ ký số được tạo

28

4. Dấu vân tay được gửi đến TSA.

5. TSA tạo ra nhãn thời gian sử dụng dấu vân tay đó, ngày và thời gian thu được

từ nguồn thời gian chính xác và chữ ký số của TSA.

6. Nhãn thời gian được gửi lại cho người dùng.

7. TSA giữ một bản ghi của nhãn thời gian để cho việc xác thực và thu hồi trong

tương lai.

Hệ thống e-TS có thiết kế của một hệ thống đơn giản, nó không sử dụng bất kỳ một cấu trúc dữ liệu nào để liên kết các nhãn thời gian lại với nhau mà đơn giản, hệ thống này chỉ sử dụng kiến trúc khóa công khai để xác thực và thu hồi nhãn thời gian.

2.2.2 Hệ thống Surety

Hệ thống Surety [7] là một phần mềm đảm bảo thông tin được thành lập vào năm 1994 bởi Bellcore. Đây là dịch vụ số gán nhãn thời gian sử dụng bên tin cậy thứ ba. Nó cung cấp cho khách hàng sự đảm bảo về thời gian mà các tập tin điện tử được tạo ra và các tập tin này không bị sửa đổi sau thời gian đó.

Quá trình công chứng:

- Ứng dụng trên máy khách sẽ tính toán giá trị băm của hồ sơ điện tử bằng

cách băm hai lần riêng biệt sử dụng MD5 và SHA-1, sau đó nối chúng lại với nhau.

- Khi giá trị băm đã được tính, nó được gửi tới Surety Digital Notary Server,

nơi mà nó được liên kết với một nhãn thời gian.

- Giá trị băm và nhãn thời gian của nó được lưu giữ tại Surety’ s Universal

Registry.

- Surety Digital Notary Server tạo ra Notary Record (hồ sơ chứng thực) bao

gồm giá trị băm và nhãn thời gian, nó được gửi cho máy khách.

- Tài liệu và Notary Record của nó được lưu tại máy khách.

Quá trình xác thực:

- Tập tin điện tử và Notary Record của nó được lấy từ nơi lưu trữ của ứng

dụng trên máy khách. Giá trị băm của tập tin điện tử được tính và so sánh với giá trị được lưu trong Notary Record. Nêu chúng giống nhau thì có nghĩa là tập tin đó chưa bị sửa đổi từ khi nó được công chứng.

29

- Bước tiếp theo là xác minh Notary Record được đăng ký trên Surety’s

Universal Registry. Xác minh được thực hiện bằng cách gửi Notary Record tới Surety Digital Notary Server.

- Digital Notary Server xác minh rằng thông tin về giá trị băm và nhãn thời

gian là trùng khớp với dữ liệu được lưu trên Universal Registry.

- Kết quả của việc xác thực được gửi trả lại cho ứng dụng trên máy khách.

Khi mà các bản ghi được lưu ở Universal Registry thì việc bảo đảm toàn vẹn của dữ liệu là rất quan trọng. Sự toàn vẹn của dự liệu trong các bản ghi này phải được đảm bảo. Surety sử dụng kết hợp nhiều phương thức để chắc chắn rằng sự toàn vẹn của dữ liệu được đảm bảo. Việc băm bản ghi được đưa vào đăng ký được liên kết sử dụng hàm băm giống nhau, hàm băm mà được sử dụng để tính giá trị thành phần cho các file đơn lẻ. Không chỉ các bản ghi độc lập được kết nối, mà cả AHV (Aggregate Hash Value) cũng được công bố rộng rãi trên phần thông báo công cộng của báo The New York Times (Việc tính toán AHV được trình bày ở 1.2.2.3.4). Giá trị băm tổng hợp này được coi là giá trị chứng minh rộng rãi. AHV được tính toán vào mỗi thứ 3 hàng tuần và là kết quả của mỗi bản ghi trên Universal Registry. Việc công bố được thực hiện vào chủ nhật kế tiếp. Sự liên kết của mỗi bản ghi trong việc đăng ký là chìa khóa trong việc không cho phép bất kỳ ai sửa bản ghi nào đã tồn tại trên đăng ký.

Hệ thống Surety có vẻ như chưa gặp vấn đề nào lớn từ trước cho tới nay. Trong cách tiếp cận thông thường để thiết kế ra hệ thống gán nhãn an toàn hơn, Surety cần phải có một phương thức truyền các thông tin của giá trị băm cuối được tạo ra ngay lập tức để cho việc xác nhận giá trị băm của văn bản được thực hiện trong vòng chưa đầy một tuần và đề nghị được đưa ra là xuất bản các giá trị băm tổng hợp hàng ngày.

Một phần của tài liệu NGHIÊN CỨU VÀ XÂY DỰNG MỘT HỆ THỐNG GÁNNHÃN THỜI GIAN (Trang 30 -48 )

×