Tổng quan về PKITrong giải pháp chữ ký số, hạ tầng cơ sở khóa công khai Public Key Infrastructure – PKI là hệ thống vừa mang tính tiêu chuẩn, vừa mang tính công nghệ cho phép người dùng
Trang 1BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ
Nghiên cứu các mô hình tin cậy trong PKI, các phương pháp mở rộng miền tin cậy Triển
khai thực hiện trên EJBCA.
Sinh viên thực hiện: Nguyễn Trí Khanh (Nhóm 37)
Giảng viên hướng dẫn: Ths Đinh Văn Hùng
Khoa: An toàn thông tin - Học viện Kỹ Thuật Mật Mã
Hà Nội, tháng 6 năm 2023
Trang 2Mục lục
b Các thành phần cảu một hạ tần cơ sở khóa công khai 3
III Các phương pháp mở rộng miền tin cậy 9
Trang 3I Tổng quan về PKI
Trong giải pháp chữ ký số, hạ tầng cơ sở khóa công khai (Public Key Infrastructure – PKI) là hệ thống vừa mang tính tiêu chuẩn, vừa mang tính công nghệ cho phép người dùng trong một mạng công cộng không bảo mật (như Internet) có thể trao đổi thông tin một cách an toàn thông qua việc sử dụng một cặp khóa bí mật và công khai được chứng nhận bởi một nhà cung cấp chứng nhận số CA (Certificate Authority) được tín nhiệm PKI cung cấp một chứng chỉ số, dùng để xác minh một cá nhân hoặc một tổ chức, và các dịch vụ danh mục có thể lưu trữ và khi cần có thể thu hồi các chứng chỉ số
1 Giới thiệu chúng về PKI
a Vai trò và chức năng
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 khách (client), phần mềm máy chủ (server), phần cứng (như thẻ thông minh - smart card) 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 private key của mình và mọi người đều có thể kiểm tra với public key của người đó PKI cho phép các giao dịch điện tử 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
Ứng dụng của PKI
● Mã hóa, giải mã văn bản;
● Xác thực người dùng ứng dụng;
● Mã hóa email hoặc xác thực người gửi email;
● Tạo chữ ký số trên văn bản điện tử
Một PKI phải đảm bảo được các tính chất sau trong một hệ thống trao đổithông tin:
● Tính bí mật (Confidentiality): PKI phải đảm bảo tính bí mật của dữ
Trang 4● Tính toàn vẹn (Integrity): PKI phải đảm bảo dữ liệu không thể bị
mất mát hoặc chỉnh sửa và các giao tác không thể bị thay đổi
● Tính xác thực (Authentication): PKI phải đảm bảo danh tính của
thực thể được xác minh
● Tính không thể chối từ (Non-Repudiation): PKI phải đảm bảo dữ
liệu không thể bị không thừa nhận hoặc giao tác bị từ chối
b Các thành phần cảu một hạ tần cơ sở khóa công khai
PKI là cơ cấu tổ chức gồm con người, tiến trình, chính sách, thủ tục, phần cứng
và phần mềm dùng để phát sinh, quản lý, lưu trữ, triển khai và thu hồi các chứng nhận khóa công khai
PKI gồm các thành phần chính sau:
● Thực thể cuối (End Entity – EE):
○ Đối tượng sử dụng chứng nhận (chứng thư số): có thể là một tổ chức, một người cụ thể hay một dịch vụ trên máy chủ, …
● Tổ chức chứng nhận(Certificate Authority – CA):
○ Có nhiệm vụ phát hành, quản lý và hủy bỏ các chứng thư số
○ Là thực thể quan trọng trong một PKI mà được thực thể cuối tín
Trang 5○ Gồm tập hợp các con người và các hệ thống máy tính có độ an toàncao
● Chứng nhận khoá công khai (Public Key Certificate):
○ Một chứng nhận khóa công khai thể hiện hay chứng nhận sự ràng buộc của danh tính và khóa công khai của thực thể cuối
○ Chứng nhận khóa công khai chứa đủ thông tin cho những thực thể khác có thể xác nhận hoặc kiể m tra danh tính của chủ nhận chứng nhận đó
○ Định dạng được sử dụng rộng rãi nhất của chứng nhận số dựa trên chuẩn IETF X.509
● Tổ chức đăng kí chứng nhận (Registration Authority – RA): Mục đích chính của RA là để giảm tải công việc của CA
○ Xác thực cá nhân, chủ thể đăng ký chứng thư số
○ 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 thư sốđượ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 (chứng minh sở hữu)
○ Tạo cặp khóa bí mật, công khai (nếu chủ thể yêu cầu)
○ 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)
● Kho lưu trữ chứng nhận (Certificate Repository – CR):
○ Hệ thống (có thể tập trung hoặc phân tán) lưu trữ chứng thư và danh sách các chứng thư bị thu hồi
○ Cung cấp cơ chế phân phối chứng thư và danh sách thu hồi chứng thư (CRLs - Certificate Revocatio Lists)
Trang 63 CA phát hành thẻ chứng thư số cho người dùng.
4 Người dùng ký thông điệp trao đổi với thẻ chứng thư số mới nhận được
từ CA và sử dụng chúng trong giao dịch
5 Định danh của người dùng được kiểm tra bởi đối tác thông qua sự hỗ trợ của VA (Validation Authority) VA (validation authority) : Cơ quan xác thực của bên thứ ba có thể cung cấp thông tin thực thể này thay mặt cho CA.)
6 Nếu chứng thư số của người dùng được xác nhận tính hợp lệ thì đối tác mới tin cậy người dùng và có thể bắt đầu quá trình trao đổi thông tin với
nó (VA nhận thông tin về thẻ chứng thư số đã được phát hành từ CA (a))
II Các mô hình tin cậy
Hầu hết các hệ thống PKI quy mô doanh nghiệp đều dựa trên các chuỗi chứng thực để xác thực các thực thể Chứng thực của người dùng sẽ được một nhà cung cấp chứng thực số cấp, đến lượt nhà cung cấp này lại có chứng thực được một nhà cung cấp khác ở cấp cao hơn tạo ra Hệ thống sẽ bao gồm nhiều máy tính thuộc nhiều tổ chức khác nhau với các gói phần mềm tương thích từ nhiều nguồn khác nhau Vì vậy, các tiêu chuẩn là yếu tố rất quan trọng đối với hoạt động của các PKI Hầu hết các tiêu chuẩn về PKI hiện tại được soạn thảo bởi nhóm làm việc PKIX của IETF
Các hệ thống PKI doanh nghiệp thường được tổ chức theo mô hình danh
bạ trong đó khóa công khai của mỗi người dùng được lưu trữ (bên trong các chứng thực số) kèm với các thông tin cá nhân (số điện thoại, email, địa chỉ, nơi
Trang 7làm việc ) Hiện nay, công nghệ danh bạ tiên tiến nhất là LDAP và định dạng chứng thực phổ biến nhất (X509) cũng được phát triển từ mô hình tiền nhiệm của LDAP (X.500).
Khi muốn triển khai một mô hình tin cậy PKI đảm bảo một số hoặc tất cả các nguyên tắc, có bốn loại được sử dụng để triển khai mô hình tin cậy PKI bao gồm:
- Mô hình tin cậy phân cấp (Hierarchical Trust Model)
- Mô hình Bridge CA (Bridge Trust Model)
- Mô hình tin cậy hỗn hợp (Hybrid Trust Model)
- Mô hình lưới tin cậy (Mesh Trust Model)
1 Mô hình cây phân cấp (Trust Model Implement)
Đây là mô hình phổ biến nhất để triển khai PKI, nó còn được gọi là mô hình cây Một Root CA ở trên cùng sẽ cung cấp tất cả thông tin của các CA trung gian ở dưới nằm trong hệ thống phân cấp, và chúng chỉ tin duy nhất thôngtin được cung cấp bởi Root Root CA cũng tin tưởng các CA trung gian ở cấp
độ của chúng trong hệ thống phân cấp
Sử sắp xếp này cho phép mức độ kiểm soát cao ở tất cả các cấp của cây phân cấp, là một hình thức phổ biến nhất trong cacs tổ chức lớn với nhu cầu mở rộng khả năng xử lý trong tương lai Mô hình phân cấp cho phép kiểm soát chặt chẽ các hoạt động dự trên các chứng chỉ
Hierarchical Trust Model
2 Mô hình Bridge CA (Bridge Trust Model)
Trong mô hình này chúng ta có triển khai theo hình thức P2P (Point to
Trang 8Point) với nhiều mối quan hệ giữa các P2P với nhau, giữa các RootCA mà các
CA gốc có thể giao tiếp với nhau và cho phép chứng chỉ chéo Mô hình triển khai này cho phép thiết lập quy trình chứng nhận giữa các tổ chức hoặc các phòng ban
Trong mô hình này, mỗi CA trung gian chỉ tin cậy CA ở trên và dưới nó,
mô hình có thể mở rộng mà không cần tạo thê lớp CA như mô hình CA phân cấp (1) Đây là tính chất linh hoạt, một lợi thể chính của mô hình này
Bridge Trust Model
3 Mô hình tin cậy hỗ hợp (Hybrid Trust Model)
Đôi khi chúng ta cần kết nối 2 hoặc nhiều tổ chức hoặc phòng ban trong một phần nào đó tách bịch của hệ thống mà chúng ta không muốn kết nối với toàn bộ các các bộ phận trong tổ chứ Mô hình tin cậy hỗn hợp là lựa chọn hàng đầu cho trường hợp này Chúng ta có thể linh hoạt xây dựng mô hình, và cho phép chúng ta tạo một mô hình hỗn hợp
Một lưu ý rằng, trong mô hình cấu trúc này các CA trung gian nằm ngoài môi trường Hybrid chỉ có thể tin cậy vào RootCA và CA trung gian trong hệ thống chính
Trang 9Hybrid trust model
4 Mô hình lưới tin cậy (Mesh Trust Model)
Khi chúng ta muốn triển khai một hệ thống tin cậy phân cấp bằng kiểm tra chứng chỉ chéo hoặc web của Root CA, mô hình lưới tin cậy (Mesh Trust Model) là lựa chọn hàng đầu để giải quyết vấn đề này Trong mô hình này các RootCA của các hệ thống sẽ có cấp ngang nhau
Các chứng chỉ trong mỗi CA gốc được cấp phép ở tất cả các Root CA,
CA trung gian và CA cấp dưới cũng như tất cả người người cuối kết nối với từng chuỗi CA
Trang 10Mesh Trust Model
Tất cả các mô hình có thể sử dụng và triển khai hệ thống một cách linh hoạt và
có thể kết hợp với nhau Tùy thuộc và nhu cầu cầu của hệ thống sẽ có các cách triển khai khác nhau
III Các phương pháp mở rộng miền tin cậy
1 Cầu nối CA (Bridge CA)
Mô tả: Bridge CA là keets nối các CA độc lập, tạo thành một điểm trung
gian để các CA khác có thể tin tưởng lẫn nhau
Ưu điểm: Cho phép liên kết các CA từ các tổ chức khác nhau mà
kkhhoong ần tin tưởng trực tiếp lẫn nhau
Nhược điểm: Vấn đề quản lý các CA phước tạp, yêu cầu phải có một
Bridge CA có độ tin cậy cao
2 CA liên kết (Cross-certification)
Mô tả: Đây là phương pháp cho hai CA sẽ cấp chứng chỉ cho nhau, tạo ra
liên kết trực tiếp giữa các miền tin cậy
Ưu điểm: Tối ưu chi phí, không cần một CA trung gian
Trang 11Nhược điểm: Khi cần mở rộng thêm CA thì vấn đề quản lý sẽ trở nên
phức tạp
3 Hệ thống chứng chỉ gốc (Root CA)
Mô tả: Một CA gốc tạo ra một điểm tin cậy cao nhất, các CA khác nhận
được chứng chỉ từ CA gốc này (Root CA)
Ưu điểm: Đơn giản trong việc thiết lập và duy trì mootjj chuỗi tin cậy rõ ràng
Nhược điểm: Do phụ thuộc vào CA gốc nên khi có sự cố ở CA gốc cả hệ
thông sẽ bị ảnh hưởng
4 Federated Trust Mode
Mô tả:Các tổ chức liên kết với nhau và chia sẻ một hoặc nhiều CA để tọa
thành một liên minh tin cậy/
Ưu điểm: Cho phép nhiều tổ chức hợp tác và chia sẻ tài nguyên tin cậy Nhược điểm: Cần có các chính sách và quy định rõ ràng để quản lý sự
tin cậy giữa các tổ chức
5 Trust list
Mô tả: Sử dụng danh sách tin cậy được quản lý tập trung hoặc phân tán
để liệt kê các CA tin cậy
Ưu điểm: Linh hoạt và dễ dàng cập nhật
Nhược điểm: Đòi hỏi sự quản lý chặt chẽ để đảm bảo danh sách luôn
2 Đặc điểm kỹ thuật:
Được xây dựng dựa trên Java, EJBCA thực sự là một nền tảng độc lập,
Trang 12chạy trên hầu như toàn bộ các phần cứng phổ biến cũng như các hệ điều hành thông dụng như Window, Linux Để có thể hoạt động, EJBCA cần chạy trên một nền tảng máy chủ ứng dụng (Application Server) cũng như một hệ thống
Cơ sở dư liệu nhất định Về mặt này, EJBCA cũng hỗ trợ hầu hết các nền tảng App Server phổ biến hiện nay như: JBOSS – Oracle Weblogic – IBM Web Sphere… cũng như các hệ cơ sở dữ liệu từ miễn phí đến trả phí: MySQL, Oracle, IBM DB2, MS SQL,…
Bên cạnh đó, EJBCA còn có một số điểm đặc trưng sau:
● Cung cấp khả năng xây dựng CA theo nhiều mức, không giới hạn số lượng CA;
● Hỗ trợ thuật toán RSA với độ dài khóa lên tới 4096 bits;
● Hỗ trợ các thuật toán DSA với độ dài khóa lên tới 1024 bits;
● Hỗ trợ các hàm băm như MD5, SHA-1, SHA-256;
● Chứng thư được phát hành tuân thủ nghiêm ngặt chuẩn X509
3 Kiến trúc
Kiến trúc EJBCA
● Tầng dữ liệu (Data Tier): Tầng dữ liệu lưu trữ các chứng nhận, CRL cũng như các thực thể cuối EJBCA sử dụng một cơ sở dữ liệu mặc định để lưu trữ các thực thể cuối CÁc chứng nhận được lưu trữ trong một kho chứa LDAP (Lightweight Directory Access Protocol)
● Thành phần CA: Thành phần có chức năng tạo các CA gốc, CA
Trang 13con chứng nhận, CRL và giao tiếp với kho chứa LDAP để lưu trữ thông tin chứng nhận
● Thành phần RA: Thành phần có chức năng tạo, xóa và hủy bỏ người dùng Nó giao tiếp với cơ sở dữ liệu cục bộ để chứa thông tin người dùng
● Tầng Web: Đây là giao diện (điển hình là giao diện người dùng - máy bằng đồ họa) để client tương tác với hệ thống EJBCA, đồng thời quy định các cấp đọ và phạm vi truy cập thông tin kahcs nhau cho thực thể cuối
● Trình khách: trình khách là thực thể cuối hay người sử dụng như trình khách thư điện tử, máy chủ web, trình duyệt web hay cổng VPN Các thực thể cuối không được phép phát hành chứng nhận đến các thực thể khác, nói cách khác chúng là các nút lá trong PKI
4 Đặc điểm nội bật
- EJBCA là phần mềm chứng nhận được sử dụng phổ biến
- Tùy chọn giữa các thuật toán SHA1 hay SHA256 với RSA và các kích thước khác nhau như 1024, 2048, 4096
- Cung cấp một số tính năng nổi bật về lựa chọn ngôn ngữ trong quá trình cấu hình hệ thông
- Ngoài ra cũng có thể chọn loại Publisher mình muốn như LDAP, thư mục
tự động (AD-Active Directory) hay một kết nối publisher tự làm
- Sự phát hành của chứng nhận luôn luôn thuộc chuẩn X509
- Việc ký chứng nhận có thể là tự ký (self-signed), CA bên ngoài (external CA) hay CA quản trị (admin CA)
V Triển khai ẸBCA
1 Mô tả:
Trong bài bài lab này thì để đơn giàn và cài đặt nhanh chóng, chúng ta sẽ cài đặtthông qua docker
2 Chuẩn bị và cài đặt:
Trong bài lab này hệ thống được triển khai trên: ubuntu 22.04, docker
Docker file như sau:
Trang 15$ docker-compose up
Khi chạy lên chúng ta có thể truy cập qua: https://0.0.0.0/ejbca/adminweb/chúng ta có thể chỉnh sửa file host của máy để trỏ về địa chỉ:
https://lab.ejbca.com/ejbca/adminweb/
Giao diện sau khi vào trang như sau:
Giao diện trang chủ
3 Thiết lập CA gốc (Root CA) và các Sub CA
- Truy cập: https://lab.ejbca.com/ejbca/adminweb/
Trang 16Tạo một CA gốc bằng cách cung cấp các thông tin cần thiết (tên CA, chính sách, thuật toán, độ dài khóa)
Trang 19Tạo Profile Sub CA
Trang 20Chỉnh sửa Sub CA tương tự như ở Root CA
Trang 23Tạo Cryto Token
Trang 27Tạo Root CA:
Trang 29Tạo Sub CA
Trang 32Tạo End Entity:
Trang 35● Tài liệu tham khảo: