LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn chân thành nhất tới PGS TS Nguyễn Văn Tam, người thầy

đã cho tôi những định hướng và những ý kiến rất quý báu về công nghệ PKI.

Tôi xin tỏ lòng biết ơn sâu sắc tới thầy cô, bạn bè cùng khoá đã dìu dắt, giúp đỡ

tôi tiến bộ trong suốt những năm học qua. Xin cảm ơn gia đình và bè bạn, những

người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn cảnh khó khăn. Tôi xin cảm

ơn Cục Tin học nghiệp vụ đã hết sức tạo điều kiện cho tôi trong quá trình học và

làm luận văn này.

Được hoàn thành trong thời gian rất hạn hẹp, luận văn này chắc chắn còn nhiều

khiếm khuyết. Tôi xin cảm ơn những thầy cô, bạn bè và người thân đã và sẽ có

những góp ý chân tình cho nội dung của luận văn này, để tôi có thể tiếp tục đi sâu

tìm hiểu và đưa PKI vào ứng dụng trong thực tiễn công tác.

Lương Nguyễn Hoàng Hoa

- 1 -

MỤC LỤC

MỤC LỤC.................................................................................................................. 1

Danh mục từ viết tắt ................................................................................................. 3

Danh mục hình vẽ...................................................................................................... 5

MỞ ĐẦU .................................................................................................................... 7

CHƯƠNG 1 - TỔNG QUAN VỀ MẬT MÃ......................................................... 10 1.1 Giới thiệu chung .................................................................................10 1.2 Khái niệm hệ mật mã..........................................................................11 1.3 Hệ mật mã khoá đối xứng ..................................................................11 1.4 Hệ mật mã khoá công khai .................................................................12 1.5 Chữ ký số............................................................................................16 1.6 Hàm băm ............................................................................................20

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

CHƯƠNG 2 - CHỨNG CHỈ SỐ VÀ HẠ TẦNG MÃ KHOÁ CÔNG KHAI.... 23 2.1. Chứng chỉ số (digital certificates) ......................................................24 2.1.1 Giới thiệu .....................................................................................24 2.1.2 Chứng chỉ khoá công khai X.509 ................................................26 2.1.3 Thu hồi chứng chỉ........................................................................30 2.1.4 Chính sách của chứng chỉ............................................................31 2.1.5 Công bố và gửi thông báo thu hồi chứng chỉ ..............................32 2.2 Các thành phần của PKI .....................................................................35 2.2.1 Tổ chức chứng thực (Certification Authority) ............................36 2.2.2 Trung tâm đăng ký (Registration Authorities) ............................37 2.2.3 Thực thể cuối ( Người giữ chứng chỉ và Clients).......................38 2.2.4 Hệ thống lưu trữ (Repositories)...................................................38 2.3 Chức năng cơ bản của PKI .................................................................39 2.3.1 Chứng thực (certification) ...........................................................39 2.3.2 Thẩm tra (validation)...................................................................39 2.3.3 Một số chức năng khác................................................................39 2.4 Mô hình tin cậy cho PKI ....................................................................43 2.4.1 Mô hình CA đơn..........................................................................44 2.4.2 Mô hình phân cấp ........................................................................45 2.4.3 Mô hình mắt lưới (xác thực chéo) ...............................................46 2.4.4 Mô hình Hub và Spoke (Bridge CA)...........................................48 2.4.5 Mô hình Web (Trust Lists) ..........................................................49 2.4.6 Mô hình người sử dụng trung tâm (User Centric Model) ...........51

- 2 -

3.2 Chức năng và quá trình khởi tạo các thành phần trong hệ thống cung cấp chứng chỉ số MyCA ..............................................................................58 3.2.1 Certificate Authority - CA...........................................................58 3.2.2 Registration Authority - RA ........................................................59 3.2.3 RAO.............................................................................................60 3.2.4 LDAP và Public Database Server ...............................................60 3.3 Qui trình đăng ký, cấp phát và huỷ bỏ chứng chỉ ..............................62 3.3.1 Qui trình đăng ký và cấp chứng chỉ.............................................62 3.3.2 Qui trình huỷ bỏ chứng chỉ..........................................................64 3.4 Thử nghiệm sản phẩm ........................................................................65 3.4.1 Thử nghiệm phía quản trị ............................................................65 3.4.2 Thử nghiệm phía người dùng ......................................................65 3.5 Đánh giá chung...................................................................................66

CHƯƠNG 3 - XÂY DỰNG HỆ THỐNG CUNG CẤP CHỨNG CHỈ SỐ ........ 53 3.1 Tổng quan về hệ thống .......................................................................53 3.1.1 Mô hình hệ thống.........................................................................53 3.1.2 Một số đặc tính của hệ thống cung cấp chứng chỉ số..................54

KẾT LUẬN .............................................................................................................. 68

TÀI LIỆU THAM KHẢO ...................................................................................... 70

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

PHỤ LỤC ................................................................................................................. 72 1. Môi trường phát triển ............................................................................72 2. Một số chuẩn mật mã khoá công khai (PKCS) .....................................72 3. Một số màn hình giao diện của hệ thống đã xây dựng .........................74

- 3 -

Danh mục từ viết tắt

ARLs Authority Revocation Lists

CA Certificate Authority

CAO Certificate Authority Operator

CMS Cryptographic Message Syntax

COST Commercial of the Shelf

CRLs Certificate Revocation Lists

CRR Certificate Revocation Request

CSP Certification Service Provider

DAP Directory Access Protocol

DES Data Encryption Standard

DNS Domain Name System

DSS Digital Signature Standard

ECC Elliptic Curve Cryptography

HTTPS Secure Hypertext Transaction Standard

IANA Internet Assigned Numbers Authority

IEEE Institute of Electrical & Electronic Engineers

IETF Internet Engineering Task Force

ISO International Organization for Standardization

ITU-T Internet Telecommumications Union-

Telecommunication

LDAP Lightweight Directory Access Protocol

MD5 Message Digest 5 Hash Algorithm

OCSP Online Certificate Status Protocol

PEM Privacy Enhanced Mail

PGP Pretty Good Privacy

PKC Public Key Certificate

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

PKCS Public Key Cryptography Standards

- 4 -

PKI Public Key Infrastructure

PKIX Extended Public Key Infrastructure

RA Registration Authorities

RAO Registration Authorities Operator

RFC Request For Comments

RSA Rivest Shamir Adleman

S/MIME Secure Multipurpose Internet Mail Extensions

SHA-1 Secure Hash Standard

SSL Secure Socket Layer

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

TLS Transport Layer Security

- 5 -

Hình 1.6:

Hình 1.7: Hình 1.8:

Hình 1.9:

Danh mục hình vẽ Quá trình mã hoá và giải mã ............................................................... 11 Hình 1.1: Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P .................................... 13 Giải mã thông điệp sử dụng khoá riêng của người nhận ................... 13 Hình 1.3: Hình 1.4: Sơ đồ hệ mật mã RSA......................................................................... 14 Hình 1.5: Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S........................................................ 15 Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S ............................................... 15 Sơ đồ chữ ký RSA............................................................................... 18 Sơ đồ mô tả các công đoạn người A làm trước khi gửi thông điệp cho người B (sử dụng hàm băm rồi ký số) ................................................ 19 Sơ đồ mô tả các công đoạn kiểm tra chữ ký sau khi người B nhận được thông điệp................................................................................... 20 Hình 1.10: Nhiều thông điệp nguồn cho cùng 1 kết quả đích sau mã hoá/ ký số. 21 Chứng chỉ số ....................................................................................... 25 Hình 2.1: Khuôn dạng chứng chỉ X.509 ............................................................. 26 Hình 2.2: Nội dung chi tiết của chứng chỉ .......................................................... 30 Hình 2.3: Khuôn dạng danh sách chứng chỉ bị thu hồi....................................... 33 Hình 2.4: Dịch vụ kiểm tra online...................................................................... 35 Hình 2.5: Hình 2.6: Các thành phần PKI ............................................................................ 36 Đường dẫn chứng chỉ chéo ................................................................. 43 Hình 2.7: Hình 2.8: Mô hình CA đơn ................................................................................. 44 Hình 2.9: Mô hình phân cấp................................................................................ 45 Hình 2.10: Mô hình mắt lưới ................................................................................ 47 Hình 2.11: Mô hình Hub và Spoke (Bridge CA) .................................................. 49 Hình 2.12: Danh sách các CA tin cậy trong Microsoft Explorer......................... 50 Hình 3.1: Mô hình hệ thống cung cấp chứng chỉ số ........................................... 53 Tệp yêu cầu cấp chứng chỉ.................................................................. 55 Hình 3.2: Chứng chỉ lưu khoá công khai của rootCA trong hệ thống MyCA.... 56 Hình 3.3: Hình 3.4: Chứng chỉ của người sử dụng ............................................................. 57 Hình 3.5: Mô hình mô phỏng hệ thống MyCA phân cấp hai tầng...................... 59 Hình 3.6: Mô hình quan hệ và trao đổi dữ liệu giữa các thành phần trong hệ thống 61

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

- 6 -

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 3.7: Mô hình đăng ký và cấp chứng chỉ số ................................................ 62 Giấy chứng nhận chứng chỉ số............................................................ 64 Hình 3.8: Hình 3.9: Mô hình huỷ bỏ chứng chỉ .................................................................. 64 Hình 3.10: Mô hình kết hợp hệ thống cung cấp chứng chỉ số cùng các giải pháp đảm bảo an toàn hệ thống mạng nội bộ .............................................. 67

- 7 -

MỞ ĐẦU

Trong một vài năm lại đây, hạ tầng truyền thông IT càng ngày càng được mở

rộng khi người sử dụng dựa trên nền tảng này để truyền thông và giao dịch với các

đồng nghiệp, các đối tác kinh doanh cũng như việc khách hàng dùng email trên các

mạng công cộng. Hầu hết các thông tin nhạy cảm và quan trọng được lưu trữ và trao

đổi dưới hình thức điện tử trong các cơ quan văn phòng, doanh nghiệp. Sự thay đổi

trong các hoạt động truyền thông này đồng nghĩa với việc cần phải có biện pháp bảo

vệ đơn vị, tổ chức, doanh nghiệp của mình trước các nguy cơ lừa đảo, can thiệp, tấn

công, phá hoại hoặc vô tình tiết lộ các thông tin đó. Cơ sở hạ tầng mã khoá công

khai (PKI - Public Key Infrastructure) cùng các tiêu chuẩn và công nghệ ứng dụng

của nó có thể được coi là một giải pháp tổng hợp và độc lập có thể sử dụng để giải

quyết vấn đề này.

PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừa mang

tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các chứng chỉ số hay ta

còn gọi là chứng thực điện tử (digital certificate) cũng như các khoá công cộng

(khoá công khai) và cá nhân (khoá riêng). Sáng kiến PKI ra đời năm 1995, khi mà

các chính phủ và các tổ chức công nghiệp xây dựng các tiêu chuẩn chung dựa trên

phương pháp mã hoá để hỗ trợ một hạ tầng bảo mật trên mạng Internet. Tại thời

điểm đó, mục tiêu được đặt ra là xây dựng một bộ tiêu chuẩn bảo mật tổng hợp

cùng các công cụ và lý thuyết cho phép người sử dụng cũng như các tổ chức (doanh

nghiệp hoặc phi lợi nhuận) có thể tạo lập, lưu trữ và trao đổi các thông tin một cách

an toàn trong phạm vi cá nhân và công cộng.

Cho 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 tuyệt vời này, các tiêu chuẩn cần phải được nghiên cứu

phá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

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Network (VPN), chính là kết quả của sáng kiến PKI. Một minh chứng là thuật toán

- 8 -

mã hoá phi đối xứng được xây dựng dựa trên phương pháp mã hoá và giải mã thông

tin sử dụng hai khoá mã: khoá công khai (public key) và khoá riêng (private key).

Trong trường hợp này, một người sử dụng có thể mã hoá tài liệu của mình với khoá

riêng và sau đó giải mã thông tin đó bằng khoá công khai. Nếu một văn bản chứa

các dữ liệu nhạy cảm và cần phải được truyền một cách bảo mật tới duy nhất một cá

nhân, thông thường người gửi mã hoá tài liệu đó bằng mã khoá riêng của mình và

người nhận sẽ giải mã sử dụng khoá công khai của người gửi. Khoá công khai này

có thể được gửi kèm theo tài liệu này hoặc có thể được gửi cho người nhận trước đó.

Mặt khác, do có khá nhiều thuật toán phi đối xứng nên các chuẩn công khai

hiện có thường xuyên được nghiên cứu cải tiến để phù hợp với các thuật toán này.

Hiện nay ở Việt Nam, việc nghiên cứu, ứng dụng và triển khai PKI nói chung và

dịch vụ cung cấp chứng chỉ số nói riêng là vấn đề còn mang tính thời sự. Bằng việc

sử dụng chứng chỉ và chữ ký số, những ứng dụng cho phép PKI đưa ra nhiều đặc

tính đảm bảo an toàn thông tin cho người sử dụng. Luận văn này được thực hiện với

mục đích tìm hiểu nghiên cứu về PKI, bao gồm các khái niệm tổng quan về mật mã,

chứng chỉ số, các khái niệm cơ sở về PKI, chức năng và các thành phần PKI. Luận

văn cũng tập trung vào việc tìm hiểu các mô hình tin cậy của PKI, ưu và nhược

điểm của các mô hình này; các dịch vụ, giao thức và chuẩn định dạng liên quan đến

việc xây dựng ứng dụng PKI, qua đó vận dụng để xây dựng một hệ thống cung cấp

chứng chỉ số có khả năng ứng dụng cho cơ quan công tác và một số đơn vị khác.

Với giới hạn những vấn đề tìm hiểu và nghiên cứu như trên, luận văn bao

gồm 3 chương:

Chương 1: Tổng quan về mật mã

Giới thiệu các khái niệm về hệ mật mã đối xứng, hệ mật mã phi đối xứng hay

còn được gọi là hệ mật mã khoá công khai; ưu và nhược điểm của các hệ mã này;

khái niệm về chữ ký số và hàm băm, sơ đồ chữ ký số được sử dụng trong hệ thống

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

thử nghiệm.

- 9 -

Chương 2: Chứng chỉ số và hạ tầng mã khoá công khai

Trình bày khái niệm chứng chỉ số và một số vấn đề liên quan; khái niệm

PKI, chức năng và các thành phần của PKI; các mô hình tin tưởng của PKI, ưu và

nhược điểm của các mô hình này.

Chương 3: Xây dựng hệ thống cung cấp chứng chỉ số thử nghiệm

Phân tích và xây dựng một hệ thống cung cấp chứng chỉ số theo mô hình,

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

chức năng và các chuẩn đã được trình bày trong chương 1 và chương 2.

- 10 -

CHƯƠNG 1

TỔNG QUAN VỀ MẬT MÃ

1.1 Giới thiệu chung

Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ khai

đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại.

Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên

thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh

vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự,

chính trị, ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung

chính của nó là để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một người

gửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng

và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật

và khôi phục lại văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do

văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài

có thể “lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn

A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được

là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung

này thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từ

bản mã mật. Khoá chung đó được gọi là khoá mật mã. Để thực hiện được một phép

mật mã, ta còn cần có một thuật toán biến bản rõ cùng với khoá mật mã thành bản

mã mật và một thuật toán ngược lại biến bản mật cùng với khoá mật mã thành bản

rõ. Các thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã.

Các thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được

giữ bí mật là khoá mật mã. Trong thực tiễn, có những hoạt động ngược lại với hoạt

động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

thường được gọi là mã thám hay phá khoá [2].

- 11 -

1.2 Khái niệm hệ mật mã

Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:

1. P là tập hữu hạn các các bản rõ có thể

2. C tập hữu hạn các bản mã có thể

3. K là tập hữu hạn các khoá có thể

4. E là tập các hàm lập mã

5. D là tập các hàm giải mã. Với mỗi k ∈ K, có một hàm lập mã

ek ∈ E, ek : P → C và một hàm giải mã dk∈ D, dk: C → P sao cho

Key k

Key k

Plaintext (X)

Plaintext (X)

Ciphertext (Y)

dk(ek(x)) = x , ∀ x ∈ P

E

D

Y = EK(X)

Hình 1.1: Quá trình mã hoá và giải mã

1.3 Hệ mật mã khoá đối xứng

Các phương pháp mật mã cổ điển đã được biết đến từ khoảng 4000 năm

trước. Một số kỹ thuật đã được những người Ai Cập sử dụng từ nhiều thế kỷ trước.

Những kỹ thuật này chủ yếu sử dụng hai phương pháp chính là: phép thay thế và

phép chuyển dịch. Trong phép thay thế, một chữ cái này được thay thế bởi chữ cái

khác và trong phép chuyển dịch, các chữ cái được sắp xếp theo một trật tự khác.

Hệ mã chuẩn DES được xây dựng tại Mỹ trong những năm 70 theo yêu cầu

của Văn phòng quốc gia về chuẩn (NBS) và được sự thẩm định của an ninh quốc

gia là một ví dụ về mật mã cổ điển. DES kết hợp cả hai phương pháp thay thế và

chuyển dịch. DES thực hiện mã hoá trên từng khối bản rõ là một xâu 64 bit, có khoá

là một xâu 56 bit và cho ra bản mã cũng là một xâu 64 bit. Hiện nay, DES và biến

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

thể của nó (3DES) vẫn được sử dụng thành công trong nhiều ứng dụng.

- 12 -

Trong các hệ mã đối xứng chỉ có một khoá được chia sẻ giữa các bên tham

gia liên lạc. Cứ mỗi lần truyền tin bảo mật, cả người gửi A và người nhận B cùng

thoả thuận trước với nhau một khoá chung K, sau đó người gửi dùng eK để lập mã

cho thông báo gửi đi và người nhận dùng dK để giải mã bản mật mã nhận được.

Người gửi và người nhận có cùng một khoá chung K, được giữ bí mật dùng cho cả

lập mã và giải mã. Những hệ mật mã cổ điển với cách sử dụng trên được gọi là mật

mã khoá đối xứng hay còn gọi là mật mã khoá bí mật.

Độ an toàn của hệ mật mã đối xứng phụ thuộc vào khoá. Nếu để lộ khoá thì

bất kỳ người nào cũng có thể mã hoá và giải mã thông điệp.

* Ưu và nhược điểm của hệ mật mã khoá đối xứng

Ưu điểm nổi bật của các hệ mật mã khoá đối xứng là việc xây dựng một hệ

mật mã có độ bảo mật cao khá dễ dàng về mặt lý thuyết. Nhưng như nếu không kể

đến việc cần có một nguồn sinh khoá ngẫu nhiên thì việc phân phối, lưu trữ bảo mật

và thoả thuận khoá là một vấn đề khó chấp nhận được trong mạng truyền thông

ngày nay. Trong một mạng có n người dùng, nếu cần khoá cho từng cặp thì cần

n(n+1)/2 khoá.

Để khắc phục hiện tượng không thể lưu trữ một khối lượng khoá quá lớn đáp

ứng được nhu cầu mã dịch, người ta xem xét đến việc sử dụng các hệ mật mã khối

với độ dài không lớn lắm như DES… hoặc các hệ mật mã dòng mà khoá được sinh

ra từ một nguồn giả ngẫu nhiên bằng thuật toán.

Mặc dù đã thực hiện việc mã hoá và giải mã bằng các hệ mật mã khối hay

bằng thuật toán sinh khoá như đã nêu ở trên thì vấn đề phân phối và thoả thuận khoá

vẫn phải được thực hiện. Như vậy phân phối và thoả thuận khoá là một vấn đề chưa

thể được giải quyết trong các hệ mật mã khoá đối xứng.

1.4 Hệ mật mã khoá công khai

Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối

xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công

khai và một phương pháp trao đổi công khai để tạo ra một khoá bí mật chung mà

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán

- 13 -

tính “logarit rời rạc”). Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã

phi đối xứng sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (public

key) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key). Trong

hệ mật này, khoá mã hoá khác với khoá giải mã. Về mặt toán học thì từ khoá công

rất khó tính được khoá riêng. Biết được khoá này không dễ dàng tìm được khoá kia.

Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai. Một

người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người

nào có đúng khoá giải mã mới có khả năng xem được bản rõ.

Người gửi A sẽ mã hoá thông điệp bằng khóa công của người nhận và người

nhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình.

Directory of Public Keys

Quá trình này được mô tả trong hình 1.2 và 1.3.

ALICE

Public Key P of Bob

Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P

BOB

Private Key of Bob

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 1.3: Giải mã thông điệp sử dụng khoá riêng của người nhận

- 14 -

Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA, hệ

ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên trong những

năm gần đây là hệ đường cong Elliptic. Trong số các hệ mật mã trên thì hệ RSA là

hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc

thực thi mật mã khoá công khai.

Hệ mật mã RSA, do Rivest, Shamir và Adleman [12] tìm ra, đã được công

bố lần đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American. Hệ mật mã

RSA được sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác

thực dữ liệu số. Tính bảo mật và an toàn của chúng được bảo đảm bằng độ phức tạp

của một bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số

nguyên tố. Hệ mật mã RSA được mô tả như hình 1.4.

Cho n = p*q với p,q là số nguyên tố lớn . Đặt P = C = Zn

Chọn b nguyên tố cùng nhau với φ(n), φ(n) = (p-1)(q-1)

Ta định nghĩa K = {(n, b, a): a*b ≡ 1 mod φ(n)}

trong đó (n,b) là công khai, a là bí mật

Với mỗi K = (n, b, a), mỗi x ∈ P, y ∈ C, định nghĩa:

Hàm mã hoá:

y = ek(x) = xb mod n

Hàm giải mã:

dk (x) = ya mod n

Hình 1.4: Sơ đồ hệ mật mã RSA

Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng”

trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triễn khai cho thấy tốc

độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm hơn rất

nhiều so với hệ mã hoá đối xứng. Ví dụ, để đạt được độ an toàn như các hệ mã đối

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một văn bản lâu hơn

- 15 -

gấp hàng ngàn lần. Do đó, thay bằng việc mã hoá văn bản có kích thước lớn bằng

lược đồ khoá công khai thì văn bản này sẽ được mã hoá bằng một hệ mã đối xứng

có tốc độ cao như DES, IDEA,…sau đó khoá được sử dụng trong hệ mã đối xứng sẽ

được mã hoá sử dụng mật mã khoá công khai. Phương pháp này rất khả thi trong

việc mã và giải mã những văn bản có kích thước lớn như được mô tả trong hình 1.5

Public Key P of Bob

Directory of Public Keys

Secret Key S

và 1.6.

Symmetric Key S

Private Key P of Bob

Hình 1.5: Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 1.6: Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S

- 16 -

* Ưu và nhược điểm của hệ mật mã khoá công khai

Vấn đề còn tồn đọng của hệ mật mã khoá đối xứng được giải quyết nhờ hệ

mật mã khoá công khai. Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đề

xuất, đánh giá các hệ mật mã công khai. Nhưng do bản thân các hệ mật mã khoá

công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ

mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhược điểm này làm

cho các hệ mật mã khoá công khai khó được dùng một cách độc lập.

Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc

xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khoá mã công

khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khoá

được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể

bị lợi dụng. Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã

khoá công khai. Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như

Kerberos, X.509… Một ưu điểm nữa của các hệ mật mã khoá công khai là các ứng

dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký

để bảo đảm tính toàn vẹn của một văn bản được giải quyết.

1.5 Chữ ký số

Mật mã khoá công khai có thể được sử dụng theo nhiều cách khác nhau. Chữ

ký số là một ví dụ minh chứng cho việc đảm bảo xác thực người dùng và toàn vẹn

dữ liệu. Nếu người gửi A mã hoá thông điệp hay tài liệu với khoá riêng của mình thì

bất kỳ ai cũng có thể giải mã thông điệp với khoá công của A. Do đó, người nhận có

thể chắc chắn rằng thông điệp mình nhận chỉ có thể do A mã vì chỉ A mới có khoá

riêng của mình. Quá trình mã hoá thông điệp với khoá riêng của người gửi gọi là

quá trình “ký số”.

Trong thực tế, quá trình ký số thường khó hơn. Thay bằng việc mã bản

thông điệp gốc với khoá riêng của người gửi thì chỉ có bản đại diện thông điệp (bản

băm) có độ dài cố định được mã hoá với khoá riêng của người gửi và bản băm đã

được mã hoá này được gắn vào với thông điệp gốc. Người nhận B sau khi nhận

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

được thông điệp đầu tiên sẽ giải mã bản băm với khoá công của người gửi, sau đó

- 17 -

băm thông điệp đi kèm bằng thuật toán băm tương ứng với thuật toán băm người

gửi đã sử dụng. B so sánh hai giá trị băm nếu giống nhau thì chắc chắn rằng thông

điệp A gửi cho B còn nguyên vẹn, đồng thời xác thực được người gửi thông tin là ai.

Tính toàn vẹn của thông điệp được đảm bảo vì chỉ thay đổi một bit trong

thông điệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau. Tính xác thực của người

gửi cũng được đảm bảo vì chỉ có người gửi A mới có khoá riêng để mã bản băm.

Chữ ký số cũng chứng minh được tính chống chối bỏ bản gốc vì chỉ có A mới có

khoá riêng dùng để ký số.

Sơ đồ chữ ký được định nghĩa như sau:

Sơ đồ chữ ký là một bộ năm (P, A, K, S, V), trong đó:

1. P là một tập hữu hạn các văn bản có thể

2. A là một tập hữu hạn các chữ ký có thể

3. K là một tập hữu hạn các khoá có thể

4. S là tập các thuật toán ký

5. V là tập các thuật toán kiểm thử

6. Với mỗi k ∈ K, có một thuật toán ký sig k ∈ S, sig k: P → A và một thuật

toán kiểm thử ver k ∈ V, ver k: P x A → {đúng, sai}, thoả mãn điều kiện

sau đây với mọi x ∈ P, y ∈ A:

ver k (x,y) = đúng, nếu y = sig k(x)

sai, nếu y ≠ sig k(x)

RSA cũng là thuật toán được dùng nhiều cho mục đích ký số. Sơ đồ chữ ký

RSA được mô tả như trong hình 1.7 [3]. Ngoài ra, còn có một số thuật toán công

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

khai khác được dùng để ký số, ví dụ như chuẩn chữ ký số DSS.

- 18 -

Cho n = p*q với p,q là số nguyên tố lớn . Đặt P = A = Zn

K = {(n, p, q, a, b)/ n = p*q, a*b ≡ 1 mod φ(n)}

trong đó (n,b) là công khai, (a, p, q) là bí mật

Với mỗi K = (n, p, q, a, b), mỗi x ∈ P, ta định nghĩa:

y = sigK (x) = xa mod n, y ∈ A verK (x, y) = đúng ⇔ x ≡ yb mod n

Hình 1.7: Sơ đồ chữ ký RSA

Quá trình ký và kiểm tra chữ ký được mô tả trong hình 1.8 và hình 1.9

Giả sử A muốn gửi cho B thông điệp x. A thực hiện các bước sau:

1. A băm thông điệp x (Hình 1.8 a), thu được bản đại diện z = h(x) – có kích

thước cố định 128 bit hoặc 160 bit.

2. A ký số trên bản đại diện z (Hình 1.8 b), bằng khóa bí mật của mình, thu

được bản ký số y = sigK (z).

§é dµi tuú ý

§é dµi cè ®Þnh 128 víi MD hoÆc 160 bit víi SHA

3. A gửi (x, y) cho B (Hình 1.8 c).

B¶n b¨m (v¨n b¶n ®¹i diÖn) z = h(x)

B¨m th«ng ®iÖp (sö dông thuËt to¸n MD hoÆc SHA) h(x)

Th«ng ®iÖp (b¶n râ) x (v¨n b¶n, ©m thanh, h×nh ¶nh…)

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 1.8 a: Băm thông điệp.

- 19 -

B¶n ký sè y = sig K(z)

B¶n b¨m (v¨n b¶n ®¹i diÖn) z

Ký sè (sö dông c¸c s¬ ®å ký sè RSA, Elgamal, DSS) sig K(z)

Kho¸ bÝ mËt cña ng−êi göi

Hình 1.8 b: Ký trên bản băm.

Th«ng ®iÖp, B¶n ký sè (x, y)

Ng−êi göi (A)

Ng−êi nhËn (B)

Hình 1.8 c: Truyền dữ liệu thông tin cần gửi.

Hình 1.8: Sơ đồ mô tả các công đoạn người A làm trước khi gửi thông điệp cho người B (sử dụng hàm băm rồi ký số)

Khi B nhận được (x, y). B thực hiện các bước sau:

1. B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có

phải được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóa

công khai của A, được z. (Hình 1.9 a)

2. B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng – để

băm thông điệp x đi kèm, nhận được h(x). (Hình 1.9 b)

3. B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng thông

điệp x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thực

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

được người gửi thông tin là ai. (Hình 1.9 c)

- 20 -

y = sig K(z)

True

B¶n ký sè y

X¸c minh ch÷ ký verK(y, z)

False

y sig K(z)

Kho¸ c«ng khai cña ng−êi A

Hình 1.9 a: Xác minh chữ ký.

Th«ng ®iÖp (b¶n râ) x

B¶n b¨m (v¨n b¶n ®¹i diÖn) h(x)

B¨m th«ng ®iÖp (sö dông thuËt to¸n MD hoÆc SHA) h(x)

Hình 1.9 b: Tiến hành băm thông điệp x đi kèm.

z = h(x)

t o µ n v Ñ n

Ö p

T h « n g ® i

So s¸nh z vµ h(x)

Th«ng ®iÖp ®· bÞ thay ®æi

z h(x)

Hình 1.9 c: Kiểm tra tính toàn vẹn của thông điệp

Hình 1.9: Sơ đồ mô tả các công đoạn kiểm tra chữ ký sau khi người B nhận

được thông điệp

1.6 Hàm băm

Việc sử dụng các hệ mật mã và sơ đồ chữ ký số thường là mã hóa và ký số

trên từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung lượng

của thông tin. Thêm vào đó có thể xảy ra trường hợp: với nhiều bức thông điệp đầu

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau (có thể khác nhau) thì

- 21 -

cho ra kết quả bản mã, bản ký số giống nhau (ánh xạ N-1: nhiều – một), như

hình 1.10. Điều này sẽ dẫn đến một số rắc rối về sau cho việc xác thực thông tin.

Th«ng ®iÖp x

Th«ng ®iÖp y

HÖ mËt m· hay S¬ ®å ký sè

B¶n m· hay B¶n ký sè

Th«ng ®iÖp z

Nguån

§Ých

Hình 1.10: Nhiều thông điệp nguồn cho cùng 1 kết quả đích sau mã hoá/ ký số

Các sơ đồ ký số thường chỉ được sử dụng để ký các bức thông điệp (thông

tin) có kích thước nhỏ và sau khi ký, bản ký số có kích thước gấp đôi bản thông

điệp gốc – ví dụ với sơ đồ chữ ký chuẩn DSS ký trên các bức thông điệp có kích

thước 160 bit, bản ký số sẽ có kích thước 320 bit. Trong khi đó trên thực tế, ta cần

phải ký các thông điệp có kích thước lớn hơn nhiều, chẳng hạn vài chục MegaByte.

Hơn nữa, để đáp ứng yêu cầu xác thực sau khi thông tin đến người nhận, dữ liệu

truyền qua mạng không chỉ là bản thông điệp gốc, mà còn bao gồm cả bản ký số (có

dung lượng gấp đôi dung lượng bản thông điệp gốc). Một cách đơn giản để giải

quyết vấn đề trên (với thông điệp có kích thước lớn) này là chặt thông điệp thành

nhiều đoạn 160 bit, sau đó ký lên các đoạn đó độc lập nhau. Nhưng, sử dụng biện

pháp này sẽ có một số vấn đề gặp phải trong việc tạo ra các chữ ký số:

- Thứ nhất: với một thông điệp có kích thước a, thì sau khi ký kích thước của

chữ ký sẽ là 2a (trong trường hợp sử dụng DSS).

- Thứ hai: với các chữ ký “an toàn” thì tốc độ chậm vì chúng dùng nhiều

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

phép tính số học phức tạp như số mũ modulo.

- 22 -

- Thứ ba: vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung của

thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có

thể bị mất mát, trong khi người nhận cần phải xác minh lại thông điệp. Do đó, ta

cần phải bảo đảm tính toàn vẹn của thông điệp.

Giải pháp cho các vấn đề vướng mắc đến chữ ký số là dùng hàm băm để trợ

giúp cho việc ký số.

Hàm băm - hiểu theo một nghĩa đơn giản là hàm cho tương ứng một mảng

dữ liệu lớn với một mảng dữ liệu nhỏ hơn - được sử dụng rộng rãi trong nhiều ứng

dụng khác nhau của tin học, không chỉ thuộc phạm vi mật mã học [1].

Hàm băm được đề cập đến trong phạm vi luận văn là hàm băm một chiều, có

tác dụng trợ giúp cho các sơ đồ ký số nhằm làm giảm dung lượng của dữ liệu cần

thiết để truyền qua mạng. Hàm băm ở đây được hiểu là các thuật toán không sử

dụng khoá để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hoá”), nó có

nhiệm vụ băm thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi

đưa ra một bản băm – văn bản đại diện – có kích thước cố định. Giá trị của hàm

băm là duy nhất và không thể suy ngược lại được nội dung thông điệp từ giá trị băm

này. Hàm băm một chiều h có một số đặc tính quan trọng sau:

- Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất.

- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp x’

thì h(x’) ≠ h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của

thông điệp thì giá trị băm cũng vẫn thay đổi. Điều này có nghĩa là: hai thông điệp

hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau.

- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm. Nghĩa

là với thông điệp x thì dễ dàng tính được z = h(x), nhưng lại không thể (thực chất là

khó) suy ngược lại được x nếu chỉ biết giá trị hàm băm h(x).

Một số thuật toán băm được biết đến nhiều là hàm băm dòng và hàm băm

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

chuẩn như: [MD2], [MD4], [MD5], [SHA-1]…

- 23 -

CHƯƠNG 2

CHỨNG CHỈ SỐ VÀ HẠ TẦNG MÃ KHOÁ CÔNG KHAI

Mật mã khoá công khai cho đến nay được xem là giải pháp tốt nhất để đảm

bảo được các yêu cầu về an toàn thông tin mạng: “bảo mật”, “toàn vẹn”, “xác thực”

và “chống chối bỏ”. Mặc dù vẫn còn mới khi so sánh với các phương pháp mã cổ

điển nhưng mật mã khoá công khai đã nhận được sự tin cậy rộng rãi của thế giới

Internet vì những công cụ có khả năng phát triển cho vấn đề quản lý khoá.

Như đã đề cập ở trên, vấn đề chính của hệ mã khoá đối xứng là vấn đề quản

lý khoá và để giải quyết vấn đề này hệ mã khoá công khai đã được đưa ra như một

giải pháp. Trong hệ thống mật mã khoá công khai, khoá riêng (khoá bí mật) được

người dùng giữ bí mật trong khi khoá công khai với tên của người sở hữu tương

ứng lại được công bố công khai. Đối với hệ thống như thế này, ta cần xác định và

trả lời một số câu hỏi như:

- Ai sẽ tạo ra cặp khoá công khai – bí mật?

- Dữ liệu sẽ được lưu dưới định dạng như thế nào trong hệ thống lưu trữ

(khoá công, định danh của người sở hữu và các thông tin khác)?

- Có cơ chế nào để giữ cho thông tin không bị thay đổi trên hệ thống lưu trữ?

- Làm thế nào để đảm bảo việc gắn kết giữa khoá công và định danh của thực

thể yêu cầu có khoá công?

- Làm thế nào để người sử dụng có thể truy cập được đến nơi lưu trữ?

- Làm thế nào người sử dụng nhận biết được có sự thay đổi trong dữ liệu

đang được lưu trên hệ thống lưu trữ?

- Điều gì sẽ xảy với khoá công khai nếu khoá riêng tương ứng bị xâm hại?

- Có một chính sách nào cho tất cả những vấn đề nêu trên không?

Để trả lời cho những câu hỏi trên có một giải pháp là sử dụng hạ tầng khoá

công khai - PKI.

Cho đến nay có nhiều định nghĩa về PKI, nhưng chưa định nghĩa nào được

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

công nhận chính thức. Có một số định nghĩa về PKI như sau:

- 24 -

“PKI là một tập các phần cứng, phần mềm, con người, chính sách và các thủ

tục cần thiết để tạo, quản lý, lưu trữ, phân phối và thu hồi chứng chỉ khoá công khai dựa trên mật mã khoá công khai”[25].

“PKI là hạ tầng cơ sở có thể hỗ trợ quản lý khoá công khai để hỗ trợ các dịch

vụ xác thực, mã hoá, toàn vẹn hay chống chối bỏ” [9].

“PKI là hạ tầng cơ sở bảo mật có những dịch vụ được triển khai và chuyển

giao sử dụng công nghệ và khái niệm khoá công khai” [4].

Nhìn chung, PKI có thể được định nghĩa như một hạ tầng cơ sở sử dụng công

nghệ thông tin để cung cấp dịch vụ mã hoá khoá công khai và chữ ký số. Một mục

đích quan trọng khác của PKI là để quản lý khoá và chứng chỉ được sử dụng trong

hệ thống.

Chứng chỉ là cấu trúc dữ liệu đặc biệt, gắn kết khoá công khai với chủ sở hữu

của nó. Việc gắn kết này được đảm bảo bằng chữ ký số của nơi được uỷ quyền cấp

chứng chỉ.

2.1. Chứng chỉ số (digital certificates)

2.1.1 Giới thiệu

Như đã nói đến ở trên, mật mã khoá công khai sử dụng hai khoá khác nhau

(khoá công và khoá riêng) để đảm bảo yêu cầu “bí mật, xác thực, toàn vẹn và chống

chối bỏ ” của những dịch vụ an toàn. Một đặc tính quan trọng khác của lược đồ

khoá công khai là phần khoá công khai được phân phối một cách tự do. Ngoài ra,

trong hạ tầng mã khoá công khai thì khoá công ngoài việc phải luôn sẵn có để mọi

người trong hệ thống có thể sử dụng còn phải được đảm bảo về tính toàn vẹn.

Khoá công được đặt ở vị trí công khai trong một định dạng đặc biệt. Định

dạng này được gọi là chứng chỉ. Chứng chỉ (thực ra là chứng chỉ khoá công – public

key certificate (PKC)) là sự gắn kết giữa khoá công của thực thể và một hoặc nhiều

thuộc tính liên quan đến thực thể [8]. Thực thể có thể là người, thiết bị phần cứng

như máy tính, router hay một phần mềm xử lý. Một chứng chỉ khoá công (PKC)

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

được người cấp ký bằng chữ ký có hiệu lực đưa ra một bảo bảm đầy đủ về sự gắn

- 25 -

kết giữa khoá công, thực thể sở hữu khoá công này và tập các thuộc tính khác được

viết trong chứng chỉ.

PKC còn được gọi là “digital certificate”- chứng chỉ số, “digital ID”, hay đơn

giản là chứng chỉ.

Hình 2.1 minh hoạ một chứng chỉ số do hệ thống MyCA cấp.

Hình 2.1: Chứng chỉ số

Chứng chỉ chứa những thông tin cần thiết như khóa công khai, chủ thể

(người sở hữu) khoá công, người cấp và một số thông tin khác. Tính hợp lệ của các

thông tin được đảm bảo bằng chữ ký số của người cấp chứng chỉ. Người nào muốn

sử dụng chứng chỉ trước hết sẽ kiểm tra chữ ký số trong chứng chỉ. Nếu đó là chữ

ký hợp lệ thì sau đó có thể sử dụng chứng chỉ theo mục đích mong muốn.

Có nhiều loại chứng chỉ, một trong số đó là:

- Chứng chỉ khoá công X.509

- Chứng chỉ khoá công đơn giản (Simple Public Key Certificates - SPKC)

- Chứng chỉ Pretty Good Privacy (PGP)

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

- 26 -

- Chứng chỉ thuộc tính (Attribute Certificates - AC)

Tất cả các loại chứng chỉ này đều có cấu trúc định dạng riêng. Hiện nay

chứng chỉ khoá công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống

PKI. Hệ thống chương trình cấp chứng chỉ số thử nghiệm cũng sử dụng định dạng

chứng chỉ theo X.509, nên luận văn này tập trung vào xem xét chi tiết chứng chỉ

công khai X.509. Trong luận văn, thuật ngữ chứng chỉ “certificate” được sử dụng

đồng nghĩa với chứng chỉ khoá công khai X.509 v3.

2.1.2 Chứng chỉ khoá công khai X.509

Chứng chỉ X.509 v3 là định dạng chứng chỉ được sử dụng phổ biến và được

hầu hết các nhà cung cấp sản phẩm PKI triển khai.

Chứng chỉ khoá công khai X.509 được Hội viễn thông quốc tế (ITU) đưa ra

lần đầu tiên năm 1988 như là một bộ phận của dịch vụ thư mục X.500.

Chứng chỉ gồm 2 phần. Phần đầu là những trường cơ bản cần thiết phải có

trong chứng chỉ. Phần thứ hai chứa thêm một số trường phụ, những trường phụ này

được gọi là trường mở rộng dùng để xác định và đáp ứng những yêu cầu bổ sung

của hệ thống. Khuôn dạng của chứng chỉ X.509 được chỉ ra như trong hình 2.2.

Version number

Serial number

Signature

Issuer

Validity period

Subject

Subject

public key Information

Issuer unique identifier

Subject unique identifier

Extensions

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 2.2: Khuôn dạng chứng chỉ X.509

- 27 -

a. Những trường cơ bản của chứng chỉ X.509

- Version: xác định số phiên bản của chứng chỉ.

- Certificate Serial Number: do CA gán, là định danh duy nhất của chứng

chỉ.

- Signature Algorithm ID: chỉ ra thuật toán CA sử dụng để ký số chứng chỉ.

Có thể là thuật toán RSA hay DSA…

- Issuer: chỉ ra CA cấp và ký chứng chỉ.

- Validity Period: khoảng thời gian chứng chỉ có hiệu lực. Trường này xác

định thời gian chứng chỉ bắt đầu có hiệu lực và thời điểm hết hạn.

- Subject: xác định thực thể mà khoá công khai của thực thể này được xác

nhận. Tên của subject phải duy nhất đối với mỗi thực thể CA xác nhận.

- Subject public key information: chứa khoá công khai và những tham số

liên quan; xác định thuật toán (ví dụ RSA hay DSA) được sử dụng cùng với

khoá.

- Issuer Unique ID (Optional): là trường không bắt buộc, trường này cho

phép sử dụng lại tên người cấp. Trường này hiếm được sử dụng trong triển

khai thực tế.

- Subject Unique ID (Optional): là trường tuỳ chọn cho phép sử dụng lại tên

của subject khi quá hạn. Trường này cũng ít được sử dụng.

- Extensions (Optional): chỉ có trong chứng chỉ v.3.

- Certification Authority’s Digital Signature: chữ ký số của CA được tính từ

những thông tin trên chứng chỉ với khoá riêng và thuật toán ký số được chỉ ra

trong trường Signature Algorithm Identifier của chứng chỉ.

Tính toàn vẹn của chứng chỉ được đảm bảo bằng chữ ký số của CA trên

chứng chỉ. Khoá công khai của CA được phân phối đến người sử dụng chứng chỉ

theo một số cơ chế bảo mật trước khi thực hiện các thao tác PKI. Người sử dụng

kiểm tra hiệu lực của chứng chỉ được cấp với chữ ký số của CA và khoá công khai

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

của CA.

- 28 -

b. Những trường mở rộng của chứng chỉ X.509

Phần mở rộng là những thông tin về các thuộc tính cần thiết được đưa vào để

gắn những thuộc tính này với người sử dụng hay khoá công. Những thông tin trong

phần mở rộng thường được dùng để quản lý xác thực phân cấp, chính sách chứng

chỉ, thông tin về chứng chỉ bị thu hồi…Nó cũng có thể được sử dụng để định nghĩa

phần mở rộng riêng chứa những thông tin đặc trưng cho cộng đồng nhất định. Mỗi

trường mở rộng trong chứng chỉ được thiết kế với cờ “critical” hoặc “uncritical”.

- Authority Key Indentifier: chứa ID khoá công khai của CA, ID này là duy

nhất và được dùng để kiểm tra chữ ký số trên chứng chỉ. Nó cũng được sử dụng để

phân biệt giữa các cặp khoá do một CA sử dụng (trong trường hợp nếu CA có nhiều

hơn một khoá công khai). Trường này được sử dụng cho tất cả các chứng chỉ tự ký

số (CA - certificates).

- Subject Key Identifier: chứa ID khoá công khai có trong chứng chỉ và

được sử dụng để phân biệt giữa các khoá nếu như có nhiều khoá được gắn vào trong

cùng chứng chỉ của người sử dụng (Nếu chủ thể có nhiều hơn một khoá công khai).

- Key Usage: chứa một chuỗi bit được sử dụng để xác định (hoặc hạn chế)

chức năng hoặc dịch vụ được hỗ trợ qua việc sử dụng khoá công khai trong chứng chỉ.

- Extended Key Usage: chứa một hoặc nhiều OIDs (định danh đối tượng –

Object Identifier) để xác định cụ thể việc sử dụng khoá công trong chứng chỉ. Các

giá trị có thể là : (1) xác thực server TLS, (2) xác thực client TLS, (3) Ký Mã, (4)

bảo mật e-mail , (5) Tem thời gian.

- CRL Distribution Point: chỉ ra vị trí của CRL tức là nơi hiện có thông tin

thu hồi chứng chỉ. Nó có thể là URI (Uniform Resource Indicator), địa chỉ của

X.500 hoặc LDAP server.

- Private Key Usage Period: trường này cho biết thời gian sử dụng của khoá

riêng gắn với khóa công khai trong chứng chỉ.

- Certificate Policies: trường này chỉ ra dãy các chính sách OIDs gắn với

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

việc cấp và sử dụng chứng chỉ.

- 29 -

- Policy Mappings: trường này chỉ ra chính sách xác thực tương đương giữa

hai miền CA. Nó được sử dụng trong việc thiết lập xác thực chéo và kiểm tra đường

dẫn chứng chỉ. Trường này chỉ có trong chứng chỉ CA.

- Subject Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người

sở hữu chứng chỉ. Những giá trị có thể là: địa chỉ e-mail, địa chỉ IP, địa chỉ URI…

- Issuer Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người

cấp chứng chỉ.

- Subject Directory Attributes: trường này chỉ ra dãy các thuộc tính gắn với

người sở hữu chứng chỉ. Trường mở rộng này không được sử dụng rộng rãi. Nó

được dùng để chứa những thông tin liên quan đến đặc quyền.

- Basic Constraints Field: trường này cho biết đây có phải là chứng chỉ CA

hay không bằng cách thiết lập giá trị logic (true). Trường này chỉ có trong chứng chỉ CA.

Chứng chỉ CA dùng để thực hiện một số chức năng. Chứng chỉ này có thể ở

một trong hai dạng. Nếu CA tạo ra chứng chỉ để tự sử dụng, chứng chỉ này được

gọi là chứng chỉ CA tự ký. Khi một CA mới được thiết lập, CA tạo ra một chứng

chỉ CA tự ký để ký lên chứng chỉ của người sử dụng cuối trong hệ thống. Và dạng

thứ hai là CA cấp chứng chỉ cho những CA khác trong hệ thống.

- Path Length Constraint: trường này chỉ ra số độ dài tối đa của đường dẫn

chứng chỉ có thể được thiết lập. Giá trị “zero” chỉ ra rằng CA chỉ có thể cấp chứng

chỉ cho thực thể cuối , không cấp chứng chỉ cho những CA khác. (Trường này chỉ

có trong chứng chỉ của CA).

- Name Constrainsts: được dùng để bao gồm hoặc loại trừ các nhánh trong

những miền khác nhau trong khi thiết lập môi trường tin tưởng giữa các miền PKI.

- Policy Constraints: được dùng để bao gồm hoặc loại trừ một số chính

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

sách chứng chỉ trong khi thiết lập môi trường tin tưởng giữa các miền PKI.

- 30 -

Hình 2.3 là nội dung chi tiết một chứng chỉ do hệ thống MyCA cấp.

Hình 2.3: Nội dung chi tiết của chứng chỉ

2.1.3 Thu hồi chứng chỉ

Trong một số trường hợp như khoá bị xâm hại, hoặc người sở hữu chứng chỉ

thay đổi vị trí, cơ quan…thì chứng chỉ đã được cấp không có hiệu lực. Do đó, cần

phải có một cơ chế cho phép người sử dụng chứng chỉ kiểm tra được trạng thái thu

hồi chứng chỉ. X.509 cho phép kiểm tra chứng chỉ trong các trường hợp sau:

- Chứng chỉ không bị thu hồi

- Chứng chỉ đã bị CA cấp thu hồi

- Chứng chỉ do một tổ chức có thẩm quyền mà CA uỷ thác có trách nhiệm thu

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

hồi chứng chỉ thu hồi

- 31 -

Cơ chế thu hồi X.509 xác định là sử dụng danh sách thu hồi chứng chỉ

(CRLs). X.509 đưa ra sự phân biệt giữa ngày, thời gian chứng chỉ bị CA thu hồi và

ngày, thời gian trạng thái thu hồi được công bố đầu tiên. Ngày thu hồi thực sự được

ghi cùng với đầu vào chứng chỉ trong CRL. Ngày thông báo thu hồi được xác định

trong header của CRL khi nó được công bố. Vị trí của thông tin thu hồi có thể khác

nhau tuỳ theo CA khác nhau. Bản thân chứng chỉ có thể chứa con trỏ đến nơi thông

tin thu hồi được xác định vị trí. Người sử dụng chứng chỉ có thể biết thư mục, kho

lưu trữ hay cơ chế để lấy được thông tin thu hồi dựa trên những thông tin cấu hình

được thiết lập trong quá trình khởi sinh.

Để duy trì tính nhất quán và khả năng kiểm tra, CA yêu cầu:

- Duy trì bản ghi kiểm tra chứng chỉ thu hồi

- Cung cấp thông tin trạng thái thu hồi

- Công bố CRLs khi CRL là danh sách trống

2.1.4 Chính sách của chứng chỉ

Như được giới thiệu trong phần trên, một số mở rộng liên quan đến chính

sách có trong chứng chỉ. Những mở rộng liên quan đến chính sách này được sử

dụng trong khi thiết lập xác thực chéo giữa các miền PKI. Một chính sách chứng chỉ

trong X.509 được định nghĩa là “tên của tập các qui tắc chỉ ra khả năng có thể sử

dụng của chứng chỉ cho một tập thể đặc thù và một lớp ứng dụng với những yêu cầu

bảo mật chung” [9].

Chính sách có định danh duy nhất (được biết đến như định danh đối tượng

hay OID) và định danh này được đăng ký để người cấp và người sử dụng chứng chỉ

có thể nhận ra và tham chiếu đến. Một chứng chỉ có thể được cấp theo nhiều chính

sách. Một số có thể là thủ tục và mô tả mức đảm bảo gắn với việc tạo và quản lý

chứng chỉ. Những chính sách khác có thể là kỹ thuật và mô tả mức đảm bảo gắn với

an toàn của hệ thống được sử dụng để tạo chứng chỉ hay nơi lưu trữ khoá [6].

Một chính sách chứng chỉ cũng có thể được hiểu là việc giải thích những yêu

cầu và giới hạn liên quan đến việc sử dụng chứng chỉ được công bố theo những

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

chính sách này. Chính sách chứng chỉ - Certificate Policies (CP) được chứa trong

- 32 -

trường mở rộng chuẩn của chứng chỉ X.509. Bằng việc kiểm tra trường này trong

chứng chỉ, hệ thống sử dụng chứng chỉ có thể xác định được một chứng chỉ cụ thể

có thích hợp cho mục đích sử dụng hay không.

Một thuật ngữ chuyên môn khác “Certificate Practice Statement (CPS)”

được sử dụng để mô tả chi tiết những thủ tục hoạt động bên trong của CA và PKI

cấp chứng chỉ với chính sách chứng chỉ đã qui định.

Chính sách chứng chỉ đặc biệt quan trọng khi đưa ra quyết định để xác nhận

chéo hai PKI khác nhau.

2.1.5 Công bố và gửi thông báo thu hồi chứng chỉ

Thông thường chứng chỉ sẽ hợp lệ trong khoảng thời gian có hiệu lực.

Nhưng trong một số trường hợp chứng chỉ lại không hợp lệ trước thời gian hết hạn,

ví dụ như:

- Khoá riêng của chủ thể bị xâm phạm .

- Thông tin chứa trong chứng chỉ bị thay đổi

- Khoá riêng của CA cấp chứng chỉ bị xâm phạm

Trong những trường hợp này cần có một cơ chế để thông báo đến những

người sử dụng khác Một trong những phương pháp để thông báo đến người sử dụng

về trạng thái của chứng chỉ là công bố CRLs định kỳ hoặc khi cần thiết. Ngoài ra,

có một số cách lựa chọn khác để thông báo đến người sử dụng như dùng phương

pháp trực tuyến Online Certificate Status Protocol [18].

a. Certificate Revocation Lists (CRLs)

CRLs là cấu trúc dữ liệu được ký như chứng chỉ người sử dụng. CRLs chứa

danh sách các chứng chỉ đã bị thu hồi và những thông tin cần thiết khác của người

sử dụng. CRL thường do một CA cấp. Tuy nhiên CRL cũng có thể được sử dụng để

cung cấp thông tin cho nhiều CA nếu nó được định nghĩa như một CRL gián tiếp.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Những thông tin này được chứa trong trường mở rộng CRL Scope.

- 33 -

Hình 2.4 là khuôn dạng danh sách chứng chỉ bị thu hồi.

Version number

Signature

Issuer

This update

Next update

User certificate Date of

serial number revocation

Revocation reason

User certificate Date of

serial number revocation

Revocation reason

CRL extensions

Hình 2.4: Khuôn dạng danh sách chứng chỉ bị thu hồi

Trong đó:

- Version number: chỉ ra phiên bản của CRL.

- Signature: nhận biết loại hàm băm và thuật toán ký được sử dụng để ký

danh sách thu hồi CRL.

- Issuer: tên của thực thể cấp và ký CRL.

- This Update: chỉ ra ngày và thời gian CRL được công bố.

- Next Update: chỉ ra ngày và thời gian danh sách thu hồi kế tiếp được cấp.

- List of revoked certificates: chứa danh sách cùng với serial của những

chứng chỉ bị thu hồi.

Những chứng chỉ đã bị CA thu hồi được ghi vào danh sách theo thứ tự của

revokedCertificates. Mỗi đầu vào nhận biết chứng chỉ thông qua số serial và ngày

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

thu hồi trên đó có ghi rõ thời gian và ngày khi chứng chỉ bị CA thu hồi.

- 34 -

b. Authority Revocation List (ARLs)

ARL là một CRL đặc biệt chứa thông tin thu hồi về chứng chỉ CA. ARLs

không chứa chứng chỉ của người sử dụng cuối. Những thay đổi thông thường trong

ARL thường hiếm khi xảy ra bởi vì chứng chỉ của CA chỉ bị thu hồi khi khoá riêng

của CA bị xâm hại và đó lại là trường hợp không thường xảy ra. Nếu chứng chỉ

chéo bị thu hồi thì người cấp chứng chỉ chéo này sẽ công bố một ARL mới để thông

báo với tất cả các thực thể khác về tình huống này. ARLs được sử dụng chủ yếu

trong quá trình thẩm tra đường dẫn chứng chỉ nếu môi trường tin cậy bao gồm CA

có chứng chỉ xác thực chéo.

c. Cơ chế truy vấn On-line (On-line Query Mechanisms)

CRLs và ARLs giúp người sử dụng cuối nhận biết được về tình trạng thu hồi

chứng chỉ. Nhưng có một vấn đề nảy sinh là điều gì sẽ xảy ra nếu CA thu hồi chứng

chỉ ngay sau khi vừa công bố CRL. Không có người sử dụng nào nhận biết được về

việc thu hồi này đến khi một CRL mới được thông báo.

Một lược đồ khác để kiểm soát được trạng thái của chứng chỉ do IETF phát

triển là OCSP (Online Certificate Status Protocol). Lược đồ này dựa trên cơ chế

truy vấn trực tiếp hơn việc công bố định kỳ CRLs và ARLs. OCSP là giao thức yêu

cầu/ trả lời đưa ra cơ chế để nhận được thông tin thu hồi trực tuyến từ thực thể tin

cậy là “OCSP Responder”. Người sử dụng cuối thực hiện yêu cầu với “OCSP

Request” với một danh sách các chứng chỉ cần được kiểm tra, OCSP Responder trả

lời yêu cầu “OCSP Reply” với trạng thái của mỗi chứng chỉ. Chứng chỉ có thể ở

một trong ba trạng thái sau: “good”, “revoked” và “unknown”.

Sử dụng dịch vụ online có một số ưu điểm sau:

- Trả lời thường xuyên và luôn có tính chất mới

- Thời gian trả lời nhanh

- Giảm thiểu việc sử dụng băng thông mạng sẵn có

- Tổng phí xử lý phía client thấp

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

- 35 -

Tuy nhiên dịch vụ online có hạn chế trong trường hợp cần kiểm tra trạng thái

thu hồi nhưng không online .Vấn đề về bảo mật cũng được đặt ra khi sử dụng dịch

CA certificate DB

vụ này. Hình 2.5 là dịch vụ kiểm tra online với OCSP Responder là dịch vụ khác nhau.

CA

Online revocation service

Online revocation client

LDAP directory

Hình 2.5: Dịch vụ kiểm tra online

2.2 Các thành phần của PKI

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

- Certification Authorities (CA)

♦Cấp và thu hồi chứng chỉ.

- Registration Authorities (RA)

♦Gắn kết giữa khoá công khai và định danh của người giữ chứng chỉ.

- Clients

♦Người sử dụng chứng chỉ PKI hay theo cách khác được xác định như

những thực thể cuối.

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

- Repository

♦Hệ thống (có thể phân tán) lưu trữ chứng chỉ và danh sách các

chứng chỉ bị thu hồi.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

♦Cung cấp cơ chế phân phối chứng chỉ và CRLs đến các thực thể cuối.

- 36 -

Các thành phần PKI và các mối quan hệ giữa chúng được chỉ ra như trong

End entity

Management Transactions Operational transactions

Management transactions

PKI users PKI management entities

Registration Authority

Certificate publication

y r o t i s o p e r L R C / e t a c i f i t r e C

Management transactions

Certification Authority

Certificate/CRL publication

Management transactions

Certification Authority

hình 2.6. Đây là mô hình kiến trúc PKI do PKIX đưa ra [15].

Hình 2.6: Các thành phần PKI

2.2.1 Tổ chức chứng thực (Certification Authority)

Trong hạ tầng cơ sở khoá công khai, chứng chỉ có vai trò gắn kết giữa định

danh với khoá công. Sự gắn kết này thể hiện trong dạng cấu trúc dữ liệu được ký số

được đề cập đến như chứng chỉ đã được thảo luận ở phần trước. Một certificate

authority (CA) là một thực thể PKI có trách nhiệm cấp chứng chỉ cho các thực thể

khác trong hệ thống.

Tổ chức chứng thực - CA cũng được gọi là bên thứ ba được tin tưởng vì

người sử dụng cuối tin tưởng vào chữ ký số của CA trên chứng chỉ trong khi thực

hiện những hoạt động mã hoá khoá công khai cần thiết. Tổ chức cung cấp dịch vụ

chứng thực – Certification Service Provider (CSP) là một thuật ngữ khác nhắc đến

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

CA được sử dụng trong luận văn.

- 37 -

Thông thường, CA thực hiện chức năng xác thực bằng cách cấp chứng chỉ

cho các CA khác và cho thực thể cuối (người giữ chứng chỉ) trong hệ thống. Nếu

CA nằm ở đỉnh của mô hình phân cấp PKI và chỉ cấp chứng chỉ cho những CA ở

mức thấp hơn thì chứng chỉ này được gọi là chứng chỉ gốc “root certificate”.

2.2.2 Trung tâm đăng ký (Registration Authorities)

Mặc dù CA có thể thực hiện những chức năng đăng ký cần thiết, nhưng đôi

khi cần có thực thể độc lập thực hiện chức năng này. Thực thể này được gọi là

“registration authority” - trung tâm đăng ký. Ví dụ khi số lượng thực thể cuối trong

miền PKI tăng lên và số thực thể cuối này được phân tán khắp nơi về mặt địa lý thì

việc đăng ký tại một CA trung tâm trở thành vấn đề khó giải quyết. Để giải quyết

vấn đề này cần thiết phải có một hoặc nhiều RAs (trung tâm đăng ký địa phương).

Mục đích chính của RA là để giảm tải công việc của CA. Chức năng thực hiện của

một RA cụ thể sẽ khác nhau tuỳ theo nhu cầu triển khai PKI nhưng chủ yếu bao

gồm những chức năng sau:

- Xác thực cá nhân chủ thể đăng ký chứng chỉ.

- Kiểm tra tính hợp lệ của thông tin do chủ thể cung cấp.

- Xác nhận quyền của chủ thể đối với những thuộc tính chứng chỉ được yêu cầu.

- Kiểm tra xem chủ thể có thực sự sở hữu khoá riêng đang được đăng ký hay

không - điều này thường được đề cập đến như sự chứng minh sở hữu (proof

of possession - POP).

- Tạo cặp khoá bí mật /công khai.

- Phân phối bí mật được chia sẻ đến thực thể cuối (ví dụ : khoá công của CA).

- Thay mặt chủ thể thực thể cuối khởi tạo quá trình đăng ký với CA.

- Lưu trữ khoá riêng.

- Khởi sinh qúa trình khôi phục khoá.

- Phân phối thẻ bài vật lý (ví dụ như thẻ thông minh) chứa khoá riêng.

Nhìn chung, RA xử lý việc trao đổi (thường liên quan đến tương tác người

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

dùng) giữa chủ thể thực thể cuối và quá trình đăng ký, phân phối chứng chỉ và quản

- 38 -

lý vòng đời chứng chỉ/khoá. Tuy nhiên, trong bất kỳ trường hợp nào thì RA cũng

chỉ đưa ra những khai báo tin cậy ban đầu về chủ thể. Chỉ CA mới có thể cấp chứng

chỉ hay đưa ra thông tin trạng thái thu hồi chứng chỉ như CRL.

2.2.3 Thực thể cuối ( Người giữ chứng chỉ và Clients)

Thực thể cuối trong PKI có thể là con người, thiết bị, và thậm chí là một

chương trình phần mềm nhưng thường là người sử dụng hệ thống. Thực thể cuối sẽ

thực hiện những chức năng mật mã (mã hoá, giải mã và ký số).

2.2.4 Hệ thống lưu trữ (Repositories)

Chứng chỉ (khoá công) và thông tin thu hồi chứng chỉ phải được phân phối

sao cho những người cần đến chứng chỉ đều có thể truy cập và lấy được. Có 2

phương pháp phân phối chứng chỉ:

a. Phân phối cá nhân

Phân phối cá nhân là cách phân phối cơ bản nhất. Trong phương pháp này thì

mỗi cá nhân sẽ trực tiếp đưa chứng chỉ của họ cho người dùng khác. Việc này có

thể thực hiện theo một số cơ chế khác nhau. Chuyển giao bằng tay chứng chỉ được

lưu trong đĩa mềm hay trong một số các môi trường lưu trữ khác. Cũng có thể phân

phối bằng cách gắn chứng chỉ trong e-mail để gửi cho người khác.

Cách này thực hiện tốt trong một nhóm ít người dùng nhưng khi số lượng

người dùng tăng lên thì có thể xảy ra vấn đề về quản lý.

b. Phân phối công khai

Một phương pháp khác phổ biến hơn để phân phối chứng chỉ (và thông tin

thu hồi chứng chỉ) là công bố các chứng chỉ rộng rãi, các chứng chỉ này có thể sử

dụng một cách công khai và được đặt ở vị trí có thể truy cập dễ dàng. Những vị trí

này được gọi là cơ sở dữ liệu. Dưới đây là ví dụ về một số hệ thống lưu trữ:

- X.500 Directory System Agents (DSAs)

- Lightweight Directory Access Protocol (LDAP ) Server

- Online Certificate Status Protocol (OCSP) Responders

- Domain name System (DNS) và Web servers

- File Transfer Protocol (FTP) Servers và Corporate Databases

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

- 39 -

2.3 Chức năng cơ bản của PKI

Những hệ thống cho phép PKI có những chức năng khác nhau. Nhưng nhìn

chung có hai chức năng chính là: chứng thực và thẩm tra.

2.3.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ạo chứng

chỉ cho khoá công đó. Chứng chỉ đảm bảo tính toàn vẹn của khoá công khai

và các thông tin gắn cùng.

2.3.2 Thẩm tra (validation)

Quá trình xác định liệu chứng chỉ đã đưa ra có thể được sử dụng đúng mục

đích thích hợp hay không được xem như là quá trình kiểm tra tính hiệu lự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ứng chỉ 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 hay khô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á).

2.3.3 Một số chức năng khác

Hệ thống PKI thực hiện chức năng chứng thực, thẩm tra cùng với một số

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

chức năng phụ trợ khác. Dưới đây là một số chức năng và dịch vụ được hầu hết các

- 40 -

hệ thống PKI cung cấp. Một số những chức năng khác có thể được định nghĩa tuỳ

theo yêu cầu cụ thể của các hệ thống PKI.

a. Đăng ký

Đăng ký là quá trình đến hoặc liên lạc với các tổ chức, trung tâm tin cậy để

đăng ký các thông tin và xin cấp chứng chỉ. RA và CA là những thực thể trong quá

trình đăng ký. Quá trình đăng ký phụ thuộc vào chính sách của tổ chức. Nếu chứng

chỉ được cung cấp với mục đích dùng cho những hoạt động bí mật thì sử dụng

phương pháp gặp mặt trực tiếp. Nếu chứng chỉ chỉ được sử dụng cho những mục

đích, hoạt động thường thì có thể đăng ký qua những ứng dụng viết sẵn hoặc ứng

dụng điện tử.

b. Khởi tạo ban đầu

Khi hệ thống trạm của chủ thể nhận được các thông tin cần thiết để liên lạc

với CA thì quá trình khởi tạo bắt đầu. Những thông tin này có thể là khoá công của

CA, chứng chỉ của CA, cặp khóa công /bí mật của chủ thể.

Một số hệ thống khác sử dụng cơ chế dựa trên password trong giai đoạn khởi

tạo. Người dùng cuối liên lạc với CA khi nhận được password và sau đó thiết lập

một kênh bảo mật để truyền những thông tin cần thiết. Giai đoạn khởi tạo thường

tiếp tục với quá trình chứng thực.

c. Khôi phục cặp khoá

Hầu hết hệ thống PKI tạo ra hai cặp khoá cho người sử dụng cuối, một để ký

số và một để mã hoá. Lý do để tạo hai cặp khoá khác nhau xuất phát từ yêu cầu khôi

phục và sao lưu dự phòng khoá.

Tuỳ theo chính sách của tổ chức, bộ khoá mã (mã và giải mã) và những

thông tin liên quan đến khoá của người sử dụng phải được sao lưu để có thể lấy lại

được dữ liệu khi người sử dụng mất khoá riêng hay rời khỏi đơn vị.

Còn khoá để ký số được sử dụng tuỳ theo mục đích cá nhân nên không được

sao lưu. Riêng khoá bí mật của CA thì được lưu giữ dự phòng trong một thời gian

dài để giải quyết những vấn đề nhầm lẫn có thể xảy ra trong tương lai. Hệ thống

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

PKI có những công cụ để thực hiện chức năng sao lưu và khôi phục khoá.

- 41 -

d. Tạo khoá

Cặp khoá công khai/bí mật có thể được tạo ở nhiều nơi. Chúng có thể được

tạo ra bằng phần mềm phía client và được gửi đến CA để chứng thực.

CA cũng có thể tạo ra cặp khoá trước khi chứng thực. Trong trường hợp này,

CA tự tạo cặp khoá và gửi khoá bí mật này cho người sử dụng theo một cách an

toàn. Nếu khoá do bên thứ ba tạo ra thì những khoá này phải được CA tin cậy trong

miền xác nhận trước khi sử dụng.

e. Hạn sử dụng và cập nhật khoá

Một trong những thuộc tính của chứng chỉ là thời gian hiệu lực. Thời gian

hiệu lực của mỗi cặp khoá được xác định theo chính sách sử dụng. Các cặp khoá

của người sử dụng nên được cập nhật khi có thông báo về ngày hết hạn. Hệ thống sẽ

thông báo về tình huống này trong một thời gian nhất định. Chứng chỉ mới sẽ được

người cấp công bố tự động sau thời gian hết hạn.

Xâm hại khoá f.

Đây là trường hợp không bình thường nhưng nếu xảy ra thì khoá mới sẽ

được công bố và tất cả người sử dụng trong hệ thống sẽ nhận thấy điều này. Xâm

hại đến khoá của CA là một trường hợp đặc biệt. Và trong trường hợp này thì CA sẽ

công bố lại tất cả các chứng chỉ với CA-certificate mới của mình

g. Thu hồi

Chứng chỉ được công bố sẽ được sử dụng trong khoảng thời gian có hiệu lực.

Nhưng trong trường hợp khoá bị xâm hại hay có sự thay đổi trong thông tin của

chứng chỉ thì chứng chỉ mới sẽ được công bố, chứng chỉ cũ sẽ bị thu hồi.

h. Công bố và gửi thông báo thu hồi chứng chỉ

Một chứng chỉ được cấp cho người sử dụng cuối sẽ được gửi đến cho người

nắm giữ và hệ thống lưu trữ để có thể truy cập công khai. Khi một chứng chỉ bị thu

hồi vì một lý do nào đó, tất cả người sử dụng trong hệ thống sẽ được thông báo về

việc này. Phương thức để công bố và gửi những thông báo thu hồi đã được đề cập

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

chi tiết trong nội dung về chứng chỉ số ở phần trên.

- 42 -

Xác thực chéo i.

Xác thực chéo là một trong những đặc tính quan trọng nhất của hệ thống

PKI. Chức năng này được sử dụng để nối hai miền PKI khác nhau. Xác thực chéo là

cách để thiết lập môi trường tin cậy giữa hai CA dưới những điều kiện nhất định.

Những điều kiện này được xác định theo yêu cầu của người sử dụng. Những người

sử dụng ở các miền khác nhau chỉ có thể giao tiếp an toàn với người khác sau khi

việc xác thực chéo giữa các CA thành công.

Xác thực chéo được thiết lập bằng cách tạo chứng chỉ CA xác thực lẫn nhau.

Nếu CA-1 và CA-2 muốn thiết lập xác thực chéo thì cần thực hiện một số bước sau:

- CA-1 công bố CA – certificate cho CA-2.

- CA-2 công bố CA – certificate cho CA-1.

- CA-1 và CA-2 sẽ sử dụng những trường mở rộng xác định trong chứng chỉ

để đặt những giới hạn cần thiết trong CA-certificate.

Việc xác thực chéo đòi hỏi phải có sự kiểm tra cẩn thận các chính sách PKI.

Nếu cả hai đều có cùng hoặc tương tự chính sách của nhau thì việc xác thực chéo sẽ

có ý nghĩa. Ngược lại, sẽ có những tình huống không mong muốn xuất hiện trong

trường hợp chính sách PKI của một miền trở thành một phần của miền khác.

Trường mở rộng “Policy mapping”, “name constraints” và “policy

constraints” của chứng chỉ X.509 chuẩn được sử dụng trong xác thực chéo để đưa ra

một số giới hạn trong môi trường tin cậy.

Hình 2.7 dưới đây minh hoạ đường dẫn cấp chứng chỉ được xây dựng giữa 2

CA (2 CA này đã thiết lập mối quan hệ tin cậy sử dụng xác thực chéo ngang hàng).

Mô hình chỉ ra chứng chỉ chéo được cấp giữa mỗi CA và chứng chỉ thực thể cuối

được CA cấp. Người cấp của một chứng chỉ là chủ thể của chứng chỉ khác. Khoá

công khai được xác nhận trong một chứng chỉ tương ứng với khoá riêng được sử

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

dụng để ký chứng chỉ khác.

- 43 -

Issuer Engineering CA

Issuer Marketing CA

Marketing CA public keys

Engineering CA public keys

Subject Marketing CA

Subject Engineering CA

Engineering CA signature

Marketing CA signature

Issuer Marketing CA

Issuer Engineering

Mktg user public key

Eng user public key

Subject Bob

Subject Alice

Engineering CA public/private keys

Marketing CA public/private keys

Marketing CA signature

Engineering CA

Alice’s public/private keys

Bob’s public/private keys

Hình 2.7: Đường dẫn chứng chỉ chéo

2.4 Mô hình tin cậy cho PKI

X.509 định nghĩa sự tin cậy như sau: “Một thực thể có thể được nói là tin cậy

với một thực thể thứ hai nếu nó (thực thể đầu tiên ) tạo ra sự đảm bảo rằng thực thể

thứ hai sẽ thực hiện chính xác như thực thể thứ nhất mong đợi” [9].

Định nghĩa này có thể được diễn đạt lại về mặt PKI như sau: một thực thể

cuối tin cậy một CA khi thực thể cuối cho rằng CA sẽ thiết lập và duy trì sự gắn kết

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

các thuộc tính của khoá công một cách chính xác.

- 44 -

Có một số mô hình tin cậy có thể được áp dụng hoặc được đề xuất để sử

dụng trong hạ tầng mã khoá công khai - PKI dựa trên X.509:

- Single CA Model (mô hình CA đơn )

- Hierarchical Model (Mô hình phân cấp )

- Mesh Model (Mô hình mắt lưới – mô hình xác thực chéo)

- Hub and Spoke (Bridge CA) Model (Mô hình cầu CA)

- Web Model (Trust Lists) (Mô hình web)

- User Centric Model (Mô hình người sử dụng trung tâm )

2.4.1 Mô hình CA đơn

Đây là mô hình tổ chức CA cơ bản và đơn giản nhất. Trong mô hình CA đơn

chỉ có một CA xác nhận tất cả các thực thể cuối trong miền PKI. Mỗi người sử dụng

trong miền nhận khoá công khai của CA gốc (root CA) theo một số cơ chế nào đó.

Trong mô hình này không có yêu cầu xác thực chéo. Chỉ có một điểm để tất cả

người sử dụng có thể kiểm tra trạng thái thu hồi của chứng chỉ đã được cấp. Mô

hình này có thể được mở rộng bằng cách có thêm các RA ở xa CA nhưng ở gần các

nhóm người dùng cụ thể.

Root CA

RA

RA

EE

EE

EE

EE

EE

EE

EE

EE

Mô hình này được minh hoạ trong hình 2.8.

EE

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 2.8: Mô hình CA đơn

- 45 -

Mô hình này dễ để triển khai và giảm tối thiểu được những vấn đề về khả

năng tương tác. Nhưng mô hình này có một số nhược điểm sau:

- Không thích hợp cho miền PKI lớn vì một số người sử dụng ở những miền

con có những yêu cầu khác nhau đối với người ở miền khác.

- Có thể không có tổ chức nào tình nguyện vận hành CA đơn hoặc một số tổ

chức lại có thể không tin tưởng vào những người vận hành CA này vì một

vài lý do nào đó.

- Việc quản trị và khối lượng công việc kỹ thuật của việc vận hành CA đơn sẽ

rất cao trong cộng đồng PKI lớn.

- Chỉ có một CA sẽ gây ra thiếu khả năng hoạt động và CA này có thể trở

thành mục tiêu tấn công.

2.4.2 Mô hình phân cấp

Mô hình này tương ứng với cấu trúc phân cấp với CA gốc và các CA cấp

dưới. CA gốc xác nhận các CA cấp dưới, các CA này lại xác nhận các CA cấp thấp

EE: End Entity

Root CA

CA

CA

CA

CA

CA

EE

EE

CA

CA

EE

EE

EE

EE

EE

EE

EE

EE

EE

hơn. Các CA cấp dưới không cần xác nhận các CA cấp trên.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 2.9: Mô hình phân cấp

- 46 -

Mô hình phân cấp được minh hoạ như Hình 2.9 ở trên.

Trong mô hình này, mỗi thực thể sẽ giữ bản sao khoá công khai của root CA

và kiểm tra đường dẫn của chứng chỉ bắt đầu từ chữ ký của CA gốc. Đây là mô hình

PKI tin cậy sớm nhất và được sử dụng trong PEM.

* Ưu điểm của mô hình:

- Mô hình này có thể dùng được trực tiếp cho những doanh nghiệp phân cấp

và độc lập, cũng như những tổ chức chính phủ và quân đội.

- Cho phép thực thi chính sách và chuẩn thông qua hạ tầng cơ sở.

- Dễ vận hành giữa các tổ chức khác nhau.

* Nhược điểm:

- Có thể không thích hợp đối với môi trường mà mỗi miền khác nhau cần có

chính sách và giải pháp PKI khác nhau.

- Các tổ chức có thể không tự nguyện tin vào các tổ chức khác.

- Có thể không thích hợp cho những mối quan hệ ngang hàng giữa chính phủ

và doanh nghiệp.

- Những tổ chức thiết lập CA trước có thể không muốn trở thành một phần

của mô hình.

- Có thể gây ra sự trội hơn của sản phẩm đối với vấn đề về khả năng tương tác.

- Chỉ có một CA gốc nên có thể gây ra một số vấn đề như thiếu khả năng

hoạt động. Thêm vào đó, trong trường hợp khoá bí mật của CA bị xâm phạm, khoá

công khai mới của CA gốc phải được phân phối đến tất cả các người sử dụng cuối

trong hệ thống theo một số cơ chế khác nhau.

Mặc dù có những nhược điểm, song mô hình này vẫn thích hợp với yêu cầu

của các tổ chức chính phủ vì cấu trúc phân cấp tự nhiên sẵn có.

2.4.3 Mô hình mắt lưới (xác thực chéo)

Mô hình mắt lưới là mô hình đưa ra sự tin tưởng giữa hai hoặc nhiều CA.

Mỗi CA có thể ở trong mô hình phân cấp hoặc trong mô hình mắt lưới khác. Trong

mô hình này không chỉ có một CA gốc mà có nhiều hơn một CA gốc phân phối sự

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

tin cậy giữa các CA với nhau. Thông qua việc xác thực chéo giữa các CA gốc, các

- 47 -

CA có thể tin tưởng lẫn nhau. Xác thực chéo liên kết các miền khác nhau bằng việc

sử dụng thuộc tính BasicConstraints, Name Constraints, PolicyMapping và

PolicyConstraints của X.509 v3 mở rộng.

Trong cấu hình mắt lưới đầy đủ, tất cả các CA gốc xác nhận chéo lẫn nhau. Điều này yêu cầu n2 lần xác thực trong hạ tầng cơ sở. Hình 2.10 là minh hoạ biểu

CA

CA2

CA3

diễn bằng đồ thị mô hình này.

CA trung gian

CA

CA

CA1

CA

EE

EE

EE

EE

EE

EE

EE

EE

EE

EE

Hình 2.10: Mô hình mắt lưới

*Ưu điểm của mô hình:

- Linh hoạt hơn và phù hợp với nhu cầu giao dịch hiện nay.

- Cho phép những nhóm người sử dụng khác nhau có thể tự do phát triển và

thực thi những chính sách và chuẩn khác nhau.

- Cho phép cạnh tranh.

- Không phải là mô hình phân cấp và khắc phục được những nhược điểm của

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

mô hình phân cấp tin cậy ở trên.

- 48 -

* Nhược điểm:

- Phức tạp và khó để quản lý vì việc xác thực chéo.

- Khó có khả năng thực hiện và có thể không hoạt động vì những lý do do

giao tác.

- Phần mềm người sử dụng có thể gặp phải một số vấn đề khi tìm chuỗi

chứng chỉ.

- Để tìm chuỗi chứng chỉ và CRLs với những mô hình khác thì việc sử dụng

thư mục có thể trở nên khó hơn.

Hiện nay, các tổ chức chính phủ và công ty đang thiết lập CA riêng theo yêu

cầu PKI của mình. Khi có yêu cầu xử lý giao tiếp giữa các tổ chức khác nhau,

những CA này sẽ tiến hành xác thực chéo độc lập với nhau dẫn đến sự phát triển

của thế giới Internet sẽ diễn ra trong mô hình tin cậy theo các hướng khác nhau.

2.4.4 Mô hình Hub và Spoke (Bridge CA)

Trong mô hình Hub và Spoke, thay bằng việc thiết lập xác thực chéo giữa

các CA, mỗi CA gốc thiết lập xác thực chéo với CA trung tâm. CA trung tâm này

làm cho việc giao tiếp được thuận lợi hơn. CA trung tâm được gọi là hub (hoặc bridge) CA . Động cơ thúc đẩy mô hình này là giảm số xác thực chéo từ n2 xuống n.

Một điểm quan trọng khác với cấu hình này là CA trung tâm không tạo ra sự

phân cấp. Tất cả các thực thể trong cấu hình đều giữ khoá công khai của CA cục bộ,

không có khoá của CA trung tâm. Như vậy, rõ ràng mô hình này giảm đi nhược

điểm của mô hình mạng nhưng lại gặp phải khó khăn trong việc thiết lập bridge CA

làm việc với các CA khác trong hạ tầng cơ sở để các CA này có thể hoạt động được

với nhau.

Mô hình này do US Federal PKI phát triển đầu tiên. Nó mở rộng PKIs qua

một số tổ chức lớn chia sẻ những chính sách có khả năng tương thích một cách đặc

biệt và có những CA đã được thiết lập trước đây. Minh hoạ biểu diễn cho mô hình

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

hub và spoke được thể hiện trong hình 2.11.

- 49 -

EE

EE

EE

EE

EE

CA

EE: End Entity CA: Certificate Authority P-CA: Principle

EE

EE

CA

P-CA

CA

P- CA

CA

P-CA

Bridge CA

EE

EE

EE

EE

EE

EE

EE

Hình 2.11: Mô hình Hub và Spoke (Bridge CA)

2.4.5 Mô hình Web (Trust Lists)

Khái niệm về mô hình web được lấy ra từ tên của nó (www). Trong mô hình

này, mỗi nhà cung cấp trình duyệt gắn vào trình duyệt một hoặc nhiều khoá công

khai của một số root CA phổ biến hoặc nổi tiếng. Mô hình này thiết lập một mô

hình tin tưởng tự động giữa các các root CA mà khoá của các CA này được gắn

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

trong trình duyệt và người sử dụng.

- 50 -

Hình 2.12 chỉ ra danh sách các root CA được gắn trong trình duyệt của IE

Hình 2.12: Danh sách các CA tin cậy trong Microsoft Explorer

Danh sách tin cậy phần lớn được sử dụng để xác thực web server mà những

web server này được CA xác nhận trong danh sách trình duyệt client. Quá trình này

được thực hiện một cách tự động với giao thức SSL.

* Ưu điểm:

- Dễ để triển khai vì danh sách đã có sẵn trong trình duyệt

- Không cần thay đổi khi làm việc với trình duyệt web (Internet Explorer,

Netscape Navigator) và tiện ích e-mail (Outlook Express, Microsoft Outlook,

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Netscape Navigator).

- 51 -

* Nhược điểm:

- Về mặt công nghệ thì có thể thêm hay sửa đổi một root CA mới nhưng hầu

hết người dùng trình duyệt lại không quen thuộc với công nghệ PKI và phụ thuộc

vào những CA ở trong trình duyệt này

- Người sử dụng phải tin tưởng vào danh sách CA trong trình duyệt. Nhưng

một câu hỏi đặt ra là làm thế nào để có thể đảm bảo chắc chắn về tính chất tin cậy

của CA? Các kết quả nghiên cứu cho thấy rằng hiện nay chưa có cách nào để phân

biệt mức độ xác thực giữa các chứng chỉ.

- Không thể thông báo đến tất cả trình duyệt của người sử dụng nếu khoá

công khai của một CA nào đó bị xâm hại.

Mô hình này đơn giản trong việc thực thi và đối với người dùng. Do đó có

khả năng để triển khai nhanh và sử dụng với các giải pháp COST (Commercial of

the Shelf) sẵn có.

Mô hình này đặc biệt thích hợp cho yêu cầu PKI của những ứng dụng dựa

trên Web.

2.4.6 Mô hình người sử dụng trung tâm (User Centric Model)

Trong mô hình này, mỗi người sử dụng trực tiếp và hoàn toàn có trách nhiệm

trong việc quyết định tin tưởng hay từ chối chứng chỉ. Mỗi người sử dụng giữ một

khoá vòng và khoá này đóng vai trò như CA của họ. Khoá vòng chứa khoá công

khai được tin cậy của những người sử dụng khác trong cộng đồng. Mô hình này

được Zimmerman phát triển để sử dụng trong chương trình phần mềm bảo mật PGP.

Mô hình này có một số hạn chế sau:

- Không có khả năng mở rộng và thích hợp với những miền lớn.

- Khó để đặt mức độ tin cậy đối với khoá công được lấy từ người khác. Không

có sự nhất quán của quá trình xác thực vì nó phụ thuộc vào người sử dụng

- Người sử dụng phải quản lý PKI và cần phải hiểu sâu về nó.

Mặc dù có những nhược điểm song mô hình này vẫn thích hợp cho việc sử

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

dụng cá nhân trên Internet.

- 52 -

Mỗi mô hình đều có ưu và nhược điểm riêng. Việc lựa chọn mô hình nào tuỳ

thuộc vào những yêu cầu mục đích của cộng đồng người dùng, tổng chi phí, thời

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

gian triển khai, nhân lực quản lý, công nghệ hỗ trợ và một số vấn đề liên quan khác.

- 53 -

CHƯƠNG 3

XÂY DỰNG HỆ THỐNG CUNG CẤP CHỨNG CHỈ SỐ

Các chương trên đã trình bày kiến trúc, mô hình và chức năng các thành

phần trong hệ thống PKI. Chương này, chúng tôi phân tích, xây dựng hệ thống cung

cấp chứng chỉ số MyCA ứng dụng trong phạm vi một cơ quan, đơn vị; Đưa ra qui

trình đăng ký cấp phát và huỷ bỏ chứng chỉ của hệ thống; Sử dụng chứng chỉ được

cấp với dịch vụ web và mail; Lưu chứng chỉ số và khoá bí mật trên thiết bị iKey

2000, iKey 2032.

3.1 Tổng quan về hệ thống

3.1.1 Mô hình hệ thống

Mô hình hệ thống được xây dựng như sau:

RAO1

RA

CA

RAO2

LDAP

Hình 3.1: Mô hình hệ thống cung cấp chứng chỉ số

Hệ thống cung cấp chứng chỉ số bao gồm máy CA, máy RA và máy RAO.

CA làm nhiệm vụ ký vào chứng chỉ. RA có nhiệm vụ giao tiếp với CA, giao tiếp

với máy làm dịch vụ LDAP và RAO. Ứng với một máy RA có nhiều máy RAO, các

máy RAO làm nhiệm vụ tiếp xúc trực tiếp với người yêu cầu dịch vụ. Các máy chủ

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

LDAP là nơi lưu trữ các chứng chỉ đã được cấp và chứng chỉ đã được huỷ bỏ.

- 54 -

3.1.2 Một số đặc tính của hệ thống cung cấp chứng chỉ số

Hệ thống được xây dựng tuân theo các thiết kế của PKIX:

- Tách riêng các chức năng cấp chứng chỉ (CA), đăng ký cấp chứng chỉ

(RA), phục vụ cấp chứng chỉ (RAO).

- Cho phép tại một trung tâm cấp chứng chỉ, cùng một lúc phục vụ nhiều người.

- Cho phép phối hợp nhiều đơn vị trong việc triển khai dịch vụ.

- Mô hình quản lý CA theo nhiều tầng. Mỗi trung tâm được phân một vùng

chỉ số ID của người sử dụng.

- Cấp chứng chỉ có thời hạn và cho phép huỷ bỏ chứng chỉ (trước thời hạn).

Khuôn dạng của chứng chỉ:

- Tuân theo RFC 2459

- Cho phép đưa các thông tin về người sử dụng như: họ tên, ngày sinh, nơi sinh, …

Các chuẩn mật mã được sử dụng:

- Chữ ký số RSA: theo chuẩn RSASSA-PKCS-v1_5 (signature scheme with

appendix), kích thước modulo từ 1024 bit trở lên, các số nguyên tố được sinh nhằm

chống lại tấn công phân tích số.

- Hàm băm SHA-1.

Các tệp lưu trữ và yêu cầu sử dụng các chuẩn PKCS:

- Tệp lưu trữ khoá bí mật tuân theo PKCS#1, PKCS#8. Khoá bí mật được

bảo vệ bằng mật khẩu theo PKCS#5.

- Tệp lưu trữ khoá công khai theo PKCS#7.

- Tệp yêu cầu cấp chứng chỉ và chứng chỉ được cấp tuân theo PKCS#10.

----BEGIN HEADER-----

TYPE = PKCS#10

CERTTYPE = User Certificate

-----END HEADER-----

-----BEGIN CERTIFICATE REQUEST-----

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 3.2 là nội dung tệp yêu cầu cấp chứng chỉ do hệ thống MyCA cấp.

- 55 -

MIIB8zCCAVwCAQAwgbMxIjAgBgkqhkiG9w0BCQEWE2hvYWxuaEB0cmljaHNhaS5i

Y2ExRTBDBgNVBAMTPEx1b25nIE5ndXllbiBIb2FuZyBIb2EtMjAwMDIwMy0xMjM0

NTY3OC0xMi0xMi0xOTk3LTE5LTEtMTk3OTEQMA4GA1UECBMHRTE1LkJDQTESMBAG

A1UECxMJTXlDQSBVc2VyMRMwEQYDVQQKEwpNeUNBIEdyb3VwMQswCQYDVQQGEwJW

TjCBnjANBgkqhkiG9w0BAQEFAAOBjAAwgYgCgYBAAAC9WqCMDvBU4AEYs0dpQqjS

X0IBKKWNYKusKrjdhCE9HVLNq912t2oJgVDgNulxIQ1Nmuox489FVfkXY4cWP8SR

0vYDxu3LU4rTb8gJNkf/Ek27ma8Cc0cyWc3+/hj9s0ksstfEhMBf38ROGeqK8O5b

OXKKL1+5S8Zb2oZJaQIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEABkH8kt2/NBUo

fa6Gv600yxTJN3K3fLHX81y28y2ml79hZDwjxeo7fD30xD/dYmoyM0ljRq7MtEpL

+bUr6FxAi8cSTFPgb+ao7ARede7Fhb6ZYU6HW6hkkWTbQfWDSIALrFZ6+1fwdMt9

kjCFYrevJO1JnG9cj59/EpEVSthgaHI=

-----END CERTIFICATE REQUEST-----

Hình 3.2: Tệp yêu cầu cấp chứng chỉ

- Khoá bí mật và chứng chỉ được lưu ở dạng PKCS#12.

- Khoá công khai của CA được người sử dụng lưu trữ ở dạng PKCS#12.

-----BEGIN CERTIFICATE-----

MIICXzCCAcigAwIBAgIBADANBgkqhkiG9w0BAQUFADBiMR4wHAYJKoZIhvcNAQkB

Fg9Sb290Q0FAcHZraC5jb20xDzANBgNVBAMTBlJvb3RDQTENMAsGA1UECxMEcHZr

aDETMBEGA1UEChMKTXlDQSBHcm91cDELMAkGA1UEBhMCVk4wHhcNMDMwNjEwMDcw

MDI0WhcNMDUwNjA5MDcwMDI0WjBiMR4wHAYJKoZIhvcNAQkBFg9Sb290Q0FAcHZr

aC5jb20xDzANBgNVBAMTBlJvb3RDQTENMAsGA1UECxMEcHZraDETMBEGA1UEChMK

TXlDQSBHcm91cDELMAkGA1UEBhMCVk4wgZ4wDQYJKoZIhvcNAQEBBQADgYwAMIGI

AoGAQAAIAADgAAoAAGABkVmqO5jiCPjdOJ1n9uz/SUNbmyAZZDmfMryNpg06RKcw

4Kt12qqyx85IB7brmuCzyDKwPIatEjvZBqkrkGbUnmslVHg8/PauEf6UH+Z/WZ3L

Lbvv779ne+M7Q3BVEXVMgmy7PE8tUdPI9JzAi1HzFKG++lcCAwEAAaMmMCQwDwYD

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 3.3 là nội dung chứng chỉ chứa khóa công khai của rootCA trong hệ thống.

- 56 -

VR0TAQH/BAUwAwEB/zARBglghkgBhvhCAQEEBAMCAAcwDQYJKoZIhvcNAQEFBQAD

gYEAPImXkaSUYbxKWoFLp7n/nTdw0du9MzYsWB098aC5aUcnxI36zoO0dIFj6s75

JFGuO5Ihe9lw4gsua0e91YnrDejXRhKX+YeSiblnksnBvAThkE+4nH2r7CjrvbvG

V5nO8V6H9+Um7plr5r4DP1Lz5K8Ar/H1pX6uuYfbyZ9kzWo=

-----END CERTIFICATE-----

Hình 3.3: Chứng chỉ lưu khoá công khai của rootCA trong hệ thống MyCA

Certificate:

Data:

Version: 3 (0x2)

Serial Number: 2000203 (0x1e854b)

Signature Algorithm: sha1WithRSAEncryption

Issuer: Email=RootCA@trichsai.bca, CN=RootCA, OU=E15, O=MyCA

Group, C=VN

Validity

Not Before: May 13 06:48:55 2004 GMT

Not After : May 13 06:48:55 2006 GMT

Subject: Email=hoalnh@trichsai.bca, CN=Luong Nguyen Hoang Hoa-

2000203-12345678-12-12-1997-19-1-1979, ST=E15.BCA, OU=MyCA User, O=MyCA

Group, C=VN

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (1023 bit)

Modulus (1023 bit):

40:00:00:bd:5a:a0:8c:0e:f0:54:e0:01:18:b3:47:

69:42:a8:d2:5f:42:01:28:a5:8d:60:ab:ac:2a:b8:

dd:84:21:3d:1d:52:cd:ab:dd:76:b7:6a:09:81:50:

e0:36:e9:71:21:0d:4d:9a:ea:31:e3:cf:45:55:f9:

17:63:87:16:3f:c4:91:d2:f6:03:c6:ed:cb:53:8a:

d3:6f:c8:09:36:47:ff:12:4d:bb:99:af:02:73:47:

32:59:cd:fe:fe:18:fd:b3:49:2c:b2:d7:c4:84:c0:

5f:df:c4:4e:19:ea:8a:f0:ee:5b:39:72:8a:2f:5f:

b9:4b:c6:5b:da:86:49:69

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 3.4 dưới đây là nội dung khoá công khai và chứng chỉ của người sử dụng.

- 57 -

Netscape Cert Type:

SSL Client, S/MIME

X509v3 Key Usage:

Digital Signature, Non Repudiation, Key Encipherment

Netscape Comment:

MyCA User Certificate

Signature Algorithm: sha1WithRSAEncryption

0a:05:93:a6:5a:f4:c6:8d:96:7c:28:d5:69:9e:f9:31:2a:f8:

3b:15:7d:c3:a2:eb:0f:5a:67:91:ed:c2:9b:ea:68:f2:da:77:

16:1f:5e:92:cf:8e:b2:67:2b:f2:38:c6:be:c6:15:ea:1f:34:

3d:d8:b8:51:6a:33:93:84:6f:cb:62:07:3f:6b:66:da:83:ce:

e4:ef:44:6f:7b:81:51:ca:14:b2:00:97:89:34:35:67:8b:95:

71:ad:db:9d:2d:cf:d0:2c:21:eb:07:ea:3a:82:e2:3a:c7:81:

ef:d1:e1:1c:70:26:e3:25:f5:57:ea:23:c4:4b:6d:3c:7f:9c:

02:55

-----BEGIN CERTIFICATE-----

MIIC4DCCAkmgAwIBAgIDHoVLMA0GCSqGSIb3DQEBBQUAMGIxHzAdBgkqhkiG9w0B

CQEWEFJvb3RDQUB5YWhvby5jb20xDzANBgNVBAMTBlJvb3RDQTEMMAoGA1UECxMD

RTE1MRMwEQYDVQQKEwpNeUNBIEdyb3VwMQswCQYDVQQGEwJWTjAeFw0wNDA1MTMw

NjQ4NTVaFw0wNjA1MTMwNjQ4NTVaMIGzMSIwIAYJKoZIhvcNAQkBFhNob2FsbmhA

dHJpY2hzYWkuYmNhMUUwQwYDVQQDEzxMdW9uZyBOZ3V5ZW4gSG9hbmcgSG9hLTIw

MDAyMDMtMTIzNDU2NzgtMTItMTItMTk5Ny0xOS0xLTE5NzkxEDAOBgNVBAgTB0Ux

NS5CQ0ExEjAQBgNVBAsTCU15Q0EgVXNlcjETMBEGA1UEChMKTXlDQSBHcm91cDEL

MAkGA1UEBhMCVk4wgZ4wDQYJKoZIhvcNAQEBBQADgYwAMIGIAoGAQAAAvVqgjA7w

VOABGLNHaUKo0l9CASiljWCrrCq43YQhPR1SzavddrdqCYFQ4DbpcSENTZrqMePP

RVX5F2OHFj/EkdL2A8bty1OK02/ICTZH/xJNu5mvAnNHMlnN/v4Y/bNJLLLXxITA

X9/EThnqivDuWzlyii9fuUvGW9qGSWkCAwEAAaNTMFEwCQYDVR0TBAIwADARBglg

hkgBhvhCAQEEBAMCBaAwCwYDVR0PBAQDAgXgMCQGCWCGSAGG+EIBDQQXFhVNeUNB

IFVzZXIgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQEFBQADgYEACgWTplr0xo2WfCjV

aZ75MSr4OxV9w6LrD1pnke3Cm+po8tp3Fh9eks+Osmcr8jjGvsYV6h80Pdi4UWoz

k4Rvy2IHP2tm2oPO5O9Eb3uBUcoUsgCXiTQ1Z4uVca3bnS3P0Cwh6wfqOoLiOseB

79HhHHAm4yX1V+ojxEttPH+cAlU=

-----END CERTIFICATE-----

Hình 3.4: Chứng chỉ của người sử dụng

- Tệp yêu cầu huỷ bỏ chứng chỉ theo PKCS#7.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

- Tệp Certificate Revocation List – CRL theo PKCS#10.

- 58 -

3.2 Chức năng và quá trình khởi tạo các thành phần trong hệ thống

cung cấp chứng chỉ số MyCA

3.2.1 Certificate Authority - CA

Đây là thành phần quan trọng trong hệ thống. CA được thiết lập và khởi tạo

khi chạy lần đầu để sinh cặp khoá và chứng chỉ cho CA.

CA có chức năng cấp chứng chỉ cho các thực thể, xử lý các yêu cầu của RA,

quản lý các chứng chỉ được cấp và các chứng chỉ hết hiệu lực.

Việc khởi tạo của CA được chia ra trong hai trường hợp: RootCA và

nonRootCA.

* Trường hợp RootCA: CA sẽ tự ký certificate (self-signed). Qúa trình khởi

tạo Intialization được chia ra thành ba bước:

+ Khởi tạo cơ sở dữ liệu dùng để lưu các certificate trên máy RootCA.

+ Thực hiện sinh tệp khoá và tệp self – sign certificate cho RootCA bằng

chức năng “Generate Root CA key and empty CRL ”.

+ Sinh ra một tệp CRL trống “empty”, sau đó gửi empty CRL và chứng chỉ

Root CA lên LDAP server.

* Trường hợp NonRootCA: yêu cầu cấp chứng chỉ được CA ở mức cao hơn

ký. Quá trình khởi tạo gồm các bước sau:

+ Khởi tạo cơ sở dữ liệu.

+ Tạo file khoá và yêu cầu cho nonRoot CA.

+ Gửi file yêu cầu lên RootCA ký và nhận certificate về.

+ Ghép nội dung tệp certificate vào đầu tệp chain.crt tạo nên chuỗi chain các

certificate thông qua việc sử dụng chức năng re-build chain.

+ Gửi chuỗi chain các chứng chỉ CA (CA certificate chain) và empty CRL

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

lên LDAP server.

- 59 -

LDAP server

Root CA

Root CA / RAOs

nonRoot CAs

Users

nonRoot RA / RAO

Users

Hình 3.5 dưới đây là mô hình mô phỏng hệ thống MyCA phân cấp hai tầng.

Hình 3.5: Mô hình mô phỏng hệ thống MyCA phân cấp hai tầng

3.2.2 Registration Authority - RA

RA có chức năng xử lý các yêu cầu từ User, xử lý các CRR và CRL. Quá

trình khởi tạo Root RA và thiết lập quan hệ với RootCA gồm các bước sau:

+ Sinh khoá và yêu cầu cấp chứng chỉ cho RA server.

+ Trên máy CA, thực hiện ký Request của RA bằng cách ký yêu cầu chứng

chỉ, yêu cầu Root RA, RAO.

+ Người quản trị tạo file định dạng PKCS#12 cho RA server.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

+ Chuyển file định dạng PKCS#12 của RA vào trình duyệt.

- 60 -

3.2.3 RAO

RAO có một số chức năng chính sau:

- Nhập dữ liệu đăng ký của người sử dụng, tạo trình sinh khoá với các thông

tin đã đăng ký

- Lấy chứng chỉ, kiểm tra khoá công khai, in giấy chứng nhận cấp chứng chỉ,

phát hành chứng chỉ lên LDAP

- Cập nhật lại danh sách các chứng chỉ đã huỷ bỏ và in giấy chứng nhận chứng

chỉ hết hiệu lực cho người sử dụng

Việc thiết lập kết nối RA - RAO được hoạch định bởi người quản trị RA

server, số lượng RAO cần thiết cho hệ thống (thuộc RA đó). Điều này còn phụ

thuộc vào số lượng ID mà RA được phép cấp cho RAO. Thiết lập RAO gồm các

bước sau:

+ Sinh khoá và yêu cầu cấp chứng chỉ cho các RAO (trên máy RA).

+ Ký các yêu cầu cấp chứng chỉ của RAO (RAO request) (trên máy CA).

+ Tạo file định dạng PKCS#12 với các chứng chỉ nhận được (trên máy RA).

+ Cài file PKCS#12 vào trình duyệt.

3.2.4 LDAP và Public Database Server

Trong hệ thống MyCA các chứng chỉ và CRLs của người sử dụng được

trung tâm phát hành cần được lưu trữ trên một CSDL công khai để người sử dụng

có thể tải các chứng chỉ hoặc cập nhật CRL từ cơ sở dữ liệu đó. Đồng thời đảm bảo

yêu cầu việc cập nhật dữ liệu từ các máy server (CA server) và query dữ liệu từ các

máy client phải nhanh chóng, chính xác, phù hợp với kiểu dữ liệu có cấu trúc như

các chứng chỉ. Để đạt được mục tiêu này hiện nay có nhiều hệ quản trị cơ sở dữ

liệu có thể đáp ứng. Trong hệ thống MyCA, chúng tôi đã chọn LDAP làm hệ thống

lưu trữ.

Mối quan hệ và trao đổi dữ liệu giữa các thành phần trong hệ thống với

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Public Database Server được thể hiện trong mô hình sau:

- 61 -

Export CRL, Cert

Export user’s certificates

MyCA CA

Query CRLs

Query CRL và certificates

LDAP Server RAOs

MyCA Users

Hình 3.6: Mô hình quan hệ và trao đổi dữ liệu giữa các thành phần trong hệ thống

Public Database Server là một hoặc nhiều máy cài đặt LDAP Server, trên đó

lưu trữ các chứng chỉ đã được phát hành cho người sử dụng, các chứng chỉ của các

máy server thuộc hệ thống, các CRL do các CA server phát hành. Trong hệ thống

MyCA, người sử dụng truy cập đến Public Database Server thông qua trang Web

publicdatabase và có thể thực hiện một trong ba chức năng sau:

- “Download CA certificates chain from LDAP”: chức năng này cho phép

nonRoot CA, Web Server và Web browser tìm kiếm (theo tên của CA có cấp

bậc thấp nhất trong các CA phát hành ra chuỗi CA cần tìm) chuỗi các chứng

chỉ của CA và tải chuỗi chứng chỉ đó về từ Public Database Server.

- “Download certificates from LDAP”: chức năng này cho phép nonRoot CA,

Web Server và Web browser tìm kiếm chứng chỉ đã được phát hành trên

Public Database Server theo địa chỉ e-mail được đăng ký trong chứng chỉ cần

tìm và tải chứng chỉ đó về.

- “Update CRLs”: chức năng này cho phép tất cả các máy trên hệ thống CA

tìm kiếm theo tên CA đã phát hành ra CRL cần cập nhật và cập nhật CRL

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

cho hệ thống của mình.

- 62 -

3.3 Qui trình đăng ký, cấp phát và huỷ bỏ chứng chỉ

3.3.1 Qui trình đăng ký và cấp chứng chỉ

Người sử dụng có nhu cầu được cấp chứng chỉ đến trung tâm làm thủ

tục đăng ký. Khi đến trung tâm người sử dụng cần đem theo những giấy tờ có liên

quan đến bản thân (ví dụ chứng minh thư). Việc thực hiện quá trình đăng ký được

3

1b

nhân viên của hệ thống thực hiện qua form RAO.

RAO

CA

RA

4

5b

1a

1c

2

5a

User 5c

LDAP

Hình 3.7: Mô hình đăng ký và cấp chứng chỉ số

Hình 3.7 ở trên là mô hình qui trình đăng ký và cấp chứng chỉ. Các thủ tục

cần thực hiện được mô tả cụ thể như sau:

1a. Cá nhân (hoặc tổ chức) nào đó có nhu cầu sử dụng chứng chỉ số lên trung tâm

đăng ký, có đem theo một số giấy tờ cần thiết.

1b. Người quản trị máy RAO (nơi đăng ký) đưa thông tin đã đăng ký từ phía người

sử dụng lên máy RA thông qua trang putDB (trang này đặt trên máy RA và

được thiết lập https). Sau bước này người sử dụng đã có trình sinh khoá riêng

gắn với một IDkey duy nhất.

1c. Người sử dụng đem trình sinh khoá về (bước này có thể có hoặc không). Nếu

người sử dụng hoàn toàn tin tưởng vào trung tâm thì có thể sinh khoá luôn tại

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

trung tâm.

- 63 -

2. Người sử dụng sinh khoá (bằng trình sinh khoá đã được cấp) và sinh yêu cầu

cấp chứng chỉ. Sau đó, gửi yêu cầu này lên trung tâm (máy RA).

3. Người quản trị máy RA thực hiện so sánh thông tin đã đăng ký với thông tin

gửi lên trung tâm qua đường công khai, đồng thời kiểm tra chữ ký của người

dùng trong yêu cầu cấp chứng chỉ (bằng khoá công khai được gửi đến). Nếu

hoàn toàn hợp lệ thì RA sẽ ký lên yêu cầu cấp chứng chỉ và gửi yêu cầu này

sang máy CA.

4. Người quản trị máy CA kiểm tra chữ ký của RA trên yêu cầu cấp chứng chỉ của

người sử dụng và idKey trong cơ sở dữ liệu xem có bị trùng không, nếu hợp

lệ thì CA chấp nhận yêu cầu cấp chứng chỉ đó, phát hành chứng chỉ (thực hiện

ký trên chứng chỉ) và gửi sang máy RA.

5a. Người sử dụng lên trung tâm đã đăng ký để nhận chứng chỉ số và giấy chứng

nhận chứng chỉ số. Để chặt chẽ hơn thì khi lên người sử dụng phải đem theo

yêu cầu cấp chứng chỉ (đã có khi sinh yêu cầu cấp chứng chỉ) lưu trong tệp có

dạng ID.req_txt để trung tâm so sánh thông tin đã đăng ký và khoá công khai

tương ứng với chứng chỉ số. Đây là bước đảm bảo cấp chứng chỉ số cho đúng

người sử dụng và đảm bảo về mặt pháp lý.

5b. Người quản trị máy RAO lấy chứng chỉ số trên máy RA và cấp chứng chỉ số

cùng giấy chứng nhận đã được cấp chứng chỉ số cho người dùng.

5c. Chứng chỉ số của người dùng khi đó đã được công nhận trên toàn bộ hệ thống

CA, được người quản trị máy RAO đưa công khai lên máy LDAP và người

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

dùng khác có thể truy cập máy này để lấy về.

- 64 -

Hình 3.8: Giấy chứng nhận chứng chỉ số

3.3.2 Qui trình huỷ bỏ chứng chỉ

Trong quá trình sử dụng chứng chỉ khi chưa hết thời hạn sử dụng người dùng

có thể yêu cầu huỷ bỏ chứng chỉ với nhiều lý do: chuyển công tác, thay đổi địa chỉ

e-mail, nghi ngờ lộ khoá bí mật….

2

Qui trình huỷ bỏ chứng chỉ được mô tả trong hình 3.9.

CA

RAO

RA

4a

4b

3

1

LDAP

User

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Hình 3.9: Mô hình huỷ bỏ chứng chỉ

- 65 -

1. Người sử dụng gửi yêu cầu huỷ bỏ chứng chỉ lên máy RA.

2. RA kiểm tra chữ ký trên yêu cầu huỷ bỏ chứng chỉ, nếu thấy đúng thì ký sau

đó chuyển sang máy CA.

3. CA kiểm tra chữ ký của RA trên yêu cầu huỷ bỏ, nếu đúng thì ký và sau đó

chuyển sang máy LDAP.

4a. Người quản trị cập nhật danh sách các chứng chỉ bị huỷ bỏ.

4b. Người dùng được cấp giấy chứng nhận huỷ bỏ chứng chỉ.

3.4 Thử nghiệm sản phẩm

Hệ thống sau khi xây dựng được đưa vào thử nghiệm ở hai phía: người quản

trị và người sử dụng.

3.4.1 Thử nghiệm phía quản trị

Nội dung thử nghiệm cho người quản trị hệ thống cung cấp chứng chỉ số :

- Thiết lập CA:

+ Khởi tạo CA

+ Xử lý yêu cầu của RA

+ Quản lý chứng chỉ

+ Quản lý các chứng chỉ hết hiệu lực

- Thiết lập RA:

+ Khởi tạo RA và RAOs

+ Xử lý các yêu cầu của người sử dụng

- Thiết lập RAO:

+ Sinh khoá, yêu cầu cấp chứng chỉ cho các RAO

+ Ký các yêu cầu RAO

+ Tạo file định dạng PKCS#12 với các chứng chỉ nhận được

+ Cài đặt PKCS#12 vào trình duyệt (trên máy RAO)

3.4.2 Thử nghiệm phía người dùng

Người sử dụng sau khi thực hiện đăng ký được cấp phát mềm sinh khoá, sinh

tệp yêu cầu chứng chỉ, chuyển đổi định dạng của chứng chỉ số khi được cấp và một

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

số tiện ích khác phục vụ cho việc đăng ký và sử dụng chứng chỉ.

- 66 -

Nội dung thử nghiệm phía người sử dụng:

- Đăng ký và nhận chứng chỉ:

+ Đăng ký

+ Sinh tệp khoá, tệp yêu cầu cấp chứng chỉ

+ Nhận chứng chỉ được cấp

- Cài đặt chứng chỉ cho trình duyệt IE:

+ Cài đặt tiện ích trợ giúp

+ Chuyển đổi định dạng chứng chỉ

+ Cài đặt chứng chỉ cho IE

- Cập nhật chứng chỉ của người dùng khác

- Tích hợp chứng chỉ số được cấp trong eToken (iKey 2000, iKey 2032)

- Sử dụng chứng chỉ được cấp trong dịch vụ thư điện tử và web

3.5 Đánh giá chung

Hệ thống cung cấp chứng chỉ số MyCA được cài đặt chạy trên hệ điều hành

Linux 7.3 và Fedora Core 2. Máy trạm sử dụng hệ điều hành Microsoft Windows

98, 2000, trình duyệt IE và Netscape. Các thao tác cấp chứng chỉ được thực hiện

thông qua trình duyệt Web.

Hệ thống có thể quản lý được số lượng lớn người dùng (240).

Cho phép người sử dụng tự sinh cặp khoá (công khai và bí mật), đảm bảo

khoá sinh ra không bị trùng phụ thuộc vào ID của từng người.

Trong quá trình cấp phát và huỷ bỏ chứng chỉ, mọi yêu cầu khi truyền đi đều

được ký, đảm bảo tính toàn vẹn, xác thực và chống chối bỏ.

Khả năng ứng dụng của hệ thống cấp chứng chỉ số MyCA:

- Sử dụng cho dịch vụ web qua giao thức https.

- Sử dụng cho dịch vụ thư tín điện tử.

- Kết hợp chứng chỉ số với một số công nghệ khác để vệ tài liệu điện tử.

- Dùng thiết bị iKey để lưu chứng chỉ và khoá bí mật.

- Có thể phối kết hợp hệ thống với các giải pháp khác để đảm bảo an ninh

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

an toàn cho một hệ thống mạng nội bộ.

- 67 -

Dưới đây là mô hình kết hợp hệ thống cung cấp chứng chỉ số và một số giải

Hệ thống tường lửa

Hệ thống giám sát IDS và hệ thống kiểm tra, diệt virus

Hệ thống cấp chứng chỉ số

Mạng nội bộ

pháp đảm bảo an toàn cho hệ thống mạng nội bộ.

Hình 3.10: Mô hình kết hợp hệ thống cung cấp chứng chỉ số cùng các giải pháp

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

đảm bảo an toàn hệ thống mạng nội bộ

- 68 -

KẾT LUẬN

Nghiên cứu và thiết kế một hệ thống đảm bảo an toàn cho các dịch vụ trên

mạng là một vấn đề phức tạp và luôn cần hoàn thiện. Hệ thống cung cấp chứng chỉ

số MyCA được xây dựng dựa trên chuẩn công nghệ PKI. Quá trình nghiên cứu và

phát triển hệ thống cung cấp chứng chỉ số nói riêng và PKI nói chung là một quá

trình lâu dài và đi cùng với quá trình chấp nhận của người sử dụng. Tỷ lệ người sử

dụng tăng lên khi các chuẩn công nghệ trở nên hoàn thiện, chứng minh được khả

năng ứng dụng và hiện thực hoá là khả thi.

Hiện nay, việc sử dụng mật mã khoá công khai và dịch vụ cung cấp chứng

chỉ số hay còn gọi là dịch vụ chứng thực điện tử để đảm bảo an toàn thông tin trong

các hoạt động giao dịch điện tử là giải pháp được nhiều quốc gia trên thế giới sử

dụng. Ở Việt Nam, chữ ký số và dịch vụ cung cấp chứng chỉ số là vấn đề mới và

chưa được triển khai trong thực tế. Trong thời gian gần đây, một số đơn vị, cơ quan

đã có những hoạt động ban đầu nghiên cứu công nghệ, xây dựng hệ thống kỹ thuật,

phát triển các ứng dụng và thử nghiệm cung cấp dịch vụ chứng thực điện tử. Việc

triển khai dịch vụ cung cấp chứng thực điện tử yêu cầu một sự đầu tư lâu dài và

nghiêm túc mới mang lại kết quả như mong muốn. Phần khó khăn nhất trong triển

khai dịch vụ này là ở khâu tổ chức thực hiện và thay đổi nhận thức của người sử

dụng. Tính pháp lý của chữ ký số và dịch vụ chứng thực điện tử cũng là một vấn đề

đang được đặt ra và cần giải quyết. Các tổ chức, cá nhân cung cấp và sử dụng dịch

vụ chứng thực điện tử cần phải được quản lý, đồng thời có quyền, nghĩa vụ nhất

định. Chữ ký số và bản ghi điện tử được ký số theo đúng qui định của pháp luật sẽ

có giá trị pháp lý như văn bản viết thông thường.

Ngoài ra một hạ tầng cơ sở công nghệ yếu, chưa có sự tin tưởng vào nhà

cung cấp và những e ngại về tâm lý của người dùng này cũng là các trở ngại trong

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

việc triển khai dịch vụ cung cấp chứng chỉ số một cách rộng rãi.

- 69 -

Kết quả nghiên cứu

Luận văn này đã có những tìm hiểu về khái niệm, công nghệ, mô hình tổ

chức và xây dựng một hệ thống PKI, cùng với việc xây dựng một hệ thống cung cấp

chứng chỉ số ứng dụng cho Cục Công nghệ tin học nghiệp vụ và một số đơn vị khác

trong Bộ Công an. Đây là những kết quả nghiên cứu ban đầu và sản phẩm đang

trong giai đoạn triển khai thử nghiệm. Tuy nhiên, với nhận định về ưu điểm của PKI

và trước những yêu cầu thực tế đặt ra, chúng tôi tin và quyết tâm đẩy mạnh hơn nữa

việc nghiên cứu, xây dựng và triển khai dịch vụ cung cấp chứng chỉ số để đảm bảo

an toàn thông tin theo yêu cầu đặt ra trong toàn ngành.

Một số vấn đề đang được tiếp tục nghiên cứu phát triển:

Tìm hiểu về đường cong elliptic. Cài đặt hệ chữ ký số trên đường cong

Elliptic ECDSA.

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Tích hợp thiết bị lưu khoá cùng với chứng chỉ số ứng dụng trong VPN.

- 70 -

TÀI LIỆU THAM KHẢO

Tài liệu tiếng Việt

1. Phạm Huy Điển, Hà Huy Khoái (2003), Mã hoá thông tin cơ sở toán học và

ứng dụng, Nhà xuất bản Đại học Quốc gia Hà nội.

2. Phan Đình Diệu (1999), Lý thuyết mật mã và an toàn thông tin, Đại học

Quốc Gia Hà Nội, Hà Nội.

3. Trịnh Nhật Tiến (2004), Một số vấn đề về an toàn dữ liệu, Hà Nội.

Tài liệu tiếng Anh

4. Adams, C. (1999), Understanding Public Key Infrastructures, New Riders

Publishing, Indianapolis.

5. Alfred Menezes (1996), Handbook of Applied Cryptography, CRC Press,

LLC.

6. Andrew Nash, William Duance, Celia Joseph, and Derek Brink (2001), PKI

Implementing and managing E-Security, McGraw –Hill Co.

7. Ellison, C.M. (1996), “Simple Public Key Certificate”.

8. Fegghi, J.(1999), Digital Certificates and Applied Internet Security,

Addison-Wesley Longman, Inc.

9. ITU-T Recommendation X.509 (2000), “The Directory: Public key and

Attribute Certificates Framework”.

10. NIST FIPS PUB 180 – 1 (1994), “Secure Hash Standard”.

11. NIST PKI Project Team (2001), “Certificate Issuing and Management

Components Protection Profile”.

12. Rivest, R.L., A.Shamir, and L.M.Adleman (1978), “A method for obtaining

digital signatures and public-key cryptosystems”, Communications of the

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

ACM.

- 71 -

Một số RFC

13. Boeyen, S., T.Howes and P.Richard (1999), Internet X.509 Public Key

Infrastructure Operational Protocols – LDAP2, RFC 2559.

14. Chokhani, S. (1999), Internet X.509 Public Key Infrastructure Certificate

Policy and Certification Practices Framework, RFC 2527.

15. Housley, R. (1999), Internet X.509 Public Key Infrastrure Certificate and

CRL Profile, RFC 2459.

16. Housley, R., and P.Hoffman (1999), Internet X.509 Public Key Infrastructure

Operational Protocols: FTP and HTTP, RFC 2585.

17. Myers, M. (1999), Internet X.509 Certificate Request Message Format, RFC

2511.

18. Myers, M. (1999), X.509 Internet Public Key Infrastrure On-line Certificate

Status Protocol, RFC 2560.

19. Santesson, S. (2001), Internet X.509 Public Key Infrastructure Qualified

Certificates Profile , RFC 3039.

Một số Website

20. http://www.ietf.org/ids.by.wg/pkix.html “Internet X.509 Public Key

Infrastructure TimeStamp Protocols”

21. http://www.ietf.org/ids.by.wg/pkix.html “Internet X.509 Public Key

Infrastructure Data Certification Server Protocols”

22. http://www.ietf.org/ids.by.wg/pkix.html “Internet X.509 Public Key

Infrastructure Certificate Management Protocols”

23. http://www.ietf.org/ids.by.wg/pkix.html “Simple Certificate Validation

Protocol (SCVP)”

24. http://www.rsasecurity.com

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

25. http://www.openca.org

- 72 -

PHỤ LỤC

1. Môi trường phát triển

Hệ thống cung cấp chứng chỉ số MyCA đã trình bày ở trên được phát triển

trên hệ điều hành Linux, sử dụng một số công cụ mã nguồn mở dưới đây:

Apache

mod_ssl

OpenSSL

OpenLDAP

Perl

2. Một số chuẩn mật mã khoá công khai (PKCS)

PKCS - Public Key Cryptography Standards là chuẩn mã hoá khoá công khai

do phòng thí nghiệm RSA phát triển. Chuẩn PKCS cung cấp những định nghĩa cơ

bản về định dạng dữ liệu và thuật toán là cơ sở nền tảng của việc triển khai PKI.

- PKCS#1 RSA Encryption Standard – Mã và ký sử dụng hệ mã công khai RSA

- PKCS#3 Diffie-Hellman Key Agreement Standard - Chuẩn trao đổi khoá

Diffie-Hellman. PKCS#3 mô tả phương pháp thực hiện trao đổi khoá

Diffie-Hellman.

- PKCS#5 Password-based Encrytion Standard - Chuẩn mã hoá dựa trên

password. PKCS#5 mô tả phương pháp mã xâu bát phân sử dụng khoá bí mật

được tính từ password để sinh ra xâu bát phân được mã hoá. PKCS # 5 có thể

được sử dụng để mã hoá khoá riêng trong việc truyền khoá bí mật.

- PKCS#6 Extended Certificate Syntax Standard - Chuẩn cú pháp chứng

chỉ mở rộng. PKCS # 6 định nghĩa cú pháp chứng chỉ X.509 mở rộng.

- PKCS#7 Crytographic Message Syntax Standard - Chuẩn cú pháp thông

điệp mật mã. PKCS#7 xác định cú pháp tổng thể dữ liệu được mã hoá ví dụ

như chữ ký số. PKCS#7 cung cấp một số lựa chọn định dạng: message

không mã hoá hoặc ký số, message được mã hoá, message được ký số và

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

message có cả ký số và mã hoá.

- 73 -

- PKCS#8 Private Key Information Syntax Standard - Chuẩn cú pháp

thông tin riêng. PKCS#8 định nghĩa cú pháp thông tin khoá riêng và cú pháp

khoá riêng được mã hoá.

- PKCS#9 Selected Attribute Types - Những loại thuộc tính được lựa chọn.

PKCS#9 định nghĩa những loại thuộc tính được lựa chọn sử dụng trong

chứng chỉ mở rộng PKCS#6, thông điệp ký số PKCS#7, thông tin khoá riêng

PKCS#8 và yêu cầu ký chứng chỉ PKCS#10. Những thuộc tính chứng chỉ

được chỉ rõ ở đây gồm có địa chỉ thư, loại nội dung, bản tóm tắt thông điệp,

thời gian ký, password yêu cầu và những thuộc tính chứng chỉ mở rộng.

- PKCS#10 Certification Request Syntax Standard - Chuẩn cú pháp yêu

cầu chứng chỉ. PKCS#10 định nghĩa cú pháp yêu cầu chứng chỉ. Yêu cầu

chứng chỉ gồm tên phân biệt, khoá công và tập các thuộc tính tuỳ chọn, chữ

ký của thực thể yêu cầu chứng chỉ.

- PKCS#11 Cryptographic Token Interface Standard - Chuẩn giao diện thẻ

bài mật mã. PKCS#11 xác định giao diện lập trình ứng dụng (Application

programming interface - API) cho thiết bị người sử dụng chứa thông tin mã

hoá (cũng như khoá mã hoá và chứng chỉ) và thực hiện chức năng mã hoá.

Smart Card là thiết bị đặc trưng thực hiện Cryptoki.

- PKCS#12 Personal Information Exchange Syntax Standard - Chuẩn cú

pháp trao đổi thông tin cá nhân. PKCS#12 định nghĩa định dạng thông tin

nhận diện cá nhân bao gồm khoá riêng, chứng chỉ, bí mật đặc tính khác nhau

và mở rộng. PKCS#12 làm cho việc truyền chứng chỉ và khoá bí mật gắn

kèm được thuận tiện, giúp người sử dụng có thể chuyển thông tin nhận diện

cá nhân từ thiết bị này sang thiết khác.

- PKCS#13 Elliptic Curve Crytography Standard - Chuẩn mật mã đường

cong elliptic. PKCS#13 bao gồm việc tạo tham số đường cong elliptic và

kiểm tra hiệu lực, tạo khoá và công nhận giá trị, chữ ký số và mã hoá khoá

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

công khai cũng như thoả thuận khoá.

- 74 -

- PKCS#14 Pseudo-Random Number Generation Standard - Chuẩn tạo số

giả ngẫu nhiên. Nhiều hàm mật mã cơ bản được sử dụng trong PKI như tạo

khoá và thoả thuận khoá bí mật Diffie – Hellman sử dụng dữ liệu ngẫu nhiên.

Tuy nhiên nếu dữ liệu ngẫu nhiên lại không ngẫu nhiên mà được chọn từ tập

giá trị có thể tiên đoán được thì hàm mật mã không bảo mật được đầy đủ. Do

đó tạo số giả ngẫu nhiên an toàn là điều quan trọng đối với bảo mật PKI.

3. Một số màn hình giao diện của hệ thống đã xây dựng

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Giao diện trang chủ

- 75 -

Giao diện Khởi tạo cơ sở dữ liệu và tạo cặp khoá cho RootCA

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Giao diện nhập thông tin cá nhân yêu cầu đăng ký cấp chứng chỉ

- 76 -

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Giao diện ký yêu cầu cấp chứng chỉ

- 77 -

Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

Giao diện tạo tệp chứng chỉ định dạng PKCS#12