Chứng chỉ khóa công khai X.509 v3 là định dạng chứng chỉ đƣợc sử dụng phổ biến và đƣợc hầu hết các nhà cung cấp sản phẩm PKI triển khai. X.509 đƣợc Hội viễn thông quốc tế (ITU) đƣa ra lần đầu tiên vào năm 1988 nhƣ là một bộ phận của dịch vụ thƣ mục X.500.
Khuôn dạng chứng chỉ số X.509 đƣợc mô tả nhƣ trong hình sau.
Hình 17. Khuôn dạng chứng chỉ số X.509.
Định dạng chứng chỉ số X.509 bao gồm một số trƣờng cơ bản sau: Version number: Số phiên bản của chứng chỉ.
Signature: Chỉ ra thuật toán mà CA sử dụng để ký số chứng chỉ, thƣờng là thuật toán RSA hoặc DSA.
Issuer: Chỉ ra CA cấp và ký số chứng chỉ.
Validity period: Chỉ ra khoảng thời gian mà chứng chỉ có hiệu lực, từ thời điểm chứng chỉ bắt đầu có hiệu lực đến thời điểm chứng chỉ hết hạn.
Subject: Xác định thực thể mà khóa công khai của thực thể này đƣợc xác nhận. Tên của thực thể này là duy nhất.
Subject public key Information: Chứa khóa công khai và những tham số liên quan đến thực thể, xác định thuật toán đƣợc sử dụng cùng với khóa. Issuer unique identifier: Đây là trƣờng tùy chọn không bắt buộc, cho phép
sử dụng lại tên ngƣời cấp, ít đƣợc sử dụng trong thực tế.
Subject unique identifier: Là trƣờng tùy chọn cho phép sử dụng lại tên của thực thể khi quá hạn, ít đƣợc sử dụng.
Extensions: Chỉ có trong chứng chỉ số v.3.
Tính toàn vẹn của chứng chỉ số đƣợc đảm bảo bằng chữ ký số của CA trên chứng chỉ. Khóa công khai của CA đƣợc phân phối đến ngƣời sử dụng chứng chỉ theo một cơ chế bảo mật trƣớc khi thực hiện các thao tác PKI. Ngƣời sử dụng kiểm tra hiệu lực của chứng chỉ đƣợc cấp với chữ ký số và khóa công khai của CA.
Hình 18. Chứng chỉ số X.509 v.3. 2.1.2 Thu hồi chứng chỉ
Trong một số trƣờng hợp nhƣ khóa riêng bị lộ, ngƣời sở hữu chứng chỉ số thay đổi địa điểm, cơ quan… thì chứng chỉ số đã đƣợc cấp không còn 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 thời điểm chứng chỉ bị thu hồi. Cơ chế thu hồi X.509 xác định là sử dụng danh sách chứng chỉ bị thu hồi (Certificate Revocation Lists - CRLs).
CRL là một giải pháp đƣợc sử dụng để làm cơ chế thu hồi chứng chỉ số hết hạn. Đây là một cấu trúc dữ liệu đƣợc ký nhƣ chứng chỉ ngƣời sử dụng. CRL 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. Ngày thông báo thu hồi chứng chỉ số đƣợc xác định trong header của CRL khi nó đƣợc công bố. Vị trí của thông tin thu hồi có thể khác nhau tùy theo CA khác nhau. Bản thân chứng chỉ số có thể chứa con trỏ đến vị trí của thông tin thu hồi. Do đó, ngƣời sử dụng có thể biết đƣợc thƣ mục, kho lƣu trữ hay cơ chế để lấy thông tin thu hồi dựa trên những thông tin cấu hình đƣợc thiết lập trong quá trình khởi tạo.
Hình 19. Định dạng CRL.
Hình 19 nhƣ trên chỉ ra định dạng một danh sách các chứng chỉ bị thu hồi, trong đó:
Version Number: Chỉ ra phiên bản của CRL.
Signature: Nhận biết loại hàm băm và thuật toán ký đƣợc sử dụng để ký danh
sách thu hồi CRL.
Issuer: Tên của thực thể cấp và ký CRL.
This Update: Chỉ ra thời gian CRL đƣợc công bố.
Next Update: Chỉ ra thời gian danh sách thu hồi kế tiếp đƣợc cấp.
List of Revoked Certificates: Danh sách các chứng chỉ bị thu hồi (bao gồm số
Hình 20. Danh sách chứng chỉ thu hồi.
2.2 Chữ ký điện tử
Cùng với sự phát triển của công nghệ thông tin và mạng Internet, nhu cầu trao đổi thông tin qua mạng càng ngày càng đòi hỏi độ bảo mật cao, đảm bảo tính nguyên vẹn và xác thực. Chính vì thế nhu cầu sử dụng chữ ký điện tử ngày càng đƣợc phổ biến rộng rãi.
Chữ ký điện tử (electronic signature) là thông tin đi kèm với dữ liệu (văn bản, hình ảnh, âm thanh…) nhằm mục đích xác định ngƣời chủ của dữ liệu đó [19].
Hình 21. Quá trình tạo chữ ký điện tử.
Hình 21 mô tả quá trình tạo chữ ký điện tử từ một thông điệp. Trƣớc tiên, chƣơng trình sẽ tiến hành tạo giá trị băm của thông điệp bằng các thuật toán băm (nhƣ SHA, SHA-1…). Sau đó sử dụng khóa bí mật của chủ thể và các thuật toán ký để tiến hành tạo chữ ký điện tử. Cuối cùng, thông điệp gửi đi đã đƣợc ký chính là thông điệp gốc có gắn kèm chữ ký điện tử vừa mới đƣợc tạo [19].
Hình 22. Quá trình xác thực chữ ký điện tử.
Ngƣợc lại với quá trình tạo chữ ký điện tử là quá trình xác thực chữ ký. Đầu tiên, cần phải tạo giá trị băm từ thông điệp gốc giống nhƣ quá trình tạo chữ ký. Giá trị băm này sẽ đƣợc sử dụng để xác thực chữ ký điện tử, sử dụng khóa bí mật của chủ thể. Nếu giá trị băm phù hợp với chữ ký điện tử thì kết luận chữ ký điện tử đó là hợp lệ.
2.3 Hạ tầng cơ sở mật mã khóa công khai
Với sự phát triển nhanh chóng của Internet và công nghệ thông tin nhƣ hiện nay, ngày càng xuất hiện nhiều nguy cơ mất an toàn dữ liệu. Các thông tin truyền đều có thể bị nghe trộm, bị làm giả, mạo danh… với các thủ đoạn ngày càng tinh vi.
Chính vì thế, để quy trình xác thực hộ chiếu điện tử đƣợc diễn ra một cách bảo mật và an toàn, đảm bảo tính nguyên vẹn và xác thực của các thông tin cá nhân lƣu trong chip RFID, hạ tầng cơ sở mật mã khóa công khai (Public Key Infrastructure - PKI) là một trong những giải pháp tốt nhất cần đƣợc triển khai. Đây là một cơ chế để cho một bên thứ ba (thƣờng là nhà cung cấp chứng chỉ số CA) cung cấp và xác thực định danh của các bên tham gia vào quá trình trao đổi thông tin.
2.3.1 Các thành phần của PKI
Thông thƣờng, một hệ thống PKI gồm 4 thành phần sau [18]: Certification Authorities (CA): Tổ chức chứng thực.
Trong hạ tầng khóa công khai PKI, chứng chỉ số có vai trò gắn kết giữa định danh của thực thể với khóa công khai. Một CA là một thực thể trong PKI có trách nhiệm cấp chứng chỉ số cho các thực thể khác trong hệ thống.
CA còn đƣợc gọi là bên thứ ba đƣợc tin tƣởng để cung cấp và xác thực định danh của các bên tham gia vào quá trình trao đổi thông tin. 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ỉ số cho các CA khác và cho các thực thể cuối trong hệ thống PKI. Nếu CA nằm ở đỉnh 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ì CA này gọi là CA gốc (root).
Registration Authorities (RA): Trung tâm đăng ký.
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 lƣợng thực thể cuối trong PKI tăng lên và đƣợ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 rất khó khăn. Chính vì vậy việc đăng ký cần có các thực thể độc lập thực hiện chức năng này, để giảm tải công việc cho CA, đó chính là RA. Chức năng thực hiện của một RA sẽ khác nhau tùy theo từng hạ tầng PKI khác nhau nhƣng chủ yếu bao gồm một số 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 cho chủ thể cung cấp.
Xác định 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 quyền sở hữu của chủ thể đối với khóa riêng đang đƣợc đăng ký. Tạo cặp khóa công khai/khóa bí mật.
Lƣu trữ khóa riêng.
Khởi tạo quá trình khôi phục khóa.
Chức năng của RA chỉ đƣa ra những khai báo tin cậy ban đầu về chủ thể. Chỉ có 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.
Clients: Thực thể cuối.
Thực thể cuối trong PKI có thể là con ngƣời, thiết bị, thậm chí là một chƣơng trình phần mềm nào đó, nhƣng thƣờng là ngƣời sử dụng hệ thống.
Repository: Hệ thống lƣu trữ.
Chứng chỉ khóa công khai và thông tin thu hồi chứng chỉ cần 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 dễ dàng. Có 2 phƣơng pháp phân phối chứng chỉ và thông tin thu hồi chứng chỉ nhƣ sau:
Phân phối cá nhân:
Đây là cách phân phối cơ bản nhất, 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 nhƣ chuyển giao bằng tay chứng chỉ đƣợc lƣu trong đĩa mềm hoặc trong một số môi trƣờng lƣu trữ khác. Với những ngƣời dùng ở xa thì có thể trao đổi chứng chỉ cho nhau bằng cách đính kèm vào email để gửi cho ngƣời khác.
Cách này có thể 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ân phối chứng chỉ và thông tin thu hồi chứng chỉ là công bố các thông tin đó một cách rộng rãi, các chứng chỉ đƣợc sử dụng một cách công khai và đƣợc đặt ở một số hệ thống lƣu trữ cơ sở dữ liệu để có thể truy cập dễ dàng. Một số hệ thống lƣu trữ phổ biến là:
o X.500 Directory System Agents (DSAs).
o Lightweight Directory Access Protocol (LDAP) Server.
o Online Certificate Status Protocol (OCSP) Responders.
o Domain Name System (DNS) và Web Servers.
2.3.2 Chức năng cơ bản của PKI
Chứng thực (certification):
Đây là chức năng quan trọng nhất của PKI, là quá trình ràng buộc khóa công khai với định danh của thực thể. Trong PKI, CA là thực thể 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 khóa công khai/khóa bí mật và tạo ra phần chứng chỉ cho khóa công khai của cặp khóa.
Ngƣời sử dụng tự tạo cặp khóa và đƣa khóa công khai cho CA để CA tạo chứng chỉ cho khóa công khai đó. Chứng chỉ đảm bảo tính toàn vẹn của khóa công khai và các thông tin gắn chúng.
Thẩm tra (validation):
Đây là quá trình kiểm tra tính hiệu lực của chứng chỉ, xác định xem liệu chứng chỉ đã đƣa ra có đƣợc sử dụng đúng mục đích hay không. Quá trình này bao gồm một số bƣớc nhƣ sau:
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 thời gian hiệu lực của chứng chỉ để xem chứng chỉ đã bị thu hồi hay chƣa.
Xác định xem chứng chỉ đang hoạt động có đƣợc sử dụng đúng mục đích hay không.
Ngoài 2 chức năng cơ bản trên, PKI còn có một số chức năng khác nữa nhƣ đăng ký chứng chỉ, tạo và khôi phục cặp khóa công khai/khóa bí mật, cập nhật khóa, thu hồi chứng chỉ… [18].
2.3.3 Mô hình tin cậy cho PKI
Trong hạ tầng khóa công khai PKI, một thực thể cuối tin cậy một CA khi thực thể cuối cho rằng CA sẽ thiết lập và duy trì sự gắn kết các thuộc tính của khóa công khai một cách chính xác.
Có một số mô hình tin cậy có thể đƣợc áp dụng hoặc đƣợc đề xuất để sử dụng trong hạ tầng khóa công khai PKI dựa trên chứng chỉ X.509 nhƣ sau:
Mô hình CA đơn (Single Model).
Mô hình mắt lƣới (Mesh Model). Mô hình web (Web Model).
Mô hình ngƣời sử dụng trung tâm (User Centric Model). Mô hình CA đơn
Đây là mô hình tổ chức CA cơ bản và đơn giản nhất. Trong mô hình này chỉ có một CA xác nhận tất cả các thực thể cuối trong miền PKI. Mỗi ngƣời sử dụng nhận khóa công khai của CA gốc theo một số cơ chế nào đó. Mô hình này chỉ có một điểm để tất cả ngƣời sử dụng có thể kiểm tra trạng thái thu hồi của chứng chỉ đã đƣợc cấp. Mô hình này có thể đƣợc mở rộng bằng cách thêm các RA ở xa CA nhƣng ở gần các nhóm ngƣời dùng cụ thể hoặc nhóm thực thể cuối EE (End Entity).
Hình 23. Mô hình CA đơn [18].
Mô hình CA đơn là mô hình dễ triển khai và giảm tối thiểu đƣợc những vấn đề về khả năng tƣơng tác. Tuy nhiên, mô hình này có một số nhƣợc điểm sau:
Không thích hợp cho miền PKI lớn vì một số ngƣời sử dụng ở những miền con có những yêu cầu khác nhau đối với ngƣời ở miền khác.
Việc quản trị và số lƣợng công việc kỹ thuật của việc vận hành CA đơn sẽ rất cao trong cộng đồng PKI lớn.
Trong mô hình chỉ có một CA sẽ gây ra thiếu khả năng hoạt động và CA này có thể sẽ trở thành mục tiêu tấn công.
Mô hình CA phân cấp
Mô hình CA phân cấp là cấu trúc mô hình phân cấp bao gồm một CA gốc (root CA) và các CA cấp dƣới. CA gốc xác nhận các CA cấp dƣới, các CA này lại xác nhận các CA cấp thấp hơn… Các CA cấp dƣới thì không cần phải xác nhận các CA cấp trên. iTrong mô hình này, mỗi thực thể sẽ giữ một bản sao khóa công khai của CA gốc và kiểm tra đƣờng dẫn của chứng chỉ bắt đầu từ chữ ký của CA gốc. Đây đƣợc coi là mô hình PKI tin cậy nhất và đã đƣợc sử dụng rộng rãi.
Hình 24. Mô hình CA phân cấp [18].
Mô hình CA phân cấp có thể dùng đƣợc trực tiếp cho những doanh nghiệp phân cấp và độc lập, cũng nhƣ những tổ chức chính phủ, quân đội... Nó cho phép thực thi chính sách và các chuẩn thông qua hạ tầng cơ sở. Đây là mô hình dễ vận hành giữa các tổ chức khác nhau. Tuy nhiên, mô hình này có một số nhƣợc điểm sau:
Có thể không thích hợp đối với môi trƣờng mà mỗi miền khác nhau cần có chính sách và giải pháp PKI khác nhau.
Các tổ chức có thể không tự nguyện tin vào một tổ chức khác.
Chỉ có một CA gốc nên có thể gây ra một số vấn đề nhƣ thiếu khả năng hoạt động. Hơn nữa, trong trƣờng hợp khóa bí mật của CA bị xâm phạm, khóa
công khai mới của CA gốc phải đƣợc phân phối đến tất cả các thực thể cuối trong hệ thống theo một số cơ chế khác nhau.
Mô hình mắt lƣới
Mô hình mắt lƣới hay còn gọi là mô hình xác thực chéo, là mô hình đƣa ra sự tin cậy giữa hai hoặc nhiều CA với nhau. Mỗi CA có thể ở trong mô hình CA hoặc trong một mô hình mắt lƣới khác. Trong mô hình này có thể có nhiều hơn một CA gốc tạo sự tin cậy giữa các CA khác nhau. Thông qua việc xác thực chéo giữa các CA gốc mà các CA tin tƣởng lẫn nhau. Hình 25 là minh họa cho mô hình này.
Hình 25. Mô hình mắt lƣới [18].
Ƣu điểm của mô hình này là linh hoạt hơn, phù hợp hơn với nhu cầu giao dịch hiện nay, cho phép những nhóm ngƣời sử dụng khác nhau có thể tự do phát triển và thực thi những chính sách khác nhau. Do mô hình này có nhiều CA gốc nên nó khắc phục đƣợc một số nhƣợc điểm của mô hình phân cấp.
Tuy nhiên, mô hình này vẫn còn tồn tại một số nhƣợc điểm: Phức tạp và khó quản lý vì xác thực chéo giữa các CA.
Khó thực hiện và có thể không hoạt động đƣợc do những vấn đề về giao tác. Phần mềm ngƣời sử dụng có thể gặp phải một số vấn đề khi tìm chuỗi