An ninh bảo mật - Hạ tầng cơ sở khóa công khai

Subject Name: là một X.500 DN, xác định đối tượng sở hữu giấy chứng nhận mà cũng là sở hữu của khóa công khai. Một CA không thể phát hành 2 giấy chứng nhận có cùng một Subject Name; - Public Key: Xác định thuật toán của khóa công khai (như RSA) và chứa khóa công khai được định dạng tùy vào kiểu của nó; - Issuer Unique ID/Subject Unique ID: Hai trường này được giới thiệu trong X.509 phiên bản 2, được dùng để xác định hai tổ chức CA hoặc hai chủ thể khi chúng có cùng DN. RFC 2459 đề nghị không nên sử dụng 2 trường này; - Extensions: Chứa các thông tin bổ sung cần thiết mà người thao tác CA muốn đặt vào chứng nhận. Trường này được giới thiệu trong X.509 phiên bản 3; - Signature: Đây là chữ ký điện tử được tổ chức CA áp dụng. Tổ chức CA sử dụng khóa bí mật có kiểu quy định trong trường thuật toán chữ ký. Chữ ký bao gồm tất cả các phần khác trong giấy chứng nhận. Do đó, tổ chức CA chứng nhận cho tất cả các thông tin khác trong giấy chứng nhận chứ không chỉ cho tên chủ thể và khóa công khai.

pdf9 trang | Chia sẻ: huyhoang44 | Lượt xem: 642 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu An ninh bảo mật - Hạ tầng cơ sở khóa công khai, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kỷ yếu công trình khoa học 2015 – Phần I HẠ TẦNG CƠ SỞ KHÓA CÔNG KHAI Trần Tuấn Toàn Khoa Toán Tin - Đại học Thăng Long Email: toan.trantuan@gmail.com Tóm tắt: 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 được tín nhiệm. Theo X.509 PKIX15 định nghĩa, một PKI là một tập các phần cứng, phần mềm, con người và các thủ tục cần thiết để tạo, lưu trữ, phân phối, thu hồi khóa/chứng nhận dựa trên mã hóa bất đối xứng. Từ khóa: hạ tầng cơ sở khóa công khai, PKI, chứng nhận số, chứng thư số, chữ ký số. 1. Giới thiệu chung về hạ tầng cơ sở khóa công khai Một PKI (Public Key Infrastructure) cho phép người sử dụng của một mạng công cộng không bảo mật, chẳng hạn 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 mã khóa công khai/khóa cá nhân được cấp phát và sử dụng thông qua một nhà cung cấp chứng thực được tín nhiệm (CA - Certificate Authority). Nền tảng khóa công khai 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.1. Vai trò và chức năng PKI cho phép những người tham gia xác thực lẫn nhau. 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 khóa và định danh 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, 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 đổi thông tin: - Tính bí mật (Confidentiality):PKI phải đảm bảo tính bí mật của dữ liệu. Tính bí mật này được cung cấp bởi các thủ tục mã hóa mật mã học, bằng cách sử dụng cả mã hóa bất đối xứng lẫn mã hóa đối xứng. Do mã hóa bất đối xứng không hiệu quả bằng mã hóa đối xứng trong việc mã hóa dữ liệu lớn, nó thường được sử dụng để mã hóa những đối tượng dữ liệu tương đối nhỏ như các khóa bí mật được sử dụng trong các hệ thống mã hóa bất đối xứng. - 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 toàn vẹn có thể được cung cấp bên trong PKI bằng cách sử dụng cả mã hóa bất đối xứng và mã hóa đối xứng. Mã hóa bất đối xứng đặc biệt được sử dụng chung với một thuật toán băm như nhómSHA (SHA-256) để cung cấp tính toàn vẹn. Một PKI được thiết kế tốt sẽ sử dụng các thủ tục đòi hỏi sử dụng các thuật toán đó để cung cấp cơ chế toàn vẹn hiệu quả. - 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 xác thực trong môi trường thương mại điện tử được thực hiện rất tốt bằng các hệ Trường Đại học Thăng Long 123 Kỷ yếu công trình khoa học 2015 – Phần I thống mã hóa bất đối xứng, dựa trên mối quan hệ toán học giữa khóa công khai và khóa bí mật. Thông điệp được ký bởi một thực thể có thể được kiểm tra bởi bất kỳ thực thể nào quan tâm. Các thực thể này có thể an tâm rằng chỉ có chủ của khóa bí mật mới có thể tạo ra thông điệp này, bởi vì chỉ có người đó mới có khóa bí mật. - Tính không thể chối từ (Non-Repudiation):PKI phải đảm bảodữ liệu không thể bị không thừa nhận hoặc giao tác bị từ chối. Đây là một dịch vụ bảo mật then chốt của bất kỳ ứng dụng thương mại nào trong đó việc trao đổi giá trị hay các quy định pháp luật được thỏa hiệp. Tính không thể chối từ được cung cấp thông qua mã hóa bất đối xứngbằng chữ ký số. Khi dữ liệu được ký theo cách mật mã học sử dụng khóa bí mật của cặp khóa, bất kỳ ai có thể truy cập khóa công khai của cặp khóa này đều có thể xác định rằng chỉ có chủ của cặp khóa mới có thể ký vào dữ liệu. 1.2. Các thành phần của một hạ tầng cơ sở khóa công khai PKI là một 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. Hình 1. Các thành phần của một hạ tầng cơ sở khóa công khai Về cơ bản, 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 + Gồm tập hợp các con người và các hệ thống máy tính có độ an toàn cao - Chứng nhận khóa 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 khaichứ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): + Được ủy quyền và có quyền thực hiện các công việc mà CA cho phép + Tiếp nhận thông tin đăng ký chứng nhận; Trường Đại học Thăng Long 124 Kỷ yếu công trình khoa học 2015 – Phần I + Gắn kết giữa khóa công khai và định danh của người giữ chứng nhận - 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) 1.3. Các mô hìnhcủa hạ tầng cơ sở khóa công khai Ngày nay, PKI được triển khai bởi nhiều tổ chức như là công cụ để bảo vệ những tài nguyên tập thể nhạy cảm. Tuy nhiên, với những nhu cầu, quy trình và sự phức tạp khác nhau trong mỗi công việc, chỉ một mô hình được chuẩn hóa cho PKI hoàn toàn không linh hoạt. Vì lý do đó, có nhiều kiến trúc PKI khác nhau mà mỗi tổ chức có thể triển khai để phù hợp nhất với nhu cầu của họ. Tuy vậy, cho dù kiến trúc PKI nào được triển khai, một thứ quan trọng trong cốt lõi của mỗi kiến trúc đó chính là sự tín nhiệm. 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 mã hóa bất đối xứng- PKI dựa trên X.509: - Mô hình CA đơn (Single CA Model); - Mô hình phân cấp (Hierarchical Model); - Mô hình mắt lưới- xác thực chéo (Mesh Model); - Mô hình web (Web Model - Trust List); - Mô hình cầu CA (Hub and Spoke (Birdge CA). 2. Chứng nhận số 2.1. Các loại chứng nhận số Để khóa công khai của mình được chứng nhận, bên đối tác phải tạo ra một cặp khóa bất đối xứng và gửi cặp khóa này cho tổ chức CA. Bên đối tác phải gửi kèm các thông tin về bản thân như tên hoặc địa chỉ. Khi tổ chức CA đã kiểm tra tính xác thực các thông tin của bên đối tác, CA sẽ phát hành một giấy chứng nhận khóa công khai cho bên đối tác. Giấy chứng nhận là một tập tin nhị phân có thể dễ dàng chuyển đổi qua mạng máy tính. Tổ chức CA áp dụng chữ ký điện tử của mình cho giấy chứng nhận khóa công khai mà CA đó phát hành. Một tổ chức CA chứng nhận khóa công khai bằng cách ký nhận chúng. Nếu phía đối tác bên kia tin tưởng vào tổ chức CA thì họ có thể tin vào chữ ký của CA đó. Một số loại giấy chứng nhận khóa công khai có thể được phát hành như chứng nhận X.509, chứng nhận chất lượng và chứng nhận thuộc tính. * Chứng nhận X.509: Chứng nhận X.509 là chứng nhận khóa công khai phổ biến nhất. Hiệp hội Viễn thông quốc tế (International Telecommunications Union – ITU) đã chỉ định chuẩn X.509 vào năm 1988. Đây là định dạng phiên bản 1 của chuẩn X.509. Vào năm 1993, phiên bản 2 của chuẩn X.509 được phát hành với 2 trường tên nhận dạng duy nhất được bổ sung. Phiên bản 3 của chuẩn X.509 được bổ sung thêm trường mở rộng đã phát hành vào năm 1997. Trường Đại học Thăng Long 125 Kỷ yếu công trình khoa học 2015 – Phần I Một chứng nhận khóa công khai kết buộc một khóa công khai với sự nhận diện của một người (hoặc một thiết bị). Khóa công khai và tên thực thể sở hữu khóa này là hai mục quan trọng trong một chứng nhận. Version Serial Number Signature Algorithm Issuer Name Validity Period Subject Name Public Key Issuer Unique ID Subject Unique ID Extensions Signature Hình 2. Phiên bản 3 của chứng nhận X.509 Sau đây là thông tin về các trường trong chứng nhận X.509 phiên bản 3: - Version: Chỉ định phiên bản của chứng nhận X.509; - Serial Number: Số loạt phát hành được gán bởi CA. Mỗi CA nên gán một mã số loạt duy nhất cho mỗi giấy chứng nhận mà nó phát hành; - Signature Algorithm: Thuật toán chữ ký chỉ rõ thuật toán mã hóa được CA sử dụng để ký giấy chứng nhận. Trong chứng nhận X.509 thường là sự kết hợp giữa thuật toán băm (chẳng hạn như SHA-256) và thuật toán khóa công khai (chẳng hạn như RSA); - Issuer Name: Tên tổ chức CA phát hành giấy chứng nhận, đây là một tên phân biệt theo chuẩn X.500. Hai CA không được sử dụng cùng một tên phát hành; - Validity Period: Trường này bao gồm 2 giá trị chỉ định khoảng thời gian mà giấy chứng nhận có hiệu lực. Hai phần của trường này là not-before và not-after. + Not-before: chỉ định thời gian mà chứng nhận này bắt đầu có hiệu lực; + Not-after: chỉ định thời gian mà chứng nhận hết hiệu lực. Các giá trị thời gian này được đo theo chuẩn thời gian Quốc tế, chính xác đến từng giây. Trường Đại học Thăng Long 126 Kỷ yếu công trình khoa học 2015 – Phần I - Subject Name: là một X.500 DN, xác định đối tượng sở hữu giấy chứng nhận mà cũng là sở hữu của khóa công khai. Một CA không thể phát hành 2 giấy chứng nhận có cùng một Subject Name; - Public Key: Xác định thuật toán của khóa công khai (như RSA) và chứa khóa công khai được định dạng tùy vào kiểu của nó; - Issuer Unique ID/Subject Unique ID: Hai trường này được giới thiệu trong X.509 phiên bản 2, được dùng để xác định hai tổ chức CA hoặc hai chủ thể khi chúng có cùng DN. RFC 2459 đề nghị không nên sử dụng 2 trường này; - Extensions: Chứa các thông tin bổ sung cần thiết mà người thao tác CA muốn đặt vào chứng nhận. Trường này được giới thiệu trong X.509 phiên bản 3; - Signature: Đây là chữ ký điện tử được tổ chức CA áp dụng. Tổ chức CA sử dụng khóa bí mật có kiểu quy định trong trường thuật toán chữ ký. Chữ ký bao gồm tất cả các phần khác trong giấy chứng nhận. Do đó, tổ chức CA chứng nhận cho tất cả các thông tin khác trong giấy chứng nhận chứ không chỉ cho tên chủ thể và khóa công khai. 2.2. Chu kỳ sống của chứng nhận số Hình 3. Chu kỳ sống của chứng nhận số Trước khi phát hành chứng nhận, cặp khóa bí mật/công khai sẽ được phát sinh. Trong khi chứng nhận có hiệu lực và được sử dụng, chứng nhận có thể hết hạn hoặc khóa bí mật của người sử dụng bị tổn thương (bị mất hoặc lộ khóa). Trong trường hợp chứng nhận hết hạn, cặp khóa cũng sẽ không còn hiệu lực hoặc người sử dụng có thể yêu cầu gia hạn chứng nhận cho họ. Trong trường hợp khóa bí mật bị tổn thương, chứng nhận sẽ được thu hồi để phát hành chứng nhận cho cặp khóa khác. 3. Triển khai hệ thống hạ tầng cơ sở khóa công khai 3.1. Giới thiệu bài toán thực tế Đứng trước nhu cầu cấp thiết về bảo mật trong việc trao đổi các thông tin liên quan tại trường Đại học Thăng Long, việc xây dựng và triển khai một hệ chữ ký số là nhiệm vụ được đề ra đối với nhóm đề tài. Để thực hiện được nhiệm vụ này, nhóm đã tiến hành xây dựng một Cặp khóa được phát sinh Chứng nhận được phát hành Chứng nhận còn hiệu lực và đang được sử dụng Chứng nhận hết hạn Cặp khóa bị hết hạn Khóa bí mật bị tổn thương Chứng nhận bị thu hồi Chứng nhận lại Trường Đại học Thăng Long 127 Kỷ yếu công trình khoa học 2015 – Phần I chương trình nghiên cứu gồm một số các đề tài, trong đó có đề tài “Xây dựng hệ quản lý chứng thư số hay hạ tầng cơ sở khóa công khai, chữ ký số và các thủ tục xác thực khác”. Với thực tế quản lý tại trường Đại học Thăng Long, tính chất của việc cấp phát chứng thư số không phức tạp, nhiều cấp bậc nên nhóm đề tài đề xuất sử dụng mô hình CA đơn trong việc triển khai hệ thống PKI theo mô hình sau: Hình 4. Mô hình CA đơn 3.2. Triển khai thực tế * Lựa chọn hệ thống triển khai: Hiện nay có một số gói phần mềm cho phép triển khai được hệ thống PKI hoàn chỉnh như EJBCA, OpenCA hay triển khai trực tiếp trên hệ điều hành Windows Server. Do Windows Server 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 nhóm đề tài sẽ không lựa chọn trong quá trình triển khai. Với OpenCA, mặc dù là gói phần mềm mã nguồn mở, nhưng trên thực tế tìm hiểu và triển khai thử nghiệm, nhóm đã gặp một số khó khăn không tìm được sự hỗ trợ từ đội ngũ phát triển. Bên cạnh đó, OpenCA cũng thiếu đi một số tính năng cũng như độ ổn định so với EJBCA. Đặc điểm EJBCA OpenCA Độ khó khi cấu hình Rất phức tạp Phức tạp Tính cẩn mật Có (sử dụng mã hóa) Có (sử dụng mã hóa) Tính toàn vẹn Có (sử dụng mã hóa) Có (sử dụng mã hóa) Tính xác thực Có (sử dụng chữ ký số) Có (sử dụng chữ ký số) Tính không thể chối từ Có Có Khả năng chọn thuật toán để Có Có Chữ ký do CA tự ký Chứng nhận của CA Ký bởi CA Chứng nhận của người dùng CA Người dùng Trường Đại học Thăng Long 128 Kỷ yếu công trình khoa học 2015 – Phần I Đặc điểm EJBCA OpenCA sử dụng OCSP1 Có Không Khả năng chọn CSP Có Không Cập nhật CRL Tự động Bằng tay Hỗ trợ thẻ thông minh Có Không Chi phí Miễn phí Miễn phí Các mở rộng Có Có Môi trường nền Java J2EE (độc lập nền) Perl CGI trên Unix Cơ sở dữ liệu Hypersoniq, PostegreSQL, MySQL, MS SQL, Oracle, Sybase, Informix, DB2 MySQL Hỗ trợ LDAP Có Có Môđun EJB Perl Khả năng mở rộng Được thiết kế tố và có thể mở rộng Mở rộng khó với độ phức tạp tăng rất nhiều Thành phần độc lập PKI có thể được quản trị hoàn toàn thông qua dòng lệnh Chỉ có một cách quan trị PKI là thông qua giao diện web Các trình duyệt được hỗ trợ Nhiều Nhiều Bảng 1. So sánh các đặc điểm của EJBCA và OpenCA Các tiêu chí quyết định của một hệ thống PKI là phải đáng tin cậy, an toàn, linh hoạt và có hiệu quả kinh tế. Như đã so sánh ở bảng trên, OpenCA chỉ đảm bảo tính tin cậy và an toàn còn EJBCA đảm bảo tất cả các tiêu chí trên. * Các bước đăng ký và phát hành chứng thư số: 1Giao thức trạng thái chứng nhận trực tuyến (Online Certificate Status Protocol – OCSP) là một chuẩn Internet được sử dụng để lấy trạng thái thu hồi của chứng nhận số X.509 Trường Đại học Thăng Long 129 Kỷ yếu công trình khoa học 2015 – Phần I Hình 5. Quy trình đăng ký chứng thư số Trong quy trình đăng ký chứng thư số tại Đại học Thăng Long, nhóm đề tài đề xuất các bước thực hiện đăng ký chứng thư số như sau: Người dùng gửi thông tin về bản thân tới RA để đăng ký: + Thông tin này có thể là họ tên, số chứng minh thư, email,...; + RA có thể lấy thông tin về cán bộ giảng viên dựa trên cơ sở dữ liệu chung của trường để tăng độ chính xác. RA ký yêu cầu được chấp thuận và gửi thông tin củangười dùng đến trung tâm CA. CA tạo chứng thư trên khóa công khai, ký bằng khóa bí mật của CA và cập nhật chứng thư trên cơ sở dữ liệu lưu trữ CA gửi chứng thư trở lại RA. RA cấp chứng thư cho người sử dụng: + Mỗi người dùng được cấp phát 1 USB Token dùng để lưu trữ chứng thư; + RA thực hiện lưu chứng thư của từng người dùng lên USB Token tương ứng. * Quyền quản trị hệ thống EJBCA: Hình 6. Phần mềm EJBCA - Giao diện web cho chức năng quản trị hệ thống Với quyền được phép truy cập vào trang quản trị của hệ thống EJBCA, người quản trị có thể thực hiện các thao tác liên quan như: - Quyền quản trị cấp CA: một người dùng được cấp phép quyền quản trị cấp CA có thể thực hiện được tất cả các chức năng mà phần mềm cùng cấp; Trường Đại học Thăng Long 130 Kỷ yếu công trình khoa học 2015 – Phần I - Quyền quản trị cấp RA: với quyền này, người dùng chỉ có thể thực hiện các chức năng liên quan đến việc quản lý các khuôn mẫu hồ sơ người dùng cuối, khởi tạo/sửa đổi hồ sơ cho người dùng, * Quyền truy cập của người dùng thông thường: Hình 7. Giao diện với quyền truy cập của người dùng thông thường Người dùng thông thường, sau khi gửi các thông tin cần thiết cho RA (hoặc CA), sẽ được cấp phát một chứng nhận số. Chứng nhận số này, sau khi được cấp, có thể được lưu lên USB Token của cá nhân người dùng bởi người quản trị (thao tác này chỉ thực hiện lần đầu tiên) hoặc người dùng cũng có thể tự thực hiện công việc này thông qua giao diện đồ họa như hình trên. Ngoài ra, người dùng thông thường cũng có thể thực hiện một số thao tác khác liên quan như: tải chứng nhận của CA về máy hay kiểm tra chứng nhận của người dùng khác có hợp lệ hay còn thời hạn hay không. 4. Kết luận Dựa trên các nghiên cứu, phân tích hạ tầng cơ sở khóa công khai (PKI),nhóm đề tài đã tiến hành cài đặt hệ thống và thử nghiệm cấp phát chứng nhận số cho người dùng cũng như sử dụng các chứng nhận được cấp phát để tiến hành ký trên các loại tài liệu khác nhau. Nhóm đề tài cũng thực hiện dựa trên các tình huống liên quan đến việc gia hạn/thu hồi chứng nhận của người dùng. 5. Tài liệu tham khảo [1]. Phạm Huy Điển, Hà Huy Khoái (2003), Mã hóa thông tin – Cơ sở toán học và ứng dụng, NXB ĐHQG Hà Nội. [2]. Atreya M., Hammond B., Paine S., Starrett P., Wu S. (2002), Digital Signatures, RSA Press – McGrawHill, Berkeley [3]. Weise (2001), Public Key Infrastructre Overview, SunPSSM Global Security Practice, Sun BluePrints™ OnLine. Abstract: By digital signature solutions, Public Key Infrastructure (PKI) is a standard and technology systemthat allows users in an insecure public network (e.g. Internet), can exchange information securely through using a pair of private key and public key which are certified by a trusted certificate authority. According to X.509 PKIX15 definition, a PKI is a set of hardwares, softwares, people and procedures needed to create, store, distribute and revoke keys/certificates based on asymmetric encryption. Trường Đại học Thăng Long 131

Các file đính kèm theo tài liệu này:

  • pdftran_tuan_toan_4083.pdf