1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề 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

36 9 3
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 8,26 MB

Cấu trúc

  • Chương I Tổng quan về hạ tầng mật mã khóa công khai (4)
    • 1.1 Tổng quan về hạ tầng mật mã khóa công khai (4)
      • 1.1.1 Các thành phần của PKI (4)
      • 1.1.2 Chức năng cơ bản của PKI (6)
    • Chương 2. Công nghệ xây dựng hạ tầng PKI và ứng dụng (10)
      • 2.1.1 PKI – EJBCA (10)
      • 2.1.2 Đặc điểm kỹ thuật (10)
      • 2.1.3 Kiến trúc EJBCA (11)
      • 2.1.4 Chức năng (11)
      • 2.1.5 Đánh giá (12)
      • 2.2.1 Khái niệm (13)
      • 2.2.2 Cách thức hoạt động (13)
      • 2.2.3 Ưu điểm (13)
      • 2.2.4 Nhược điểm (14)
    • Chương 3 Vận hành hệ thống (15)
      • 3.1. Hạ tầng PKI (15)
        • 3.1.1. Cài đặt EJBCA (15)
        • 3.1.2. Tạo RootCA (19)
        • 3.1.3. Tạo SubCA (20)
        • 3.1.4. Cấu hình SSL Server Profiles (21)
        • 3.1.5. Phát hành chứng thư cho Server (23)
        • 3.1.6. Cấu hình Client Profiles (25)
        • 3.1.7. Phát hành chứng thư số cho Client (27)
      • 3.2. Ứng dụng (29)
        • 3.2.1. Cài đặt Apache Web Server và cấu hình SSL 1 chiều (29)

Nội dung

Khái niệm hạ tầngkhoá công khai PKI thường được dùng chỉ toàn bộ hệ thống bao gồm cả nhàcung cấp chứng thực số CA 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

Tổng quan về hạ tầng mật mã khóa công khai

Tổng quan về hạ tầng mật mã khóa công khai

Public Key Infrastructure (PKI) là một cơ chế để cho một bên thứ ba (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 cho phép gán cho mỗi người sử dụng trong hệ thống một cặp public/private 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 khác tại các địa điểm của người dùng Khoá công khai thường được phân phối trong chứng thực khóa công khai – hay Public Key Infrastructure Khái niệm hạ tầng khoá công khai (PKI) thường được dùng chỉ toàn bộ hệ thống bao gồm cả nhà cung cấp chứng thực số (CA) 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ã hoá công khai trong trao đổi thông tin.

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

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

 Tổ chức chứng nhận (Certificate Authority – CA)

 Trung tâm đăng ký (Registration Authority – RA)

 Thực thể cuối (End Entity – EE)

 Kho lưu trữ chứng nhận (Certificate Repository – CR)

Hình 1 : Các thành phần của PKI a Tổ chức chứng nhận (Certificate Authority – CA)

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 CA được sử dụng trong bài báo cáo

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”. b Trung tâm đăng ký (Registration Authority – RA)

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 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 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ý.

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ữ:

 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

1.1.2 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. a 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. b Thẩm tra (validation)

Công nghệ xây dựng hạ tầng PKI và ứng dụng

Phần mềm mã nguồn mở EJBCA là gói phần mềm cho phép triển khai một hệ thống PKI hoàn chỉnh và đầy đủ chức năng Nhằm tận dụng các tính chất ưu việt của gói phần mềm này cũng như kiểm soát được quá trình phát triển và độ an toàn của hệ thống, luận văn đã tiến hành cài đặt và triển khai thử nghiệm một hệ thống chứng thực chéo theo kiến trúc PKI đơn giản, có thể sử dụng trong thực tế

EJBCA là sản phẩm mã nguồn mở của hãng Primekey Đây là một CA được xây dựng trên công nghệ Java J2EE, nhờ đó hiệu suất hoạt động cũng như khả năng tùy biến của CA là tương đối cao so với các hệ thống mã nguồn mở khác.

Bên cạnh đó, EJBCA còn cung cấp tính năng và thành phần (OCSP, RA Service, Publisher,…) giúp cấu thành một hệ thống PKI tương đối đầy đủ và hoàn thiện

2.1.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, chạ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

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.

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.

Ngoài EJBCA còn có các sản phẩm khác có thể triển khai hệ thống PKI hoàn chỉnh như OpenCA và Windows 2003 Server CA Do Windows 2003 Server CA không phải là sản phẩm mã nguồn mở, không thể tự do phát triển cũng như kiểm soát được quá trình phát triển và độ an toàn nên không được quan tâm tìm hiểu.

EJBCA và OpenCA đều là các dự án PKI mã nguồn mở mạnh và hiện cũng có nhiều phát triển đang được thực hiện cả 2 phần mềm này.

EJBCA là một CA và là một hệ thống quản lý PKI hoàn chỉnh, là một giải pháp PKI rất mạnh, độc lập môi trường, hiệu suất cao, có thể mở rộng dựa trên thành phần Ngoài ra, EJBCA rất linh hoạt trong việc cung cấp các cách thức hoạt động tùy chọn như một CA độc lập hoặc được tích hợp hoàn toàn trong ứng dụng thương mại bất kỳ Hơn nữa, tuy việc cấu hình hệ thống EJBCA phức tạp hơn OpenCA rất nhiều nhưng hệ thống EJBCA khi đã đi vào hoạt động lại mang đến rất nhiều tiện lợi và đơn giản cho người sử dụng trong việc phát sinh và quản lý chứng nhận Ngoài ra, khác với OpenCA, việc cập nhật CRL trong EJBCA hoàn toàn tự động

Ngoài ra, EJBCA được phát triển và cung cấp bởi PrimeKey, một công tyPKI mã nguồn mở đứng đầu trên thế giới nên việc sử dụng EJBCA ta có thể thưa hưởng từ năng lực phát triển của công ty và hoàn toàn yên tâm về tính an toàn luôn có trong mã nguồn.

2.2- Công nghệ ứng dụng ( Apache WebServer )

Apache HTTP server hay còn được gọi là Apache là phần mềm web server được sử dụng rộng rãi nhất thế giới Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation.

Apache được phát hành với giấy phép Apache License, là một phần mềm tự do, miễn phí

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.

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

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.

Vận hành hệ thống

Khởi động EJBCA Community container

$ docker run -it rm -p 80:8080 -p 443:8443 -h localhost -e TLS_SETUP_ENABLED="true" keyfactor/ejbca-ce

Giao diện web EJBCA RA:

EJBCA hiện đang hoạt động và đã tạo ra một Management CA (được sử dụng để quản lý PKI nội bộ trong EJBCA) cũng như một siêu quản trị viên có toàn quyền.

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

3.1.4 - Nhập chứng chỉ vào trình duyệt Để 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ị.

1 Chọn Certification Authorities trong CA Functions2 Thêm RootCA

5.Chỉ định Hiệu lực của chứng chỉ CA là 10 năm.

6 Chọn Create để tạo CA.

7 RootCA đã được tạo và hiện thị trên quản lý.

1 Từ RootCA đã tạo ở trên có thể tải xuống và nhập vào một server ejbca khác hoặc có thể tạo SubCA từ RootCA trên trực tiếp trên cùng một nút.

2 Chọn Certification Authorities trong CA Functions.

7) SubCA đã được tạo và hiện thị trên quản lý.

3.1.4 Cấu hình SSL Server Profiles

1 Chọn Certificate Profiles trong CA Functions2 Chỉ định tên cho cấu hình chứng chỉ và chọn Add3 Tìm tên trong danh sách và chọn edit

4 Chọn loại End Entity, mã hóa RSA độ dài 2048 bit và có hiệu lực 1 năm

5 Bỏ check Allow Key Usage Override 6 Tại Key Usage chọn Digital Signature và Key encipherment, tại Extended

Key Usage chọn Server Authentication.

7 Chọn CA muốn có thể sử dụng cấu hình này

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

3 Tìm End Entity Profiles vừa tạo và chọn Edit 4 Chọn hồ sơ chứng chỉ mặc định là SSLServerProfiles vừa cấu hình ở trên, tiếp theo chọn CA mặc định là SubCA, khóa ở đây do người dùng tạo

5 Thực hiện lưu End Entity Profiles6 Chọn RA Web, chọn Make New Request

7 Chọn thực thể cuối và tạo cặp khóa bởi CA

8 Nhập các trường như CN,

9 Tạo tài khoản và mật khẩu

10.Sau khi điền đủ thông tin chọn tải về dạng pkcs12

11.Chứng chỉ sau khi được tải về

1 Chọn Certificate Profiles trong CA Functions 2 Chỉ định tên cho cấu hình chứng chỉ và chọn Add 3 Tìm tên trong danh sách và chọn edit

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 ExtendedKey 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

3 Tìm End Entity Profiles vừa tạo và chọn Edit 4 Chọn hồ sơ chứng chỉ mặc định là ClientProfiles vừa cấu hình ở trên, tiếp theo chọn CA mặc định là SubCA, khóa ở đây do người dùng tạo

5 Chọn RA Web, chọn Make New Request 6 Chọn thực thể cuối và tạo cặp khóa bởi CA.

7 Điền thông tin vào các trường cần thiết8 Tạo tài khoản và mật khẩu mới và thực hiện tải về file pkcs129 Chứng thư sau khi tải về

3.2.1 Cài đặt Apache Web Server và cấu hình SSL 1 chiều

1 Tạo 1 thư mục chứa chứng chỉ dạng p12 và thực hiện trích xuất khóa và chứng chỉ đối với chứng chỉ server.p12

2 Trích xuất khóa openssl pkcs12 -in server.p12 -out server.key -nodes - nocerts

3 Trích xuất chứng chỉ openssl pkcs12 -in server.p12 -out server.crt - nokeys

4 Thực hiện cài Apache2 sudo apt install apache2 5 Tạo 1 file chứa thư mục html 6 Truy cập đường dẫn cd /etc/apache2/sites-available/ chỉnh sửa file 000- default.conf trong đó file server.crt và server.key được trích xuất ở trên

7 Lưu file và thực hiện restart apache2 8 Tải về file RootCA gốc và import vào trình duyệt chọn tin tưởng

9 Truy cập https://www sonpham com trang sẽ được kết nối an toàn

1 Từ file chứng thư số client đã tải về thực hiện trích xuất chứng chỉ openssl pkcs12 -in Client.p12 -out client.crt -nokeys

2 Truy cập đường dẫn cd /etc/apache2/sites-available/ chỉnh sửa file 000- default.conf trong đó file client.crt được trích xuất ở trên

4 Lưu và khởi động lại dịch vụ apache2 5 Truy cập trang web https://www sonpham com kết quả sẽ bị chặn truy cập.

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

Ngày đăng: 03/07/2024, 15:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w