1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án nghiên cứu hệ thống cấp dấu tem thời gian trong PKI

66 1,1K 17

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 2,99 MB

Nội dung

PKI (cơ sở hạ tầng khóa công khai) là một trong những hệ thống điển hình về bảo vệ thông tin một cách toàn diện nhất. Tuy nhiên PKI không phải không có những nhược điểm cần phải khắc phục, ví dụ như các vấn đề về bảo vệ khóa bí mật (private key), vấn đề về các mật khẩu, bảo vệ truy nhập hệ thống…. Trên thế giới, các nhà xây dựng và phát triển PKI đã đưa ra rất nhiều các giải pháp để xây dựng các hệ thống PKI an toàn hơn. Nắm bắt được tình hình đó một hệ thống có tên gọi là Time Stamp Authority đã ra đời để đáp ứng và hỗ trợ thêm quá trình chống chối bỏ của hệ thống PKI.

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU -1

CHƯƠNG I: TỔNG QUAN VỀ PKI -24

I Hạ Tầng Khóa Công Khai-PKI -24

1 Khái niệm PKI -24

2 Các thành phần của một hệ thống PKI -33

3 Chức Năng Cơ Bản Của PKI -36

3.1 Chứng thực (certification) -36

3.2 Thẩm tra (validation) -37

CHƯƠNG II: DỊCH VỤ CẤP DẤU THỜI GIAN -42

I Giới thiệu -42

1 Khái niệm dịch vụ cấp dấu thời gian -42

2 Tại sao phải sử dụng dịch vụ cấp dấu thời gian -42

2.1 Gia tăng tính tin tưởng trong thương mại điện tử -42

2.2 Ngăn chặn đánh cắp quyền sở hữu trí tuệ -43

2.3 Hỗ trợ cho chữ ký số của một hệ thống PKI -44

II Dịch vụ cấp dấu thời gian (TSA) -44

2.1 Các yêu cầu của một hệ thống TSA -44

2.2 Giao dịch của TSA (TSA Transaction) -44

3 Khuôn dạng gói tin yêu cầu và phúc đáp của TSA -45

3.1 Khuôn dạng gói tin yêu cầu của TSA (Request Format) -45

3.2 Khuôn dạng của gói tin phúc đáp -47

4 Các phương thức truyền tải dấu thời gian -49

4.1 Dấu thời giantruyền tải qua E-mail -49

4.2 Giao thức chuyền tại bằng file -50

4.3 Socket Base Protocol -51

4.4 Giao thức cấp dấu thời gian thông qua HTTP -51

5 Nguyên tắc hoạt động của TSA -51

5.1 Quá trình yêu cầu và kiểm tra một TSA -51

5.2 Quy trình kiểm tra một chữ ký có dấu thời gian -52

Trang 2

6 Các vấn đề bảo mật liên quan tới sử dụng dấu thời gian. -53

CHƯƠNG III: XÂY DỰNG DỊCH VỤ CẤP DẤU THỜI GIAN DỰA TRÊN HỆ THỐNG OPENCA -55

I Mô hình triển khai -55

II Các công việc cần phải làm -56

III Quá trình cài đặt -58

3.1 Cài đặt RootCA -58

3.2 Cài đặt SubCA -64

3.3 Tạo và cài đặt một certification cho web site -65

3.4 RA -71

3.5 OCSP -71

3.6 Repositores -75

3.7 Quản lý hệ thống PKI -79

3.8 Xây dựng hệ thống cấp dấu thời gian -79

IV Kiểm thử và thử nghiệm mô hình cấp dấu thời gian trong thực tế 83 6.1 Xây dựng chương trình Visual basic Demo timestamp -83

6.2 Dùng Adobe Pro để kiểm tra dấu thời gian. -84

KẾT LUẬN -95

TÀI LIỆU THAM KHẢO -96

Trang 3

CÁC THUẬT NGỮ VIẾT TẮT Thuật ngữ - từ viết tắt Giải thích

3DES(Triple DES) Thuật toán mã hóa dữ liệu được cải

tiến từ DES bằng cách thêm cácvòng mã hóa

AES (Advanced Encryption

Standard)

Chuẩn mã hóa dữ liệu nâng caođược phát triển nhằm thay thế DES.Thuật toán này có ưu điểm nhanh

và độ mật cao hơn so với DES

CA(Certification Authority) Hệ thống cấp phát chứng thư số

CP(Certificate Policy) Chính sách chứng thư số

DC (Digital Certificate) Chứng thư số

DES (Data Encription

để tạo, lưu trữ và bảo vệ các khóa

sử dụng trong mã hóa Trong hệthống PKI, HSM thường đượcdùng để bảo vệ các cặp khóa quantrọng như các cặp khóa củaRootCA, SubCA

LDAP (Lightweight Directory

Access Protocol)

Giao thức chuyển truy cập thư mục

CA (Certification Authority) Cơ quan chứng thực

Infrastructure)

Hạ tâng khóa công khai

OCSP (Online Certificate

status Protocol)

Giao thức kiểm tra trạng thái chứngthực số trực tuyến

RA (Registration Authority) Cơ quan đăng ký

RootCA (Root Certification

Authority)

Hệ thống cấp phát chứng thực sốmức gốc

Trang 4

RSA, dùng để sinh cặp khóa

Certification Authority)

Hệ thống cấp phát chứng thư sốmức con

TSA ( Time Stamp Authority) Trung tâm cấp dấu thời gian

USB Token Thiết bị bảo vệ khóa của người

dùng trong hệ thống PKI

Trang 5

LỜI NÓI ĐẦU

Thế giới phẳng – đó là một lời giới thiệu chuẩn xác về thế giới côngnghệ thông tin hiện nay, ranh giới giữa các quốc gia, các vùng bị phá vỡ bởi

sự liên kết ngày càng mở rộng của các mạng máy tính Giá trị thông tin giaodịch trên mạng ngày càng tăng, ngay cả các chính phủ cũng điều hành quamạng – chính phủ điện tử, hoạt động thương mại trên mạng – thương mạiđiện tử phát triển Các hoạt động tội phạm trên mạng cũng ngày càng tănggây ra những tổn thất thông tin, tài chính, quân sự… nghiêm trọng Do vậynhu cầu về bảo vệ thông tin cũng tăng theo Rất nhiều các mô hình, phươngpháp, hệ thống bảo vệ thông tin ra đời đã đáp ứng tốt những nhu cầu về bảo

vệ thông tin

PKI (cơ sở hạ tầng khóa công khai) là một trong những hệ thống điểnhình về bảo vệ thông tin một cách toàn diện nhất Tuy nhiên PKI không phảikhông có những nhược điểm cần phải khắc phục, ví dụ như các vấn đề về bảo

vệ khóa bí mật (private key), vấn đề về các mật khẩu, bảo vệ truy nhập hệthống… Trên thế giới, các nhà xây dựng và phát triển PKI đã đưa ra rất nhiềucác giải pháp để xây dựng các hệ thống PKI an toàn hơn Nắm bắt được tìnhhình đó một hệ thống có tên gọi là Time Stamp Authority đã ra đời để đápứng và hỗ trợ thêm quá trình chống chối bỏ của hệ thống PKI

Đối với nước ta, PKI vẫn còn rất mới mẻ, chúng ta mới chỉ ở nhữngbước đầu nghiên cứu và xây dựng các hệ thống PKI Vấn đề kết hợp hệ thốngPKI và hệ thống Time Stamp vẫn chưa được quan tâm nhiều Chính vì vậy đểgóp phần việc phát triển hệ thống tích hợp, kết hợp giữa hai hệ thống, em đãxây dựng đồ án tốt nghiệp chuyên ngành An toàn thông tin: “Nghiên cứu vàxây dựng hệ thống tem thời gian cho PKI dựa trên bộ phần mềm mã mởTSA”, mục tiêu của đồ án tập trung nghiên cứu và xây dựng hệ thống timestamp dựa trên bộ phần mềm OpenTSA và ứng dụng cho việc cấp stamp-timecho các hệ thống PKI hỗ trợ việc chống chối bỏ dữ liệu ký mã Về bố cục,luận văn được trình bày trong 3 chương chính, nội dung cụ thể như sau:

Chương 1: Tổng quan về PKI

Trang 6

Chương này của đồ án giới thiệu khái quát về trung tâm chứng thực vàchứng thư số, các thành phần:CA, RA, SubCA, OCSP, Temp thời gian… vàcách thức thu hồi hủy bỏ một chứng thư số.

Chương 2: Dịch vụ cấp dấu thời gian

Chương này giới thiệu tổng quan về hệ thống TimeStamp các khái niệm,yêu cầu của một hệ thống time stamp, miêu tả các gói tin time stamp, phươngthức truyền dẫn gói tin, nguyên tắc hoạt động Cuối cùng là các vấn đề bảomật với một hệ thống time stamp

Chương 3: Xây dựng hệ thống cấu dấu thời gian dựa trên hệ thống OpenCAĐầu chương là miêu tả hoạt động của hệ thống cấp dấu thời gian, môhình và chi tiết hoạt động, sơ đồ mạng khi triển khai Miêu tả quá trình xâydựng hệ thống PKI dựa trên openca Cuối chương là xây dựng hệ thống cấpdấu thời gian dựa trên hệ thống PKI đã xây dựng ở trước

Trang 7

Chương I: TỔNG QUAN VỀ PKI

I Hạ Tầng Khóa Công Khai-PKI

 Khả năng bảo mật (Secure): Đạt tiêu chuẩn quốc tế về bảo mật EAL4+,đáp ứng hầu hết các thiết bị HSM và Smartcard

 Khả năng mở rộng (Scalable): Dựa trên kiến trúc PKI hiện đại, đượcthiết kế theo mô hình có độ sẵn sàng cao, có khả năng mở rộng để cấpphát số lượng lớn chứng thư số một cách dễ dàng

 Khả năng sẵn sàng (Available): Tất cả chính sách, log, dữ liệu vềchứng thư số và CRL được lưu trữ trên cơ sở dữ liệu tin cậy và bảo mật

ví dụ: Oracle hệ cơ sở dữ liệu lớn nhất và đáng tin cậy nhất trên thếgiới

 Khả năng mở, tương thích (Open): Được thiết kế để tuân thủ các tiêuchuẩn mở quốc tế như X509, PKIX, LDAP

 Khả năng kiểm soát bằng chính sách (Policy Driven): Hệ thống có khảnăng áp dụng các chính sách khác nhau với việc đăng ký các loại chứngthư số khác nhau

 Khả năng linh động (Flexible): Có thể hỗ trợ nhiều phương thức đăng

ký chứng thư số khác nhau: Web, Email, Face-to-face, CMP, SCEP

Trong mật mã học, hạ tầng khóa công khai (Public Key Infracstructure –PKI) là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thựcsố) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổithông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệthống một cặp khóa công khai và khóa bí mật Các quá trình này thường đượcthực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợpkhác tại các địa điểm của người dùng Khóa công khai thường được phân phốitrong chứng thực khóa công khai

1.Khái niệm

Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn

bộ hệ thống bao gồm nhà cung cấp chứng thực số (Chứng thư số Authority)

Trang 8

cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán

mã hóa khóa công khai trong trao đổi thông tin

PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừamang tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các chứngthực điện tử (digital chứng thư số) cũng như các mã khoá công cộng và cánhân

Tới nay, những nỗ lực hoàn thiện PKI vẫn đang được đầu tư và thúc đẩy

Và để hiện thực hoá ý tưởng này, các tiêu chuẩn cần phải được nghiên cứuphát triển ở các mức độ khác nhau bao gồm: mã hoá, truyền thông và liên kết,xác thực, cấp phép và quản lý Nhiều chuẩn bảo mật trên mạng Internet,chẳng hạn Secure Sockets Layer/Transport Layer Security (SSL/TLS) vàVirtual Private Network (VPN), chính là kết quả của sáng kiến PKI

Quá trình nghiên cứu và phát triển PKI là một quá trình lâu dài và cùngvới nó, mức độ chấp nhận của người dùng cũng tăng lên một cách khá chậmchạp PKI có thể đảm bảo một cơ chế bảo mật và tổng hợp để lưu trữ và chia

sẻ các tài sản trí tuệ cả trong và ngoài phạm vi công ty Tuy nhiên, chi phí và/hoặc sự phức tạp của nó có thể gây ra những rào cản nhất định đối với khảnăng ứng dụng

Đa phần các giao dịch truyền thông của doanh nghiệp với khách hàng,chính quyền và các đối tác khác đều được diễn ra một cách điện tử Ngày nay,một giải pháp an ninh toàn diện cạnh tranh với PKI thực sự chưa được tìmthấy Từ góc độ giải pháp công nghệ, điều này làm cho việc chọn lựa trở nênđơn giản hơn Nhiều hãng khác cũng cung cấp các giải pháp PKI Những tínhnăng này, cùng khả năng quản lý và liên kết PKI, đã được tích hợp vào hệđiều hành và các ứng dụng có liên quan

PKI là công nghệ xác thực đầu tiên và hoàn thiện nhất sử dụng phươngpháp mã hoá dựa trên khoá bí mật và khoá công cộng Tuy nhiên, PKI cũngbao gồm cả việc ứng dụng rộng rãi các dịch vụ bảo mật khác, bao gồm dịch

vụ dữ liệu tin cậy, thống nhất dữ liệu về tổng thể và quản lý mã khoá

Trang 9

1 Các loại kiến trúc của một trung tâm chứng thực CA

Lợi ích của việc có một CA là: bất kỳ người sử dụng nào biết được khóacông khai của CA có thể lấy được khóa công khai của những người sử dụngkhác đã được CA xác thực Như vậy để lấy được khóa công khai của nhữngngười sử dụng một cách tin cậy thì cần phải biết được khóa công khai của

CA Vấn đề nảy sinh là làm cách nào để cung cấp cho những người sử dụngkhóa công khai của CA theo một phương thức an toàn? Điều này có thể đượcgiải quyết theo những phương pháp sau:

1 Khóa công khai của CA được truyền an toàn tới những thực thể tham giatrong hệ PKI Điều này được thực hiện bằng cách sử dụng một chứng chỉđược ký bởi chính CA đó, trường hợp này gọi là chứng chỉ tự ký (self-signed chứng thư số) Để tạo ra một chứng chỉ tự ký tin cậy, điều cần thiết

là phải truyền chứng chỉ này tới những người sử dụng theo một phươngthức an toàn (tính toàn vẹn thông tin), chẳng hạn như gửi một mã hash

(băm thông điệp) trên kênh truyền Trường hợp này được gọi là hệ thống

CA một cấp.

2 Trong hệ thống CA nhiều cấp, CA gốc (root CA) xác thực những CA cấpdưới, và mỗi CA cấp dưới có thể phát hành các chứng chỉ trên các CA trựcthuộc…Điều này có nghĩa rằng bất kỳ ai biết được khóa công khai củaroot CA có thể xác thực tất cả chứng chỉ được phát hành bởi hệ thống

những CA cấp dưới Trường hợp này được gọi là hệ thống CA phân cấp.

3 Thay vì cấu trúc CA phân cấp, hai CA có thể xác thực lẫn nhau Trongtrường hợp này bất kỳ ai có khóa công khai của một trong hai CA này (thư

số tự ký) có thể dựa vào đó mà xác thực chứng thư sô được phát hành bởi

CA còn lại Trường hợp này được gọi là hệ thống CA ngang cấp.

Trong thực tế sự kết hợp giữa 3 kiểu CA có thể được sử dụng

4 Các thành phần của một hệ thống PKI

Một hệ thống PKI gồm các thành phần sau:

 Chứng thư số Authorites (CA): cấp và thu hồi chứng chỉ

 Registration Authorites (RA): gắn kết giữa khóa công khai và định danh của người giữ chứng chỉ

 Clients: Người sử dụng cuối hoặc hệ thống là chủ thể của chứng chỉ

Trang 10

 Repositories: Hệ thống lưu trữ chứng chỉ và danh sách các chứng chỉ bị thu hồi Cung cấp cơ chế phân phối chứng chỉ và CRLs đến các thực thể cuối

Các thành phần PKI và các mối quan hệ giữa chúng được chỉ ra như tronghình sau Đây là mô hình kiến trúc PKI do PKIX đưa ra

Hình 1: Các thành phần hệ thống PKI

5 Chức Năng Cơ Bản Của PKI

Hệ thống PKI có những chức năng khác nhau Nhưng nhìn chung có haichức năng chính là: chứng thực và thẩm tra

5.1.Chứng thực (certification)

Chứng thực là chức năng quan trọng nhất của hệ thống PKI Đây là quátrình ràng buộc khoá công khai với định danh của thực thể CA là thực thểPKI thực hiện chức năng chứng thực Có hai phương pháp chứng thực:

 Tổ chức chứng thực (CA) tạo ra cặp khoá công khai, khoá bí mật vàtạo ra chứng chỉ cho phần khoá công của cặp khoá

 Người sử dụng tự tạo cặp khoá và đưa khoá công cho CA để CA tạochứng chỉ cho khoá công đó Chứng chỉ đảm bảo tính toàn vẹn củakhoá công khai và các thông tin gắn cùng

Trang 11

5.2.Thẩm tra (validation)

Quá trình xác định liệu chứng chỉ đã đưa ra có thể được sử dụng đúngmục đích thích hợp hay không được xem như là quá trình kiểm tra tính hiệulực của chứng chỉ Quá trình này bao gồm một số bước sau:

 Kiểm tra xem liệu có đúng là CA được tin tưởng đã ký số lên chứngchỉ hay không (xử lý theo đường dẫn chứng chỉ)

 Kiểm tra chữ ký số của CA trên chứng chỉ để kiểm tra tính toàn vẹn

 Xác định xem chứng chỉ còn ở trong thời gian có hiệu lực haykhông

 Xác định xem chứng chỉ đã bị thu hồi hay chưa

 Xác định xem chứng chỉ đang được sử dụng có đúng mục đích,chính sách, giới hạn hay không (bằng cách kiểm tra những trường

mở rộng cụ thể như mở rộng chính sách chứng chỉ hay mở rộng việc

sử dụng khoá)

Trang 12

Chương III: DỊCH VỤ CẤP DẤU THỜI GIAN

I Giới thiệu

1 Khái niệm dịch vụ cấp dấu thời gian

Dịch vụ cấp dấu thời gian là một cơ quan công chứng an toàn trực tuyến,một bên thứ ba mà người dùng có thể tin cậy vào việc xác thực trong quátrình truyền thông của mình Nó bao gồm rất nhiều các công nghệ (mật mã)khác nhaunhằm xác định một tài liệu đã tồn tại và không bị thay đổi từ mộtthời điểm cụ thể

Bất kể định dạng hay nội dung dữ liệu nào nguyễn là nó ở dạng điện tửthì đều có thể sử dụng dịch vụ cấp dấu stamp thời gian Dịch vụ cấp dấu thờigian có thể được ứng dụng cho các dịch vụ: giao dịch trực tuyến, email, nhắntin an toàn, bảo hộ sở hữu trí tuyệ và các dịch vụ thời gian nhạy cảm khác

Hình 2: Mô hình dịch vụ TSA

2 Tại sao phải sử dụng dịch vụ cấp dấu thời gian

2.1.Gia tăng tính tin tưởng trong thương mại điện tử

Trong thương mại điện tử để biết chính xác thời gian và nội dung giaodịch là rất quan trọng Tuy nhiên, người mua và người bán hiện tại thường sửdụng nguồn thời gian trên máy tính cá nhân thực hiện giao dịch làm thời gian

Trang 13

trong giao dịch Thời gian này không phải là thời gian tin cậy bởi thời giannày có thể bị thay đổi hoặc bị sai lệch Ngoài ra các nội dung giao dịch, nộidung email, các tài liệu công văn tham gia vào hoạt động thương mại rất dễ bịthay đổi Tất cả các thứ đó tạo cho quá trình thương mại điện tử không cònđược tin cậy nữa, và rất nguy hiểm trong vấn đề an ninh an toàn thông tin.Một giao dịch thương mại điện tử không cho phép những yếu tố này Mộtgiao dịch thương mại điện tử phải thực sự an toàn cho cả người bán lẫn kháchhàng

Dịch vụ cấp dấu thời gian có thể cung cấp một con dấu trên đó có gắnnhãn thời gian ký và giao hàng, chứng minh cơ quan tổ chức trên chữ ký vàchứng minh nguồn gốc của dữ liệu Bên cạnh đó nó không sử dụng thời giantồn tại trên máy người gửi và nhận để làm nguồn thời gian chuẩn khi ký Mà

nó lấy nguồn thời gian chuẩn từ một trung tâm thời gian uy tín trên thế giới cóthể lấy theo hệ thống UTC … Và với sự hỗ trợ này thì hệ thống thương mạiđiện tử đã tăng tính tin tưởng trong mỗi giao dịch

2.2.Ngăn chặn đánh cắp quyền sở hữu trí tuệ

Hiện nay hệ thống mạng Internet đã trở nên quá phổ biến và mở rộng.Hiện tượng chia sẻ thông tin và thu thập thông tin từ các tài liệu và công trìnhnghiên cứu của người khác rất nhiều Đó là các quá trình trao đổi thông tin và

ý tưởng đó là quá trình hết sức bình thường của mạng internet Nhưng thậtkhông may chính điều này đã làm tăng tệ nạn đánh cắp thông tin của ngườikhác, đánh cắp quyền sở hữu trí tuệ, quyền sáng chế sản phầm của ngườikhác

Một con dấu thời gian được cung cấp từ hệ thống cấp dấu thời gian stamp có thể ngăn cản việc đó Nó có thể xác minh nguồn gốc của tài liệu,video, ảnh, mã nguồn chương trình… Nếu sản phẩm trí tuệ bị xâm phạm vàđưa ra pháp luật nó có thể xác nhận được nguồn gốc và thời gian sản phẩm trítuệ đó được tạo ra, tác giả của nó là ai

time-2.3.Hỗ trợ cho chữ ký số của một hệ thống PKI

Trong cơ sở hạ tầng khóa công khai một chữ ký số được cung cấp choviệc ký lên các tài liệu điện tử có thể bị hủy bỏ thời gian ký lên các tài liệu

Trang 14

hệ thống cấp dấu thời gian được gắn trên chữ ký đó, và thời gian được ký lêncác tài liệu văn bản điện tử sẽ được lấy thời gian từ hệ thống cấp dấu thờigian Một chứ ký đi kèm con dấu như thế sẽ hỗ trợ chống chối bỏ trong quátrình ký mã

II Dịch vụ cấp dấu thời gian (TSA)

2.1 Các yêu cầu của một hệ thống TSA

 TSA phải lấy thời gian từ một nguồn thời gian tin cậy để tạo dấu thời gian

 Mỗi một thẻ thời gian được gán một số nguyên và là duy nhất trong tất cảcác thẻ dấu thời gian sinh trước

 Khi có một yêu cầu hợp lệ tới thì phải đáp ứng ngay một dấu thời gian

 Mỗi một dấu thời gian được tạo ra nó phải xác định là duy nhất và đượcgắn bên dưới một chính sách an ninh

 Với mỗi một dấu thời gian được gán cho một dữ liệu, ví dụ một dữ liệudấu ấn (data imprint) sẽ được gán duy nhất một hàm băm (hash-function)được xác định bởi một OID

 Độ dài của thuật toán băm và loại thuật toán băm phải phù hợp với OID

 Mỗi một chữ ký trên dấu thời gian được sinh ra từ một loại khóa dànhriêng cho mục đích cấp dấu thời gian mục đích này được quy định trênchứng thư số cấp cho máy chủ cấp dấu thời gian

 Phần thông tin mở rộng của một thẻ thời gianphải được thêm vào khi cómột yêu cầu đòi hỏi dấu thời gian phải có trường mở rộng

2.2 Giao dịch của TSA (TSA Transaction)

Đầu tiên, người dùng yêu cầu một dấu thời gian bằng cách gửi yêu cầutới trung tâm cấp dấu thời gian Trong thông điệp này người dùng gắn trườngTimestampReq và hàng loạt các trường khác (được định nghĩa bên dưới) vàogói tin Thông điệp thứ hai trả về từ hệ thống trung tâm cấp dấu thời gian baogồm một TimeStampResp được định nghĩa bên dưới đáp trả lần lượt các yêucầu trong gói tin đầu tiên của người dùng

Khi nhận được một phản hồi cho gói tin mà dấu thời gian (TST) đã trảlời các yêu cầu từ người dùng Điều đó có nghĩa là trong gói tin trả lời đó cóthể xảy ra các trường hợp sau: gói tin trả lời có lỗi, thời gian trả về cho gói tinyêu cầu bị sai, OID không tương thích với thuật toán băm và kích cỡ của

Trang 15

thuật toán băm đó, client không hiểu một trường nào đó trong gói tin trả lời,hoặc một yêu cầu có lỗi và bắt buộc TSA phải gửi lại một gói tin thông báolỗi…

Hình 3: Yêu cầu và Phúc đáp time-stamp

3 Khuôn dạng gói tin yêu cầu và phúc đáp của TSA

Một hệ thống TSA gồm hai thành phần Client và Server Client thực hiệntính toán giá trị tóm lược của tài liệu điện tử sau đó gửi lên Server TSA chấpnhận yêu cầu và đính kèm thời gian lên giá trị tóm lược mà client gửi lênserver, đồng thời ký các giá trị đó và gửi về client kèm theochứng thư số của

nó Vì vậy, Client có thể kiểm tra chữ ký trên dấu thời gianbằng cách sử dụngchứng thư số được TSA gửi kèm đi

3.1 Khuôn dạng gói tin yêu cầu của TSA (Request Format)

Client sẽ yêu cầu một dấu thời gian tới TSA Gói tin yêu cầu được gọi làTimestampReq và nó phải có các thành phần sau:

Trang 16

Hình 4: Thành phần của một gói tin yêu cầu time stamp

Trường version (hiện tại là v1) xác định phiên bản của gói tin yêu cầu dấuthời gian

Trường messageImprint là trường chứa giá trị băm của dấu thời gian Nó làmột chuỗi OCTET (OCTET STRING) Và độ dài của nó phải tương ứng vớigiá trị của thuật toán băm (ví dụ: 20 bytes cho SHA-1 hoặc 16 bytes choMD5)

MessageImprint ::= SEQUNECE {

hashAlgorithm AlgorithmIdentifier,

hashedMessage OCTET STRING}

Trường hashAlgorithm chỉ ra thuật toán băm được sử dụng: MD5, SHA1 Nếu TSA không nhận ra thuật toán băm hoạc hiểu thuật toán băm này làmột thuật toán yếu TSA sẽ hủy cung cấp một time-stamp token bằng cáchđặt thông tin của trường pkiStatusInfo về ‘bad_alg’

Trường reqPolicy định nghĩa chính sách yêu cầu TSA cung cấp theo một thẻdấu thời gian TSAPolicyID được định nghĩa như sau:

TSAPolicyID ::= OBJECT IDENTIFIERNếu trường này được đặt giá trị về nonce thì client sẽ cho phép kiểm trathời gian mà gói tin trả về khi thời gian đó không trùng khớp với thời giantrên máy cục bộ Nonce là một số ngẫu nhiên rất lớn được client sinh ra nó cóthể là một số nguyên 64 bit Có nhiều trường hợp giá trị nonce phải thêm vào

vì nếu không gói tin đáp ứng sẽ bị hủy bỏ

Trang 17

Trường certReq định nghĩa trong gói tin trả về TSA có đính kèm chứng thư

số của nó vào đó không Nếu trường này được đặt là TRUE thì TSA sẽ trả

về một gói tin có gắn chứng thư số của TSA trên đó Mục đích của trườngnày là có chứng thư số của TSA ngay lập tức khi nhận được yêu cầu vàdùng nó trong quá trình kiểm tra chữ ký đã được ký bởi TSA

Nếu trường certReq không được xác định hoặc nó được đặt về giá trịfalse thì trường chứng thư số sẽ không tồn tại trong gói tin phúc đáp từ TSA

Trường mở rộng (Extensions) đây là cách thêm các thông số mở rộng chocác thuộc tính của gói tin yêu cầu trường mở rộng được định nghĩa rõ trongRFC 2459 Nếu một trường mở rộng được thiết lập là kiểm tra hoặc khôngkiểm tra được sử dụng bởi người gử yêu cầu nhưng time-satmping serverkhông nhận ra, thì server sẽ không công bố một token và trả về giá trị là lỗi(unacceptedExtension)

3.2.Khuôn dạng của gói tin phúc đáp

Một dấu thời gian phúc đáp có khuôn dạng sau:

TimeStampResp ::= SEQUENCE {

timeStampToken TimeStampToken OPTIONAL }

Trạng thái được định nghĩa như sau:

PKIStatusInfo ::= SEQUENCE {

Status PKIStatus,

statusString PKIFreeText OPTIONAL,

failInfo PKIFailureInfo OPTIONAL }

Trường Status chỉ ra trạng thái của một thẻ stamp time và nó thường nhậnhai giá trị là 0 hoặc1 0 có nghĩa là thẻ dấu thời gian đó đã được yêu cầutrước rồi 1 nghĩa là thẻ stamp time đó sẽ được sửa đổi lại Ý nghĩa của mỗigiá trị trong trạng thái:

Trường statusString của PKIStatusInfo dùng để cung cấp thông tin vềtrường mesageImprint

Một TimeStampToken phải được định dạng như bên dưới và sẽ ký cùng vớinội dung dữ liệu

Trang 18

TimeStampToken ::= ContentInfo

contentType là id-signedData ([CMS])

Nội dung là signedData ([CMS])

TimeStampTokenkhông nên lưu chứa bất cứ thông tin của một TSA nàokhác ngoài thông tin về hệ thống TSA đã ký lên nó Định danh chứng chư sốcủa TSA nên bao gồm thuộc tính signerInfo bên dưới thuộc tínhSigningChứng thư số

Phải xuất hiện tương ứng với các trường xuất hiện trong TimeStampReq Trong trường hợp này nó phải có giá trị trùng nhau

extensions [1] IMPLICIT Extensions OPTIONAL}

 Version: Thông thường máy chủ thời gian sẽ cung cấp thẻ thời gian tokenphiên bản 1.Các trường có thể tùy chọn có, chỉ có trường nonce là phảiđược hỗ trợ.Thường bên yêu cầu dấu thời gian phải nhận ra phiên bản 1của time-stamp tokens với tất cả các trường có trong đó, nhưng nó khôngbắt buộc phải hiểu các trường trong phần mở rộng

 Policy: Một trường chính sách phải được cung cấp để xác định được cácchính sách của TSA bên dưới gói tin trả lời cho yêu cầu Nếu các trường

Trang 19

xuất hiện trong TimeStampReq có cùng giá trị thì nó phải trả về một thôngbáo lỗi Chính sách phải yêu cầu bao gồm các kiểu thông tin sau:

+ Các điều kiện khi time-stamp token được sử dụng

+log của time-stamp token phải có giá trị khi cho phép kiểm tra lại tính xácthực của time-stamp token

 messageImprint phải có cùng giá trị cùngtrường này trong timeStampReq,cung cấp kích cỡ của giá trị thuật toán băm kiểm xác định chính xác kích

cỡ của thuật toán băm trong hashAlgorithm

Trường serialNumber là một số nguyên được gán bởi TSA cho mỗi mộtTimeStampToken Nó phải là duy nhất cho mỗi TimeStampToken mỗi khiđược TSA ký lên Nó cần được bảo vệ kể cả sau khi dịch vụ bị tạm ngưnghoặc bị carsh đột ngột

genTime là thời gian mà time-stamp token được tạo bởi TSA Nó sửdụng chuẩn giờ UTC nó không sử dụng giờ trong time zone UTC là mộtchuẩn thời gian khá mạnh mẽ thời gian cơ bản được tính tới giây theo hệ đếmchuẩn SI

Giá trị GeneralizedTime phải tính tới mức giây Tuy nhiên khi không cầnthiết tới mức giây chính xác thì GeneralizedTime sẽ tự giới hạn tới số giấychính xác nhất

Câu trúc: YYYYMMDDhhmmss[.s…]z

Ví dụ: 20110601052123.34352z

4 Các phương thức truyền tải dấu thời gian

4.1.Dấu thời giantruyền tải qua E-mail

Đây là phần miêu tả giao thức cấp dấu thời gian sử dụng email để thựchiện giao dịch Khuôn dạng của dấu thời gian sử dụng 2 đối tượng MIME nhưsau:

Content-Type: application/timestamp-query

Content-Transfer-Encoding: base64

<<the ASN.1 DER-encoded Time-Stamp message,

base64-encoded>>

Trang 20

MIME Type File

4.2.Giao thức chuyền tại bằng file

Một tệp chứa thông tin dấu thời gian nên được đóng gói ở dạng DER Nókhông có định dạng mở rộng thêm ở phần đầu hoặc các thông tin trong tệp

Nó giống như trường hợp vận chuyển dấu thời gian thông qua dịch vụ FTP.Một yêu cầu dấu thời gian nên có phần mở rộng của file là tsq (Time-Stamp Query) Và một yêu cầu dấu thời gian nên có phần đuôi mở rộng là tsr(Time-Stamp Reply)

4.3.Socket Base Protocol

Dựa trên nền tảng của giao thức TCP nó sử dụng để vận chuyển TSAmessages Đây là bộ giao thức có thể sử dụng trong trường hợp khởi tạo mộtgiao dịch và trả về một kết quả cho phiên khởi tạo đó Giao thức này sử dụngcổng giao dịch là 318 để thực hiện nắng nghe và phúc đáp các yêu cầu cần xử

lý TSA

Trang 21

4.4.Giao thức cấp dấu thời gian thông qua HTTP

Đây là trường hợp sử dụng HTTP để gửi các dấu thời gian chứa trongđối tượng MIME Đơn giản ta chỉ hiểu nó dùng HTTP để gửi các gói tinMIME đã đóng gói dấu thời gian vào trong nội dung của nó

5 Nguyên tắc hoạt động của TSA

5.1.Quá trình yêu cầu và kiểm tra một TSA

Hình 5: Mô hình yêu cầu và kiểm tra của TSA

Một bản tài liệu được ký lên từ client và gửi yêu cầu tới TSA server.TSA Server lấy đồng hồ thời gian làm thời gian chuẩn để trả lời các yêu cầu

từ client TSA server nhận yêu cầu kiểm tra yêu cầu đó có hợp lệ không Nếuhợp lệ nó phúc đáp lại client ngược lại gửi lại thông tin lỗi Ở phía client sẽkiểm tra lại thông tin và lưu trên dấu thời gian vào cùng với bản tài liệu

Trang 22

5.2.Quy trình kiểm tra một chữ ký có dấu thời gian

Hình 6: Quá trình kiểm tra chữ ký có dấu thời gian

Tại client, từ dấu thời gian, client kiểm tra thông tin và ngày giờ ký Sosánh với thời gian trên Document đã được ký từ trước Nếu hai thông tin nàykhớp nhau thì tài liệu này hợp lệ Ngược lại tài liệu vô giá trị và không cònhợp lệ để thấy rõ hơn hãy xem hình sau:

Hình 7: Quy trình kiểm tra dấu thời gian

Trang 23

6 Các vấn đề bảo mật liên quan tới sử dụng dấu thời gian.

 Trường hợp một TSA không được sử dụng nữa, nhưng khóa riêng củaTSA đã không được thỏa hiệp vì tổ chức xác thực đó có thể đã thu hồi.Khi đó trường mở rộng reasonCode kéo theo một chứng thư bị thu hồi

từ TSA trong mục mở rộng của CRL, Nó cỏ thể bị coi là unspecified(0), affiliationChanged (3) superseded (4) hoặc cessationofOperation(5) Trong trường hợp này mọi khó được ký bởi tokens này sẽ khônghợp lệ, nhưng những tkens sinh ra trước khi hủy bỏ vẫn được coi là hợp

lệ Khi trường mở rộng reasonCode tạo ra từ chứng thư bị hủy bỏ từmột TSA nó sẽ không hiện bất cứ phần mở rộng trong CRL Và vì thếtất cả các tokens được ký bởi key lỗi sẽ bị coi là không hợp lệ Đó là lý

do nên sử dụng trường mở rộng reasonCode

 Khi khóa riêng của TSA bị mất an toàn, thì một chứng thư của nó sẽ bịhủy bỏ trong trường hợp này reasonCode kéo theo các chứng thư củaTSA có thể hoặc không được hiển thị trong phần mở rộng ở mục CRL.Nếu nó hiển thị thì nó sẽ hiển thị giá trị keyCompromise Bất kỳ tokennào được ký bởi TSA mà đang dùng khóa riêng đó sẽ không được tintưởng Lý do là nó có thể mát an toàn về bảo mật nếu TSA sử dụng mộtkhóa không đảm bảo Trong trường hợp khóa riêng bị mất an toàn, mộtquá trình kiểm tra lại tất cả các thẻ được sinh ra bởi TSA sẽ được xemxét lại và kiểm tra lại tính đúng đắn của nó Hai thẻ time-stamp từ haiTSA khác nhau sẽ có địa chỉ khác nhau

 Khóa dùng để ký của TSA phải có chiều dài cho phải đủ kích cỡ củamột vòng đời(lifetime) rất dài Tất nhiên ngay cả khi mục này cho phép

đủ kích cỡ cho vòng đời, thì vòng đời cũng phải ở trong một giới hạncho phép Vì vậy, tất cả các thẻ đã được ký bởi TSA nên ký lại time-stamp (nếu quá trình xác thực sao chép từ một CRL cũ không còn giátrị) hoặc đã bị hủy cập nhập tại thời điểm sau khi tạo mới lại từ một chữ

ký TSA đã tồn tại và được tin tưởng

 Một ứng dụng client chỉ sử dụng giá trị nonce và không bao giờ sửdụng giá trị thời gian trên local để làm thời gian cho thông tin trả lời.Một dạng tấn công ‘man-in-the-middle’ có thể là nguyên nhân gâytrễ

Trang 24

quá giá trị cho phép nên nghi ngờ đang có thể bị tấn công Mỗi mộtphương thức vận chuyển dấu thời gianđều mất một khoảng thời giannhưng nó sẽ nằm trong khuôn khổ thời gian cho phép trễ của phươngthức ngoài ra thì sẽ bị coi là bất thường.

 Nếu thực time-stamp khác nhau có cùng một đối tượng dữ liệu sử dụngcùng một thuật toán băm, hoặc một thuộc tính đơn cho rất nhiều thẻtime-stamp trên cùng một đối tượng, thẻ time-stamp sinh ra sẽ bao gồmmột đoạn định danh cho thông điệp in dấu; như là trả về một kết quả,một người truy cập tới thẻ time-stamp có thể tham chiếu tới một dữ liệudấu thời giangiống nhau

Trang 25

Chương IV: XÂY DỰNG DỊCH VỤ CẤP DẤU THỜI GIAN DỪA

TRÊN HỆ THỐNG OPENCA

I Mô hình triển khai

I.1 Mô hình tổng quát

Hình 8: Mô hình tổng quát hệ thống cấp dấu thời gian

Trang 26

Sau đây là mô hình mạng khi triển khai

Hình 9: Mô hình mạng hệ thống cấp dấu thời gian

II Các công việc cần phải làm

II.1 Việt hóa gói phần mềm OpenCA

Trong đề tài nghiên cứu khoa học báo cáo cho khoa trước em cũng đã tiến hành việt hóa nhưng vẫn còn một số lỗi căn bản về chính tả và cách dịch Trong đồ án này em việt hóa lại và có chỉnh sửa thêm trong

Trang 27

mã nguồn của chương trình OpenCA, đóng gói lại thành một gói riêng Việt hóa và công bố cho cộng đồng mã nguồn mở Tất cả công việc đónhằm hướng tới một hệ thống an toàn và thân thiện với người Việt Nam nhất.

II.2 Cài đặt RootCA

RootCA của trường học viện kỹ thuật Mật Mã trong mô hình được xây dựng

từ gói OpenCA phiên bản 1.1.1 đã được em việt hóa RootCA chạy trên hệđiều hành CentOS 5.5 Nó được cấp một tên miền là hvktmm.vn Máy chủRootCA cần đảm bảo tính an toàn cao do vậy nó được để offline và cách lyvơi môi trường internet

II.3 Cài đặt SubCA1, SubCA2

SubCA1 và SubCA2 là hai CA chính chịu trách nhiệm cung cấp chứng thư

số cho người dùng ngoài mạng Nó được cài trên hệ điều hành CentOS5.5,phần mềm OpenCA phiên bản 1.1.1 đã được việt hóa giống như RootCA.Trong bài labs này em dùng subca1 để cấp chứng thư số cho user1 và cấpchứng thư số cho Trung tâm cấp dấu thời gian Hai CA này được để onlinevới mạng bên ngoài Chúng được cấp hai tên miền tương ứng làsubca1.hvktmm.vn và subca2.hvktmm.vn

II.4 Cài đặt dịch vụ kiểm tra chứng thư số trực tuyến

Dịch vụ kiểm tra chứng thư số được xây dựng trên hệ điều hành CentOS 5.5

Sử dụng phần mềm Openca-OCSPD phiên bản 2.1 để quản lý quá trình kiểmtra chứng thư số trực tuyến Nó được cấp tên miền là ocsp.hvktmm.vn

II.5 Cài đặt dịch vụ công bố chứng thư số theo thư mục – Repositores

Dịch vụ công bố chứng thư số trực tuyến theo cây thư mục xây dựng trên hệđiều hành CentOS5.5 cùng với bộ phần mềm OpenLDAP phiên bản 3.2 Hệthống này được cấp tên truy cập là ocsp.hvktmm.vn

II.6 Cấp một chứng thư số cho web site để tạo https.

Web site yêu cầu một chứng thư số tới SubCA1 để sử dụng giao thức httpscủa website Trang web gửi yêu cầu là http://hvktmm.vn đang sử dụngApache làm web server cho nó

Trang 28

II.7 Cài đặt dịch vụ cấp dấu thời gian.

Máy chủ cấp dấu thời gian được đặt ở một mạng khác ngoài mạng của hệthống PKI Có tên miền truy cập là http://tsa.hvktmm.vn Sử dụng hệ điềuhành CentOS 5.5 và bộ phần mềm OpenTSA để cung cấp dịch vụ timestamp

Do mô hình giả lập xây dựng trong Vmware do vậy không lấy được giờ từ vệtinh nên mặc định dấu thời gian sẽ lấy giờ trên chính máy local của TSA

III Quá trình cài đặt

III.1 Cài đặt RootCA

RootCA được xây dựng trên hệ điều hành CentOS, với các thành phầncần thiết như: apache, perl, openca-tools, openca-base, và một số thư viện cầnthiết cho việc cài đặt Khi cài đặt gói openca-base chúng ta sẽ chỉ thực hiệnchế độ install-offline Sau đây là các bước cài đặt OpenCA cho RootCA:B1: Cài các gói cần thiết

B2: Tiến hành xả nén và cài openca-tool

B3: Trước khi cài OpenCA ta phải tạo một cơ sở dữ liệu và tài khoản để làm nơi lưu dữ liệu cho các chứng thư và khóa sẽ lưu vào đó sau này

Trang 29

Tiếp theo ta phải tạo một tài khoản để gán quyền quản lý dịch vụ pki sau này chạy Đây là bước cần thiết để thắt chặt an ninh cho RootCA Nó giúp cho hệ thống ít bị ảnh hưởng khi kẻ tấn công có được quyền điều khiển.

Ta phải patch lại biến môi trường đề cho phép câu lệnh configure có thể tìm được câu lệnh của openca-tool trong đường dẫn tuyệt đối

/opt/openca-tool/bin

B4: Tiến hành cài OpenCA

Vì phiên bản hiện tại vẫn còn lỗi nên phải patch lại Tải các file sau về:

Trang 30

Tiếp theo là copy các file đó vào nơi vừa cài OpenCA sau đó restart lại dịch vụ.

Đến đây đã hoàn thành xong bước cài đặt OpenCA Bây giờ sẽ phải cấu hình cho nó Truy cập vào https://rootca.hvktmm.vn/pki/ca để vào mục quản trị của nó

Hình 10: Trang quản lý PKI

Trong mục PKI Init & Config chúng ta thực hiện việc khởi tạo cơ sở dữ liệu, khởi tạo khóa riêng cho CA, tạo chứng chỉ CA , …

Hình 11: Khởi tạo chứng thư số

Trang 31

Hình 12: Khởi tạo cơ sở dữ liệu

Khởi tạo cơ sở dữ liệu: Bước này sẽ tạo ra cơ sở dữ liệu dựa vào các

tham số đã thiết lập trong quá trình cài đặt openca Nếu đã có 1 cơ sở dữliệu trước đó thì ta có thể chọn Upgrade Database để nâng cấp cơ sở dữliệu, hoặc Re-init Database để khởi tạo lại cơ sở dữ liệu ( lưu ý: nếu chọnthiết lập này sẽ làm mất cơ sở dữ liệu hiện có )

Tạo khóa bí mật cho CA: Bước này thực hiện sinh khóa bí mật cho CA.

Để thực hiện việc sinh khóa bí mật chúng ta phải chọn thuật toán khóa,thuật toán mã hóa khóa và độ dài của khóa

Hình 13: Thiết lập chế độ khóa

Sau khi chọn xong các thuật toán và độ dài khóa, hệ thống sẽ sinh ra 1

Trang 32

khóa bí mật cho CA như hình dưới đây Hoặc có thể xem lại khóa được

/opt/pki/var/openca/crypto/keys/cakey.pem ( /opt/pki/ là thư mục càiđặt OpenCA được thiết lập trong quá trình cài đặt )

Hình 14: Kết quả khóa riêng

Tạo yêu cầu cấp chứng chỉ cho CA: Sau khi tạo khóa bí mật cho CA

xong, chúng ta tạo 1 yêu cầu xin cấp chứng chỉ cho CA

Hình 15: Thiết lập thông tin về hệ thống rootCA

Trang 33

Hình 16: Khuôn dạng chứng thư của RootCA

Hình 17: Tự ký lên chữ ký số tạo RootCA

Serial Number: số seri của chứng chỉ Do đây là chứng chỉ đầu tiên cấp

cho CA nên chúng ta để Serial Number là 00

Chứng thư số Validity: Thời hạn sử dụng chứng chỉ, mặc định là 730

ngày (2 năm) Chúng ta có thể thay đổi giá trị này tùy theo nhu cầu sửdụng hệ thống

Extensions: Phần mở rộng, để ký chứng chỉ cho CA, chúng ta lựa chọn

Self Signed CA Với lựa chọn này hệ thống sẽ tự ký vào yêu cầu này đểtạo ra chứng chỉ CA cho nó

Sau khi lựa chọn xong hệ thống sẽ tạo chứng chỉ như hình dưới đây.Chúng ta cũng có thể xem lại chứng chỉ tại/opt/pki/var/openca/crypto/certs/00.pem

Ngày đăng: 02/06/2016, 10:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Tài liệu RFC 3161 về time-stamp Khác
2. Cryptography: Theory and Practice –D.Stinson Khác
3. Giáo trình chứng thực điện tử - Trường HVKT Mật Mã Khác
4. Tài liệu trang Openca.org Khác
5. Tài liệu trang OpenTSA.org Khác
6. Understanding PKIConcepts, Standards, and Deploy ment Considerations, Second Edition Khác
7. Advances in cryptology của nhóm tác giả: Springer-Verlag Berlin and Heidelberg GmbH Khác
8. Number theory and Cryptography của trường đại học Cambridge Khác

TỪ KHÓA LIÊN QUAN

w