Professional Documents
Culture Documents
Nhóm 21 EJBCA Apache
Nhóm 21 EJBCA Apache
ĐỀ TÀI
Phần mềm :EJBCA
Sử dụng chứng thư số SSL đã tạo ra, cài đặt và cấu
hình chứng thư số cho webserver Apache
Hà Nội, 07-2024
Mục Lục
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
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 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.
c. Thực thể cuối (End Entity – EE)
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ố).
d. Kho lưu trữ chứng nhận (Certificate Repository – CR)
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ỉ:
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ý.
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)
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ỉ đ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á).
c. 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ý
Đă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 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 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 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.
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á
Đâ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.
EJBCA được xây dựng với kiến trúc phân tầng, cụ thể như sau:
- Data Tier – tầng dữ liệu: 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.
- Thành phần CA: Thành phần có chức năng tạo các CA gốc, CA con, 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.
- Tầng Web Tier: Đây là giao diện (điển hình là giao diện người – máy bằng
đồ họa) để trình khách 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 khác 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.
2.1.4 Chức năng
EJBCA là một tổ chức chứng nhận rất phổ biến hiện đang được sử dụng, một
trong những CA được ưa thích hiện nay. Các đặc trưng cơ bản của CA này bao
gồm sự lựa chọn của thuật toán ta cần như tùy chọn giữa các thuật toán SHA1
hay SHA256 với RSA và với các kích thước khóa khác nhau như 1024, 2048,
4096. 63
EJBCA 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 ta cũng có thể chọn loại publisher chúng ta
muốn như LDAP, thư mục động (AD – Active Directory) hay một thiết kế
publisher tự làm.
Apache có các tính năng như chứng thực người dùng, virtual hosting, hỗ trợ
CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6,…
Về cách thức hoạt động, Apache là một chương trình phần mềm chạy trên
máy chủ để thiết lập kết nối giữa máy chủ và trình duyệt. Sau đó, nó truyền, trao
đổi tập tin cấu trúc hai chiều có dạng người dùng – máy chủ (client – server).
Có thể nói, Apache là một phần mềm hoạt động đa nền tảng.
Cụ thể, khi người dùng truy cập vào trang web thì trình duyệt sẽ tiến hành
gửi yêu cầu lên máy chủ web. Kế đến, Apache thực hiện việc phản hồi thông
tin, bao gồm toàn bộ các tập tin tạo nên trang web (nội dung, hình ảnh, âm
thanh, video…) mà người dùng muốn truy cập. Thông qua giao thức HTTP,
server và client giao tiếp với nhau. Lúc này, Apache đóng vai trò đảm bảo tiến
trình giao tiếp được diễn ra mượt mà, bảo mật.
Nhờ có cách thức hoạt động này mà Apache trở thành nền tảng module
có tính tùy biến cao. Nó cung cấp cho quản trị viên quyền tắt hoặc tùy ý thêm
chức năng trên máy chủ. Ngoài ra, Apache còn có thêm module bảo mật
caching, chứng thực mật khẩu, URL rewriting,… để người dùng bảo vệ tối đa
website của mình.
2.2.3 Ưu điểm
Apache mang đến cho người dùng nhiều ưu điểm nổi bật như:
Tiết kiệm chi phí vì Apache là phần mềm miễn phí và sử dụng mã nguồn mở.
Độ tin cậy và ổn định cao, nhờ phần mềm được thường xuyên nâng cấp nhiều
phiên bản để vá lỗi bảo mật.
Apache có tính linh hoạt cao và cấu trúc các module vô cùng tiện lợi. Hơn nữa,
phần mềm còn cấu hình dễ dàng, cách sử dụng đơn giản.
Apache hoạt động đa nền tảng (Widows, Linux, Unix…). Đặc biệt, nó hoạt
động rất hiệu quả với website WordPress.
2.2.4 Nhược điểm
Apache vẫn còn tồn tại một số nhược điểm như:
Không phù hợp với website có lượng truy cập lớn.
Nhiều lựa chọn thiết lập nên dễ gây ra điểm yếu bảo mật.
Chương 3 : Vận hành hệ thống
P12 được đề cập trong đầu ra console ở trên là một cặp khóa sẽ được tạo bởi
máy chủ EJBCA khi truy cập URL được cung cấp. Định dạng P12 chứa khóa
riêng, chứng chỉ được ký bởi Management CA chứa khóa công khai, được mã
hóa và bảo vệ bằng mật khẩu.
`Nhập superadmin.p12 trong trình duyệt web của bạn bằng mật khẩu được in ở
dòng cuối cùng sau khi chạy tập lệnh..
Để truy cập EJBCA CA UI, nhập chứng chỉ SuperAdmin đã tải xuống vào trình
duyệt web
Tiếp theo, trỏ trình duyệt đến https://localhost/ejbca/adminweb/ để truy cập
EJBCA bằng chứng chỉ đã nhập.EJBCA CA UI mở ra hiển thị trang quản trị.
4. Chọn loại End Entity, mã hóa RSA độ dài 2048 bit và có hiệu lực 1 năm
8. Nhấp vào Save để lưu cài đặt và xem cấu hình chứng chỉ mới trong danh
sách
3.1.5. Phát hành chứng thư cho Server
1. Chọn End Entity Profiles trong RA Functions
2. Thêm mới một End Entity Profiles
4. Chọn loại End Entity, mã hóa ECDSA độ dài 256 bit và có hiệu lực 1
năm
5. Tại Key Usage chọn Digital Signature và Key encipherment, tại Extended
Key Usage chọn Client Authentication
6. Chọn CA muốn có thể sử dụng cấu hình này
7. Nhấn vào Save để lưu cài đặt và xem cấu hình chứng chỉ mới trong danh
sách
3.1.7. Phát hành chứng thư số cho Client
1. Chọn End Entity Profiles trong RA Functions
2. Thêm mới một End Entity Profiles
6. Để truy cập được cần import file chứng chỉ và khóa của client vào trình
duyệt
7. Chọn OK và trở lại trang web sẽ nhận yêu cầu gửi chứng chỉ lên server,
chọn chứng chỉ client
8. Kết quả truy cập được web với kết nối an toàn
TÀI LIỆU THAM KHẢO
https://ubuntu.com/tutorials/install-and-configure-apache#1-overview
https://download.primekey.se/docs/EJBCA-Enterprise/latest/
Quick_Install_Guide.html
https://doc.primekey.com/ejbca/ejbca-operations/ejbca-operations-
guide/ca-operations-guide/managing-certificate-profiles/create-a-
certificate-profile-for-ssl-servers
https://doc.primekey.com/ejbca/ejbca-operations/ejbca-operations-
guide/ca-operations-guide/end-entities/issue-a-new-pkcs-12-keystore-
for-an-ssl-server
https://linuxconfig.org/apache-web-server-ssl-authentication
https://www.ssl.com/how-to/export-certificates-private-key-from-
pkcs12-file-with-openssl/#ftoc-heading-3