Tài liệu Đề tài Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA: Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Mục lục
Lời nói đầu.........................................................................................................................3
Chương I: Mật mã hóa khóa công khai và chữ ký số.........................................................5
I. Mật mã hóa khóa công khai........................................................................................5
1. Khái niệm...............................................................................................................5
2. Các thuật toán sử dụng trong mật mã khóa công khai...........................................5
2.1. Thuật toán RSA...............................................................................................5
2.2 Thuật toán thỏa thuận khóa Diffie-Hellman.....................................................6
II. Chữ ký số..............................................................................................................
37 trang |
Chia sẻ: hunglv | Lượt xem: 1715 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Mục lục
Lời nói đầu.........................................................................................................................3
Chương I: Mật mã hóa khóa công khai và chữ ký số.........................................................5
I. Mật mã hóa khóa công khai........................................................................................5
1. Khái niệm...............................................................................................................5
2. Các thuật toán sử dụng trong mật mã khóa công khai...........................................5
2.1. Thuật toán RSA...............................................................................................5
2.2 Thuật toán thỏa thuận khóa Diffie-Hellman.....................................................6
II. Chữ ký số...................................................................................................................6
Chương II: Tổng quan về hạ tầng khóa công khai – PKI...................................................8
I. Hạ tầng khóa công khai – PKI....................................................................................8
1. Khái niệm PKI........................................................................................................8
2. Các khái niệm trong PKI......................................................................................10
2.1 Chứng chỉ.......................................................................................................10
2.2 Kho chứng chỉ................................................................................................11
2.3 Thu hồi chứng chỉ...........................................................................................11
2.4 Công bố và gửi thông báo thu hồi chứng chỉ.................................................11
2.5 Sao lưu và dự phòng khóa..............................................................................12
2.6 Cập nhật khóa tự động...................................................................................12
2.7 Lịch sử khóa...................................................................................................13
2.8 Chứng thực chéo............................................................................................13
2.9 Hỗ trợ chống chối bỏ......................................................................................13
2.10 Tem thời gian................................................................................................14
2.11 Phần mềm phía người dùng..........................................................................14
2.12 Chính sách của chứng chỉ.............................................................................14
3. Các thành phần của một hệ thống PKI.................................................................15
3.1 Tổ chức chứng thực (Certification Authority)................................................15
3.2 Trung tâm đăng ký (Registration Authorites).................................................16
3.3 Thực thể cuối (end entity)..............................................................................16
3.4 Hệ thống lưu trữ (Repositories)......................................................................16
4. Chức năng cơ bản PKI.........................................................................................17
4.1 Chứng thực (certification)..............................................................................17
4.2 Thẩm tra (validation)......................................................................................17
4.3 Một số chức năng khác ..................................................................................18
5. Mục tiêu của PKI..................................................................................................21
Chương III: Xây dựng hệ thống PKI với OpenCA..........................................................23
I. Giới thiệu về OpenCA..............................................................................................23
Nhóm nghiên cứu khoa học 1 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
II. Mô hình hệ thống PKI với OpenCA........................................................................23
1. RootCA.................................................................................................................23
1.1 Khởi tạo CA...................................................................................................25
1.2 Khởi tạo chứng chỉ cho người quản trị..........................................................30
2. SubCA..................................................................................................................35
3.RA .........................................................................................................................35
Chương IV: Đánh giá và định hướng phát triển...............................................................36
Kết luận............................................................................................................................37
Nhóm nghiên cứu khoa học 2 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Lời nói đầu
Ngày nay, việc giao tiếp qua mạng Internet đang trở thành một nhu cầu cấp thiết.
Các thông tin truyền trên mạng đều rất quan trọng, như mã số tài khoản, thông tin mật…
Tuy nhiên, với các thủ đoạn tinh vi, nguy cơ bị ăn cắp thông tin qua mạng cũng ngày
càng gia tăng. Hiện giao tiếp qua Internet chủ yếu dựa vào giao thức TCP/IP. Đây là giao
thức cho phép các thông tin được gửi từ máy tính này tới máy tính khác thông qua một
loạt các máy trung gian hoặc các mạng riêng biệt. Chính điều này đã tạo cơ hợi cho
những kẻ trộm công nghệ cao có thể thực hiện các hành động phi pháp. Các thông tin
truyền trên mạng có thể bị nghe trộm (Eavesdropping), giả mạo (Tampering), mạo danh
(Impersonation)… Các biện pháp bảo mật hiện nay, chẳng hạn như dùng mật khẩu, đều
không đảm bảo vì có thể bị nghe trộm hoặc bị dò ra nhanh chóng.
Do vậy, để bảo mật, các thông tin truyền trên Internet này nay đều có xu hướng
được mã hóa. Trước khi truyền qua mạng Internet, người gửi mã hóa thông tin, trong
quá trình truyền, dù có “chặn” được các thông tin này, kẻ trộm cũng không thể đọc được
vì đã bị mã hóa. Khi tới đích, người nhận sẽ sử dụng một công cụ đặc biệt để giải mã.
Phương pháp mã hóa và bảo mật phổ biến nhất dang được thế giới áp dụng là chứng chỉ
số (Digital Certificate). Với chứng chỉ số, người sử dụng có thể mã hóa thông tin một
cách hiệu quả, chống giả mạo, xác thực, chống chỗi cãi nguồn gốc..
Một cách mã hóa dữ liệu đảm bảo an toàn đó là mã hóa khóa công khai. Để sử
dụng được cách mã hóa này, cần phải có một chứng chỉ số từ tổ chức quản trị được gọi
là nhà cung cấp chứng chỉ số CA (Certificate Authority ), nhóm nghiên cứu đã chọn đề
tài nghiên cứu, xây dựng hệ thống hạ tầng khóa công khai PKI dựa trên OpenCA để làm
rõ vấn đề trên .
Để đạt được thành quả như ngày hôm nay, nhóm nghiên cứu xin chân thành cảm
Nhóm nghiên cứu khoa học 3 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
ơn các thầy cô giáo đã luôn đào sâu kiến thức để truyền đạt cho chúng em , đặc biệt thầy
giáo Hoàng Đức Thọ đã nhiệt tình giúp đõ chúng em để chúng em hoành thành tốt đề tài
này .
Trong quá trình thực hiện đề tài ,đề tài không tránh khỏi thiếu xót, kính mong sự
chỉ bảo đóng góp nhiệt tình của thầy cô và các bạn để đề tài nghiên cứu được hoàn thiện
tốt hơn .
Xin chân thành cảm ơn .
Nhóm sinh viên thực hiện
Lê Quang Minh
Trần Thanh Nga
Lê Tâm Đắc
Trịnh Đình Biên
Nguyễn Trọng Dũng
Nhóm nghiên cứu khoa học 4 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Chương I: Mật mã hóa khóa công khai và chữ
ký số
I. Mật mã hóa khóa công khai.
1. Khái niệm
Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao
đổi các thông tin mật mã mà không cần phải trao đổi các khóa chung bí mật trước đó.
Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau
là khóa công khai và khóa cá nhân.
Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi
khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa
còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí
mật nếu chỉ biết khóa công khai.
Hệ thống mật mã hóa khóa công khai vó thể sử dụng với các mục đích:
• Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được
• Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo bởi một
khóa bí mật nào đó không
• Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2
bên.
2. Các thuật toán sử dụng trong mật mã khóa công khai
2.1. Thuật toán RSA
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai. Đây là thuật
toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh
dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa công khai.
RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an
toàn với điều kiện độ dài khóa đủ lớn.
Thuật toán RSA có hai khóa: khóa công khai và khóa bí mật. Mỗi khóa là những
số cố định sử dụng trong qúa trình mã hóa và giải mã. Khóa công khai được công bố
rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng
khóa công khai chỉ có thể giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi
người đều có thể mã hóa nhưng chỉ có người biết khóa bí mật mới có thể giải mã được.
Nhóm nghiên cứu khoa học 5 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Tuy nhiên RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật
toán mã hóa đối xứng khác, Trên thực tế, người ta sử dụng một thuật toán mã hóa đối
xứng nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã.
2.2 Thuật toán thỏa thuận khóa Diffie-Hellman
Đây là sơ đồ khóa công khai đầu tiên. Tuy nhiên, đó không phải là một sơ đồ mã
hóa khóa công khai thực sự, mà chỉ dùng cho trao đổi khóa. Các khóa bí mật được trao
đổi bằng cách sử dụng các trạm trung gian riêng tin cậy. Phương pháp này cho phép các
khóa bí mật được truyền an toàn thông qua các môi trường không bảo mật.
Tính bảo mật của trao đổi khóa Diffie-Hellman nằm ở chỗ: tính hàm mũ modul
của một số nguyên tố là khá dễ dàng nhưng tính logarit rời rạc là rất khó.
II. Chữ ký số.
Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video, … ) nhằm
mục đích xác định người chủ của dữ liệu đó.
Để sử dụng chữ ký số thì dữ liệu cần phải được mã hóa bằng hàm băm (dữ liệu
được "băm" ra thành chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó dùng
khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số. Khi cần kiểm tra,
bên nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc (được sinh ra qua hàm băm
ban đầu) và kiểm tra với hàm băm của văn bản nhận được. Nếu 2 giá trị (chuỗi) này
khớp nhau thì bên nhận có thể tin tưởng rằng dữ liệu xuất phát từ người sở hữu khóa bí
mật
Chữ ký số khóa công khai dựa trên nền tảng mật mã hóa khóa công khai. Để có
thể trao đổi thông tin trong môi trường này, mỗi người sử dụng có một cặp khóa: khóa
công khai và khóa bí mật. Khóa công khai được công bố rộng rãi còn khóa bí mật phải
được giữ kín và không thể tìm được khóa bí mật nếu chỉ biết khóa công khai.
Toàn bộ quá trình gồm 3 thuật toán:
• Thuật toán tạo khóa
• Thuật toán tạo chữ ký số
• Thuật toán kiểm tra chữ ký số
Nhóm nghiên cứu khoa học 6 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 1: Sơ đồ tạo và kiểm tra chữ ký số
Nhóm nghiên cứu khoa học 7 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Chương II: Tổng quan về hạ tầng khóa công
khai – PKI
I. Hạ tầng khóa công khai – PKI.
1. Khái niệm PKI.
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 mà 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 kinh doanh nhạy cảm và quan trọng được lưu trữ và
trao đổi dưới hình thức điện tử. Sự thay đổi trong các hoạt động truyền thông doanh
nghiệp này đồng nghĩa với việc người sử dụng phải có biện pháp bảo 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ấu trúc hạ tầng PKI cùng các tiêu chuẩn và các 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.
• Khả năng bảo mật (Secure): Đạt tiêu chuẩn quốc tế về bảo mật EAL4+, đáp ứng
hầu hết các thiết bị HSM và Smartcard.
• Khả năng mở rộng (Scalable): Dựa trên kiến trúc PKI hiện đại, được thiết kế theo
mô hình có độ sẵn sàng cao, có khả năng mở rộng để cấp phát số lượng lớn chứng
thư số một cách dễ dàng.
• Khả năng sẵn sàng (Available): Tất cả chính sách, log, dữ liệu về chứng thư số và
CRL được lưu trữ trên cơ sở dữ liệu tin cậy và bảo mật ví dụ: Oracle hệ cơ sở dữ
liệu lớn nhất và đáng tin cậy nhất trên thế giới.
• Khả năng mở, tương thích (Open): Được thiết kế để tuân thủ các tiêu chuẩn mở
quốc tế như X509, PKIX, LDAP...
• Khả năng kiểm soát bằng chính sách (Policy Driven): Hệ thống có khả năng áp
dụng các chính sách khác nhau với việc đăng ký các loại chứng thư số khác nhau.
• Khả năng linh động (Flexible): Có thể hỗ trợ nhiều phương thức đăng ký chứng
thư số khác nhau: Web, Email, Face-to-face, CMP, SCEP...
Trong mật mã học, hạ tầng khóa công khai (Public Key Infracstructure – PKI) là
một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và
xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng
Nhóm nghiên cứu khoa học 8 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai và khóa bí
mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và
các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa công khai thường
được phân phối trong chứng thực khóa công khai.
Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ
thống bao gồm nhà cung cấp chứng thực số (Certificate Authority) cùng các cơ chế liên
quan đồng thời với toàn bộ việc sử dụng các thuật toán mã hóa khóa công khai trong
trao đổi thông tin.
PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừ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 thực điện tử (digital
certificate) cũng như các mã khoá công cộng và cá nhân.
Tới nay, những nỗ lực hoàn thiện PKI vẫn đang được đầu tư và thúc đẩy. Và để
hiện thực hoá ý tưởng này, các tiêu chuẩn cần phải được nghiên cứ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 Network (VPN), chính là
kết quả của sáng kiến PKI.
Quá trình nghiên cứu và phát triển PKI là một quá trình lâu dài và cùng với nó,
mức độ chấp nhận của người dùng cũng tăng lên một cách khá chậm chạp. PKI có thể
đảm bảo một cơ chế bảo mật và tổng hợp để lưu trữ và chia sẻ các tài sản trí tuệ cả trong
và ngoài phạm vi công ty. Tuy nhiên, chi phí và/hoặc sự phức tạp của nó có thể gây ra
những rào cản nhất định đối với khả năng ứng dụng.
Đa phần các giao dịch truyền thông của doanh nghiệp với khách hàng, chính
quyền và các đối tác khác đều được diễn ra một cách điện tử. Ngày nay, một giải pháp
an ninh toàn diện cạnh tranh với PKI thực sự chưa được tìm thấy. Từ góc độ giải pháp
công nghệ, điều này làm cho việc chọn lựa trở nên đơn giản hơn. Nhiều hãng khác cũng
cung cấp các giải pháp PKI. Những tính năng này, cùng khả năng quản lý và liên kết
PKI, đã được tích hợp vào hệ điều hành và các ứng dụng có liên quan.
PKI là công nghệ xác thực đầu tiên và hoàn thiện nhất sử dụng phương pháp mã
hoá dựa trên khoá bí mật và khoá công cộng. Tuy nhiên, PKI cũng bao gồm cả việc ứng
dụng rộng rãi các dịch vụ bảo mật khác, bao gồm dịch vụ dữ liệu tin cậy, thống nhất dữ
liệu về tổng thể và quản lý mã khoá.
Nhóm nghiên cứu khoa học 9 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
2. Các khái niệm trong PKI
2.1 Chứng chỉ
Chứng chỉ là một tài liệu sử dụng chữ ký số kết hợp với khóa công khai với một
định danh thực thể (cá nhân, tổ chức, máy chủ, dịch vụ, … )
Chứng chỉ không chứa bất kỳ một thông tin bí mật nào. Về cơ bản, 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), bên cấp
chứng chỉ 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 bên cấp chứng chỉ. Người dùng 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 chữ ký đó hợp lệ thì có thể sử dụng chứng chỉ
đó.
Có nhiều lọai chứng chỉ, một trong số đó là:
• Chứng chỉ khóa công khai X.509
• Chứng chỉ khóa công khai đơn giản (Simple Public Key Certificate – SPKC)
• Chứng chỉ PGP
• Chứng chỉ thuộc tính (Attribute Certificate – AC)
Tất cả các loại chứng chỉ này đều có cấu trúc dạng riêng biệt. Hiện nay chứng chỉ
khóa công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống PKI. Chứng
chỉ X.509 được Hiệp hội viễn thông quốc tế (ITU) đưa ra lần đầu tiên năm 1998. Chứng
chỉ này 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 là phần chứa một số các trường phụ, hay còn gọi là trường mở rộng. Các
trường mở rộng thường được dùng để xác định và đáp ứng những yêu cầu bổ sung của
hệ thống.
Cấu trúc chứng chỉ X.509
• Version : phiên bản của chứng chỉ
• Serial Number: số serial của chứng chỉ,
là định danh duy nhất của chứng chỉ, có
giá trị nguyên.
• Certificate Signature Algorithm: thuật
toán CA sử dụng để ký chứng chỉ
• Issuer: Tên chủ thể phát hành chứng chỉ
• Validity: Thời hạn của chứng chỉ
• Subject: Tên chủ thể của chứng chỉ
• Subject Public Key Info
◦ Subject Public Key Algorithm: Thuật
Nhóm nghiên cứu khoa học 10 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
toán sinh khóa công khai
◦ Subject's Public Key: Khóa công khai
• Extensions: Phần mở rộng.
2.2 Kho chứng chỉ
Chứng chỉ được cấp bởi CA kết hợp với khóa công khai với nhận dạng của thực
thể B. Tuy nhiên nếu thực thể A không có khả năng xác định vị trí chứng chỉ này một
cách dễ dàng thì anh ta cũng không có hiệu quả gì hơn so với việc chứng chỉ này chưa
được tạo ra.
Do đó, phải có một kho chứng chỉ trực tuyến (online repositories), quy mô lớn và
mềm dẻo và phải được đặt ở vị trí mà A có thể xác định vị trí chứng chỉ mà anh ta cần để
truyền thông an toàn.
2.3 Thu hồi chứng chỉ
Trong một số trường hợp như khóa 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 ủy thác có trách nhiệm thu
hồi chứng chỉ.
2.4 Công bố và gửi thông báo thu hồi chứng chỉ
Danh sách huỷ bỏ chứng thực điện tử bao gồm các chứng thực đã hết hạn hoặc đã
bị thu hồi. Tất cả các xác thực đều có thời hạn. Đây là một quy định mang tính thiết kế,
tuy nhiên trước đây, rất khó thực hiện quy định này bởi việc gia hạn chứng thực thường
phải được thông báo tới tất cả người dùng sử dụng chứng thực đó. Tính năng này bảo
đảm rằng các chứng thực hết hạn sẽ được gia hạn tự động khi đến thời hạn.
Với một số lý do nhất định cần thiết phải huỷ bỏ chứng thực chứ không chỉ đơn
thuần là làm cho nó hết hạn. Công việc này có thể được thực hiện thông qua cơ chế danh
sách huỷ bỏ chứng thực tự động. Các chủ thể có thẩm quyền cấp phép chứng thực (CA)
thông thường sẽ làm công việc gửi các danh sách này tới người dùng, tuy nhiên họ cũng
có thể uỷ nhiệm cho một bộ phận khác.
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ư:
Nhóm nghiên cứu khoa học 11 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
• Khóa riêng của chủ thể bị xâm phạm
• Thông tin chứa trong chứng chỉ bị thay đổi
• Khóa 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
CRLs (Certificate Revocation Lists) 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.
2.5 Sao lưu và dự phòng khóa
Trong bất kỳ một môi trương PKI đang hoạt động, khả năng làm mất hoặc sai các
mã khoá riêng của người dùng là rất lớn, do đó cần phải có một cơ chế lưu trữ dự phòng
và khôi phục mã khoá. Không có khoá riêng, việc khôi phục tài liệu là không thể được
xét trên thực tế. Nguyên nhân có thể là do:
• Quên mật khẩu: Khoá bí mật của người dùng vẫn còn về mặt vật lý nhưng
không thể truy cập được.
• Phương tiện bị hỏng hóc: Ví dụ như đĩa cứng bị hỏng hoặc thẻ thông minh bị
gãy.
• Sự thay thế của phương tiện: Hệ điều hành được tải lại (ghi đè lên các giấy tờ
uỷ nhiệm cục bộ) hoặc một mô hình máy tính cũ hơn được thay thế bằng một
mô hình máy tính mới hơn và các giấy tờ uỷ nhiệm không được chuyển trước
khi đĩa cũ bị format.
Giải pháp đưa ra là thực hiện việc sao lưu và dự phòng khóa bí mật. Việc sao lưu
và dự phòng khóa mà cần thiết, nó tạo nên một phần mở rộng trong định nghĩa PKI
2.6 Cập nhật khóa tự động
Một chứng chỉ có thời gian sống hữu hạn. Khi chứng chỉ bị hết hạn sẽ được thay
thế bằng một chứng chỉ mới. Thủ tục này được gọi là cập nhật khoá hay cập nhật chứng
chỉ. Vấn đề đặt ra là người dùng PKI sẽ thường cảm thấy bất tiện khi phải cập nhật khoá
thủ công và thông thường thì họ sẽ không nhớ thời hạn hết hạn của chứng chỉ hoặc khi
thực hiện cập nhật khoá khi đã hết hạn thường gặp phải nhiều thủ tục phức tạp hơn.
Giải pháp đưa ra là xây dựng PKI theo cách mà toàn bộ khoá hoặc chứng chỉ sẽ
Nhóm nghiên cứu khoa học 12 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
được cập nhật hoàn toàn tự động mà không cần có sự can thiệp nào của người dùng. Mỗi
khi chứng chỉ của người sử dụng được dùng đến cho một mục đích bất kỳ, thời gian hợp
lệ của nó sẽ được kiểm tra. Khi sắp hết hạn thì hoạt động làm mới chứng chỉ sẽ diễn ra,
chứng chỉ mới sẽ được tạo ra thay thế chứng chỉ cũ và giao dịch của được yêu cầu của
người dùng sẽ tiếp tục diễn ra.
Bởi vì quá trình cập nhật khoá tự động là nhân tố sống còn đối với PKI hoạt động
trong nhiều môi trường, do đó, nó tạo nên một phần định nghĩa của PKI.
2.7 Lịch sử khóa
Trong suốt quá trình sử dụng PKI, một người dùng có thể có nhiều chứng chỉ cũ
và có ít nhất một chứng chỉ hiện tại. Tập hợp các chứng chỉ này với các khoá bí mật
tương ứng được gọi là lịch sử khoá (key history) hay còn gọi là lịch sử khoá và chứng
chỉ.
Cũng giống như sự cập nhật khoá, quản lý lịch sử khoá phải được thực hiện và
duy trì tự động trong PKI. PKI cần phải nắm giữ được tất cả các khoá trong lịch sử, thực
hiện sao lưu và dự phòng tại vị trí thích hợp.
2.8 Chứng thực chéo
Trong môi trường thực tế, không phải chỉ có một PKI toàn cục duy nhất hoạt động
mà thực tế có rất nhiều PKI được triển khai, hoạt động, phục vụ trong các môi trường và
cộng đồng người dùng khác nhau. Khi các PKI hoạt động phối hợp, liên kết với nhau, sẽ
nảy sinh vấn đề là làm thế nào để đảm bảo an toàn truyền thông giữa các cộng đồng
người dùng trong các PKI?
Khái niệm chứng thực chéo đã nảy sinh trong môi trường PKI để giải quyết nhu
cầu này nhằm tạo ra mối quan hệ tin tưởng giữa các PKI không có quan hệ với nhau
trước đó. Chứng thực chéo là cơ chế cho phép người dùng của một cộng đồng PKI này
xác nhận tính hợp lệ chứng chỉ của người dùng khác trong một cộng đồng PKI khác.
2.9 Hỗ trợ chống chối bỏ
Trong môi trường hoạt động của PKI, mỗi hành động của người dùng luôn gắn
với định danh của họ. Nếu một người dùng ký số văn bản của mình, thì có nghĩa người
dùng đó khẳng định rằng văn bản đó xuất phát từ phía mình.
PKI cần phải đảm bảo rằng người dùng đó không thể chối bỏ trách nhiệm mà
mình đã thực hiện. Cơ chế này được gọi là cơ chế hỗ trợ chống chối bỏ. Để thực hiện
được cơ chế hỗ trợ chống chối bỏ, PKI cần phải cung cấp một vài các bằng chứng kỹ
thuật được yêu cầu, như là xác thực nguồn gốc dữ liệu và chứng thực thời gian mà dữ
liệu được ký.
Nhóm nghiên cứu khoa học 13 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
2.10 Tem thời gian
Một nhân tố quan trọng trong việc hỗ trợ các dịch vụ chống chối bỏ là sử dụng
tem thời gian an toàn (secure time stamping) trong PKI. Nghĩa là nguồn thời gian phải
được tin cậy và giá trị thời gian phải được truyền đi một cách an toàn. Do đó cần phải có
một nguồn thời gian có thể tin tưởng được cho tất cả người dùng trong PKI.
2.11 Phần mềm phía người dùng
Trong mô hình PKI, các server sẽ thực hiện những nhiệm vụ sau:
• CA cung cấp các dịch vụ chứng chỉ
• Kho chứng chỉ sẽ lưu giữ các thông tin chứng chỉ và hủy bỏ chứng chỉ
• Máy chủ sao lưu và dự phòng sẽ quản lý lịch sử khóa một cách phù hợp
• Máy chủ tem thời gian sẽ kết hợp các thông tin thời gian có thể tin tưởng được
với các tài liệu văn bản
Server không thể thực hiện bất kỳ điều gì cho các máy khách nếu như máy khách
không đưa ra các yêu cầu dịch vụ. Do đó nhiệm vụ của máy khách sẽ là
• Máy khách đưa ra yêu cầu các dịch vụ chứng thực
• Máy khách yêu cầu chứng chỉ và xử lý các thông tin hủy bỏ chứng chỉ có liên
quan
• Máy khách phải biết lịch sử khóa và phải biết khi nào cần yêu cầu cập nhật
khóa hoặc hủy bỏ khóa
• Máy khách phải biết khi nào nó cần phải yêu cầu tem thời gian trên văn bản
Phần mềm phía client là một thành phần thiết yếu của PKI tích hợp đầy đủ tính
năng trên.
2.12 Chính sách của chứng chỉ
Chính sách có định danh duy nhất 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 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 chính sách này.
Chính sách chứng chỉ - Certificate Policies (CP) được chứa trong 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.
Nhóm nghiên cứu khoa học 14 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
3. Các thành phần của một hệ thống PKI
Một hệ thống PKI gồm các thành phần sau
• Certificate Authorites (CA): cấp và thu hồi chứng chỉ.
• Registration Authorites (RA): gắn kết giữa khóa công khai và định danh của
người giữ chứng chỉ
• Clients: Người sử dụng cuối hoặc hệ thống là chủ thể của chứng chỉ PKI.
• Repositories: Hệ thống lưu trữ chứng chỉ và danh sách các chứng chỉ bị thu
hồi. Cung cấp cơ chế phân phối chứng chỉ và CRLs đến các thực thể cuối.
Các thành phần PKI và các mối quan hệ giữa chúng được chỉ ra như trong hình
sau. Đây là mô hình kiến trúc PKI do PKIX đưa ra
Hình 3: Các thành phần PKI
3.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ử
Nhóm nghiên cứu khoa học 15 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
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 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”.
3.2 Trung tâm đăng ký (Registration Authorites)
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 khóa 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
possesion – POP).
• Tạo cặp khóa bí mật, công khai
• Phân phối bí mật được chia sử đến thực thể cuối (ví dụ: khóa công khai 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ữ khóa riêng
• Khởi sinh quá trình khôi phục khóa
• Phân phối thẻ bài vật lý (thẻ thông minh)
3.3 Thực thể cuối (end entity)
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ố).
3.4 Hệ thống lưu trữ (Repositories)
Chứng chỉ (khoá công khai) và thông tin thu hồi chứng chỉ phải được phân phối
Nhóm nghiên cứu khoa học 16 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
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ỉ:
• Phân phối cá nhân: Đây 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 email để 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ý
• 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
4. Chức năng cơ bản 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.
4.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.
4.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ỉ.
Nhóm nghiên cứu khoa học 17 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
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á).
4.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ố 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 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.
• Đă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ử.
• 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.
• Khôi phục cặp khóa: 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
Nhóm nghiên cứu khoa học 18 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
lẫn có thể xảy ra trong tương lai. Hệ thống PKI có những công cụ để thực hiện
chức năng sao lưu và khôi phục khoá.
• Tạo khóa: 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.
• Hạn sử dụng và cập nhật khóa: 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 khóa: Đâ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
• 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.
• 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 chi tiết trong nội dung về
chứng chỉ số ở phần trên.
• Xác thực chéo: 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.
Nhóm nghiên cứu khoa học 19 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
◦ 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.
• Thẩm quyền thứ cấp: cho phép CA gốc hạn chế tính năng của các CA thứ cấp.
tính năng này để quyết định dạng CA được phát hành và các dịch vụ khác mà CA
đó có thể tạo ra cho khách hàng. Một khi đã có một cơ chế phân cấp trong tổ
chức, xác định các đối tác kinh doanh chính và bắt đầu đưa vào cấu trúc bảo mật.
Tạo ra các chính sách bảo mật trong nội bộ tổ chức trong đó định nghĩa các tài sản
cần bảo vệ và những cách thức và công cụ mà nhân viên sẽ sử dụng để thực hiện
điều này. Thảo ra các quy trình hỗ trợ người sử dụng trong các vấn đề liên quan
tới phát hành, gia hạn và phục hồi các chứng thực và mã khoá, sau đó phân công
trách nhiệm phát triển và duy trì tổng thể hệ thống PKI cho những bộ phận có
chức năng. Một giải pháp PKI hoàn chỉnh và phù hợp sẽ đảm bảo khả năng bảo
mật cao nhất cho các tài sản kỹ thuật số trong doanh nghiệp
Nhóm nghiên cứu khoa học 20 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 4: Đường dẫn chứng chỉ chéo
5. Mục tiêu của PKI.
PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các
chứng thực khóa công khai để mật mã hóa và giải mã thông tin trong quá trình trao đổi.
Thông thường. PKI bao gồm phần mềm máy chủ (server), phần mềm máy khách
(client), phần cứng (như thẻ thông minh) và các quy trình hoạt động liên quan.
Người sử dụng cũng có thể ký các văn bản điện tử với khóa bí mật mình và mọi
người đều có thể kiểm tra với khóa công khai của người đó.
PKI cho phép các giao dịch điện tử được diễn ra đảm bảo tính bí mật, toàn vẹn và
xác thực lẫn nhau mà không cần phải trao đổi các thông tin mật từ trước.
Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa
Nhóm nghiên cứu khoa học 21 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
khóa và định dạng người dùng. Nhờ vậy người dùng có thể sử dụng trong một số ứng
dụng như:
• Mã hóa email hoặc xác thực người gửi email.
• Mã hóa hoặc xác thực văn bản.
• Xác thực người dùng ứng dụng.
• Xác giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL):
trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng.
Nhóm nghiên cứu khoa học 22 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Chương III: Xây dựng hệ thống PKI với
OpenCA.
I. Giới thiệu về OpenCA
Cơ sở hạ tầng khoá công khai là một trong những nhu cầu thiết yếu của tương lai.
Nhưng vấn đề là hầu hết các ứng dụng có thể được đảm bảo an toàn bằng chứng chỉ và
khoá thì lại rất khó và đắt đề cài đặt PKI, lý dó là phần mềm trung tâm tin cậy có tính
linh hoạt thì lại rất đắt. Đây là điểm khởi đầu của OpenCA. Mục đích là sản phẩm của hệ
thống trung tâm tin cậy nguồn mở để hỗ trợ cộng đồng với các giải pháp tốt, rẻ (chi phí
hợp lý) và mang tính xu hướng trong tương lai.
Dự án OpenCA được bắt đầu vào năm 1998. Ý tưởng OpenCA ban đầu được phát
triển bởi Massimiliano Pala. Mã nguồn ban đầu của dự án được viết bởi đoạn script rất
dài. Khi phiên bản đầu tiên của phần mềm được xây dựng thì dự án OpeSL vẫn có tên là
SSLeay. Rất nhiều chức năng vẫn còn lỗi và nhiều thứ khác nữa đều đang bị bỏ qua.
Phiên bản đầu tiên của OpenCA rất đơn giản, nhiều chức năng được xây dựng chủ
yếu chỉ được dùng để cấp phát chứng chỉ, CRL và các phương thức cài đặt thì khá đơn
sơ, không có tính tiện dụng cho bất kỳ tiện ích cấu hình nào, đoạn script chỉ có thể tương
thích với bash.
Các phiên bản tiếp theo được bổ sung thêm nhiều tính năng hơn cho dự án và do
đó phiên bản 0.109 đã bao gồm giao diện cho server của CA, RA và Pub. Từ lúc bắt đầu
dự án và từ phát hành phiên bản đầu tiên, đã có một lượng lớn sự tham gia của cộng
đồng Internet đóng góp vào sự phát triển của dự án.
Hiện nay OpenCA đã phát triển lên bản OpenCA PKI v1.1.0 (codename Samba),
bên cạnh đó dự án LibPKI cũng đã đưa ra phiên bản LibPKI v0.5.1 (codename Zoiberg).
II. Mô hình hệ thống PKI với OpenCA
Trong bài báo cáo này chúng em xây dựng một hệ thống PKI với đầy đủ các thành
phần như: RootCA, SubCA, RA và Repositories.
1. RootCA
RootCA được xây dựng trên hệ điều hành CentOS, với các thành phần cần thiết
như: apache, perl, openca-tools, openca-base, và một số thư viện cần thiết cho việc cài
đặt. Khi cài đặt gói openca-base chúng ta sẽ chỉ thực hiện chế độ install-offline.
Nhóm nghiên cứu khoa học 23 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Sau khi cài đặt xong RootCA. Chúng ta truy cập vào trang web để cấu hình và
quản lý RootCA theo địa chỉ https://rootca.actvn.net/pki/ca
Hình 5: Giao diện quản lý và cấu hình RootCA.
Trong mục PKI Init & Config chúng ta thực hiện việc khởi tạo cơ sở dữ liệu, khởi
tạo khóa riêng cho CA, tạo chứng chỉ CA , …
Hình 6: 3 bước thiết lập CA
Nhóm nghiên cứu khoa học 24 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
1.1 Khởi tạo CA.
Hình 7: Khởi tạo cơ sở dữ liệu, khóa CA, ...
• Khởi tạo cơ sở dữ liệu: Bước này sẽ tạo ra cơ sở dữ liệu dựa vào các tham số đã
thiết lập trong quá trình cài đặt openca. Nếu đã có 1 cơ sở dữ liệu trước đó thì ta
có thể chọn Upgrade Database để nâng cấp cơ sở dữ liệu, hoặc Re-init Database
để khởi tạo lại cơ sở dữ liệu ( lưu ý: nếu chọn thiết lập này sẽ làm mất cơ sở dữ
liệu hiện có ).
• Tạo khóa bí mật cho CA: Bước này thực hiện sinh khóa bí mật cho CA. Để thực
hiện việc sinh khóa bí mật chúng ta phải chọn thuật toán khóa, thuật toán mã hóa
khóa và độ dài của khóa.
Nhóm nghiên cứu khoa học 25 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 8: Tạo khóa bí mật cho CA.
Sau khi chọn xong các thuật toán và độ dài khóa, hệ thống sẽ sinh ra 1 khóa bí
mật cho CA như hình dưới đây. Hoặc có thể xem lại khóa được lưu trong máy theo
đường dẫn sau: /opt/OpenCA/var/openca/crypto/keys/cakey.pem ( /opt/OpenCA/ là thư
mục cài đặt OpenCA được thiết lập trong quá trình cài đặt ).
Nhóm nghiên cứu khoa học 26 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 9: Khóa bí mật của CA.
• Tạo yêu cầu cấp chứng chỉ cho CA: Sau khi tạo khóa bí mật cho CA xong,
chúng ta tạo 1 yêu cầu xin cấp chứng chỉ cho CA.
Hình 10: Tạo yêu cầu cấp chứng chỉ cho CA
Nhóm nghiên cứu khoa học 27 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 11: Nội dung yêu cầu chứng chỉ
Hình 12: Lựa chọn Self Signed CA để tự chứng thực CA.
Nhóm nghiên cứu khoa học 28 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
• Serial Number: số seri của chứng chỉ. Do đây là chứng chỉ đầu tiên cấp cho
CA nên chúng ta để Serial Number là 00.
• Certificate Validity: Thời hạn sử dụng chứng chỉ, mặc định là 730 ngày (2
năm). Chúng ta có thể thay đổi giá trị này tùy theo nhu cầu sử dụng hệ
thống.
• Extensions: Phần mở rộng, để ký chứng chỉ cho CA, chúng ta lựa chọn Self
Signed CA. Với lựa chọn này hệ thống sẽ tự ký vào yêu cầu này để tạo ra
chứng chỉ CA cho nó.
Sau khi lựa chọn xong hệ thống sẽ tạo chứng chỉ như hình dưới đây. Chúng ta
cũng có thể xem lại chứng chỉ tại /opt/OpenCA/var/openca/crypto/certs/00.pem
Hình 13: Chứng chỉ của CA.
• Xây dựng lại chuỗi chứng chỉ CA: Sau khi xây dựng xong SubCA chúng ta thêm
chứng chỉ của SubCA vào thư mục /opt/OpenCA/var/openca/crypto/chain/ rồi
chọn Rebuild CA Chain.
Nhóm nghiên cứu khoa học 29 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 14: Xây dựng lại chuỗi chứng chỉ CA.
1. 2 Khởi tạo chứng chỉ cho người quản trị.
Sau khi đã thiết lập CA xong, chúng ta thực hiện việc khởi tạo chứng chỉ cho
người dùng đầu tiên (khuyến cáo nên khởi tạo cho người quản trị).
Hình 15: Tạo chứng chỉ cho người quản trị.
Nhóm nghiên cứu khoa học 30 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 16: Khai báo các thông tin cơ bản.
Hình 17: Khai báo chi tiết chứng chỉ.
Lựa chọn chứng chỉ theo mẫu User. Mức độ bảo mật, chế độ sinh khóa ...
Nhóm nghiên cứu khoa học 31 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 18: Khai báo mã PIN.
Chọn lược đồ ký, độ mạnh của khóa và đặt mã PIN. Mã PIN rất quan trọng, mỗi
chứng chỉ có 1 mã PIN duy nhất.
Hình 19: Thỏa thuận người dùng.
Nhóm nghiên cứu khoa học 32 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 20: Tạo yêu cầu.
Sau khi tạo xong yêu cầu, chúng ta phải vào mục Issue the certificate để chấp
thuận yêu cầu trên. Trong đây chúng ta có thể sửa lại yêu cầu, tạo chứng chỉ hoặc xóa bỏ
yêu cầu này.
Hình 21: Ký chứng chỉ.
Nhóm nghiên cứu khoa học 33 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 22: Chứng chỉ của người dùng.
Sau khi đã Issue certificate chúng ta có thể lấy chứng chỉ về máy bằng cách chọn
mục Handle the certificate. Tại đây chúng ta có thể thấy chứng chỉ được cấp cho người
dùng có serial number là 53:CF:7A:A8:D6:E7:1E:42:3D:01( chứng chỉ được lưu trong
hệ thống tại /opt/OpenCA/var/openca/crypto/certs/53cf7aa8d6e71e423d01.pem).
Chọn More info để xem chi tiết thông tin về chứng chỉ và lấy chứng chỉ về máy
người dùng.
Nhóm nghiên cứu khoa học 34 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Hình 23: Download chứng chỉ về máy.
2. SubCA
Quá trình cài đặt SubCA tương tự như cài đặt RootCA.
Chúng ta cũng phải tạo khóa bí mật cho SubCA. Khởi tạo 1 yêu cầu cấp phát
chứng chỉ. Yêu cầu này sẽ được gửi cho RootCA để RootCA ký và chứng thực đây là 1
sub CA. Chứng chỉ sau khi được ký xong sẽ gửi trả lại cho SubCA.
3.RA
Quá trình cài đặt RA cũng tương tự như RootCA và SubCA. Có điểm khác là khi
cài đặt gói openca-base chúng ta chọn chế độ cài đặt là install-online.
Sau khi cài đặt xong RA. Người dùng sẽ đăng ký cấp chứng thư trực tiếp trên RA,
sau đó các yêu cầu cấp chứng thư sẽ được gửi đến cho SubCA để SubCA ký. Các chứng
thư sau khi được SubCA ký xong sẽ được gửi trả lại cho RA để người dùng lấy về, đồng
thời các chứng thư này cũng sẽ được công bố trên hệ thống kho lưu trữ (repositories)
Nhóm nghiên cứu khoa học 35 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Chương IV: Đánh giá và định hướng phát triển
Trong thời gian thực hiện đề tài, nhóm chúng em đã nghiên cứu và tìm hiểu về hệ
thống PKI dựa trên nền tảng mã nguồn mở OpenCA và thu được một số kết quả sau:
Về lý thuyết nhóm nghiên cứu đã tìm hiểu và nắm vững được các vấn đề sau
• Mật mã hóa khóa công khai
• Chữ ký số
• Các kiến thức cơ bản về cơ sở hạ tầng khóa công khai - PKI (một mô hình
được sử dụng rất nhiều cho việc truyền thông qua mạng Internet như gửi thư
an toàn, chứng thực web an toàn, … )
Về mặt thực nghiệm: nhóm đã thực hiện được các kết quả sau
• Xây dựng hệ thống PKI với OpenCA.
• Thử nghiệm xin cấp phát chứng thư và cấp phát chứng thư.
• Lưu trữ chứng thư trên kho lưu trữ repositories.
Do giới hạn về thời gian, cơ sở vật chất. Bên cạnh những mặt đạt được như trên
thì nhóm vẫn còn một số mặt hạn chế:
• Mô hình nhỏ chỉ phục vụ cho việc nghiên cứu, có khả năng đáp ứng cho doanh
nghiệp vừa và nhỏ.
• Chưa nghiên cứu được việc ứng dụng trong thẻ token, smart card, …
Hướng phát triển: Xây dựng hệ thống PKI kết hợp với các giải pháp an ninh
khác để đảm bảo an toàn và cung cấp môi trường truyền thông an toàn trong hệ thống
mạng cục bộ, mạng doanh nghiệp.
Nhóm nghiên cứu khoa học 36 Học viện Kỹ Thuật Mật Mã
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA.
Kết luận
Việc nghiên cứu và xây dựng hệ thống PKI dựa trên nền tảng mã nguồn mở
OpenCA là một vấn đề còn mới mẻ và luôn cần được hoàn thiện. Dự án OpenCA vẫn
đang được hoàn thiện với bộ thư viện libpki mới.
Hiện nay, việc áp dụng mật mã hóa khóa công khai và 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, tình hình triển khai cơ sở hạ tầng
khóa công khai (PKI) và chứng thực điện tử (CA) được đánh giá là đã đi đúng hướng và
bài bản, nhưng tiến độ vẫn còn chậm. Thực tế ở Việt Nam việc triển khai dịch vụ chứng
thực điện tử mới chỉ ở một số cơ quan nhà nước, cơ quan thuộc chính phủ. Còn các
doanh nghiệp cũng có sử dụng chứng thực điện tử nhưng còn ít và đều là mua của các tổ
chức cung cấp. Việc triển khai các 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 con
người. 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. Hiện nay, ở Việt Nam đã ban hành một số các điều luật trong lĩnh vực
này như Luật công nghệ thông tin ban hành ngày 29/6/2006, Luật giao dịch điện tử ban
hành ngày 29/11/2005, Luật nội dung chữ ký số ban hành ngày 15/2/2007...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.
Ngoài ra nếu một cơ sở hạ tầng có công nghệ yếu thì sẽ không có sự tin tưởng và
nhà cung cấp dịch vụ 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 việc triển khai cơ sở hạ tầng an ninh rộng khắp.
Với OpenCA - một dự án mã nguồn mở, thì chi phí xây dựng hậ tầng khóa công
khai và chứng thực điện tử cho doanh nghiệp là rất thấp, dễ dàng triển khai. Tuy nhiên,
nếu nhiều doanh nghiệp cùng triển khai sẽ dần đến khó quản lý, không nhất quán giữa
các doanh nghiệp, do đó cần có một tổ chức cấp cao hơn sẽ quản lý các doanh nghiệp
này và xây dựng hệ thống chức thực chéo giữa các doanh nghiệp để đảm bảo sự tín
nhiệm giữa các doanh nghiệp.
Nhóm nghiên cứu khoa học 37 Học viện Kỹ Thuật Mật Mã
Các file đính kèm theo tài liệu này:
- CD008.pdf