1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx

79 636 5

Đ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

Tiêu đề Hạ Tầng Khoá Công Khai
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Định dạng
Số trang 79
Dung lượng 1,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chữ ký số Digital Signature Là kết quả của phép chuyển đổi một thông điệp bằng một hệ thống các phép mã hoá có sử dụng các khoá mà một đối tượng nhận được thông tin có thể xác định đượ

Trang 1

QMỤC LỤC

MỤC LỤC 1

CÁC THUẬT NGỮ 5

ĐẶT VẤN ĐỀ 7

1 TỔNG QUAN VỀ PKI 8

1.1.KHÁIQUÁT 8

1.2.CÁCDỊCHVỤVÀPHẠMVIỨNGDỤNGCỦAPKI 8

1.2.1 Các yêu cầu cơ bản của an toàn an ninh thông tin 8

1.2.2 Khả năng đáp ứng của các dịch vụ sử dụng PKI 9

1.2.3 Các dịch vụ an toàn an ninh dựa trên hệ thống PKI 9

1.3.CÁCĐỐITƯỢNGCƠBẢNCỦAHỆTHỐNGPKI 10

1.3.1 Chủ thể và các đối tượng sử dụng 10

1.3.2 Đối tượng quản lý thẻ xác nhận 11

1.3.3 Đối tượng quản lý đăng ký thẻ xác nhận 11

1.4.CÁCHOẠTĐỘNGCƠBẢNTRONGHỆTHỐNGPKI 12

1.4.1 Mô hình tổng quát của hệ thống PKI 12

1.4.2 Thiết lập các thẻ xác nhận 12

1.4.3 Khởi tạo các EE 12

1.4.4 Các hoạt động liên quan đến thẻ xác nhận 13

1.4.4.1 Đăng ký và xác nhận ban đầu 13

1.4.4.2 Cập nhật thông tin về cặp khoá 13

1.4.4.3 Cập nhật thông tin về thẻ xác nhận 13

1.4.4.4 Cập nhật thông tin về cặp khoá của CA 13

1.4.4.5 Yêu cầu xác nhận ngang hàng 14

1.4.4.6 Cập nhật thẻ xác nhận ngang hàng 14

1.4.5 Phát hành thẻ và danh sách thẻ bị huỷ bỏ 14

1.4.6 Các hoạt động phục hồi 14

1.4.7 Các hoạt động huỷ bỏ 15

1.5.CẤUTRÚCCỦACÁCTHÔNGĐIỆPPKI 15

1.5.1 Giới thiệu về nguyên tắc giả mã 15

1.5.2 Cấu trúc tổng quát của thông điệp PKI 16

1.5.3 Trường PKIHeader 17

1.5.4 Trường PKIBody 18

1.5.4.1 Thông điệp yêu cầu khởi tạo 20

1.5.4.2 Thông điệp trả lời yêu cầu khởi tạo 20

1.5.4.3 Thông điệp yêu cầu đăng ký/yêu cầu thẻ xác nhận 20

1.5.4.4 Thông điệp trả lời yêu cầu đăng ký/yêu cầu thẻ xác nhận 20

1.5.4.5 Thông điệp yêu cầu cập nhật khoá 21

1.5.4.6 Thông điệp trả lời yêu cầu cập nhật khoá 21

1.5.4.7 Thông điệp yêu cầu khôi phục khoá 21

1.5.4.8 Thông điệp trả lời yêu cầu khôi phục khoá 21

1.5.4.9 Thông điệp yêu cầu huỷ bỏ 21

1.5.4.10 Thông điệp trả lời yêu cầu huỷ bỏ 21

1.5.4.11 Thông điệp yêu cầu thẻ xác nhận ngang hàng 22

1.5.4.12 Thông điệp trả lời yêu cầu xác nhận ngang hàng 22

1.5.4.13 Thông điệp công bố cập nhật khoá CA 22

1.5.4.14 Thông điệp công bố thẻ xác nhận 22

1.5.4.15 Thông điệp thông báo huỷ bỏ thẻ xác nhận 22

1.5.4.16 Thông điệp thông báo CRL 23

Trang 2

Mục lục HẠ TẦNG KHOÁ CÔNG KHAI

2

1.5.4.17 Thông điệp xác nhận 23

1.5.4.18 Thông điệp PKI đa mục đích 23

1.5.4.19 Thông điệp trả lời tổng quát 23

1.5.4.20 Thông điệp thông báo lỗi 23

2 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XÂY DỰNG HỆ THỐNG PKI 24

2.1.CÁCMÔHÌNHTRIỂNKHAIHỆTHỐNGPKI 24

2.1.1 Kiến trúc phân cấp 24

2.1.1.1 Những ưu điểm của kiến trúc PKI phân cấp 25

2.1.1.2 Những khuyết điểm của kiến trúc PKI phân cấp 25

2.1.2 Kiến trúc hệ thống PKI mạng lưới 26

2.1.2.1 Ưu điểm của kiến trúc PKI mạng lưới 26

2.1.2.2 Nhược điểm của mô hình PKI mạng lưới 27

2.1.3 Kiến trúc danh sách tin cậy 27

2.1.3.1 Ưu điểm của kiến trúc PKI danh sách tin cậy 27

2.1.3.2 Nhược điểm của kiến trúc PKI danh sách tin cậy 28

2.2.NHỮNGCHỨCNĂNGBẮTBUỘCTRONGQUẢNLÝPKI 29

2.2.1 Khởi tạo CA gốc 29

2.2.2 Cập nhật khoá của CA gốc 29

2.2.3 Khởi tạo các CA thứ cấp 29

2.2.4 Tạo lập CRL 29

2.2.5 Yêu cầu về thông tin hệ thống PKI 30

2.2.6 Xác nhận ngang hàng 30

2.2.7 Khởi tạo các EE 30

2.2.7.1 Thu thập thông tin về hệ thống PKI 30

2.2.7.2 Kiểm tra khoá công khai của CA gốc 30

2.2.8 Yêu cầu xác nhận 30

2.2.9 Cập nhật khoá 30

3 THẺ XÁC NHẬN THEO CHUẨN X.509 32

3.1.CÁCTRƯỜNGCƠBẢNCỦATHẺXÁCNHẬN 32

3.1.1 Trường tbsCertificate 32

3.1.2 Trường signatureAlgorithm 32

3.1.3 Trường signatureValue 33

3.2.CẤUTRÚCTBSCERTIFICATE 33

3.2.1 Trường version 33

3.2.2 Trường serialNumber 33

3.2.3 Trường signature 34

3.2.4 Trường issuer 34

3.2.5 Trường validity 35

3.2.6 Trường subject 35

3.2.7 Trường subjectPublicKeyInfo 35

3.2.8 Trường uniqueIdentifiers 35

3.2.9 Trường extensions 36

3.3.CÁCPHẦNMỞRỘNGCỦATHẺXÁCNHẬNX.509 36

3.3.1 Phần mở rộng Authority Key Identifier 36

3.3.2 Phần mở rộng Subject Key Identifier 36

3.3.3 Phần mở rộng Key Usage 37

3.3.4 Phần mở rộng Private Key Usage Period 37

3.3.5 Phần mở rộng Certificate Policies 38

3.3.6 Phần mở rộng Policy Mappings 38

3.3.7 Phần mở rộng Subject Alternative Name 39

3.3.8 Phần mở rộng Issuer Alternative Names 40

Trang 3

3.3.9 Phần mở rộng Subject Directory Attributes 40

3.3.10 Phần mở rộng Basic Constraints 40

3.3.11 Phần mở rộng Name Constraints 40

3.3.12 Phần mở rộng Policy Constraints 41

3.3.13 Phần mở rộng Extended key usage field 41

3.3.14 Phần mở rộng CRL Distribution Points 42

4 QUÁ TRÌNH XÂY DỰNG HỆ THỐNG 43

4.1.MÔITRƯỜNG,CÔNGCỤ,MÔHÌNH,CHỨCNĂNG,DỮLIỆU 43

4.1.1 Lựa chọn môi trường và công cụ 43

4.1.1.1 Môi trường phát triển 43

4.1.1.2 Công cụ phát triển 43

4.1.2 Lựa chọn mô hình hệ thống PKI 44

4.1.3 Lựa chọn cấu trúc dữ liệu 45

4.1.4 Lựa chọn các chức năng được thực hiện 45

4.2.PHÂNTÍCHTHIẾTKẾCHỨCNĂNGCHITIẾT 46

4.2.1 Mô hình thiết lập và quản lý kết nối 46

4.2.1.1 Phân tích yêu cầu 46

4.2.1.2 Phương thức thực hiện 47

4.2.2 Sử dụng các dịch vụ bảo mật 47

4.2.2.1 Giới thiệu về các công cụ an toàn an ninh của hệ điều hành 47

4.2.2.2 Những đánh giá và giải pháp 48

4.2.2.3 Kết luận 49

4.2.3 Tạo và phân tích các cấu trúc dữ liệu cơ bản 49

4.2.3.1 Các thẻ xác nhận 49

4.2.3.2 Các thông điệp PKI 50

4.2.4 Các công cụ quản trị hệ thống 50

4.2.4.1 Công cụ quản lý người sử dụng 50

4.2.4.2 Công cụ tạo và quản lý chính sách 51

4.2.4.3 Công cụ quản lý danh sách thẻ xác nhận 51

4.2.4.4 Công cụ quản lý các sự kiện đối với hệ thống 52

4.2.5 Lưu trữ dữ liệu 52

4.2.5.1 Lưu thông tin quản lý đối tượng sử dụng chương trình 52

4.2.5.2 Lưu thông tin chính sách về thẻ xác nhận 52

4.2.5.3 Lưu trữ thông tin về thẻ xác nhận 53

4.2.6 Chức năng mã hoá dữ liệu 53

4.2.6.1 Sự cần thiết của chức năng 53

4.2.6.2 Định hướng xây dựng 53

4.2.6.3 Lưu đồ thuật toán thực hiện 54

4.2.7 Phân tích thiết kế chi tiết các chức năng hệ thống PKI 54

4.2.7.1 Khởi tạo CA 54

4.2.7.2 Khởi tạo EE 56

4.2.7.3 Cập nhật khoá của CA 58

4.2.7.4 Yêu cầu và cấp phát thẻ xác nhận 60

4.2.7.5 Yêu cầu và cấp thẻ xác nhận ngang hàng giữa các CA 61

4.2.7.6 Yêu cầu và trả lời những thông tin về trạng thái của CA 64

4.3.LẬPTRÌNHTHỰCTHIHỆTHỐNGPKI 65

4.3.1 Cụ thể hoá những yêu cầu của quá trình phân tích thiết kế 65

4.3.1.1 Các yêu cầu đối với CA 66

4.3.1.2 Các yêu cầu đối với EE 66

4.3.2 Các lớp đối tượng cơ bản 67

4.3.2.1 Lớp CCertificationAuthority 67

4.3.2.2 Lớp CEndEntity 67

4.3.2.3 Lớp CPKIMessage 68

4.3.2.4 Lớp CCertificate 68

Trang 4

Mục lục HẠ TẦNG KHOÁ CÔNG KHAI

4

4.3.2.5 Lớp CSessionSocket 68

4.3.2.6 Lớp CListeningSocket 68

4.3.2.7 Lớp CCryptoTools 68

4.3.3 Các đối tượng lưu trữ dữ liệu và phương thức quản lý 69

4.3.3.1 Quản lý file lưu trữ account 69

4.3.3.2 Quản lý file lưu trữ chính sách hệ thống PKI 69

4.3.3.3 Quản lý file lưu trữ thẻ xác nhận 70

5 KIỂM THỬ VÀ ĐÁNH GIÁ KẾT QUẢ 71

5.1.ĐÁNHGIÁVỀNHỮNGKẾTQUẢNGHIÊNCỨULÝTHUYẾT 71

5.2.ĐÁNHGIÁVỀ NHỮNG CHỨCNĂNGĐÃXÂYDỰNG 71

5.2.1 Các chức năng đối với thẻ xác nhận 72

5.2.1.1 Chức năng tạo thẻ xác nhận 72

5.2.1.2 Chức năng đóng gói và lưu trữ thẻ xác nhận 73

5.2.1.3 Chức năng quản lý danh sách thẻ xác nhận 74

5.2.2 Các chức năng quản lý hệ thống PKI 74

5.2.2.1 Yêu cầu và đáp ứng thẻ xác nhận 74

5.2.2.2 Chức năng yêu cầu và đáp ứng thông tin hệ thống PKI 75

5.2.2.3 Chức năng khởi tạo hệ thống 75

5.2.2.4 Chức năng yêu cầu và đáp ứng thẻ xác nhận ngang hàng 75

5.2.3 Các chức năng quản lý kết nối 76

5.2.4 Các công cụ quản lý hệ thống 76

5.2.4.1 Quản lý người sử dụng hệ thống 76

5.2.4.2 Công cụ thiết lập và quản lý chính sách thẻ xác nhận 77

5.2.4.3 Công cụ quản lý các sự kiện đối với hệ thống 77

5.2.4.4 Chức năng mã hoá dữ liệu 78

TÀI LIỆU THAM KHẢO 79

Trang 5

CÁC THUẬT NGỮ

An toàn an ninh thông tin

(Information Security) Là các biện pháp tác động lện hệ thống thông tin và bản thân thông tin để đảm bảo thông tin không bị thay đổi, phá

huỷ Đồng thời, kiểm soát được các đối tượng truyền và nhận thông tin

Bí mật thông tin

(Confidentiality) Thông tin không được tiết lộ cho các đối tượng không được cho phép

CA cấp dưới

(Subordinate CA) Là những CA mà trong một mô hình PKI phân cấp, thẻ xác nhận của nó được xác nhận bởi một CA khác Những hoạt

động của CA này chịu sự giám sát của chính CA đó

(Key Pair) Hai khoá có liên quan đến nhau về mặt toán học với hai thuộc tính: (i) Một khoá có thể được dùng để mã hoá và việc

giải mã chỉ được thực hiện khi có khoá còn lại (ii) Khi biết một trong hai khoá thì việc tính toán để tìm ra khoá còn lại là không thể thực hiện được

Chính sách thẻ xác nhận

(Certìicate Policy) Là một dạng chính sách quản trị các giao tác điện tử được thực hiện trong quá trình quản lý thẻ xác nhận Chính sách

này đáp ứng tất cả các yêu cầu của quá trình tạo, phân phát, thống kê, phục hồi và quản trị các thẻ xác nhận số

Chữ ký số

(Digital Signature) Là kết quả của phép chuyển đổi một thông điệp bằng một hệ thống các phép mã hoá có sử dụng các khoá mà một đối

tượng nhận được thông tin có thể xác định được: (i) Dữ liệu được gửi đến có phải được tạo ra với khoá riêng ứng với khoá công khai trong thẻ xác nhận của đối tượng gửi hay không (ii) Thông tin nhận được có bị thay đổi sau khi phép chuyển đổi được thực hiện không Thông tin bị coi là đã thay đổi nếu ta không thể kiểm chứng được chữ ký số với khoá công khai tương ứng của đối tượng đã tạo chữ ký số

Danh sách tin cậy

(Trust List) Tập hợp các thẻ xác nhận đã được một đối tượng sử dụng tin cậy và dùng để xác thực những thẻ xác nhận khác

Danh sách thẻ xác nhận bị huỷ bỏ

(Certificate Revocation List - CRL) Một danh sách do CA quản lý bao gồm các thẻ xác nhận bị huỷ bỏ trước khi chúng hết hạn

Dữ liệu chưa mã hóa

(Plaintext) Dữ liệu ở đầu vào của một thủ tục mã hoá bảo mật

Dữ liệu đã mã hóa

(Ciphertext) Dữ liệu ở đầu ra của một thủ tục mã hoá bảo mật

Định danh đối tượng

(Object Identifier – OID) Là một só có định dạng riêng và đã được đăng ký với một tổ chức được công nhận trên phạm vi quốc tế

Đối tượng quản lý đăng ký

(Registration Authority - RA) Là đối tượng có vai trò phân biệt và xác thực các đối tượng của thẻ xác nhận nhưng không ký và cấp các thẻ xác nhận

Đối tượng quản lý xác nhận

(Certification Authority – CA) Là đối tượng được tin cậy bởi một nhóm người sử dụng nhất định với chức năng phát hành và quản lý các thẻ xác nhận

và danh sách thẻ xác nhận bị huỷ bỏ

Trang 6

Các thuật ngữ HẠ TẦNG KHOÁ CÔNG KHAI

6

Hạ tầng khoá công khai

(Public Key Infrastructure - PKI) Một tập các chính sách, các tiến trình xử lý, các máy chủ dịch vụ, các máy trạm cùng với các phần mềm được sử

dụng để quản lý các thẻ xác nhận cùng với các cặp khoá công khai/khoá riêng Trong đó, các tính năng chính bao gồm việc phát hành, duy trì và huỷ bỏ các thẻ xác nhận chứa khoá công khai

Kênh truyền thông riêng

(Out-of-band) Quá trình truyền thông giữa các đối tượng thông qua các phương tiện khác với các phương tiện được sử dụng để duy

trì liên lạc thông thường giữa các đối tượng trong hệ thống

Khoá công khai

(Public Key) (i) Khoá thuộc về một cặp khoá tạo chữ ký số được sử dụng để kiểm chứng một chữ ký số (ii) Khoá thuộc về một cặp

khoá mã hóa được sử dụng để mã hóa thông tin bí mật

Trong cả hai trường hợp, khoá này thường được phổ biến với các thẻ xác nhận

Khoá riêng

(Private Key) (i) Khoá thuộc về một cặp khóa được sử dụng để tạo chữ ký số (ii) Khoá thuộc về một cặp khoá mã hóa được sử dụng

để giải mã các thông tin bí mật Trong cả hai trường hợp, khoá này phải được giữ bí mật

Không thể bác bỏ

(Non-repudiation) Tính năng này đề cập tới việc: nếu một đối tượng có thể kiểm chứng một chữ ký số bằng một khoá công khai nào đó

thì điều đó chứng tỏ đối tượng đang nắm giữ khoá riêng tương ứng đã tạo ra chữ ký số này

Phương tiện lưu trữ

(Repository) Một hệ thống với phần cốt lõi là cơ sở dữ liệu chứa thông tin về thẻ xác nhận và danh sách thẻ xác nhận bị huỷ bỏ

Tấn công phát lại gói tin

(Replay Attack) Là hình thức tấn công dựa trên việc bắt gói tin truyền đến, thực hiện các chỉnh sửa theo ý muốn và phát đi trong các

thời điểm sau này tới các đối tượng nhận

(Certificate) Là hình thức biểu diễn thông tin dưới dạng số với các thông tin tối thiểu sau: (i) CA phát hành thẻ này (ii) Định danh của

đối tượng sử dụng (iii) Khoá công khai của đối tượng sử dụng (iv) Thời gian hiệu lực của thẻ Thẻ này phải được ký bởi CA tạo ra nó

Thẻ xác nhận ngang hàng

(Cross-Certificate) Là thẻ xác nhận được dùng để thiết lập mối quan hệ tin cậy giữa các CA

Trao đổi khoá

(Key Exchange) Là quá trình trao đổi các khoá để có thể thiết lập một kênh liên lạc an toàn

Xác thực

(Authenticate) Khẳng định những thông tin về định danh của một đối tượng khi đối tượng đó trình diện

Trang 7

ĐẶT VẤN ĐỀ

Kể từ khi ra đời gần ba mươi năm trước đây, phương thức mã hoá bảo mật với khoá công khai đã tạo nên một hướng phát triển mới cho các dịch vụ an toàn và an ninh thông tin Tư tưởng cốt lõi của phương thức mã hoá bảo mật với khoá công khai là việc sử dụng cặp khoá công khai và khoá riêng Mỗi đối tượng truyền thông đều có một cặp khoá công khai và khoá riêng Khoá công khai của một đối tượng được thông báo cho tất cả các đối tượng tham gia truyền thông, còn khoá riêng chỉ do đối tượng đó nắm giữ

Đối tượng truyền sẽ mã hoá thông tin cần truyền với khoá công khai của đối tượng nhận Sau đó, thông tin đã mã hoá sẽ được truyền đến cho đối tượng nhận Sau khi nhận được thông tin truyền đến, đối tượng nhận sẽ giải mã thông tin truyền đến với khoá riêng của mình

Khi các dịch vụ an toàn sử dụng khoá công khai được phát triển rộng rãi thì việc quản lý đối tượng cùng với khoá công khai trở nên phức tạp và phải đối mặt với nhiều vấn đề về

an toàn và an ninh thông tin Mặt khác, do phạm vi ứng dụng của các thông tin về khoá công khai là rất rộng lớn (có thể là trong phạm vi quốc gia hoặc xuyên quốc gia) nên phải

có được sự thống nhất về các khoá công khai để đảm bảo các đối tượng có thể tham gia truyền thông ở nhiều phạm vi khác nhau với nhiều dịch vụ an toàn và an ninh khác nhau Trong những năm gần đây, một hướng giải quyết đã được nghiên cứu và triển khai, đó là

Hạ Tầng Khoá Công Khai (Public Key Infrastructure - PKI) PKI là dịch vụ ở mức nền, nó

đảm bảo về việc tạo lập, quản lý và phân phát các khoá công khai của những đối tượng tham gia vào các dịch vụ an toàn, an ninh (dựa trên phương thức mã hoá với khoá công khai) thông qua các thẻ xác nhận PKI có thể được triển khai trên nhiều phạm vi khác nhau; do vậy, nó có thể giải quyết những khó khăn mà các ứng dụng an toàn an ninh gặp phải khi phải triển khai trên phạm vi rộng và đối tượng sử dụng đa dạng

Việc nghiên cứu và triển khai hệ thống PKI trong phạm vi một doanh nghiệp hay ở tầm cỡ một quốc gia đều đòi hỏi phải có những nghiên cứu kỹ lưỡng và một tầm nhìn chiến lược Theo nhiều ý kiến nhận định, PKI có tiềm năng phát triển và ứng dụng rất lớn Nó sẽ được ứng dụng rộng rãi trong các việc đảm bảo an toàn và an ninh cho các hệ thống thông tin, trong thương mại điện tử, trong các kênh liên lạc an toàn Nói chung, PKI là cần thiết cho hầu hết các ứng dụng sử dụng phương thức mã hoá bảo mật với khoá công khai

Với mục tiêu tìm hiểu và nghiên cứu những đặc trưng và các hoạt động cơ bản của hệ thống PKI, trong phạm vi đồ án này, ta sẽ tìm hiểu những khái niệm cơ bản, những cấu trúc dữ liệu đặc trưng, những mô hình hoạt động và những chức năng cơ bản của hệ thống Trên cơ sở kết quả nghiên cứu, ta sẽ triển khai một hệ thống PKI đơn giản nhằm minh hoạ quá trình hoạt động của hệ thống trong thực tế Đây cũng là cách để ta hiểu sâu hơn về hệ thống PKI, về những yêu cầu của quá trình triển khai hệ thống và những lợi ích

mà hệ thống này có thể mang lại

Trang 8

Dong Manh Quan Trang 8 23/08/2005

Phần 1

Trong phần này, ta sẽ tìm hiểu những vấn đề cơ bản của hệ thống PKI Những nội dung được trình bày trong phần này sẽ cho ta một cái nhìn tổng quan về các mô hình hệ thống PKI Ta cũng hiểu rõ hơn về các đối tượng của hệ thống và các hoạt động cơ bản cần thực hiện để quản lý hệ thống PKI Song song với quá trình tìm hiểu các nội dung này, ta

sẽ có các định nghĩa, các khái niệm và thuật ngữ được sử dụng đối với hệ thống PKI

¾ Khái quát về hệ thống PKI

¾ Các dịch vụ và phạm vi ứng dụng của PKI

¾ Các đối tượng cơ bản của hệ thống PKI

¾ Các hoạt động cơ bản của việc quản lý hệ thống PKI

¾ Cấu trúc các thông điệp PKI

1.1 KHÁI QUÁT

Thành phần cốt lõi của hệ thống PKI là các thẻ xác nhận Mỗi thẻ xác nhận có hai thành phần thông tin cơ bản là định danh và khoá công khai của đối tượng sử dụng Các thẻ xác nhận này do đối tượng quản lý thẻ xác nhận tạo ra và ký với phương thức chữ ký số Trong một số hệ thống, đối tượng quản lý đăng ký được tách riêng ra khỏi CA Đối tượng này không tạo ra các thẻ xác nhận Nó có nhiệm vụ xác minh đối tượng truyền thông cho một CA sẽ cấp phát thẻ xác nhận cho đối tượng đó Nghĩa là, quá trình xác thực khi một đối tượng yêu cầu một thẻ xác nhận của CA sẽ do RA đảm nhận

Đúng như tên gọi của nó, PKI là một dịch vụ nền cho các dịch vụ an toàn an ninh dựa trên các thẻ xác nhận Trong các hệ thống này, PKI đảm nhận vai trò tạo lập, quản lý và phân phát các thẻ xác nhận cho các đối tượng truyền thông Nói tóm lại, tất cả các chức

năng quản lý của hệ thống PKI đều hướng tới một yêu cầu duy nhất: Quản lý các đối

tượng sử dụng trong hệ thống với khoá công khai của các đối tượng đó

1.2 CÁC DỊCH VỤ VÀ PHẠM VI ỨNG DỤNG CỦA PKI

Trong phần này, ta hãy tìm hiểu những yêu cầu cơ bản nhất của an toàn an ninh thông tin Từ đó, xem xét những dịch vụ mà hệ thống PKI cung cấp để đáp ứng những yêu cầu

đã nêu và đánh giá phạm vi ứng dụng của hệ thống này

1.2.1 Các yêu cầu cơ bản của an toàn an ninh thông tin

An toàn an ninh thông tin bao hàm nhiều vấn đề khác nhau, trong đó, nếu nói đến các biện pháp an toàn an ninh có sử dụng các phương pháp mã hoá (với khoá công khai), ta

có thể kể đến 4 yêu cầu cơ bản sau đây:

Trang 9

1 Toàn vẹn dữ liệu: Toàn vẹn dữ liệu đảm bảo cho thông tin không bị thay đổi bởi

những đối tượng không được cấp thẩm quyền

2 Không thể bác bỏ: Các đối tượng không thể bác bỏ những hành động mà mình đã

thực hiện

3 Xác thực đối tượng: Khả năng xác thực đối tượng cho các đối tượng truyền tin biết

chắc mình đang giao tiếp với đối tượng nào

4 Bí mật thông tin: Bí mật thông tin là yêu cầu trong việc đảm bảo rằng nếu A muốn

truyền thông tin cho B thì chỉ có B có thể đọc được thông tin này

1.2.2 Khả năng đáp ứng của các dịch vụ sử dụng PKI

Trong phần này, ta sẽ lấy những ví dụ để minh hoạ khả năng đảm bảo các yêu cầu về an

toàn an ninh mà các dịch vụ sử dụng PKI (thực chất là các dịch vụ sử dụng phương thức

mã hoá với khoá công khai) có thể đáp ứng Để tiện minh hoạ, ta lấy phương thức chữ ký

số để mô tả trong các ví dụ dưới đây Chữ ký số là một trong số những dịch vụ tiêu biểu

nhất dựa trên phương thức mã hoá với khoá công khai Trong quá trình hoạt động,

phương thức này được kết hợp chặt chẽ với hệ thống PKI

Đối với khả năng bảo vệ tính toàn vẹn dữ liệu, khi một thông điệp đã được mã hoá (tạo

chữ ký số cho thông điệp), mọi thay đổi đối với chữ ký số được tạo ra đều làm cho nó

không thể được kiểm chứng bởi đối tượng nhận Do vậy, nếu đối tượng nhận không thể

kiểm chứng được chữ ký số tạo bởi đối tượng truyền thì chứng tỏ thông tin truyền đi đã bị

thay đổi hoặc có sai sót

Với vấn đề đảm bảo tính không thể bác bỏ, khi một đối tượng muốn tạo chữ ký số cho

một thông điệp, do chỉ đối tượng đó biết được khoá riêng của mình nên nếu ta có thể

kiểm chứng được một chữ ký số với khoá công khai của đối tượng nào đó thì chứng tỏ

đối tượng đó đã tạo ra chữ ký số với khoá riêng tương ứng Nghĩa là, tính không thể bác

bỏ gắn các đối tượng với những hành động mà đối tượng đó đã thực hiện

Với yêu cầu xác thực đối tượng, khi một đối tượng A muốn xác thực định danh của đối

tượng B, nó gửi một thông điệp với một số thông tin nhất định dưới dạng mã xác thực

đến cho B B tạo chữ ký số đối với thông điệp nhận được bằng khoá riêng của mình và

truyền lại cho A A thực hiện kiểm chứng ký số của B trên thông điệp vừa nhận được

bằng khoá công khai của B Nếu thông thông điệp được kiểm chứng thì A biết chắc mình

đang liên lạc với B

Với việc đảm bảo tính bí mật của thông tin, khi A muốn trao đổi thông tin với B, A mã hoá

thông tin cần truyền với khoá công khai của B rồi truyền cho B Chỉ B biết khoá riêng của

mình nên chỉ có B mới có thể giải mã và đọc được thông tin

1.2.3 Các dịch vụ an toàn an ninh dựa trên hệ thống PKI

Trong sơ đồ dưới đây ta có thể có một cái nhìn khái quát về các dịch vụ an toàn an ninh

sử dụng các thẻ xác nhận trên cơ sở PKI

Trang 10

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

10

Hình 1-1 Các ứng dụng dựa trên hệ thống PKI 1.3 CÁC ĐỐI TƯỢNG CƠ BẢN CỦA HỆ THỐNG PKI

Dưới góc độ các hoạt động quản lý hệ thống PKI, những đối tượng tham gia vào hệ thống

PKI bao gồm: các đối tượng sử dụng (EE), các đối tượng quản lý thẻ xác nhận (CA) và

các đối tượng quản lý đăng ký (RA) và các hệ thống lưu trữ

1.3.1 Chủ thể và các đối tượng sử dụng

Khái niệm chủ thể được sử dụng để chỉ đối tượng được ghi tên trong trường subject của

một thẻ xác nhận Tuy nhiên, để tránh nhầm lẫn chủ thể với tên một trường của thẻ xác

nhận, ta nên dùng cụm từ đối tượng sử dụng Ta cần lưu ý: Một chủ thể có thể là một CA

hoặc một EE, đây là do đặc tính của quá trình cấp phát thẻ xác nhận Thẻ xác nhận có

thể được cấp cho CA hoặc EE Tuy nhiên, ta chỉ gọi các EE là đối tượng sử dụng vì chỉ

những thẻ cấp cho đối tượng loại này mới được sử dụng trực tiếp trong các dịch vụ an

toàn an ninh Thẻ xác nhận cấp cho các CA chủ yếu được dùng để hình thành mối tin cậy

giữa chúng

Có một điều quan trọng mà ta cần lưu ý là khái niệm đối tượng sử dụng không chỉ bao

hàm những người sử dụng các dịch vụ mà còn là chính bản thân các dịch vụ đó Đây là

một điều hiển nhiên bởi vì các trình ứng dụng an toàn an ninh được đề cập đến ở đây là

những dịch vụ dựa trên thẻ xác nhận Điều này sẽ ảnh hưởng đến những giao thức mà

các hoạt động của hệ thống PKI sử dụng Ví dụ, một phần mềm ứng dụng có thể biết

chắc những trường mở rộng nào của một thẻ xác nhận là cần thiết trong khi một người

sử dụng phần mềm đó thì lại hầu như không biết về những thông tin này Trong một số

trường hợp cho phép, ta có thể coi các đối tượng sử dụng là những đối tượng không

thuộc loại các đối tượng quản lý hệ thống PKI

Tất cả các đối tượng sử dụng ít nhất phải có khả năng quản lý và truy cập một cách an

toàn đến các thông tin sau:

1 Tên của chính đối tượng đó

2 Khoá riêng của đối tượng đó

3 Tên của CA được chính đối tượng này tin tưởng (trusted CA)

QUẢN LÝ THẺ XÁC NHẬN PKI

Trang 11

4 Khoá công khai của CA này

Trong quá trình triển khai, các đối tượng sử dụng những phương tiện lưu trữ an toàn để

lưu các thông tin ngoài những thông tin tối thiểu kể trên (thẻ xác nhận của đối tượng, các

thông tin cho các dịch vụ cụ thể) Việc lưu trữ thông tin dưới hình thức như trên được gọi

là môi trường an toàn cá nhân

1.3.2 Đối tượng quản lý thẻ xác nhận

Đối tượng quản lý thẻ xác nhận (CA) không nhất thiết phải là một bên thứ ba thực sự nếu

xét dưới góc độ của các đối tượng trong một tổ chức Nghĩa là, CA thực chất lại thuộc về

cùng một tổ chức chứa các đối tượng sử dụng mà nó hỗ trợ Ngoài ra, ta cũng sử dụng

khái niệm CA để chỉ đối tượng được nêu tên trong trường issuer của thẻ xác nhận

Khi cần phân biệt phần mềm hoặc các công cụ phần cứng được sử dụng bởi CA ta sử

dụng khái nhiệm công cụ của CA Khái niệm này bao hàm các thành phần làm việc theo

cả chế độ off-line lẫn on-line Trong đó, chỉ có thành phần off-line là biết được khoá riêng

của CA

Ta sử dụng khái niệm CA gốc để chỉ một CA được một đối tượng sử dụng nào đó được

tin cậy một cách trực tiếp Ta hiểu khái niệm trực tiếp có nghĩa là việc tin cậy có thể được

đảm bảo mà không cần thêm một CA nào nữa Nói cách khác, đây là CA cuối cùng trên

nhánh xác nhận Khi đó, việc lấy thông tin về khoá công khai của CA gốc cần phải được

thực hiện thông qua những phương thức riêng, nghĩa là viêc trao đổi thông tin không

được thực hiện trên đường truyền thông dùng để truyền các thẻ xác nhận Ở đây có thể

sử dụng những phương pháp phân phát thông tin dựa trên giấy tờ và thư tín Ta cũng

cần lưu ý một điều là CA gốc không nhất thiết phải nằm trên đỉnh của một cây phân cấp

biểu diễn hệ thống Điều cần quan tâm là CA gốc được tin cậy trực tiếp bởi một hoặc một

số đối tượng sử dụng

Một CA thứ cấp nếu xét trên phương diện của các đối tượng sử dụng thì là bất kỳ CA nào

khác với CA gốc Thông thường, một CA thứ cấp sẽ không là CA gốc của bất kỳ đối

tượng sử dụng nào Tuy nhiên, điều này không phải là hoàn toàn bắt buộc

1.3.3 Đối tượng quản lý đăng ký thẻ xác nhận

Trong nhiều môi trường hoạt động, việc tách riêng RA khỏi CA là một việc cần thiết Chức

năng của RA trong các trường hợp khác nhau cũng khác nhau Tuy nhiên, RA có thể có

môt số chức năng như sau:

1 Xác thực cá nhân

2 Phân phát các thẻ xác nhận

3 Thông báo huỷ bỏ

4 Gán tên cho các đối tượng

5 Sinh khoá

6 Lưu trữ các cặp khóa riêng và khoá công khai

Trang 12

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

12

RA có thể được coi là một thành phần không bắt buộc Tuy nhiên, khi RA đứng độc lập

thì CA phải đảm nhận những chức năng trên Nghĩa là các chức năng mà CA có được

cho các đối tượng phải giống như trong trường hợp CA và RA đứng độc lập

Về bản chất, RA cũng là một đối tượng sử dụng Tất cả các RA đều được xác nhận và có

các khoá riêng dùng trong việc tạo chữ ký số cho các thông tin mà nó cấp phát Trong

một số trường hợp, các đối tượng sử dụng có thể liên hệ trực tiếp với CA quản lý mình

mặc dù trong hệ thống vẫn có mặt RA Ví dụ, trong các thủ tục đăng ký và xác nhận ban

đầu, nó phải liên hệ trực tiếp với CA để cập nhật thông tin về thẻ xác nhận của mình

1.4 CÁC HOẠT ĐỘNG CƠ BẢN TRONG HỆ THỐNG PKI

1.4.1 Mô hình tổng quát của hệ thống PKI

Trong sơ đồ dưới đây là các đối tượng của hệ thống PKI và mối quan hệ giữa chúng trên

cơ sở các hoạt động quản lý PKI Mối liên hệ được thể hiện bằng các thông điệp được

truyền đi giữa các đối tượng trong hệ thống

RA

§¨ng t¶i thÎ x¸c nhËn

Thu thËp th«ng tin

"out-of-band"

§¨ng ký/x¸c thùc ban ®Çu Kh«i phôc cÆp kho¸

CËp nhËt cÆp kho¸

CËp nhËt thÎ x¸c nhËn Yªu cÇu huû bá

Ph¸t hµnh thÎ x¸c nhËn Ph¸t hµnh danh s¸ch thÎ cÇn huû bá

Ph¸t hµnh thÎ x¸c nhËn

Ph¸t hµnh th«ng tin

"out-of-band"

X¸c nhËn ngang hµng CËp nhËt thÎ x¸c nhËn ngang hµng

§èi tưîng

sö dông

HÖ thèng lưu tr÷

CA1

CA2

Hình 1-2 Các đối tượng và hoạt động cơ bản trong hệ thống PKI

Dựa trên các thông điệp được định nghĩa (sẽ được trình bày chi tiết trong các phần sau)

và xét ở một mức khái quát, các hoạt động của hệ thống quản lý PKI có thể được phân

thành các nhóm sau:

1.4.2 Thiết lập các thẻ xác nhận

Các thẻ xác nhận được tạo ra trên cơ sở một số thông tin cơ bản (đối tượng phát hành,

đối tượng sử dụng, thuật toán tạo chữ ký số, thời hạn lưu hành …) và một số thông tin

mở rộng Song song với quá trình tạo ra một thẻ xác nhận mới, ta cũng cần tiến hành một

số bước phụ trợ Ta có thể kể đến việc tạo lập hoặc cập nhật danh sách các thẻ bị huỷ

bỏ, việc đăng tải thông tin về khoá công khai của CA, lưu thẻ xác nhận vừa tạo được…

1.4.3 Khởi tạo các EE

Quá trình này đòi hỏi một số bước cơ bản như sau: Trước tiên, đối tượng này phải thu

thập được thông tin về khoá công khai của CA gốc Điều này giúp cho các thông điệp

Trang 13

được truyền đi giữa đối tượng đó và CA gốc được đảm bảo an toàn và cũng là một

phương thức để xác thực EE Sau đó, EE phải thu thập thông tin về các tuỳ chọn được hỗ

trợ bởi đối tượng quản lý PKI Điều này rất quan trọng vì nó ảnh hưởng đến giao thức

hoạt động và các thông điệp mà EE truyền đi hay nhận về

1.4.4 Các hoạt động liên quan đến thẻ xác nhận

Có nhiều hoạt động liên quan tới thẻ xác nhận, các hoạt động đó được phân thành:

1.4.4.1 Đăng ký và xác nhận ban đầu

Trong quá trình này, trước tiên, EE phải thông báo cho CA hoặc RA biết về sự hiện diện

của mình trong hệ thống Đối tượng được thông báo có quyền ưu tiên cao hơn là CA sẽ

cấp phát cho EE này một thẻ xác nhận khi nó chấp nhận yêu cầu Kết quả của quá trình

này là một CA sẽ tạo ra một thẻ xác nhận cho EE ứng với khoá công khai mà EE này

cung cấp khi đăng ký Đồng thời, CA này cũng gửi thẻ xác nhận này đến cho hệ thống

lưu trữ Trong một hệ PKI lớn, hệ thống lưu trữ có vai trò quan trọng và có tính độc lập

cao đối với CA

Nếu xét một cách chi tiết, giai đoạn này gồm nhiều bước nhỏ hơn Có thể, nó sẽ bao gồm

cả công đoạn khởi tạo các công cụ của EE Ví dụ, để có thể được sử dụng trong công

đoạn kiểm chứng đường dẫn đến các thẻ xác nhận, các công cụ của EE phải được khởi

tạo một cách an toàn với khoá công khai của một CA nào đó Ngoài ra, một EE còn cần

phải được khởi tạo với cặp khoá của chính nó

1.4.4.2 Cập nhật thông tin về cặp khoá

Mỗi đối tượng tham gia vào hệ thống PKI đều phải có một cặp khoá gồm khoá công khai

và khoá riêng Tất cả các cặp khoá này cần phải được cập nhật một cách thường xuyên

vì các cặp khoá này có thể được thay bằng cặp khoá mới Việc thay đổi thông tin của các

cặp khoá này có thể là do chúng đã hết hạn sự dụng hoặc đã bị lộ

Như vậy, để đảm bảo tất cả các đối tượng có liên quan nắm được thông tin mới nhất về

cặp khoá của mình, đối tượng sở hữu cặp khoá phải tạo các thông điệp cập nhật cặp

khoá để gửi đến cho các đối tượng có liên quan

1.4.4.3 Cập nhật thông tin về thẻ xác nhận

Mỗi thẻ xác nhận được cấp phát cho các đối tượng sử dụng chỉ có tác dụng trong một

khoảng thời gian đã định Khi các thẻ xác nhận này hết hạn và đối tượng sử dụng muốn

tiếp tục có được thẻ xác nhận của mình thì CA quản lý đối tượng ấy sẽ tạo ra một thẻ xác

nhận mới cho đối tượng và phải làm nhiệm vụ cập nhật thông tin về thẻ xác nhận này

Trong trường hợp không có sự thay đổi nào về các tham số môi trường của hệ thống PKI,

các CA có thể chỉ cần “làm tươi” các thẻ xác nhận này

1.4.4.4 Cập nhật thông tin về cặp khoá của CA

Cũng giống như đối với các EE, cặp khoá của CA cũng cần được cập nhật thường xuyên

Tuy nhiên, do vai trò và các mối liên hệ của CA trong hệ thống có nhiều khác biệt và phức

tạp hơn nên ta cần phải có những cơ chế thích hợp để thực hiện công việc này Ví dụ, CA

Trang 14

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

14

phải gửi được thông tin về cặp khoá công khai của mình tới tất cả các EE mà nó quản lý

theo kiểu multicast Ngoài ra, nó còn phải gửi thông tin này đến các CA khác có liên quan

1.4.4.5 Yêu cầu xác nhận ngang hàng

Khi diễn ra quá trình trao đổi thông tin giữa các CA ngang hàng, một CA có thể sẽ yêu

cầu CA còn lại gửi cho mình một thẻ xác nhận ngang hàng Thẻ xác nhận ngang hàng

này về bản chất cũng giống với các thẻ xác nhận dành cho các EE Trường subject của

thẻ xác nhận ngang hàng dùng để chỉ CA được cấp thẻ còn trường issuer được dùng để

chỉ CA cấp phát thẻ

Trong các loại thẻ xác nhận ngang hàng, ta phân ra làm hai loại như sau: Nếu hai CA

thuộc về vùng quản lý khác nhau, ta có thẻ xác nhận ngang hàng liên miền Nếu hai CA

thuộc cùng một vùng quản lý thì ta gọi đó là thẻ xác nhận ngang hàng nội miền

Đối với các thẻ xác nhận ngang hàng, ta có một số chú ý sau:

1 Trong nhiều hệ thống PKI, nếu không có những định nghĩa chi tiết hơn, các thẻ

xác nhận ngang hàng thường được hiểu là thẻ xác nhận ngang hàng liên miền

2 Việc phát hành các thẻ xác nhận ngang hàng không nhất thiết phải được tiến

hành ở cả hai CA Nghĩa là có cả trường hợp một CA được xác nhận bởi một CA

khác mà không có theo chiều ngược lại

1.4.4.6 Cập nhật thẻ xác nhận ngang hàng

Việc cập nhật thẻ xác nhận ngang hàng cũng giống với việc cập nhật thẻ xác nhận cho

các đối tượng sử dụng Tuy nhiên, các đối tượng có liên quan đến quá trình này chỉ là

các CA

1.4.5 Phát hành thẻ và danh sách thẻ bị huỷ bỏ

Có những hoạt động của hệ thống quản lý PKI sẽ dẫn đến việc tạo ra các thẻ xác nhận

hoặc danh sách các thẻ xác nhận bị huỷ bỏ Ta có hai hoạt động tiểu biểu thuộc loại này

là: phát hành thẻ xác nhận và phát hành danh sách thẻ xác nhận bị huỷ bỏ

Khi CA phát hành một thẻ xác nhận, trước tiên, nó cần phải dựa trên định dạng của thẻ

xác nhận cần cấp Sau khi có được các thông tin về chính sách quản trị, CA sẽ tổ chức

chúng theo định dạng đã biết, khi đó, thẻ xác nhận đã hoàn thiện Tuy nhiên, việc phát

hành thẻ xác nhận chỉ hoàn tất sau khi CA gửi thông tin về thẻ xác nhận này đến đối

tượng sử dụng và lưu thẻ này vào hệ thống lưu trữ

Việc phát hành danh sách thẻ xác nhận bị huỷ bỏ cũng được tiến hành như với danh

sách thẻ xác nhận Tuy nhiên, thông tin về danh sách này chỉ được truyền cho hệ thống

lưu trữ

1.4.6 Các hoạt động phục hồi

Các hoạt động phục hồi được thực hiện khi các đối tượng sử dụng đánh mất thông tin mà

nó lưu trữ Ví dụ, như đã nêu ở phần trên, các đối tượng sử dụng có thể có một số

Trang 15

phương tiện lưu trữ an toàn cá nhân; khi phương tiện lưu trữ này bị hỏng thì nó cần phải

nhờ đến CA để phục hồi các thông tin bị mất

Việc phục hồi thông tin chủ yếu được tập trung vào việc phục hồi các cặp khoá Đối với

các CA và RA, việc lưu trữ thông tin backup về khoá của các đối tượng là không bắt

buộc Khi các đối tượng sử dụng cần phục hồi các cặp khoá của mình, ta cần phải có

thêm một số giao thức chuyển đổi để hỗ trợ việc phục hồi khoá Trong phạm vi đồ án, ta

sẽ không đề cập đến các giao thức này

1.4.7 Các hoạt động huỷ bỏ

Có một số hoạt động quản lý hệ thống PKI dẫn đến việc tạo một danh sách thẻ xác nhận

sẽ được huỷ bỏ hoặc bổ sung những thẻ cần được hủy bỏ vào danh sách này Ví dụ, một

đối tượng đã được phân quyền trong hệ thống có thể thông báo cho CA về một trạng thái

không bình thường và cần phải có một số yêu cầu hủy bỏ thẻ xác nhận Cụ thể, nếu ta

phát hiện được một đối tượng đã đăng ký để lấy thẻ xác nhận có những biểu hiện không

bình thường hoặc những thông tin do đối tượng này có một số bất hợp lý thì ta có thể báo

cho CA biết và huỷ bỏ thẻ xác nhận đã cấp cho đối tượng sử dụng đó

Đối với tất cả các hoạt động đã nêu trên, ta có một số lưu ý sau: Các giao thức làm việc

theo chế độ on-line không phải là giải pháp duy nhất để thực hiện các hoạt động trên Đối

với tất cả các giao thức hoạt động theo chế độ on-line, ta đều có một phương thức hoạt

động theo chế độ off-line cho kết quả tương đương

1.5 CẤU TRÚC CỦA CÁC THÔNG ĐIỆP PKI

Tất cả các quá trình trao đổi thông tin giữa các đối tượng trong hệ thống PKI đều được

thực hiện thông qua việc trao đổi các thông điệp được định nghĩa riêng cho hệ thống Các

thông điệp này được tạo ra trên cơ sở các chức hoạt động cơ bản của hệ thống PKI đã

được nêu trong phần trước Sau đây ta sẽ tìm hiểu chi tiết về các thông điệp được sử

dụng trong hệ thống PKI

1.5.1 Giới thiệu về nguyên tắc giả mã

Trong phần này, để tiện mô tả các cấu trúc thông điệp, ta sử dụng kiểu ngôn ngữ giả lập

trình C Trong phần dưới đây, ta có đoạn mã mô tả cấu trúc chung của một thông điệp

PKI và những giải thích cho nguyên tắc giả mã của toàn bộ tài liệu.Tất cả các thông điệp

được sử dụng trong việc quản lý hệ thống PKI có cấu trúc chung như sau:

PKIMessage ::= SEQUENCE {

header PKIHeader,

body PKIBody,

protection [0] PKIProtection OPTIONAL,

extraCerts [1] SEQUENCE SIZE(1 MAX) OF Certificate OPTIONAL }

Trang 16

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

16

Trong hình trên, ta có một minh hoạ tiêu biểu cho một cấu trúc dữ liệu được viết dưới

dạng giả mã Với các trường thông tin được đánh số như trên, ta thấy một đoạn giả mã

có các thành phần và ý nghĩa của chúng như sau:

1 Tên của cấu trúc: Phần này được thể hiện đầu tiên trong đoạn giả mã Nó cho ta

biết cấu trúc thông tin nào được định nghĩa

2 Kiểu tập hợp cấu trúc: Phần này cho ta biết cấu trúc được định nghĩa là một mảng

của tập các thành phần (SEQUENCE), là chọn lựa một trong số các thành phần

(CHOICE) hay chỉ đơn thuần bao gồm các thành phần đó

3 Tên các trường: Đây là tên của các trường tạo nên cấu trúc cần định nghĩa Như

vậy, phần này cho ta biết cấu trúc được định nghĩa gồm những trường nào

4 Số thứ tự các trường tuỳ chọn: Thành phần thông tin này chỉ xuất hiện khi nào

trong cấu trúc định nghĩa có các thành phần tuỳ chọn Thành phần này có nhiệm

vụ đánh số thứ tự các trường thông tin không bắt buộc trong cấu trúc

5 Kiểu của các trường: Trường này cho ta biết kiểu ứng với tên các trường trong

cấu trúc Kiểu của các trường có thể là các kiểu dữ liệu cơ bản hay có thể là các

kiểu dữ liệu có cấu trúc khác

6 Dấu hiệu báo tuỳ chọn: Trường này chỉ xuất hiện khi nào cấu trúc cần định nghĩa

có các thành phần tuỳ chọn Nếu trường này xuất hiện (OPTIONAL) thì trường thông

tin nằm trên cùng dòng với dấu hiệu này được hiểu là tuỳ chọn

1.5.2 Cấu trúc tổng quát của thông điệp PKI

Hình mô tả nguyên tắc giả mã trong phần trước có chứa đoạn mã định nghĩa cấu trúc

chung của thông điệp PKI Ta nhận thấy trong một thông điệp sẽ có hai trường cơ bản và

hai trường tuỳ chọn Hai trường cơ bản là:

1 Trường header: Trường này cho ta biết các thông tin liên quan đến các đối tượng

truyền và nhận trong hệ thống PKI Trong hầu hết các thông điệp PKI, trường

header có định dạng giống nhau Trường này bắt buộc phải tồn tại trong mọi

thông điệp PKI và không được phép là rỗng

2 Trường body: Trường này chứa nội dung mà thông điệp PKI cần truyền tải Phần

này của thông điệp có cấu trúc không xác định Định dạng của trường body trong

thông điệp sẽ tuỳ thuộc vào đối tượng tạo ra nó, vào thông tin nó truyền tải và nó

được tạo ra bởi chức năng nào của hệ thống Trong những trường hợp đặc biệt,

trường body có thể là rỗng

3 Trường protection: Trường này đóng vai trò bảo vệ cho thông tin được truyền đi

Về nguyên tắc, các thông tin cần được bảo về thường được mã hoá và chứa

trong phần thân của thông điệp Trường protection có vai trò bảo vệ ở lớp ngoài

cho cả thông điệp PKI Thông thường, đây là những bit được tạo ra nhờ một số

thuật toán mã hoá bảo mật được hệ thống PKI hỗ trợ Tuy nhiên, đây là một

Trang 17

trường tùy chọn và trong thực tế ta ít sử dụng đến trường này Trong phần mô tả

chi tiết, ta cũng sẽ không đề cập sâu hơn tới trường này

4 Trường extraCerts: Đây là trường chứa mảng các thẻ xác nhận bổ sung Các thẻ

xác nhận này thường có tác dụng giúp cho đối tượng nhận kiểm chứng thông tin

nhận được và xác thực đối tượng Trường này cũng được đánh dấu là tuỳ chọn

và ta sẽ không mô tả chi tiết hơn nữa về nó trong các phần sau vì nó không

thường xuyên được sử dụng

1.5.3 Trường PKIHeader

Tất cả các thông điệp PKI đều phải chứa phần thông tin header để xác định địa chỉ và

thực hiện các giao tác Khi các thông điệp PKI được bảo vệ (sử dụng các phương thức

mã hoá) thì trường thông tin này cũng được mã hoá Các trường thông tin có trong phần

header của thông điệp gồm có:

PKIHeader ::= SEQUENCE {

pvno INTEGER { ietf-version2 (1) },

sender GeneralName,

recipient GeneralName,

generalInfo [8] SEQUENCE SIZE (1 MAX) OF InfoTypeAndValue OPTIONAL}

PKIFreeText ::= SEQUENCE SIZE (1 MAX) OF UTF8String

1 pvno: Trường này có kiểu số nguyên, nó định ra phiên bản của thông điệp PKI;

hiện tại, trường này có giá trị cao nhất là 2, ứng với phiên bản thứ 3

2 sender: Trường này chứa tên của đối tượng gửi thông điệp PKI Khi được sử

dụng với trường senderKID, nó cho phép ta kiểm tra khả năng bảo vệ thông điệp

3 recipient: Trường này chứa tên của đối tượng nhận thông điệp PKI Khi được sử

dụng với trường recipKID, nó cho phép ta kiểm tra khả năng bảo vệ thông điệp

4 protectionAlg: Trường này định ra thuật toán mã hóa được sử dụng để bảo vệ

thông điệp Trường này phụ thuộc vào bit PKIProtection, nếu bit này báo hiệu

thông điệp không được bảo vệ thì trường này sẽ bị bỏ qua Nếu bit này báo hiệu

là thông điệp được bảo vệ thì trường protectionAlg phải có trong thông điệp

5 senderKID và recipKID: Là những trường được sử dụng để định ra xem những

khoá nào được sử dụng để bảo vệ thông điệp PKI

6 transactionID: Trường này cho phép đối tượng nhận đối sánh thông điệp nhận

được với thông điệp yêu cầu của mình trước đó

7 senderNonce và recipNonce: Là những trường được sử dụng để bảo vệ thông

điệp trước hình thức tấn công phát lại gói tin

Trang 18

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

18

8 messageTime: Là trường cho ta biết thời điểm người gửi tạo ra thông điệp Điều

này giúp cho các đối tượng sử dụng có thể đồng bộ thời gian của mình với thời

gian của hệ thống quản lý

9 freeText: Là trường được sử dụng để gửi một số thông điệp đến cho người nhận

Có một điều cần phải đảm là người nhận phải đọc được thông tin trong trường

này Điều đó có nghĩa là phía gửi và phía nhận phải thống nhất về phương thức

biểu diễn thông tin

10 generalInfo: Là trường được sử dụng để lưu những dữ liệu bổ sung mà hệ thống

thiết bị của người nhận có thể xử lý được

Như vậy, phần thân của thông điệp PKI có thể có 23 dạng khác nhau Các dạng này tuỳ

thuộc vào từng hoạt động, chức năng và đối tượng phát ra thông điệp Ta cũng nhận thấy

một số thông điệp sẽ có định dạng cơ bản giống nhau và ta coi chúng như thuộc vào một

nhóm Dưới đây là một số khuôn dạng dữ liệu chung cho một số thông điệp được sử

dụng cho các hoạt động quản lý hệ thống PKI:

CertReqMessages ::= SEQUENCE SIZE (1 MAX) OF CertReqMsg

CertReqMsg ::= SEQUENCE {

Nội dung tuỳ thuộc vào loại khoá được sử dụng

OPTIONAL}

Trang 19

Các thông tin liên quan đến quá trình phát hành

CertTemplate ::= SEQUENCE {

OptionalValidity ::= SEQUENCE {

Ít nhất một trong hai trường phải tồn tại

Controls ::= SEQUENCE SIZE(1 MAX) OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {

Tập các bit được sử dụng để tăng độ an toàn cho thông điệp

Số hiệu của thuật toán phân tách một chiều (thường là SHA-1)

Trang 20

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

20

POPOPrivKey ::= CHOICE {

Thông điệp minh chứng cho sự sở hữu đối với một khoá riêng nào đó

Các thông điệp thứ cấp minh chứng cho sự sở hữu đối với một khoá riêng

Được sử dụng trong quá trình thoả thuận khoá

dhMAC [2] BIT STRING }

SubsequentMessage ::= INTEGER {

Báo xem các thẻ xác nhận được lưu trong thông điệp có được mã hoá không

Báo hiệu CA phải tham gia vào một phiên hỏi đáp với một EE để chứng minh

sự sở hữu đối với khoá riêng mà nó nắm giữ

challengeResp (1) }

1.5.4.1 Thông điệp yêu cầu khởi tạo

Như mô tả trong phần giả mã lập trình, thông điệp yêu cầu khởi tạo (Initialization Request

– IR) có cấu trúc dữ liệu kiểu CertReqMessages Thông điệp này chỉ ra thẻ xác nhận

được yêu cầu Thông điệp này được sử dụng khi một EE lần đầu tiên được khởi tạo trong

hệ thống PKI

1.5.4.2 Thông điệp trả lời yêu cầu khởi tạo

Thông điệp trả lời yêu cầu khởi tạo (Initialization Response - IP) là thông điệp có khuôn

dạng dữ liệu kiểu CertRepMessage Nó được dùng để trả lời các thông điệp yêu cầu

thông tin về trạng thái của hệ thống PKI (PKIStatusInfo), về các đối tượng sử dụng hoặc

có thể là một khoá riêng Thông thường, các thông tin trả về được mã hoá với một khoá

phiên đã định Chính khoá phiên này lại được mã hoá bởi khoá được sử dụng trong giao

thức quản lý PKI (protocolEncKey)

1.5.4.3 Thông điệp yêu cầu đăng ký/yêu cầu thẻ xác nhận

Thông điệp yêu cầu đăng ký (Registration Request - RR) và thông điệp yêu cầu thẻ xác

nhận (Certificate Request - CR) là các thông điệp có cấu trúc kiểu CerReqMessages Các

thông điệp này định ra những thẻ xác nhận được yêu cầu và được sử dụng khi một đối

tượng sử dụng muốn có thêm các thẻ xác nhận

Trong trường hợp này, định dạng dữ liệu có thể là kiểu CertificationRequest nếu như các

thông điệp yêu cầu thẻ xác nhận đối với các cặp khoá tạo chữ ký số khi hợp tác với các

hệ thống khác là cần thiết

1.5.4.4 Thông điệp trả lời yêu cầu đăng ký/yêu cầu thẻ xác nhận

Thông điệp trả lời yêu cầu đăng ký (Registration Reply - RR) có khuôn dạng

CertRepMessage Thông điệp này mang một giá trị trạng thái của mỗi thẻ xác nhận được

yêu cầu Ngoài ra, có thể có khoá công khai của CA, các thông tin về yêu cầu không

được chấp nhận, một thẻ xác nhận của đối tượng hoặc một khoá riêng đã được mã hoá

Trang 21

1.5.4.5 Thông điệp yêu cầu cập nhật khoá

Thông điệp yêu cầu cập nhật khoá (Key Update Request - KUR) có khuôn dạng

CertReqMessages Đối với mỗi khoá cần được cập nhật, thông điệp này phải cung cấp

các trường thông tin như: subjectPublicKeyInfo, keyId, validity Thông thường, thông điệp

này được sử dụng để cập nhật thông tin cho các thẻ xác nhận đã tồn tại

1.5.4.6 Thông điệp trả lời yêu cầu cập nhật khoá

Thông điệp trả lời yêu cầu cập nhật khoá (Key Update Response - KUP) có khuôn dạng

CertRepMessage Thông điệp này giống với thông điệp trả lời yêu cầu khởi tạo

1.5.4.7 Thông điệp yêu cầu khôi phục khoá

Thông điệp yêu cầu khôi phục khoá (Key Recovery Request - KRR) giống với thông điệp

yêu cầu khởi tạo Trong thông điệp này, ta phải cung cấp thông tin cho trường

subjectPublickKeyInfo và trường keyID để lấy ra được khoá công khai ứng với thẻ xác

nhận được yêu cầu

1.5.4.8 Thông điệp trả lời yêu cầu khôi phục khoá

Trong thông điệp trả lời yêu cầu khôi phục khoá (Key Recovery Response - KRP), ngoại

trừ một số giá trị trạng thái, không còn trường tuỳ chọn nào được sử dụng Thông điệp

này có khuôn dạng như sau:

KeyRecRepContent ::= SEQUENCE {

status PKIStatusInfo,

1.5.4.9 Thông điệp yêu cầu huỷ bỏ

Khi cần gửi một thông điệp yêu cầu huỷ bỏ thẻ xác nhận (Revocation Request - RR), ta

sử dụng cấu trúc thông điệp như trong phần mô tả dưới đây Tên của đối tượng gửi thông

điệp yêu cầu nằm trong phần header của thông điệp

RevReqContent ::= SEQUENCE OF RevDetails

RevDetails ::= SEQUENCE {

Cho phép đối tuong yeu cau mo ta chi tiet ve the xac nhan no muon huy bo

certDetails CertTemplate,

Lý do của yêu cầu huỷ bỏ

1.5.4.10 Thông điệp trả lời yêu cầu huỷ bỏ

Khi chấp nhận một yêu cầu huỷ bỏ (Revocation Response - RP), thông điệp sau đây

được gửi về cho đối tượng yêu cầu huỷ bỏ:

RevRepContent ::= SEQUENCE {

Thông báo trạng thái xử lý của CA đối với yêu cầu gửi đến

status SEQUENCE SIZE (1 MAX) OF PKIStatusInfo,

Trang 22

Tổng quan về PKI HẠ TẦNG KHOÁ CÔNG KHAI

22

Số hiệu thẻ xác nhận bị yêu cầu huỷ bỏ

Các CRL có liên quan

1.5.4.11 Thông điệp yêu cầu thẻ xác nhận ngang hàng

Việc yêu cầu thẻ xác nhận ngang hàng giữa (Cross-Cert Request - CCR) các CA cũng

sử dụng cùng một kiểu thông điệp như khi các đối tượng sử dụng yêu cầu thẻ xác nhận

từ CA Tuy nhiên, có một điểm ràng buộc là cặp khoá sử dụng để mã hoá thông điệp

chứa thẻ xác nhận phải do phía CA yêu cầu thẻ xác nhận tạo ra từ trước Đồng thời,

khoá riêng trong cặp khoá này bắt buộc phải không được gửi đến cho CA trả lời

1.5.4.12 Thông điệp trả lời yêu cầu xác nhận ngang hàng

Thông điệp trả lời yêu cầu xác nhận ngang hàng (Cross-Cert Response - CCP) cũng

giống với thông điệp trả lời yêu cầu xác nhận Tuy nhiên, có một ràng buộc là không được

phép gửi khoá riêng (kể cả đã được mã hoá) cho CA yêu cầu Điều này xuất phát từ

nguyên tắc: chỉ thành phần off-line mới biết được khoá riêng của đối tượng

1.5.4.13 Thông điệp công bố cập nhật khoá CA

Khi CA cập nhật cặp khoá (CA Key Update Announcement - CKUANN) của chính mình,

cấu trúc dữ liệu sau được sử dụng để thông báo về sự thay đổi này:

1.5.4.14 Thông điệp công bố thẻ xác nhận

Thông điệp công bố thẻ xác nhận (Certificate Announcement - CANN) được sử dụng để

thông báo về sự tồn tại của một thẻ xác nhận Ta cần lưu ý là phương pháp sử dụng

thông điệp này chỉ được sử dụng trong trường hợp không tồn tại một phương pháp phát

hành thẻ xác nhận nào khác Ví dụ, nếu có một phương thức phát hành thẻ theo chuẩn

X.500 thì phương pháp này sẽ không được sử dụng

CertAnnContent ::= Certificate

1.5.4.15 Thông điệp thông báo huỷ bỏ thẻ xác nhận

Khi một thẻ xác nhận bị huỷ bỏ (Revocation Announcement - RANN) hoặc sắp bị huỷ bỏ

bởi CA, nó sẽ đưa ra thông báo về sự kiện này Thông báo có khuôn dạng như sau:

Thông tin chi tiết về các CRL

Trang 23

CA có thể sử dụng thông báo kiểu này để báo với chủ thể sở hữu thẻ xác nhận biết rằng

thẻ xác nhận mà đối tượng ấy nắm giữ sẽ hoặc đã bị huỷ bỏ Nó chủ yếu được sử dụng

trong trường hợp đối tượng nắm giữ thẻ xác nhận không gửi yêu cầu huỷ bỏ Nghĩa là

CA chủ động huỷ bỏ một thẻ xác nhận Trường willBeRevokedAt được dùng để xác định

thời điểm mà một chỉ mục mới ứng với thẻ xác nhận này được bổ sung vào danh sách

những thẻ xác nhận bị huỷ bỏ

1.5.4.16 Thông điệp thông báo CRL

Khi một CA phát hành một hoặc một tập các CRL mới (CRL Announcement - CRLANN),

nó sẽ gửi đi thông điệp sau đây để thông báo về sự kiện này:

CRLAnnContent ::= SEQUENCE OF CertificateList

1.5.4.17 Thông điệp xác nhận

Thông điệp xác nhận (Confirmation - CONF) được sử dụng trong các hoạt động của giao

thức quản lý PKI theo kiểu yêu cầu - trả lời - xác nhận Nội dung của thông điệp này giống

nhau trong tất cả các trường hợp vì bản thân phần header của thông điệp đã mang tất cả

các thông tin cần thiết

PKIConfirmContent ::= NULL

1.5.4.18 Thông điệp PKI đa mục đích

Thông điệp PKI đa mục đích (General Message - GENM) được sử dụng trong một số

trường hợp truyền thông tin cho các thiết bị hoặc các trình ứng dụng của các đối tượng

sử dụng trong hệ thống Khuôn dạng dữ liệu của thông điệp này như sau:

InfoTypeAndValue ::= SEQUENCE {

infoType OBJECT IDENTIFIER,

GenMsgContent ::= SEQUENCE OF InfoTypeAndValue

1.5.4.19 Thông điệp trả lời tổng quát

Thông điệp trả lời tổng quát (General Response - GENP) có cấu trúc như sau:

Đối tượng nhận có thể tự do bỏ qua những định danh mà nó không biết

GenRepContent ::= SEQUENCE OF InfoTypeAndValue

1.5.4.20 Thông điệp thông báo lỗi

Thông điệp báo lỗi (Error Message - ERROR) được sử dụng trong trường hợp khi có lỗi

nào đó trong các hoạt động của giao thức PKI Đi kèm với thông tin về lỗi là những thông

tin về trạng thái của hệ thống

Trang 24

Dong Manh Quan Trang 24 23/08/2005

¾ Các mô hình triển khai hệ thống PKI

¾ Những chức năng bắt buộc trong triển khai hệ thống PKI

Việc tìm hiểu hai nội dung trên là cơ sở để ta thực hiện công đoạn phân tích thiết kế chi tiết trong khi triển khai hệ thống PKI Sau đây, ta sẽ tìm hiểu hai nội dung trên

2.1 CÁC MÔ HÌNH TRIỂN KHAI HỆ THỐNG PKI

Hệ thống PKI khi được triển khai ở bất kỳ phạm vi nào đều cần có một kiến trúc phù hợp Thông thường, ta dựa trên đặc điểm tổ chức của hệ thống các dịch vụ sử dụng PKI để định ra kiến trúc phù hợp Sau đây, ta sẽ tìm hiểu những kiến trúc hệ thống PKI tiêu biểu

EE

EE (B)

CA 4

Hình 2-1 Kiến trúc PKI phân cấp

Trong mô hình này, tất cả các đối tượng trong hệ thống đều phải biết khoá công khai của

CA gốc Tất cả các thẻ xác nhận đều có thể được kiểm chứng bằng cách kiểm tra đường dẫn của thẻ xác nhận đó đến CA gốc Ví dụ, khi A muốn kiểm chứng thẻ xác nhận của B, thẻ này do CA4 cấp, do vậy A kiểm tra thẻ xác nhận của CA4; thẻ xác nhận của CA4 lại do

Trang 25

CA2 cung cấp nên A lại kiểm tra thẻ xác nhận của CA2; thẻ xác nhận của CA2 là do CA

gốc cung cấp Vì A biết khoá công khai của CA gốc nên nó có thể kiểm chứng trực tiếp

Như vậy, trong kiến trúc của hệ thống PKI này, tất cả các đối tượng đều dựa trên sự tin

cậy đối với CA gốc duy nhất Khoá công khai của CA gốc phải được phân phát cho các

đối tượng đã được xác thực để đảm bảo sự tin cậy trong hệ thống Sự tin cậy này được

hình thành theo các cấp từ CA gốc đến các CA thứ cấp và đến các đối tượng sử dụng

Ta có một số đánh giá về kiến trúc hệ thống PKI phân cấp như sau:

2.1.1.1 Những ưu điểm của kiến trúc PKI phân cấp

1 Cấu trúc hệ thống quản lý của hầu hết các tổ chức đều có dạng phân cấp Các

mối quan hệ trong mô hình phân cấp cũng khá giống với các quan hệ trong các tổ

chức Vì vậy, ta có thể coi các nhánh của quá trình xác nhận đối tượng giống với

các nhánh trong cấu trúc của tổ chức

2 Kiến trúc phân cấp này cũng gần giống với hình thức phân cấp trong việc tổ chức

thư mục Do vậy, ta có thể dễ dàng làm quen hơn

3 Cách thức tìm ra một nhánh xác nhận là theo một hướng nhất định, không có hiện

tượng vòng lặp Do vậy, quá trình xác nhận được thực hiện đơn giản và nhanh

chóng

4 Tất cả các đối tượng sử dụng đều có nhánh xác nhận hướng về CA gốc, do vậy,

nêu một đối tượng sử dụng A cung cấp cho B thông tin về nhánh xác nhận của

mình thì B cũng có thể thực hiện xác nhận theo hướng đó vì B cũng biết khoá

công khai của CA gốc

2.1.1.2 Những khuyết điểm của kiến trúc PKI phân cấp

Nếu ta áp dụng một mô hình phân cấp một cách cứng nhắc thì vẫn có một số nhược

điểm như sau:

1 Trên một phạm vi lớn, không thể chỉ có một CA duy nhất để đảm nhận tất cả các

quá trình xác nhận

2 Các quan hệ kinh doanh, thương mại không phải lúc nào cũng có dạng phân cấp

3 Khi khoá riêng của CA gốc bị tiết lộ thì toàn bộ hệ thống sẽ bị nguy hiểm Nếu có

khắc phục bằng cách thay cặp khoá mới thì thông tin về khoá công khai của CA

gốc phải được truyền đến cho tất cả các đối tượng trong hệ thống Điều này đòi

hỏi thời gian và một lưu lượng truyền thông rất lớn

Trong các hệ thống ban đầu được triển khai, mô hình phân cấp đã được ưu tiên sử dụng

Tuy nhiên, phiên bản 3.0 của các thẻ xác nhận đã có những phần mở rộng hỗ trợ quá

trình xác nhận không theo mô hình phân cấp Do vậy, mô hình phân cấp ngày càng ít

được sử dụng

Trang 26

Những vấn đề cơ bản trong xây dựng hệ thống PKI HẠ TẦNG KHOÁ CÔNG KHAI

26

2.1.2 Kiến trúc hệ thống PKI mạng lưới

Trong kiến trúc này, việc các CA thực hiện xác nhận ngang hàng đã tạo nên một mạng

lưới các mối quan hệ tin cậy lẫn nhau giữa các CA ngang hàng Các đối tượng nắm được

khoá công khai của CA nằm “gần” mình nhất Thông thường, đây là CA cấp cho đối

tượng đó thẻ xác nhận Các đối tượng kiểm chứng một thẻ xác nhận bằng cách kiểm tra

quá trình xác nhận với đích là CA đã phát hành thẻ xác nhận đó

Các CA sẽ xác nhận ngang hàng bằng cách phát hành cho nhau những thẻ xác nhận,

những cặp thẻ xác nhận này được kết hợp và lưu trong một cấu trúc dữ liệu có tên:

CrossCertificatePair Trong sơ đồ dưới đây, A có thể xác nhận B theo nhiều nhánh khác

nhau Theo nhánh ngắn nhất, B được CA4 cấp thẻ xác nhận nên nó được xác nhận bở

CA4 CA4 được xác nhận ngang hàng bởi CA5 và CA5 lại được xác nhận ngang hàng bởi

CA3 A được CA3 cấp phát thẻ xác nhận và biết được khoá công khai của CA3 nên nó có

EE (A)

EE

EE EE EE (B)

EE

EE

Hình 2-2 Kiến trúc PKI mạng lưới 2.1.2.1 Ưu điểm của kiến trúc PKI mạng lưới

1 Đây là một kiến trúc linh động, nó thích hợp với các mối liên hệ và mối quan hệ tin

cậy lẫn nhau trong thực tế của công việc kinh doanh

2 Một đối tượng sử dụng ít nhất phải tin cậy CA cấp phát thẻ xác nhận cho nó Có

thể coi đây là cơ sở để tạo nên tất cả các mối quan hệ tin tưởng lẫn nhau

3 Các CA có thể xa nhau trong mô hình tổ chức nhưng những đối tượng sử dụng

của nó lại làm việc cùng nhau với mức ưu tiên cao có thể xác nhận ngang hàng

theo một cách thức có độ ưu tiên cao Độ ưu tiên này chỉ được giới hạn trong

phạm vi của các CA này

4 Kiến trúc này cho phép các CA có thể xác nhận ngang hàng một cách trực tiếp

trong trường hợp các đối tượng sử dụng của chúng liên lạc với nhau thường

xuyên để giảm tải lượng đường truyền và thao tác xử lý

Trang 27

5 Việc khôi phục hệ thống do khoá riêng của một CA bị tiết lộ sẽ chỉ gồm việc phân

phát một cách an toàn khoá công khai mới của CA đến các đối tượng mà CA này

cấp phát thẻ xác nhận

2.1.2.2 Nhược điểm của mô hình PKI mạng lưới

1 Do cấu trúc của mạng có thể rất phức tạp nên việc tìm kiếm các đối tượng rất khó

khăn Trong trường hợp có nhiều đường truyền đến một đối tượng khác thì bài

toán tìm đường đi ngắn nhất đến đối tượng đó có thể rất phức tạp

2 Một đối tượng không thể đưa ra một nhánh xác nhận duy nhất mà có thể đảm bảo

tất cả các đối tượng khác trong hệ thống có thể thực hiện được

2.1.3 Kiến trúc danh sách tin cậy

Đây là kiến trúc được áp dụng rộng rãi đối với dịch vụ Web Trong đó, các trình duyệt và

các máy chủ là những đối tượng sử dụng tiêu biểu nhất Trong mô hình này, các trình

duyệt đều lưu một file riêng chứa các thẻ xác nhận gốc của các CA được tin cậy File này

tồn tại ngay khi trình duyệt được cài đặt Việc quản lý file này có thể được thực hiện bởi

các cá nhân sử dụng trình duyệt Các tổ chức cũng có thể cấp quyền cho việc tải hoặc

quản lý các thông tin từ một máy chủ của tổ chức Đối với mỗi file này, người sử dụng có

thể bổ sung hoặc xóa bớt những thẻ xác nhận khỏi danh sách Tuy nhiên, khả năng xử lý

cách nhánh xác nhận của các ứng dụng hiện còn khá hạn chế

Các trình duyệt có thể sử dụng các cặp khóa công khai/khoá riêng để ký, để kiểm chứng,

giải mã hoặc mã hoá các thư điện tử theo chuẩn S/MIME Với các thẻ xác nhận, các trình

duyệt cũng có thể thiết lập các phiên truyền thông an toàn SSL (Secure Sockets Layer)

SSL là một giao thức xác thực và mã hoá ở tầng chuyển vận Trong một phiên truyền

thông SSL, người dùng có thể gửi đi một mẫu biểu hoặc nhận về các thông tin từ một

máy chủ dưới hình thức được mã hoá và xác thực Mặt khác, các trình duyệt còn có thể

kiểm chứng các chữ ký số được áp dụng đối với thông tin được truyền đi

Hình 2-3 Kiến trúc PKI danh sách tin cậy

Như vậy, ta có thể coi kiến trúc PKI danh sách tin cậy là một mô hình hướng trình duyệt

2.1.3.1 Ưu điểm của kiến trúc PKI danh sách tin cậy

1 Đây là kiến trúc đơn giản, quá trình truyền thông và xác nhận theo một hướng duy

nhất, hơn nữa, mô hình này có thể được triển khai khá dễ dàng

Trang 28

Những vấn đề cơ bản trong xây dựng hệ thống PKI HẠ TẦNG KHOÁ CÔNG KHAI

28

2 Trong kiến trúc này này, các đối tượng sử dụng có toàn quyền quản lý file lưu trữ

danh sách thẻ xác nhận của các CA mà mình tin cậy

3 Kiến trúc này có thể làm việc rất tốt với giao thức quản lý trạng thái thẻ xác nhận

trực tiếp do các nhánh xác thực khá đơn giản Hơn nữa, những yêu cầu về trạng

thái thẻ xác nhận chỉ được gửi tới các CA ở trong danh sách các CA được tin cậy

2.1.3.2 Nhược điểm của kiến trúc PKI danh sách tin cậy

1 Người sử dụng có toàn quyền nội dung của file chứa thẻ xác nhận của các CA mà

nó tin cậy Do vậy việc quản lý danh sách các CA được tin cậy của một tổ chức là

rất khó khăn

2 Việc khởi tạo danh sách mặc địch các CA được tin cậy khi cài đặt một trình duyệt

sẽ dẫn đến việc khó đảm bảo tính xác thực trong quá trình khởi tạo thông tin về

khoá công khai của các CA này Đây có thể là một kẽ hở để các đối tượng tấn

công lợi dụng

3 Không phải tất cả những người sử dụng đều có khả năng quản lý tốt một file chứa

quá nhiều thẻ xác nhận của các CA mà mình tin cậy

4 Cấu trúc thẻ xác nhận không có nhiều hỗ trợ cho việc tìm ra các nhánh xác nhận

5 Không có những hỗ trợ trực tiếp đối với các cặp thẻ xác nhận ngang hàng Do

vậy, nó hạn chế khả năng của CA trong quản lý sự tin cậy của mình đối với các

Tóm lại, ưu điểm đáng kể nhất của kiến trúc danh sách tin cậy là khả năng hỗ trợ đối với

định dạng dữ liệu S/MIME và các phiên truyền thông SSL đối với các trình duyệt hiện nay

Dịch vụ World Wide Web và các trình duyệt là những đối tượng cơ bản trong công nghệ

mạng hiện nay, nó cũng là nền tảng để phát triển các trình ứng dụng phân tán

Hiện nay, các máy chủ Web đều hỗ trợ kiến trúc PKI theo danh sách tin cậy, bất kể ai

muốn phát triển các ứng dụng PKI cho một lượng lớn đối tượng sử dụng đều phải ý thức

được điều này Hơn nữa, công nghệ Web hiện đang là một hướng lựa chọn phổ biến cho

các ứng dụng trong phạm vi các mạng cục bộ Như vậy, với sự hiện diện của các trình

duyệt ở khắp mọi nơi và một vị trí quan trọng của chúng để xây dựng các ứng dụng

mạng, đây thực sự là một kiến trúc quan trọng trong số các kiến trúc được áp dụng để

xây dựng các hệ thống PKI

Trang 29

2.2 NHỮNG CHỨC NĂNG BẮT BUỘC TRONG QUẢN LÝ PKI

Các hoạt động của hệ thống quản lý PKI đã được mô tả trong phần tổng quan về PKI

Trong phạm trù triển khai hệ thống PKI, ta cần tìm hiểu những chức năng mà hệ quản lý

PKI bắt buộc phải có Mặt khác, để đề ra những phần công việc cần lập trình thực thi

trong đồ án thực tập này, ta sẽ lấy những chức năng này làm cơ sở để lập trình thực thi

một hệ thống PKI (gồm CA và EE) với các chức năng tối thiểu Những chức năng bắt

buộc đối với hệ thống quản lý PKI gồm có:

2.2.1 Khởi tạo CA gốc

Khi một CA mới tham gia vào hệ thống PKI, nó phải tạo ra các thẻ xác nhận theo kiểu tự

ký (self-signed) Các thẻ xác nhận này được ký với khoá riêng của CA gốc đó và trường

mô tả cho kiểu thẻ xác nhận là NewWithNew Nghĩa là, thẻ xác nhận được cấp lần đầu

cho các đối tượng trong hệ thống Kiểu thẻ xác nhận này cũng được dùng khi CA muốn

gửi thẻ xác nhận đến cho một đối tượng mới tham gia hệ thống Thông điệp chứa thẻ xác

nhận này được gửi đi sau khi CA thực hiện công việc cập nhật khoá công khai của mình

Đồng thời với việc tạo và gửi đi các thẻ xác nhận của mình đến cho các đối tượng trong

hệ thống, CA gốc cũng phải tạo danh sách các thẻ xác nhận cần huỷ bỏ (CRL) và lưu các

thẻ xác nhận đã gửi đi vào danh sách này Đây chính là cơ sở để CA huỷ bỏ các khoá và

thực hiện các phiên cập nhật khoá của mình

2.2.2 Cập nhật khoá của CA gốc

Các khoá của CA đều có thời gian hiệu lực nhất định nên chúng cần phải được cập nhật

theo định kỳ Thời gian hiệu lực của khoá sẽ tuỳ thuộc vào các chính sách được thiết lập

đối với hệ thống PKI Các thẻ xác nhận theo kiểu NewWithNew, NewWithOld, và

OldWithNew được CA phát hành và gửi đến cho các đối tượng sử dụng đã có mặt trong

hệ thống Những đối tượng này đang nắm giữ thẻ xác nhận cũ của CA (kiểu OldWithOld),

khi nhận được các thẻ xác nhận mới gửi đến từ CA, có thể chuyển sang các thẻ xác nhận

mới theo kiểu NewWithNew một cách an toàn Ngoài ra, hoạt động này của CA gốc còn

giúp cho các đối tượng sử dụng mới (những đối tượng sẽ nhận được thẻ xác nhận kiểu

NewWithNew) có thể thu được thẻ xác nhận kiểu OldWithOld một cách an toàn, điều này

sẽ giúp cho đối tượng sử dụng mới có thể kiểm tra các dữ liệu đã có (dữ liệu có thể được

kiểm tra bởi khoá công khai trong các thông điệp kiểu OldWithOld)

2.2.3 Khởi tạo các CA thứ cấp

Nếu xét trên phương diện các giao thức quản lý, việc khởi tạo một CA thứ cấp cũng giống

với việc khởi tạo một EE Điểm khác biệt duy nhất là các CA thứ cấp cũng phải khởi tạo

một CRL của mình

2.2.4 Tạo lập CRL

Trước khi phát hành và gửi đi các thẻ xác nhận, một CA mới được khởi tạo phải tạo ra

các CRL trống để chuẩn bị cho việc bổ sung các thẻ xác nhận cần huỷ bỏ Các CRL này

cũng sẽ được cập nhật thông tin định kỳ theo thời gian hiệu lực của các thẻ xác nhận

Trang 30

Những vấn đề cơ bản trong xây dựng hệ thống PKI HẠ TẦNG KHOÁ CÔNG KHAI

30

2.2.5 Yêu cầu về thông tin hệ thống PKI

Khi một đối tượng trong hệ thống PKI (CA, RA hoặc EE) muốn có được thông tin trạng

thái của một CA nào đó, đối tượng này có thể gửi cho CA đo một yêu cầu về các thông tin

trên CA nhận được yêu cầu phải trả lời bằng việc cung cấp ít nhất là các thông tin đã

được yêu cầu Nếu có một số trường thông tin nào đó không thể được đáp ứng thì phải

có một thông điệp báo lỗi gửi về cho đối tượng yêu cầu

2.2.6 Xác nhận ngang hàng

Trong giao thức của việc xác nhận ngang hàng, CA yêu cầu sẽ là CA có tên trong trường

subject của thẻ xác nhận (CA được cấp phát thẻ xác nhận) Trong khi đó, CA trả lời sẽ

chính là CA đã phát hành thẻ xác nhận này Quá trình xác nhận ngang hàng là cần thiết

khi các CA muốn trao đổi thông tin với nhau vì nó giúp các CA biết chắc mình đang trao

đổi thông tin với đối tượng nào

2.2.7 Khởi tạo các EE

Cũng giống như các CA, những EE cũng phải được khởi tạo khi tham gia vào hệ thống

PKI Quá trình khởi tạo cho các đối tượng này bao gồm ít nhất 2 bước sau:

2.2.7.1 Thu thập thông tin về hệ thống PKI

Trong thủ tục này, ta cần có những thông tin sau đây:

1 Khoá công khai của CA gốc

2 Nhánh xác nhận từ CA gốc đến CA đang quản lý đối tượng này cùng với các CRL

có liên quan (trường hợp CA quản lý đối tượng không phải là CA gốc)

3 Những thuật toán và các tham số của thuật toán mà CA quản lý hỗ trợ trong các

mục đích sử dụng có liên quan

2.2.7.2 Kiểm tra khoá công khai của CA gốc

Một EE phải có được khoá công khai của CA gốc một cách an toàn Một trong số các

phương thức hiệu quả để đảm bảo yêu cầu này là việc sử dụng các thẻ xác nhận tự ký và

được trao đổi qua các phương tiện out-of-band Sau khi nhận được thẻ xác nhận này từ

CA gốc, các EE có thể sử dụng những thẻ xác nhận này một cách an toàn

2.2.8 Yêu cầu xác nhận

Một EE sau khi khởi tạo có thể sẽ yêu cầu một thẻ xác nhận vào bất kỳ thời điểm nào

Yêu cầu này được truyền tải bởi thông điệp yêu cầu thẻ xác nhận (CR) Nếu đối tượng đã

có một cặp khoá để tạo chữ ký thì thông điệp yêu cầu sẽ được bảo vệ bằng cách thực

hiện phương thức chữ ký số đối với nó Nếu yêu cầu được chấp nhận, CA sẽ trả về cho

đối tượng sử dụng một thẻ xác nhận mới

2.2.9 Cập nhật khoá

Khi cặp khoá của một EE không còn hiệu lực nữa, đối tượng này có thể yêu cầu được

cập nhật cặp khoá của mình bằng một cặp khoá mới Yêu cầu này được truyền tải bởi

Trang 31

thông điệp yêu cầu cập nhật khoá (KUR) Nếu EE đã có một cặp khoá tạo chữ ký thì

thông điệp yêu cầu này sẽ được bảo vệ thông qua phương thức chữ ký số Nếu yêu cầu

được chấp thuận thì CA sẽ trả về một thông điệp trả lời yêu cầu cập nhật khoá (KUP) có

chứa một thẻ xác nhận mới cho đối tượng

Trang 32

Dong Manh Quan Trang 32 23/08/2005

3.1 CÁC TRƯỜNG CƠ BẢN CỦA THẺ XÁC NHẬN

Một thẻ xác nhận theo chuẩn X.509 phiên bản 3.0 là một dãy các cấu trúc gồm có 3 trường được mô tả như sau:

Certificate ::= SEQUENCE {

signatureAlgorithm AlgorithmIdentifier, Thuật toán tạo chữ ký số

Sau đây, ta sẽ tìm hiểu cấu trúc và vai trò của từng trường cơ bản trên của thẻ xác nhận

3.1.1 Trường tbsCertificate

Trường này chứa những thông tin cơ bản nhất của thẻ xác nhận Trong đó, ta có thể kể đến tên của đối tượng phát hành, tên của đối tượng sử dụng, thời hạn hiệu lực và những thông tin khác có liên quan Trong các phần sau, ta sẽ tìm hiểu kỹ hơn về các trường thông tin này

3.1.2 Trường signatureAlgorithm

Trường này chứa tên của thuật toán mã hoá mà CA sử dụng để thức hiện phương thức chữ ký số đối với thẻ xác nhận Trong thực tế, ta thường sử dụng một số thuật toán tạo chữ ký số phổ biến như: RSA, DSS Theo chuẩn ASN.1, cấu trúc định danh cho một thuật toán mã hoá được mô tả như sau:

AlgorithmIdentifier ::= SEQUENCE {

Trong cấu trúc này, trường algorithm được sử dụng để lưu số hiệu của thuật toán được

sử dụng Trong thực tế, đây là một chuỗi các số theo quy định để mô tả tên các thuật toán Ta có một ví dụ như sau: “1.2.840.10040.4.3”, đây là một chuỗi chỉ ra thuật toán

được sử dụng là thuật toán DSA với hàm phân tách một chiều dsaWithSha1

Trang 33

Trường parameters được sử dụng để lưu các tham số cho các thuật toán mã hoá Nội

dụng của trường này tuỳ thuộc vào từng loại thuật toán mã hoá được sử dụng

3.1.3 Trường signatureValue

Đây là trường được tạo ra sau khi CA thực hiện phương thức chữ ký số đối với trường

tbsCertificate Trong thực tế, ta phải đóng gói thẻ xác nhận trước khi thực hiện phương

thức chữ ký số với thẻ xác nhận đó

Bằng việc thực hiện phương thức chữ ký số với thẻ xác nhận, CA có thể đảm bảo cho

các trường thông tin có trong thẻ xác nhận Cụ thể hơn, CA đã đảm bảo cho mối ràng

buộc giữa đối tượng sở hữu thẻ và khoá chung đi kèm với thẻ đó Đây chính là yêu cầu

lớn nhất đối với thẻ xác nhận Sau đây, ta sẽ tìm hiểu các cấu trúc của các trường cơ bản

đã nêu trên

3.2 CẤU TRÚC TBSCERTIFICATE

Cấu trúc này cho phép ta lưu các thông tin liên quan đến đối tượng sử dụng và đối tượng

phát hành thẻ xác nhận như đã nói ở trên Các trường của cấu trúc này gồm có:

Các trường của cấu trúc TBSCertificate được mô tả như sau:

3.2.1 Trường version

Trường này chỉ ra phiên bản của thẻ xác nhận đã được mã hoá Trong trường hợp thẻ

xác nhận có dùng đến các trường mở rộng thì phiên bản của thẻ xác nhận bắt buộc phải

là 3 (giá trị là 2) Nếu không có các trường mở rộng nhưng lại có những trường định danh

cho đối tượng sử dụng và đối tượng phát hành thì phiên bản của thẻ xác nhận có thể là 2

(giá trị là 1) Tuy nhiên, trong trường hợp này ta vẫn có thể sử dụng phiên bản 3

3.2.2 Trường serialNumber

Trường này bắt buộc phải là một số nguyên dương Nó được CA gán cho mỗi thẻ xác

nhận khi CA tạo và thực hiện phương thức chữ ký số đối với thẻ vừa tạo được CA phải

đảm bảo số hiệu này phải là duy nhất đối với mỗi thẻ xác nhận được tạo ra Để đảm bảo

yêu cầu về tính duy nhất của số hiệu thẻ xác nhận, trường biểu diễn số hiệu này có thể là

các số nguyên lớn Chuỗi số biểu diễn có thể có độ dài lên tới 20 byte

Trang 34

Thẻ xác nhận theo chuẩn X.509 HẠ TẦNG KHOÁ CÔNG KHAI

34

3.2.3 Trường signature

Trường này chứa định danh của thuật toán mã hoá mà CA sử dụng để tạo chữ ký số cho

thẻ xác nhận Số hiệu của thuật toán lưu trong trường này phải giống với số hiệu của

thuật toán lưu trong trường signatureAlgorithm

3.2.4 Trường issuer

Trường này chỉ ra đối tượng nào đã tạo ra thẻ xác nhận, tạo chữ ký số ứng với thẻ xác

nhận và phát hành nó Trường này bắt buộc phải mang tên CA đã phát hành ra nó

Trường này có cấu trúc như sau:

RelativeDistinguishedName ::= SET OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {

Như vậy, trường issuer được biểu diễn bởi một đối tượng có tên Name Đối tượng này

biểu diễn tên theo các mức dựa trên các thuộc tính Ví dụ, tên nước ta có giá trị là

Vietnam Giá trị của thành phần AttributeValue được quyết định bởi AttributeType và nó

thường có giá trị kiểu DirectoryString Kiểu dữ liệu này có thể có nhiều lựa chọn khác

nhau, tuỳ theo trường hợp cụ thể mà ta có lựa chọn phù hợp Hiện nay, trong các ứng

dụng mail và WWW, ta thường sử dụng kiểu UTF8String

Trong biểu diễn phân cấp đối với các đối tượng sử dụng và đối tượng phát hành thẻ xác

nhận, ta có một số giá trị thuộc tính chuẩn như sau:

1 Tên nước - country

2 Tên tổ chức - organization

3 Tên đơn vị - organizational-unit

4 Cấp bậc - distinguished name qualifier

5 Tên tỉnh hoặc bang - state or province name

6 Tên thường gọi - common name

7 Số hiệu - serial number

Trang 35

Đây là những trường chuẩn và đã được sử dụng rộng rãi như những thể hiện của chuẩn

về tổ chức thư mục X.500 Ngoài ra, ta cũng cần lưu ý để đảm bảo hệ thống PKI có thể

bao hàm một số thuộc tính sau:

1 Nơi cư trú - locality

2 Chức danh - title

4 Tên - given name

5 Các chữ cái đầu của tên - initials

6 Biệt danh - pseudonym

7 Thế hệ - generation qualifier (Ví dụ, "Jr.", "3rd", hay "IV")

3.2.5 Trường validity

Trường thông tin về thời gian hiệu lực của thẻ xác nhận là trường đánh dấu khoảng thời

gian mà trong đó CA đảm bảo việc cập nhật thông tin về thẻ xác nhận đó Trường này

chứa hai biến lưu thời điểm thẻ xác nhận bắt đầu có hiệu lực và thời điểm thẻ hết hiệu

lực Cả hai thời hạn đều có cùng kiểu dữ liệu là UTCTime nếu biểu diễn thời gian đến

trước năm 2049, nếu thời gian biểu diễn là từ năm 2050 trở đi thì ta phải dùng kiểu

GeneralizedTime

3.2.6 Trường subject

Trường subject chỉ ra đối tượng tương ứng với khoá công khai được lưu trong thẻ xác

nhận này Nói cách khác, nó chỉ ra đối tượng sử dụng của thẻ xác nhận Tên của đối

tượng sử dụng có thể được nêu ngay trong trường subject mà cũng có thể được nêu

trong trường mở rộng subjectAltName

Nếu đối tượng sử dụng là một CA thì tên được nêu trong trường subject phải giống với

tên được nêu trong trường issuer của tất cả các thẻ xác nhận mà CA này phát hành

Ngoài ra, nếu CA này đảm nhận việc phát hành và quản lý danh sách các thẻ sẽ bị huỷ

bỏ thì trường thông tin issuer trong các danh sách mà CA phát hành cũng phải giống với

tên trong trường subject này

3.2.7 Trường subjectPublicKeyInfo

Trường này được sử dụng để lưu trữ khoá công khai và thuật toán sử dụng khoá này

(RSA, DSA, Diffie-Hellman) Thuật toán được xác định thông qua cấu trúc

AlgorithmIdentifier đã nêu trên

3.2.8 Trường uniqueIdentifiers

Trường này chỉ bắt buộc phải tồn tại khi thông điệp có phiên bản là 2 hoặc 3 Ta không

được phép sử dụng khi phiên bản là 1 Định danh đơn nhất của các đối tượng sử dụng

và các đối tượng phát hành cho phép ta xử lý được các trường hợp dùng lại các tên của

đối tượng trong hệ thống qua những khoảng thời gian khác nhau

Trang 36

Thẻ xác nhận theo chuẩn X.509 HẠ TẦNG KHOÁ CÔNG KHAI

36

3.2.9 Trường extensions

Trường này chỉ có trong các thẻ xác nhận phiên bản thứ 3 trở đi Nếu tồn tại thì trường

này sẽ chứa một dãy các trường mở rộng của thẻ xác nhận Trong phần sau đây, ta sẽ

nghiên cứu về cấu trúc và đặc điểm của từng trường mở rộng

3.3 CÁC PHẦN MỞ RỘNG CỦA THẺ XÁC NHẬN X.509

Các phần mở rộng của thẻ xác nhận theo chuẩn X.509 phiên bản 3 được định ra nhằm

bổ sung thêm một số thuộc tính đối với các đối tượng sử dụng cùng với khoá chung của

mình Đồng thời, nó cũng hỗ trợ thêm cho quá trình xác nhận theo mô hình phân cấp

Định dạng của thẻ xác nhận X.509 cũng cho phép từng nhóm đối tượng truyền thông định

ra các phần mở rộng riêng cho phạm vi của nhóm

Mỗi phần mở rộng của thẻ xác nhận sẽ được đánh dấu là critical hay non-critical tùy

thuộc vào nội dung mà trường đó lưu trữ Ví dụ, một đối tượng sử dụng sẽ không chấp

nhận một thẻ xác nhận mà trong phần mở rộng của thẻ lại không có một trường mở rộng

bắt buộc nào đó Mỗi phần mở rộng đều có một số hiệu riêng Số hiệu này được định ra

theo chuẩn ASN.1 Sau đây ta sẽ nghiên cứu từng trường mở rộng cụ thể

3.3.1 Phần mở rộng Authority Key Identifier

Phần mở rộng này cho phép ta xác định được khoá công khai của một đối tượng dựa trên

khoá riêng mà đối tượng này đã sử dụng để tạo chữ ký số đối với các thẻ xác nhận Nó

được sử dụng khi một đối tượng có nhiều cặp khoá để tạo chữ ký số Để có thể xác định

được khoá công khai của một đối tượng có thể phải sử dụng đến số hiệu khoá, tên của

đối tượng sở hữu khoá và số seri của thẻ xác nhận được ký bằng khoá đó

Trong một hệ thống được triển khai với khả năng xác định khoá công khai của các đối

tượng, phần này nên được sử dụng Tuy nhiên, trong phần thông tin về các trường thì ta

không được phép đánh dấu phần này là critical Cấu trúc của và định danh của phần mở

rộng này được mộ tả như sau:

id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }

AuthorityKeyIdentifier ::= SEQUENCE {

KeyIdentifier ::= OCTET STRING

3.3.2 Phần mở rộng Subject Key Identifier

Trường này cho phép ta tìm ra những thẻ xác nhận chứa một khoá công khai nào đó Đối

với thẻ xác nhận của các EE, trường này cho phép ta định ra được những thẻ xác nhận

có chứa một khoá công khai được sử dụng trong một trình ứng dụng nào đó Trong

trường hợp đối tượng sử dụng thu nhận được nhiều thẻ xác nhận từ nhiều CA khác nhau

thì trường thông tin này cho phép ta nhanh chóng tìm ra được một tập các thẻ xác nhận

có chứa khoá công khai nhất định

Để hỗ trợ các trình ứng dụng trong việc định ra một thẻ xác nhận nào đó của đối tượng

sử dụng, trường này nên được sử dụng trong tất cả các thẻ xác nhận Việc định ra giá trị

Trang 37

cho trường thông tin này thường được dựa trên khoá công khai tương ứng và các hàm

phân tách một chiều Cấu trúc của trường này được mô tả như sau:

id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }

SubjectKeyIdentifier ::= KeyIdentifier

3.3.3 Phần mở rộng Key Usage

Trường này cho ta biết được mục đích của khoá được lưu trong thẻ xác nhận Những

hạn chế trong việc sử dụng có thể được thực hiện khi ta không muốn một khoá có thể

được sử dụng trong nhiều hoạt động khác nhau Ví dụ, một khoá RSA chỉ nên được sử

dụng trong việc kiểm định chữ ký đối với các thẻ xác nhận hay danh sách các thẻ xác

nhận bị huỷ bỏ

Trường này phải được sử dụng nếu khoá công khai trong thẻ xác nhận được sử dụng để

kiểm định chữ ký số được thực hiện với các thẻ xác nhận khác Khi được sử dụng,

trường này cần được đánh dấu là critical Cấu trúc của trường này với các dạng thông tin

được mô tả như sau:

id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }

KeyUsage ::= BIT STRING {

3.3.4 Phần mở rộng Private Key Usage Period

Trường mở rộng này cho phép đối tượng phát hành thẻ xác nhận định ra khoảng thời

gian hợp lệ của một khoá riêng khác với thời gian hợp lệ của thẻ xác nhận tương ứng

Trường mở rộng này được tạo ra để phục vụ cho các khoá của dịch vụ chữ ký số Cũng

giống như trường định ra khoảng thời gian hợp lệ của thẻ xác nhận, phần mở rộng này

cũng gồm hai thành phần định ra thời điểm bắt đầu và thời điểm kết thúc của khoảng thời

gian hợp lệ Nghĩa là, khoá riêng ứng với thẻ xác nhận sẽ không được phép dùng để tạo

các chữ ký số trước và sau khoảng thời gian này

Khi được sử dụng, phần mở rộng này được biểu diễn dưới dạng GeneralizedTime

(YYYYMMDDHHMMSSZ) Tuy nhiên, phần mở rộng này thường không được sử dụng

trong hệ thống PKI ở phạm vi Internet Trong trường hợp được sử dụng, các CA tạo thẻ

xác nhận không được phép đánh dấu phần này là critical Định danh và cấu trúc của phần

mở rộng này được biểu diễn như sau:

id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }

PrivateKeyUsagePeriod ::= SEQUENCE {

Trang 38

Thẻ xác nhận theo chuẩn X.509 HẠ TẦNG KHOÁ CÔNG KHAI

38

3.3.5 Phần mở rộng Certificate Policies

Phần mở rộng này chứa một hoặc một tập hợp các điều khoản của thông tin về chính

sách đối với thẻ xác nhận Trong một thẻ xác nhận của đối tượng sử dụng, các điều

khoản của thông tin chính sách được dùng để nêu rõ thẻ xác nhận đã được tạo ra trong

hoàn cảnh nào và thẻ xác nhận sẽ được sử dụng trong những mục đích gì Trong một thẻ

xác nhận của CA, những điều khoản này sẽ giới hạn các nhánh xác nhận được lưu trong

thẻ xác nhận này Trong trường hợp CA không muốn có một giới hạn nào đối với các

nhánh xác nhận thì nó có thể gán cho phần mở rộng này một chính sách đặc biệt gọi là

anyPolicy, với giá trị “2.5.29.32.0”

Mỗi trình ứng dụng đều cần phải có một danh mục các chính sách mà nó chấp nhận;

đồng thời, nó phải có khả năng đối chiếu số hiệu của các chính sách trong một thẻ xác

nhận nào đó với các số hiệu của những chính sách trong danh mục này Nếu được sử

dụng và được đánh dấu là critical thì trình ứng dụng bắt buộc phải hiểu được thông tin

của phần mở rộng này, nếu không, phải loại bỏ thẻ xác nhận tương ứng

id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }

anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificate-policies 0 }

certificatePolicies ::= SEQUENCE SIZE (1 MAX) OF PolicyInformation

PolicyInformation ::= SEQUENCE {

policyQualifiers SEQUENCE SIZE (1 MAX) OF PolicyQualifierInfo OPTIONAL}

CertPolicyId ::= OBJECT IDENTIFIER

PolicyQualifierInfo ::= SEQUENCE {

policyQualifierId PolicyQualifierId,

Số hiệu các chính sách áp dụng cho Internet

PolicyQualifierId ::= OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )

NoticeReference ::= SEQUENCE {

organization DisplayText,

noticeNumbers SEQUENCE OF INTEGER }

DisplayText ::= CHOICE {

3.3.6 Phần mở rộng Policy Mappings

Phần mở rộng này được dùng trong các thẻ xác nhận của các CA Nó được dùng để ánh

xạ thông tin về các chính sách trong trường hợp CA phát hành và CA sử dụng thuộc hai

Trang 39

domain khác nhau (Inter-Domain) Việc ánh xạ được thực hiện thông qua số hiệu của các

chính sách ở hai CA

Các đối tượng sử dụng của CA phát hành thẻ xác nhận sẽ chấp nhận một số chính sách

do CA này đề ra (issuerDomainPolicy) trong một số trình ứng dụng nhất định Việc ánh xạ

chính sách sẽ định ra danh mục các chính sách ở phía CA sử dụng thẻ xác nhận cũng

được chấp nhận tương đương với các chính sách thuộc issuerDomainPolicy

Phần mở rộng này có thể được hỗ trợ bởi các trình ứng dụng hoặc các CA Khi được sử

dụng, nó phải được đánh dấu là non-critical Số hiệu và cấu trúc của phần mở rộng này

được mô tả như sau:

id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }

PolicyMappings ::= SEQUENCE SIZE (1 MAX) OF SEQUENCE {

issuerDomainPolicy CertPolicyId,

3.3.7 Phần mở rộng Subject Alternative Name

Phần mở rộng này cho phép gắn thêm những định danh cho đối tượng sử dụng của thẻ

xác nhận Các loại định danh này được dùng trong cấc loại dịch vụ khác nhau và có định

dạng phù hợp với mỗi loại dịch vụ ấy Do những tên khác nhau của đối tượng sử dụng

được coi là có liên hệ chặt chẽ với khoá công khai của thẻ nên tất cả các tên này phải

được kiểm chứng bới CA cấp phát thẻ xác nhận

Trong trường hợp đối tượng sử dụng không được nêu ra trong trường subject của thẻ

xác nhận thì phần mở rộng này bắt buộc phải được sử dụng Và khi đó, ta phải đánh dấu

trường này là critical Sau đây, ta có phần mô tả định danh và cấu trúc của phần mở rộng

OtherName ::= SEQUENCE {

EDIPartyName ::= SEQUENCE {

Ngày đăng: 16/01/2014, 16:34

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Giáo trình môn học: Công nghệ phần mềm . 2. Giáo trình môn học: Phân tích và thiết kế hệ thống . 3. Applied Cryptography – Bruce Schneider – 1996 Sách, tạp chí
Tiêu đề: Bruce Schneider
4. Handbook of Applied Cryptography – J. Menezes, Paul C. van Oorschot, Scott A. Vanstone – 1997 Sách, tạp chí
Tiêu đề: J. Menezes, Paul C. van Oorschot, Scott A. "Vanstone
5. RFC – 2459: Internet X.509 Public Key Infrastructure Certificate and CRL Profile - R. Housley, W. Ford, W. Polk, D. Solo – 2001 Sách, tạp chí
Tiêu đề: R. "Housley, W. Ford, W. Polk, D. Solo
6. RFC – 2510: Internet X.509 Public Key Infrastructure Certificate Management Protocols - C. Adams, S. Farrell – 2001 Sách, tạp chí
Tiêu đề: - C. Adams, S. Farrell
7. RFC – 2511: Internet X.509 Certificate Request Message Format - M. Myers, C. Adams, D. Solo, D. Kemp – 2001 Sách, tạp chí
Tiêu đề: M. Myers, C. "Adams, D. Solo, D. Kemp
8. RFC – 2527: Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework - S. Chokhani, W. Ford – 2001 Sách, tạp chí
Tiêu đề: S. Chokhani, W. Ford
9. Public Key Infrastructure (PKI)Technical Specifications: Part A - Technical Concept of Operations – W. E. Burr – 1999 Khác
10. Introduction to Public Key Technology and the Federal PKI Infrastructure – NIST– 1999 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1-1 Các ứng dụng dựa trên hệ thống PKI - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 1 1 Các ứng dụng dựa trên hệ thống PKI (Trang 10)
Hình 1-2 Các đối tượng và hoạt động cơ bản trong hệ thống PKI - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 1 2 Các đối tượng và hoạt động cơ bản trong hệ thống PKI (Trang 12)
Hình 2-1 Kiến trúc PKI phân cấp - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 2 1 Kiến trúc PKI phân cấp (Trang 24)
Hình 2-2 Kiến trúc PKI mạng lưới - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 2 2 Kiến trúc PKI mạng lưới (Trang 26)
Hình 2-3 Kiến trúc PKI danh sách tin cậy - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 2 3 Kiến trúc PKI danh sách tin cậy (Trang 27)
Hình 4-1 Lưu đồ thuật toán tạo phiên kết nối - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 1 Lưu đồ thuật toán tạo phiên kết nối (Trang 47)
Hình 4-2 Mô hình tổng quát của các hàm CryptoAPI - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 2 Mô hình tổng quát của các hàm CryptoAPI (Trang 48)
Hình 4-3: Lưu đồ thuật toán khởi tạo CA - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 3: Lưu đồ thuật toán khởi tạo CA (Trang 56)
Hình 4-4: Lưu đồ thuật toán khởi tạo đối tượng sử dụng - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 4: Lưu đồ thuật toán khởi tạo đối tượng sử dụng (Trang 58)
Hình 4-6: Lưu đồ thuật toán yêu cầu và cấp thẻ xác nhận ngang hàng - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 6: Lưu đồ thuật toán yêu cầu và cấp thẻ xác nhận ngang hàng (Trang 61)
Hình 4-8: Lưu đồ thuật toán yêu cầu và trả lời thông tin hệ thống PKI - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Hình 4 8: Lưu đồ thuật toán yêu cầu và trả lời thông tin hệ thống PKI (Trang 65)
Bảng 1: Danh sách các chức năng đã triển khai - Tài liệu HẠ TẦNG KHOÁ CÔNG KHAI - Đồ án tốt nghiệp docx
Bảng 1 Danh sách các chức năng đã triển khai (Trang 71)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w