wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở...

92
BỘ THÔNG TIN VÀ TRUYỀN THÔNG THUYẾT MINH DỰ THẢO TCVN YÊU CẦU KỸ THUẬT ĐỐI VỚI CHỨC NĂNG KÝ SỐ VÀ KIỂM TRA CHỮ KÝ SỐ CHO VĂN BẢN ĐIỆN TỬ TRONG PHẦN MỀM ỨNG DỤNG MÃ SỐ: 05.07-NSCL

Transcript of wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở...

Page 1: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

THUYẾT MINH DỰ THẢO TCVN

YÊU CẦU KỸ THUẬT ĐỐI VỚI CHỨC NĂNG KÝ SỐ VÀ KIỂM TRA CHỮ KÝ SỐ CHO VĂN BẢN ĐIỆN

TỬ TRONG PHẦN MỀM ỨNG DỤNG

MÃ SỐ: 05.07-NSCL

Hà nội, 12/2017

Page 2: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

MỤC LỤC

Phần Mở Đầu....................................................................................7

Tính cần thiết....................................................................................7

Đối tượng và phạm vi nghiên cứu...................................................8

Phương pháp nghiên cứu.................................................................8

CHƯƠNG I. NGHIÊN CỨU TỔNG QUAN................................9

1.1 Khảo sát hiện trạng sử dụng dịch vụ/ phần mềm ký số, kiểm tra chữ ký số tại Việt Nam..........................................................................................9

1.2 Khảo sát về nhu cầu tiêu chuẩn hóa đảm bảo chất lượng module phần mềm ký số, kiểm tra chữ ký số, lưu trữ văn bản điện tử đã ký số tại Việt Nam 12

1.3 Nghiên cứu tổng quan tiêu chuẩn quốc tế, trong nước về ký số, kiểm tra chữ ký số, lưu trữ văn bản điện tử đã ký số......................................13

CHƯƠNG II. NGHIÊN CỨU CÁC TIÊU CHUẨN LIÊN QUAN TỚI KÝ SỐ...............................................................................17

2.1 Cơ sở hạ tầng khóa công khai.........................................................17

2.1.1 Mật mã khóa công khai..............................................................17

2.1.2 Hàm băm.....................................................................................18

2.1.3 Cơ sở hạ tầng khóa công khai....................................................18

2.2 Các định dạng thông điệp và giao tiếp...........................................20

2.2.1 Định dạng văn bản cần ký..........................................................20

2.2.2 Thiết bị lưu khóa bí mật người ký..............................................23

2.2.3 Chứng thư số...............................................................................24

2.3 Nghiên cứu tiêu chuẩn kỹ thuật cho ký số.....................................29

2.4 Nghiên cứu tiêu chuẩn kỹ thuật cho kiểm tra chữ ký số..............31

2

Page 3: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

2.4.1 Giải mã chữ ký số và kiểm tra tính toàn vẹn của văn bản điện tử32

2.4.2 Kiểm tra hiệu lực chứng thư số..................................................34

2.5 Thông tin cần lưu trữ kèm văn bản điện tử đã ký số....................37

CHƯƠNG III. XÂY DỰNG TIÊU CHUẨN KỸ THUẬT........393.1 Xây dựng yêu cầu kỹ thuật đánh giá chức năng module phần

mềm ký số 39

3.2 Xây dựng yêu cầu kỹ thuật đánh giá chức năng module phần mềm kiểm tra chữ ký số.....................................................................................42

KẾT LUẬN.....................................................................................46

Bộ tiêu chí này giới hạn để đánh giá chất lượng module ký số được quy định trong văn bản chỉ đọc pdf theo TT 22/2013/BTTTT PHỤ LỤC I: CƠ SỞ TOÁN HỌC CỦA LƯỢC ĐỒ KÝ SỐ RSA-PSS..........................................................................................................46

1 Các hàm cơ sở chuyển đổi dữ liệu..........................................47

1.1 Hàm cơ sở chuyển đổi dữ liệu số nguyên sang dạng chuỗi octet. 47

1.2 Hàm cơ sở chuyển đổi từ dạng chuỗi octet về dạng số nguyên....47

PHỤ LỤC II. HÀM BĂM SHA-256..............................................57

1 Một số khái niệm và thuật ngữ...............................................57

1.1 Biến, tham số....................................................................................57

1.2 Các ký hiệu tính toán.......................................................................57

1.3 Chuỗi các bit và các số nguyên.......................................................58

1.4 Các phép tính với các từ..................................................................58

2 Thuật toán................................................................................59

2.1 Các hàm và các hằng được sử dụng cho thuật toán......................59

2.1.1 Các hàm.......................................................................................59

2.1.2 Các hằng số.................................................................................593

Page 4: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

2.1.3 Bước tiền xử lý............................................................................59

2.1.4 Bổ sung thông điệp......................................................................60

2.1.5 Chia thông điệp thành khối sau khi đã được bổ sung...............60

2.1.6 Thiết lập các giá trị băm khởi đầu H(0).......................................60

2.2 Thuật toán tính giá trị băm.............................................................60

2.2.1 Tiền xử lý SHA-256....................................................................61

2.2.2 Tính toán giá trị băm SHA-256..................................................61

2.3 Dữ liệu kiểm tra................................................................................62

2.3.1 Thông điệp đầu vào chỉ có một khối..........................................63

2.3.2 Thông điệp đầu vào gồm nhiều khối..........................................63

2.3.3 Đầu vào là một thông điệp dài....................................................63

TÀI LIỆU THAM KHẢO..............................................................64

4

Page 5: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

DANH MỤC THUẬT NGỮ, TỪ VIẾT TẮTTừ ngữ Nội dung Tên tiếng anhPDF là một định dạng tập tin

văn bản khá phổ biển của hãng Adobe Systems

Portable Document Format

CRL Danh sách thu hồi chứng thư số.

Certificate Revocation List

ECDSAThuật toán chữ ký

số dựa trên đường cong eliptic.

Elliptic Curve Digital Signature Algorithm

OCSP Giao thức kiểm tra chứng thư số trực tuyến.

Online Certificate Status Protocol

PKI Cơ sở hạ tầng khóa công khai.

Public Key Infrastructure

RSA

Một thuật toán mật mã hóa khóa công khai lấy tên từ 03 chữ cái đầu của 03 nhà khoa học sáng tạo ra thuật toán Ron Rivest, Adi Shamir và Len Adleman.

RFC Tập các tài liệu mô tả các khuyến nghị.

Request for Comments.

5

Page 6: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

DANH MỤC BẢNG BIỂU HÌNH VẼBảng 1: Yêu cầu quá trình tạo chữ ký số................................................................31

Bảng 2: Yêu cầu thông tin cần lấy trong văn bản ký..............................................31

Bảng 3: Kiểm tra lược đồ RSA-PSS.......................................................................32

Bảng 4: Yêu cầu xác minh chữ ký số......................................................................34

Bảng 5: Yêu cầu kiểm tra hiệu lực chứng thư số....................................................37

Bảng 6: Thông tin đính kèm văn bản ký số đi.........................................................38

Bảng 7: Thông tin đính kèm văn bản ký số đến......................................................38

Bảng 8: Yêu cầu đánh giá chức năng module phần mềm ký số..............................42

Bảng 9: Yêu cầu đánh giá chức năng module phần mềm kiểm tra chữ ký số.........45

Hình 1: Văn bản hiển thị ký số................................................................................10

Hình 2: Cấu hình hệ thống trong phần mềm V-Sign...............................................11

Hình 3: Ký số tài liệu của V-Sign...........................................................................12

Hình 4: ánh xạ giữa thông điệp và giá trị băm không phải là song ánh..................18

Hình 5: Hạ tầng khóa công khai..............................................................................19

Hình 6: Mô tả quá trình tạo và kiểm tra chữ ký số..................................................20

Hình 7: Cấu trúc thông tin tý số trong PDF............................................................22

Hình 8: Thông tin đính kèm ký số...........................................................................22

Hình 9: Đối tượng trong PKCS#11.........................................................................24

Hình 10: Chứng thư số............................................................................................24

Hình 11: Lược đồ RSA-PSS....................................................................................29

Hình 12: Kiểm tra chứng thư số..............................................................................35

Hình 13: Kiểm tra trạng thái chứng thư số..............................................................36

6

Page 7: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

PHẦN MỞ ĐẦUTính cần thiết của đề tài

Trong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực chữ ký số tại nước ta đã được khẩn trương tiến hành. Cùng với các cơ quan nhà nước có liên quan khác, Bộ Thông tin và Truyền thông đã đặt nền móng để phát triển thị trường dịch vụ chứng thực chữ ký số, tạo dựng niềm tin của xã hội vào hiệu quả của chữ ký số, bước đầu đưa chữ ký số vào phục vụ các hoạt động phát triển kinh tế - xã hội trọng điểm

Hệ thống chứng thực chữ ký số đã được áp dụng trong lĩnh vực công, trong cơ quan nhà nước. Trong đó, số lượng phần mềm ký số, kiểm tra chữ ký số đã được phát triển.

Trong cơ quan nhà nước, hệ thống chứng thực chuyên dùng chính phủ (do Ban cơ yếu chính phủ vận hành) đã phát triển bộ công cụ VSign-PDF phiên bản 3.1.4 cập nhật ngày 12/4/2016. Phần mềm cho phép cơ quan, tổ chức, cá nhân thuộc hệ thống chính trị sử dụng thiết bị lưu khóa bí mật chuyên dùng chính phủ ký lên văn bản điện tử dạng pdf. Nhìn chung, các văn bản của nhiều cơ quan nhà nước đã được ký số và phát hành dưới dạng điện tử.

Các ứng dụng chữ ký số điển hình như kê khai Thuế, Hải Quan, hóa đơn điện tử, phần mềm ứng dụng cho phép người dùng ký trên máy tính phía client và gửi lên máy chủ. Máy chủ xác minh và phản hồi lại kết quả.

Các phần mềm văn phòng điện tử như E-office, V-office, phần mềm kế toán misa, … có tích hợp ký số

Các phần mềm đọc văn bản thông thường như Acrobat reader, Microsoft office, … có tích hợp ký số

Tuy nhiên trong quá trình ứng dụng chữ ký số, mỗi phần mềm được áp dụng kiểm tra chữ ký số một cách khác nhau. Điều này gây ra các rủi ro về dịch vụ chứng thực chữ ký số tại Việt Nam.

Để đảm bảo chất lượng sản phẩm module phần mềm ứng dụng ký số cho văn bản điện tử (module phần mềm ký số và module phần mềm kiểm tra chữ ký số, module phần mềm lưu trữ văn bản điện tử đã ký số) đáp ứng các tiêu chuẩn kỹ

7

Page 8: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

thuật và yêu cầu chức năng, cần nghiên cứu và ban hành TCVN về chất lượng sản phẩm module phần mềm ứng dụng ký số cho văn bản điện tử phù hợp với xu thế phát triển công nghệ, xu thế và điều kiện ứng dụng công nghệ thông tin của Việt Nam

Đối tượng và phạm vi nghiên cứuTheo TCVN 10540:2014 (ISO/IEC 25051:2006) về Kỹ thuật phần mềm -

Yêu cầu và đánh giá chất lượng sản phẩm phần mềm - Yêu cầu chất lượng và hướng dẫn kiểm tra sản phẩm phần mềm sẵn sàng phổ biến và thương mại hóa (COTS), thì chất lượng phần mềm được đánh giá ở 2 miền chính là miền Chức năng và miền Hiệu năng; Trong đó, các yêu cầu kỹ thuật miền chức năng nhằm đánh giá các chức năng của phần mềm có đúng như công bố của nhà sản xuất không? Các yêu cầu kỹ thuật miền hiệu năng nhằm chỉ ra phần mềm đó có được thuận tiện không? có được an toàn không? Tốc độ đáp ứng có nhanh không? Phục vụ được nhiều không?

Trong khuôn khổ của đề tài, để tập trung vào mục tiêu chính của đề tài là “Quản lý chất lượng các module phần mềm ký số, kiểm tra ký số và lưu trữ văn bản đã ký số và thúc đẩy việc xây dựng, sử dụng các sản phẩn phần mềm chữ ký số cho văn bản điện tử”; Nhóm thực hiện đề tài đã phân tích, tổng hợp và xin ý kiến trong các buổi hội thảo và khoanh vùng đối tượng nghiên cứu là module phần mềm ký số, kiểm tra ký số là một phần chức năng của phần mềm ký số, kiểm tra ký số.Ngoài ra, phần lưu trữ văn bản điện tử đã ký số là một phạm trù rộng lớn. Với nhu cầu chuẩn hóa ký số và kiểm tra chữ ký số, khái niệm lưu trữ văn bản điện tử trong đề tài chỉ gồm các thông tin kèm theo văn bản ký số.

Kết quả đề tài là đưa ra yêu cầu về chức năng của module/phần mềm ký số, kiểm tra chữ ký số của ứng dụng cùng các thông tin lưu trữ kèm theo văn bản ký số.

Phương pháp nghiên cứuĐề tài xem xét các tiêu chuẩn, khuyến nghị về quy trình ký, xác minh chữ kỹ

của các tổ chức tiêu chuẩn trên thế giới, giải pháp đang triển khai thực tế để đưa ra chi tiết yêu cầu về chức năng của module/phần mềm ký số, kiểm tra chữ ký số của ứng dụng cùng các thông tin lưu trữ kèm theo văn bản ký số.

8

Page 9: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

CHƯƠNG I. NGHIÊN CỨU TỔNG QUAN1.1 Khảo sát hiện trạng sử dụng dịch vụ/ phần mềm ký số,

kiểm tra chữ ký số tại Việt NamVới sự phát triển nhanh chóng và ứng dụng mạnh mẽ CNTT vào tất cả các

lĩnh vực kinh tế - xã hội, giao dịch điện tử đã trở thành nhu cầu quan trọng trong các hoạt động quản lý nhà nước và phát triển kinh tế tại nước ta.

Sau khi nhà nước chính thức công nhận các hoạt động giao dịch điện tử, Chính phủ đã ban hành các quy định về chữ ký số và dịch vụ chứng thực chữ ký số như là một giải pháp đảm bảo an toàn thông tin cho giao dịch điện tử. Đây là một loại hình dịch vụ CNTT còn mới mẻ ở Việt Nam, đòi hỏi sự quản lý cũng như đầu tư hạ tầng của nhà nước để có thể phát triển và hỗ trợ hiệu quả cho các hoạt động giao dịch điện tử.

Trong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực chữ ký số tại nước ta đã được khẩn trương tiến hành. Cùng với các cơ quan nhà nước có liên quan khác, Bộ Thông tin và Truyền thông đã đặt nền móng để phát triển thị trường dịch vụ chứng thực chữ ký số, tạo dựng niềm tin của xã hội vào hiệu quả của chữ ký số, bước đầu đưa chữ ký số vào phục vụ các hoạt động phát triển kinh tế - xã hội trọng điểm

Hệ thống chứng thực chữ ký số đã được áp dụng trong lĩnh vực công, trong cơ quan nhà nước.

Trong cơ quan nhà nước, hệ thống chứng thực chuyên dùng chính phủ (do Ban cơ yếu chính phủ vận hành) đã phát triển bộ công cụ VSign-PDF phiên bản 3.1.4 cập nhật ngày 12/4/2016. Phần mềm cho phép cơ quan, tổ chức, cá nhân thuộc hệ thống chính trị sử dụng thiết bị lưu khóa bí mật chuyên dùng chính phủ ký lên văn bản điện tử dạng pdf. Nhìn chung, các văn bản của nhiều cơ quan nhà nước đã được ký số và phát hành dưới dạng điện tử.

Hình vẽ sau minh họa văn bản điện tử được ký số đã công bố trên trang thông tin điện tử của Bộ Thông tin và Truyền thông:

9

Page 10: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 1: Văn bản hiển thị ký số

V-Sign là phần mềm dùng để để ký số và xác thực các tài liệu định dạng PDF sử dụng chứng thư số, dịch vụ chứng thực chữ ký số của hệ thống PKI chuyên dùng chính phủ.

V-Sign có các chức năng chính sau:

- Chuyển đổi định dạng văn bản từ MS Word sang định dạng PDF

- Cho phép tạo trước các mẫu chữ ký với thông tin và hình ảnh chữ ký của người ký

- Ký số tài liệu PDF hiển thị trực quan chữ ký trên tài liệu với các thông tin và hình ảnh chữ ký của người ký

- Có thể chọn vị trí, kích thước của chữ ký trên tài liệu PDF

- Có thể ký nhiều chữ ký trên một tài liệu PDF

- Xác thực tất cả các chữ ký trên tài liệu PDF

- Tích hợp các dịch vụ chứng thực chữ ký số của hệ thống PKI chuyên dùng chính phủ.

Để có thể sử dụng, người dùng download bản cài đặt trên trang chủ ca.gov.vn và lựa chọn phiên bản phần mềm phù hợp với nền tảng hệ điều hành đang sử dụng (32 bit hoặc 64 bit). Sau khi cài đặt xong, người dùng thiết lập cấu

10

Page 11: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

hình hệ thống gồm cầu hình kết nối mạng, cấu hình ký số, cấu hình kiểm tra chứng thư số và cấu hình mẫu chữ ký như hình dưới đây

Hình 2: Cấu hình hệ thống trong phần mềm V-Sign

Để ký số tài liệu PDF, người dùng lựa chọn tệp cần ký và chọn ký số. Các thuộc tính ký số bao gồm chứng thư số người ký, hình ảnh hiển thị chữ ký đã được thiết lập trong cấu hình chữ ký số.

11

Page 12: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 3: Ký số tài liệu của V-Sign

Các ứng dụng chữ ký số điển hình như kê khai Thuế, Hải Quan, hóa đơn điện tử, phần mềm ứng dụng cho phép người dùng ký trên máy tính phía client và gửi lên máy chủ. Máy chủ xác minh và phản hồi lại kết quả.

Các phần mềm văn phòng điện tử như E-office, V-office, phần mềm kế toán misa, … có tích hợp ký số. Các phần mềm đọc văn bản thông thường như Acrobat reader, Microsoft office, … có tích hợp ký số. Với hầu hết các phần mềm này, chức năng ký số là một chức năng cơ bản được tích hợp trong phần mềm.

1.2 Khảo sát về nhu cầu tiêu chuẩn hóa đảm bảo chất lượng module phần mềm ký số, kiểm tra chữ ký số, lưu trữ văn bản điện tử đã ký số tại Việt Nam

Tuy nhiên trong quá trình ứng dụng chữ ký số, mỗi phần mềm được áp dụng kiểm tra chữ ký số một cách khác nhau. Điều này gây ra các rủi ro về dịch vụ

12

Page 13: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

chứng thực chữ ký số tại Việt Nam. Nguy cơ dễ nhận ra nhất là một số phần mềm xác minh chứng thư số tương ứng với khóa bí mật để ký chưa được đầy đủ dẫn đến khả năng chứng thư số không còn hiệu lực nhưng chữ ký số vẫn được chấp nhận.

Trước yêu cầu của thực tiễn, Bộ TTTT đang xây dựng và dự kiến ban hành Thông tư quy định về việc sử dụng chữ ký số cho văn bản điện tử trong cơ quan nhà nước trong năm 2017. Nội dung chính quy định về quy trình ký số, kiểm tra chữ ký số, lưu trữ văn bản có chữ ký số, quy định về tiêu chuẩn kỹ thuật và chức năng của module phần mềm ký số, module phần mềm kiểm tra chữ ký số, module phần mềm lưu trữ văn bản điện tử đã ký số; các yêu cầu đối với CA; các yêu cầu đối với các cơ quan, đơn vị áp dụng.

Để đảm bảo chất lượng sản phẩm module phần mềm ứng dụng ký số cho văn bản điện tử (module phần mềm ký số và module phần mềm kiểm tra chữ ký số, module phần mềm lưu trữ văn bản điện tử đã ký số) đáp ứng các tiêu chuẩn kỹ thuật và yêu cầu chức năng, cần nghiên cứu và ban hành TCVN về chất lượng sản phẩm module phần mềm ứng dụng ký số cho văn bản điện tử phù hợp với xu thế phát triển công nghệ, xu thế và điều kiện ứng dụng công nghệ thông tin của Việt Nam

1.3 Nghiên cứu tổng quan tiêu chuẩn quốc tế, trong nước về ký số, kiểm tra chữ ký số, lưu trữ văn bản điện tử đã ký số

Cùng với sự phát triển của Internet, dịch vụ ứng dụng chữ ký số cũng ngày càng được sử dụng rộng rãi. Chính vì vậy, hiện nay trên thế giới đã có hơn 50 quốc gia ban hành Luật về chữ ký số. Ngoài ra còn có rất nhiều các tiêu chuẩn kỹ thuật liên quan đến chữ ký số, hạ tầng khóa công khai PKI,… của các tổ chức quốc tế như NIST, NARA, ETSI,…. Trong đó có:

- PKCS (Tiêu chuẩn mật mã khóa công khai Public-Key Cryptography Standard) là một tập hợp các tiêu chuẩn để hoàn thiện hệ mật mã khóa công khai, được phát triển vào năm 1991. Nó được soạn bởi cơ quan bảo mật dữ liệu RSA, cùng hợp tác với liên hiệp các công ty kỹ thuật máy tính bao gồm Apple, Microsoft, DEC Lotus, Sun, và MIT. PKCS đã được trích dẫn bởi OIW (OSI Implementor’s Workshop) như là một phương pháp để hoàn thiện các tiêu chuẩn OSI. Nó tương thích với PEM (Privacy Enhanced Mail) nhưng mở rộng ngoài PEM. Chẳng hạn nơi nào PEM chỉ có thể xử lý data ASCII thì PKCS có thể xử lý

13

Page 14: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

data binary tốt tương đương. Ngoài ra PKCS cũng tương thích với tiêu chuẩn X.509 của CCITT.

Các tiêu chuẩn PKCS bao gồm: mã hóa RSA, đồng ý khóa Diffie – Hellman, mã hóa dựa trên password, cấu trúc chứng thực mở rộng. PKCS bao gồm cả việc đặc tả giải thuật lẫn các tiêu chí chuẩn hoàn thiện độc lập giải thuật. Các giải thuật đặc tả đã hỗ trợ bao gồm: RSA, DES, và sự trao đổi khóa Diffie-Hellman. Nó cũng xác định cấu trúc cho chữ ký số, bì thư số (cho việc mã hóa) và sự chứng thực độc lập với giải thuật. Điều này cho phép một người nào đó hoàn thiện bất kỳ giải thuật mật mã sao cho phù hợp với cấu trúc tiêu chuẩn. Hiện nay có các tiêu chuẩn PKCS sau:

- PKCS#1 RSA Encryption Standard – Mã và ký sử dụng hệ mã công khai RSA.

- PKCS#3 Diffie-Hellman Key Agreement Standard - Chuẩn trao đổi khoá Diffie-Hellman. PKCS#3 mô tả phương pháp thực hiện trao đổi khoá Diffie-Hellman.

- PKCS#5 Password-based Encrytion Standard - Chuẩn mã hoá dựa trên password. PKCS#5 mô tả phương pháp mã xâu bát phân sử dụng khoá bí mật được tính từ password để sinh ra xâu bát phân được mã hoá. PKCS # 5 có thể được sử dụng để mã hoá khoá riêng trong việc truyền khoá bí mật.

- PKCS#6 Extended Certificate Syntax Standard - Chuẩn cú pháp chứng thư số mở rộng. PKCS # 6 định nghĩa cú pháp chứng thư số X.509 mở rộng.

- PKCS#7 Crytographic Message Syntax Standard - Chuẩn cú pháp thông điệp mật mã. PKCS#7 xác định cú pháp tổng thể dữ liệu được mã hoá ví dụ như chữ ký số. PKCS#7 cung cấp một số lựa chọn định dạng: message không mã hoá hoặc ký số, message được mã hoá, message được ký số và message có cả ký số và mã hoá.

- PKCS#8 Private Key Information Syntax Standard - Chuẩn cú pháp thông tin riêng. PKCS#8 định nghĩa cú pháp thông tin khoá riêng và cú pháp khoá riêng được mã hoá.

- PKCS#9 Selected Attribute Types - Những loại thuộc tính được lựa chọn. PKCS#9 định nghĩa những loại thuộc tính được lựa chọn sử dụng

14

Page 15: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

trong chứng thư số mở rộng PKCS#6, thông điệp ký số PKCS#7, thông tin khoá riêng PKCS#8 và yêu cầu ký chứng chỉ PKCS#10. Những thuộc tính chứng chỉ được chỉ rõ ở đây gồm có địa chỉ thư, loại nội dung, bản tóm tắt thông điệp, thời gian ký, password yêu cầu và những thuộc tính chứng thư số mở rộng.

- PKCS#10 Certification Request Syntax Standard - Chuẩn cú pháp yêu cầu chứng chỉ. PKCS#10 định nghĩa cú pháp yêu cầu chứng chỉ. Yêu cầu chứng thư số gồm tên phân biệt, khoá công và tập các thuộc tính tuỳ chọn, chữ ký của thực thể yêu cầu chứng thư số.

- PKCS#11 Cryptographic Token Interface Standard - Chuẩn giao diện thẻ bài mật mã. PKCS#11 xác định giao diện lập trình ứng dụng (Application programming interface - API) cho thiết bị người sử dụng chứa thông tin mã hoá (cũng như khoá mã hoá và chứng thư số) và thực hiện chức năng mã hoá. Smart Card là thiết bị đặc trưng thực hiện Cryptoki.

- PKCS#12 Personal Information Exchange Syntax Standard - Chuẩn cú pháp trao đổi thông tin cá nhân. PKCS#12 định nghĩa định dạng thông tin nhận diện cá nhân bao gồm khoá riêng, chứng thư số, bí mật đặc tính khác nhau và mở rộng. PKCS#12 làm cho việc truyền chứng chỉ và khoá bí mật gắn kèm được thuận tiện, giúp người sử dụng có thể chuyển thông tin nhận diện cá nhân từ thiết bị này sang thiết khác.

- PKCS#13 Elliptic Curve Crytography Standard - Chuẩn mật mã đường cong elliptic. PKCS#13 bao gồm việc tạo tham số đường cong elliptic và kiểm tra hiệu lực, tạo khoá và công nhận giá trị, chữ ký số và mã hoá khoá công khai cũng như thoả thuận khoá.PKCS#14 Pseudo-Random Number Generation Standard - Chuẩn tạo số giả ngẫu nhiên. Nhiều hàm mật mã cơ bản được sử dụng trong PKI như tạo khoá và thoả thuận khoá bí mật Diffie – Hellman sử dụng dữ liệu ngẫu nhiên. Tuy nhiên nếu dữ liệu ngẫu nhiên lại không ngẫu nhiên mà được chọn từ tập giá trị có thể tiên đoán được thì hàm mật mã không bảo mật được đầy đủ. Do đó tạo số giả ngẫu nhiên an toàn là điều quan trọng đối với bảo mật PKI.

- RFC ( Requests for Comments) là tập tài liệu về kỹ thuật và tổ chức về Internet được soạn thảo bởi RFCs phối hợp với nhóm IETF. Cụ thể có các tài liệu về hạ tầng khóa công khai được đề cập trong RFC2587, RFC2560;

15

Page 16: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

- X.509 là chuẩn định nghĩa về chứng thực khóa công khai, được ban hành bởi ITU-T;

- ETSI TS 102 042: là chuẩn về chữ ký điện tử và cơ sở hạ tầng (ESI); yêu cầu chính sách cho các cơ quan chứng nhận cấp chứng chỉ khóa công khai. Tài liệu này được ban hành bởi ETSI;

- ISO 21188:2006: Public key infrastructure for financial services — Practices and policy framework là tiêu chuẩn về hạ tầng khóa công khai cho các dịch vụ tài chính;

- PCI DSS (Payment Card Industry Data Security Standard): là tiêu chuẩn an ninh thông tin dành cho lưu trữ, truyền tải và xử lý thẻ thanh toán, được phát hành bởi 5 tổ chức thanh toán quốc tế như Visa, MasterCard, American Express, Discover và JCB

Theo các tiêu chuẩn về ký số và kiểm tra chữ ký số, báo cáo dựa trên các tiêu chuẩn – khuyến nghị sau để xây dựng tiêu chuẩn Việt Nam:

- PKCS#7: Định dạng ký số

- PKCS#1: RSA Cryptography Specifications

- PKCS#11: Giao tiếp thẻ mật mã

- RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

- RFC 3125: Electronic Signature Policies

- RFC 3379: Delegated Path Validation and Delegated Path Discovery Protocol Requirements

16

Page 17: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

CHƯƠNG II. NGHIÊN CỨU CÁC TIÊU CHUẨN LIÊN QUAN TỚI KÝ SỐ

2.1 Cơ sở hạ tầng khóa công khai2.1.1 Mật mã khóa công khai

Năm 1976, Whitfield Diffie và Martin Hellman đã đề xuất khái niệm mật mã hóa khóa bất đối xứng, và đưa ra phương pháp trao đổi khóa công khai. Trước khi khái niệm mật mã học bất đối xứng ra đời, để đảm bảo tính bí mật khi trao đổi thông tin, các thuật toán mã hóa thông tin được xây dựng trên mật mã học đối xứng. Trong loại mật mã này, giữa các bên trao đổi thông tin cần phải cần gặp gỡ hoặc trao đổi qua một kênh bảo mật một khóa bí mật. Điều này đã hạn chế ứng dụng của mật mã học vào việc đảm bảo tính riêng tư, bí mật trong cuộc sống, và sự thật thì cho tới những năm đó, mật mã học chủ yếu chỉ được ứng dụng trong lĩnh vực quân sự, an ninh quốc phòng.

Mật mã hóa khóa công khai (bất đối xứng) cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật). Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.

Quan hệ giữa khóa công khai và khóa bí mật có tính chất một chiều, có nghĩa là từ việc sở hữu khóa bí mật ta dễ dàng tìm ra được khóa công khai, tuy nhiên cho dù biết được khóa công khai thì việc tìm ra khóa bí mật ra rất khó (khó theo nghĩa khối lượng và thời gian tính toán được yêu cầu là rất lớn, lên tới hàng trăm năm). Cơ sở toán học của tính chất một chiều này là nhờ vào các hàm toán học một chiều (one-way function). Một ví dụ về hàm dạng này là bài toán phân tích thừa số nguyên tố : giả sử ta có một vài số nguyên tố lớn, từ các số này ta tìm tích của chúng thì đơn giản ; ngược lại từ tích số, việc phân tích ra các thừa số nguyên tố này là khó. Nếu các số này là lớn, cỡ 1024 hoặc 2024 bít thì việc phân tích thừa số nguyên tố này có thể đòi hỏi máy tính năng lực lớn nhất bây giờ chạy mất vài chục

17

Page 18: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

năm. Thời gian này là quá lớn đối với nhu cầu cần giữa bí mật của một khóa bí mật trong vài năm.

2.1.2 Hàm bămHàm băm H là hàm tính được “hiệu quả”:

H:{0,1}* -> {0,1}d

Nó ánh xạ một xâu độ dài bất kỳ thành một xâu có độ dài cố định gọi là mã băm.

Để an toàn hàm băm H nên thỏa mãn các yêu cầu:

1) Tính một chiều: với một mã băm h cho trước, không thể tìm lại được x sao cho:

h = H(x)

2) Tính chống trùng yếu: cho trước một x, không thể tìm y khác x sao cho:

H(x) = H(y)

3) Tính chống trùng mạnh: không thể tìm ra cặp x, y bất kỳ, x khác y sao cho:

H(x) = H(y)

hay nói cách khác nếu H(x) = H(y) thì có thể chắc chắn rằng x = y

Hình 4: ánh xạ giữa thông điệp và giá trị băm không phải là song ánh

Kích thước của input x là bất kỳ còn kích thước của h là nhỏ, ví dụ giả sử kích thước của x là 512 bit còn kích thước của h là 128 bit. Như vậy trung bình có khoảng 2384 giá trị x mà có cùng giá trị h. việc trùng là không thể loại bỏ. Tính chống trùng mạnh của hàm băm là yêu cầu rằng việc tìm ra hai input x như vậy thì phải là rất khó về mặt thời gian tính toán.

2.1.3 Cơ sở hạ tầng khóa công khaiCơ sở hạ tầng khóa công khai PKI (Public Key Infrastructure hay PKI) là

nền tảng của mật mã học khóa công khai. Hệ thống, được xây dựng bởi một bên

18

Page 19: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

thứ ba được ủy quyền gọi là CA (Certificate Authority), cung cấp các dịch vụ tin cậy liên quan đến việc cấp phát/thu hồi chứng thư số (có thể coi như một chứng minh thư số) cho một người dùng; xác thực một chứng thư số có tương ứng với người dùng hay không , …

Hình 5: Hạ tầng khóa công khai

Hạ tầng khóa công khai PKI là cơ sở cho việc triển khai các ứng dụng của mật mã học khóa công khai. Việc tạo và phân phát cặp khóa công khai/bí mật được thực hiện bởi một bên thứ 3 ủy quyền, gọi là nhà cung cấp chứng thư số (CA). PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thực khóa công khai để mã hóa và giải mã thông tin trong quá trình trao đổi.

Trong thực tế, xác thực dựa trên chứng thư số nên được sử dụng đồng thời với một hình thức xác thực khác trong một cơ chế xác thực mạnh đa nhân tố. Lý do của điều này là bởi vì chứng thư số phải được lưu trên máy tính hoặc thiết bị không dây nào đó của người dùng. Chúng ta không thể đảm bảo được rằng máy tính hoặc thiết bị không dây này không bị sử dụng bởi người khác.

PKI cung cấp cho mỗi người dùng trong hệ thống một chứng thư số, có thể coi như CMT số của người dùng đó. Chứng thư số này có một ID duy nhất và phải chứa các thông tin cá nhân của người dùng và đặc biệt là chứa một khóa công khai. Khóa công khai này, được công bố một cách công khai cho tất cả mọi người, sẽ được sử dụng trong các dịch vụ xác thực, mã hóa, chữ ký số, … sau này. Tương

19

Page 20: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

ứng với khóa công khai là một khóa bí mật, chỉ được giữ riêng cho cá nhân người dùng đó biết. Hai chìa khóa này có liên quan mật thiết đến nhau, sao cho khi người sử dụng khóa bí mật để tạo ra một chữ ký số cho một tài liệu số thì bất cứ người dùng được cho phép nào khác có thể sử dụng khóa công khai đó để xác thực tính đúng đắn của chữ ký số đó.

Mô hình tạo và kiểm tra chữ ký số

Hình 6: Mô tả quá trình tạo và kiểm tra chữ ký số

2.2 Các định dạng thông điệp và giao tiếp2.2.1 Định dạng văn bản cần ký

Thông tư Quy định sử dụng chữ ký số cho văn bản điện tử trong cơ quan nhà nước quy định định bắt buộc dạng văn cản cần ký là PDF phiên bản 1.4 trở lên. Thông tư cũng khuyến khích phần mềm ký số hỗ trợ các định dạng khác như xml, doc, …

PDF (viết tắt từ tên tiếng Anh Portable Document Format - Định dạng Tài liệu Di động) là một định dạng tập tin văn bản khá phổ biển của hãng Adobe Systems. Tương tự như định dạng Word (.doc), PDF hỗ trợ văn bản thô (text) cùng với phông chữ, hình ảnh đồ họa, âm thanh và nhiều hiệu ứng khác. Tuy nhiên, việc

20

Page 21: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

hiển thị văn bản PDF không phụ thuộc vào môi trường làm việc của người sử dụng (cấu hình máy, phần mềm và hệ điều hành). Không như văn bản Word, một văn bản PDF, trong hầu hết các trường hợp, sẽ được hiển thị giống nhau trên những môi trường làm việc khác nhau. Chính vì ưu điểm này, định dạng PDF đã trở nên phổ biển cho việc phát hành sách, báo hay các tài liệu khác qua mạng Internet.

Để đọc được tập tin PDF trên máy vi tính, người dùng cần có một phần mềm hỗ trợ định dạng này. Phần mềm phổ biến hiện nay là Adobe Reader hay Foxit Reader. PDF 1.4 là định dạng phổ biến ra đời từ năm 2001, hỗ trợ đầy đủ liên quan đến chữ ký số: hàm băm sha-2, thuật toán RSA 2048 bit theo chuẩn pkcs#1.

Chữ ký số trên PDF được mô tả chi tiết trong ISO 32000. ISO 32000 quy định rõ định định dạng PDF cho phép người dùng tin tưởng vào văn bản điện tử bằng cách hỗ trợ kiểm tra chữ ký số đảm bảo văn bản đã ký là toàn vẹn và của người ký. Định dạng cho phép nhiều chữ ký, hỗ trợ các thuật toán ký số thông dụng, cho phép hiển thị hình ảnh chữ ký tay thông thường. Các phiên bản PDF cũng như việc hỗ trợ chữ ký số trên PDF được cập nhật theo từng phiên bản. Phiên bản sau tương thích với phiên bản trước.

Cấu trúc chứa thông tin chữ ký số được trong định dạng PDF gọi là Signature Dictionary. Signature Dictionary có thể tham chiếu hoặc được tham chiếu đến Dictionary khác như hình vẽ dưới đây

21

Page 22: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 7: Cấu trúc thông tin tý số trong PDF

Khi văn bản PDF được ký, chứng thư số người ký được găn kèm văn bản như hình vẽ dưới đây

Hình 8: Thông tin đính kèm ký số

22

Page 23: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Thông tin chữ ký cũng có thể có thêm thông tin như nhãn thời gian, ảnh chữ ký tay, và các thông tin liên quan đến người dùng, ứng dụng hay hệ thống.

2.2.2 Thiết bị lưu khóa bí mật người kýThông thường, để đảm bảo tính an toàn, khóa bí mật được lưu trữ trong thiết

bị phần cứng. Tiêu chuẩn FIPS 140-2 dành cho các module mật mã. FIPS 140-2 là tiêu chuẩn thông dụng dành riêng cho thiết bị lưu trữ khóa do Viện Tiêu chuẩn và Công nghệ Hoa Kỳ (NIST) đưa ra. FIPS 140-2 đưa ra 4 cấp độ an toàn mật mã. Cấp độ 1 quy định cơ bản về các module mã hóa, cấp độ 2 quy định về bảo mật vậy lý: có sự phát hiện khi đã có truy cập vậy lý bất hợp pháp, cấp độ 3 có khả năng chống và tự hủy khi có truy cập vật lý; cấp độ 4 có khả năng bảo vệ và ghi lại toàn bộ quá trình tấn công vật lý.

Để giao tiếp với thẻ mật mã phần cứng này, tiêu chuẩn PKCS#11 được đưa ra. PKCS # 11 là một tiêu chuẩn giao diện mã thông báo mật mã, xác định một API gọi là Cryptoki. Với API này, các ứng dụng có thể giải quyết các thiết bị mật mã như các mã thông báo và có thể thực hiện các chức năng mật mã như được thực hiện bởi các thẻ này. Tiêu chuẩn này được phát triển bởi Phòng thí nghiệm RSA với sự hợp tác của các đại diện từ các ngành công nghiệp, khoa học và chính phủ, bây giờ là một tiêu chuẩn mở được quản lý bởi Ủy ban Kỹ thuật OASIS PKCS 11.

Tiêu chuẩn PKCS # 11 định nghĩa một API độc lập với nền tảng cho các mã thông báo mật mã, chẳng hạn như các mô-đun bảo mật phần cứng (HSM) và thẻ thông minh và đặt tên API là "Cryptoki" (từ "giao diện mã hoá mật mã" và được phát âm là "crypto-key" - nhưng "PKCS # 11" thường được sử dụng để chỉ API cũng như tiêu chuẩn xác định nó).

API xác định các loại đối tượng mật mã thông dụng nhất (các khoá RSA, chứng chỉ X.509, DES / Triple DES keys, ...) và tất cả các chức năng cần thiết để sử dụng, tạo / tạo, sửa đổi và xóa các đối tượng đó.

Cryptoki nhận ra một số lớp đối tượng, như được định nghĩa trong kiểu dữ liệu CK_OBJECT_CLASS. Một đối tượng bao gồm một tập các thuộc tính, mỗi giá trị có một giá trị nhất định. Mỗi thuộc tính mà một đối tượng sở hữu có chính xác một giá trị. Hình dưới minh họa cấp bậc cao cấp của các đối tượng Cryptoki và một số thuộc tính mà chúng hỗ trợ:

23

Page 24: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 9: Đối tượng trong PKCS#11

2.2.3 Chứng thư số

Hình 10: Chứng thư số

Bao gồm các trường theo chuẩn X509

24

Page 25: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

- Version: Phiên bản chứng thư số. Với phiên bản 1 đơn giản gồm 7 trường cơ bản. Phiên bản 2 bổ sung thêm 2 trường, phiên bản 3 bổ sung thêm các trường mở rộng.

- Serial Number: Mã số của chứng thư số. Mỗi chứng thư số được CA cấp cho một mã số riêng biệt (để phân biệt với các chứng thư số khác trong cùng một CA). Tất nhiên là hoàn toàn có thể có trường hợp hai mã số chứng thư của hai CA khác nhau được trùng nhau.

- Signature Algorithm Identifier: Thuật toán được CA sử dụng để ký gồm thuật toán băm và thuật toán mã hóa để tạo chữ ký số của CA trên chứng thư.

- Issuer Name: Tên tổ chức CA. Thông thường tổ chức CA được chia làm hai nhánh: tổ chức CA thương mại và tổ chức CA chính phủ. Tổ chức CA thương mại phải kể đến các công ty quốc tế lớn như Verisign, Global Sign, Entrust, …với mục đích cung cấp dịch vụ chứng thực chữ ký số mang tính thương mại. Tổ chức CA chính phủ thường cung cấp dịch vụ phục vụ hành chính công, chính phủ điện tử. Mỗi một nước có các mô hình tổ chức khác nhau. Ngoài ra còn rất nhiều các CA nội bộ như các CA trong các trường đại học, viện nghiên cứu, các CA nội bộ của phần mềm, …

- Validity Period: Thời gian hiệu lực của chứng thư. Mỗi một chứng thư có một thời gian hiệu lực nhất định. Tùy theo nhu cầu sử dụng cũng như đảm bảo độ an toàn, chứng thư số của người dùng cuối thường có hiệu lực một vài năm, chứng thư số của CA thường kéo dài chục năm.

- Subject Name: Tên thực thể sở hữu chứng thư số. Thực thể sở hữu chứng thư số có thể là cá nhân, tổ chức, các phần cứng, phần mềm, … gọi tắt là người dùng cuối.

- Public Key Information: Khóa công khai trên chứng thư số.

- Subject Unique ID: Định danh về chủ thể sở hữu

- Issuer Unique ID: Định danh về CA

- Extensions: Các trường mở rộng giúp cho việc xác thực, định danh thuận tiện hơn. Như các trường mô tả đường dẫn tin cậy về danh sách thu hồi chứng thư, kiểm tra trạng thái chứng thư, …

25

Page 26: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Mỗi phần mở rộng trong chứng thư số X509 phiên bản 3 bao gồm các thành phần sau:

Extension Identified – định danh mở rộng: Một định danh đối tượng (OID) sẽ chỉ định định dạng và định nghĩa phần mở rộng.

Criticality Flag – Cờ quyết định. Một chỉ báo cho biết thông tin nào trong phần mở rộng là quan trọng. Nếu một ứng dụng không thể nhận dạng được phần mở rộng quyết định, chứng thư số không thể chấp nhận cho sử dụng. Nếu cờ quyết định không được thiết lập, một ứng dụng có thể sử dụng chứng thư số khi ứng dụng không nhận dạng phần mở rộng.

Extension value – Giá trị mở rộng. Là giá trị được gán cho phần mở rộng, giá trị này phụ thuộc vào từng phần mở rộng cụ thể.

Trong chứng thư số X509 v3 có thể có các phần mở rộng sau:

Autherity Key Identified – Định danh khóa xác thực. Phần mở rộng này chứa một trong hai giá trị sau:

Chủ thể của CA và số serial của chứng thư số CA đã phát hành CA đang dùng.

Một hàm băm khóa của chứng thư số CA đã phát hành chứng thư số đang dùng.

Subject Key Identified – Định danh khóa chủ thể. Phần mở rộng này chứa một hàm băm khóa công khai của chứng thư số đang dùng.

Key Usage – Cách sử dụng khóa. Một CA, người dùng, máy tính, thiết bị mạng, dịch vụ có thể có nhiều hơn một chứng thư số. Phần mở rộng này có thể gồm:

Digital Signature – Chữ ký số: Khóa công khai có thể được sử dụng để kiểm tra chữ ký và xác thực client và nguồn gốc dữ liệu.

Non-Repudiation – chống chối bỏ: Khóa công khai có thể được sử dụng để kiểm tra tính hợp lệ định danh của người ký, ngăn chặn việc phủ nhận mình đã gửi và ký lên gói tin đó.

Key Encipherment – mã hóa khóa. Khóa công khai có thể được sử dụng để mã hóa và trao đổi khóa đối xứng. Giá trị Key Usage được sử dụng khi khóa RSA được sử dụng cho việc quản lý khóa.

26

Page 27: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Data Encipherment – mã hóa dữ liệu. Khóa công khai có thể được sử dụng để mã hóa dữ liệu, việc dùng khóa công khai để mã hóa dữ liệu thường được ưa thích hơn dùng khóa đối xứng để mã hóa.

Key Agreement – thỏa thuận khóa. Khóa công khai có thể được sử dụng cho việc trao đổi khóa đối xứng. Phần mở rộng này được sử dụng khi khóa Diffie-Hellman được sử dụng cho việc quản lý khóa.

Key Cert Sign: Khóa công khai có thể được sử dụng cho việc kiểm tra chữ ký của chứng thư số.

CRL Sign: Khóa công khai được sử dụng cho việc kiểm tra chữ ký của CRL.

Encipher Only – chỉ mã hóa. Giá trị này được kết hợp với trường thỏa thuận khóa khi khóa đối xứng có thể chỉ được sử dụng cho việc mã hóa dữ liệu.

Decipher Only – chỉ giải mã. Giá trị này được sử dụng với trường thỏa thuận khóa khi khóa đối xứng có thể chỉ được sử dụng cho việc giải mã dữ liệu.

Private Key Usage Period – Chu kỳ sử dụng khóa riêng. Phần mở rộng này cho phép một thời hạn sử dụng khác nhau được chỉ định cho khóa riêng của một cặp khóa. Khóa riêng thường có thời hạn ngắn, khoảng một năm, trong khi khóa công khai thường là năm năm.

Certificate Policies – chính sách chứng thư số. Phần mở rộng này mô tả một chính sách và thủ tục được sử dụng cho chủ thể của chứng thư số trước khi phát hành chứng thư số.

Policy Mappings – Đối chiếu chính sách. Phần mở rộng này cho phép thông tin chính sách được trao đổi giữa hai tổ chức.

Subject Alternative Name – Tên thay thế của chủ thể. Phần mở rộng này cung cấp một danh sách các tên thay thế của chủ thể. Trog X500, tên của chủ thể phải đặt theo dạng tên, còn trong X509 v3, tên chủ thể có thể là tên, địa chỉ e-mail, địa chỉ IP hoặc tên DNS.

Issuer Alternative Name – Tên thay thế của người phát hành. Phần mở rộng này cung cấp một danh sách các tên thay thế của bên phát hành. Phần mở rộng này có thể chứa một địa chỉ e-mail gắn với một CA.

Subject Dir Attribute: Phần mở rộng này có thể chứa một thuộc tính từ X500 của tổ chức hoặc thư mục LDAP - Lightweight Directory Access Protocol (Giao thức truy nhập thư mục ít quan trọng).

27

Page 28: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Basic Constraints – Ràng buộc cơ bản. Phần mở rộng này cho phép một chứng thư số xác định rõ khi nào chứng thư số được phát hành tới CA, người dùng, máy tính, thiết bị mạng, …

Name Constraints – ràng buộc tên. Phần mở rộng này cho phép một tổ chức xác định tên nào là được phép và không được phép trong một chứng thư số CA phát hành.

Policy Constraints – ràng buộc chính sách. Phần mở rộng này có thể được bao gồm trong một chứng thư số CA. Phần mở rộng này ngăn cấm việc ánh xạ chính sách giữa các CA hoặc yêu cầu mỗi chứng thư số có một chính sách chứng thư số rõ ràng.

Enhanced Key Usage – cách sử dụng khóa mở rộng. Phần mở rộng này xác định khóa công khai của chứng thư số được sử dụng như thế nào. Phần mở rộng này cung cấp thêm thông tin dựa trên mục đích chung được chỉ định trong trường Key Usage.

CRL Distribution Point – điểm phân phối CRL. Phần mở rộng này chứa một hoặc nhiều URL, nơi mà CRL của CA được công bố. URL có thể sử dụng HTTP, FTP hoặc LDAP.

Authority Info Access – Cấp quyền truy cập thông tin. Phần mở rộng này chứa một hoặc nhiều hơn một URL, nơi mà chứng thư số của CA được công bố. Một ứng dụng sử dụng URL khi xây dựng một chứng thư số và truy xuất chứng thư số CA khi nó không có trong bộ nhớ cache của ứng dụng.

Inhibit Any Policy – ngăn cấm mọi chính sách. Phần mở rộng này chứa một chứng thư số của CA để ngăn cấm việc sử dụng mọi chính sách được phát hành cho CA cấp dưới.

Freshest CRL – làm mới CRL. Phần mở rộng này chứa một hoặc nhiều URL, nơi mà việc phát hành CRL delta của CA được công bố. CRL delta chỉ chứa chứng thư số bị hủy bỏ từ CRL gốc được công bố. Một ứng dụng sẽ sử dụng URL để lấy lại phiên bản update của CRL delta. Các URL có thể sử dụng HTTP, LDAP hoặc giao thức FTP.

Subject Information Access – truy cập thông tin chủ thể. Phần mở rộng này chứa thông tin làm thế nào để truy cập thông tin chi tiết về chủ thể của chứng thư số. Nếu chứng thư số là chứng thư số CA thì thông tin này có thể là dịch vụ chứng thư số hoặc chính sách chứng thư số. Nếu chứng thư số này là chứng thư số cho

28

Page 29: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

thực thể cuối thì phần mở rộng này có thể là dịch vụ được cung cấp bởi chủ thể chứng thư số và làm thế nào để truy cập đến thông tin này.2.3 Nghiên cứu tiêu chuẩn kỹ thuật cho ký số

Quá trình tạo chữ ký số là Quá trình sử dụng thuật toán chữ ký số và khóa bí mật để tạo ra chữ ký số cho thông điệp.

Thuật toán ký số phổ biến gồm RSA và ECDSA. Các thuật toán này được tiêu chuẩn hóa bởi tổ chức như NIST (Viện tiêu chuẩn công nghệ quốc gia – Hoa Kỳ), RSA (công ty RSA security). NIST đưa ra tiêu chuẩn về thuật toán chữ ký sô trong FIPS 186. Các thay đổi và cập nhật tiếp theo được đưa ra FIPS 186-1, FIPS 186-2, FIPS 186-3, FIPS 186-4. Chi tiết hơn FIPS, công ty RSA đưa ra lược đồ gồm các tham số cụ thể giúp nhà phát triển dễ dàng áp dụng trong thực tế. PKCS#1 quy định chi tiết về lược đồ liên quan đến thuật toán RSA, PKCS #13 quy định chi tiết lược đồ liên quan đến thuật toán ECDSA. Tuy nhiên PKCS#13 đã được dừng phát triển vào 1998. Phổ biến nhất là thuật toán PKCS#1. PKCS#1 gồm các phiên bản 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, 2.1, 2.2. Hiện nay các thiết bị mật mã thường áp dụng phiên bản 2.1, và hỗ trợ 2.2 và 1.5.

PKCS#1 ver 2.1 đưa ra các lược đồ ký và kiểm tra chữ ký. TCVN 7635:2007 sử dụng nguyên vẹn lược đồ trong PKCS#1 ver 2.1, áp dụng hàm băm SHA256, sử dụng lược đồ RSA-PSS. Lược đồ RSA-PSS được mô tả trong hình vẽ dưới đây

29

Page 30: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 11: Lược đồ RSA-PSS

Tạo chữ ký với lược đồ RSA-PSS theo TCVN 7635:2007:

RSASSA-PSS-SIGN(K, M)

Đầu vào: K Khóa bí mật RSA của người kýM Thông điệp sẽ được ký, là một chuỗi octet

Đầu ra: S Chữ ký, chuỗi octet có độ dài k, với k là độ dài của môđun RSA theo octet

Thông báo lỗi: “văn bản quá dài”, “lỗi định dạng”Các bước:

1. mã hóa EMSA-PSS: Áp dụng thao tác EMSA-PSS-ENCODE vào văn bản M để tạo ra thông điệp được định dạng EM có độ dài (modBits-1)/8 octet sao cho độ dài bit của số nguyên OS2IP (EM) nhiều nhất là modBits-1, với modBits là độ dài theo bit của số n (mođun RSA):

EM = EMSA-PSS-ENCODE (M, modBits-1)30

Page 31: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Chú ý rằng độ dài octet của EM sẽ bằng k - 1 nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia hết cho 8. Nếu hàm EMSA-PSS-ENCODE cho ra thông báo lỗi “văn bản quá dài” thì RSASSA-PSS-SIGN cũng cho ra thông báo lỗi “văn bản quá dài” và dừng lại. Nếu EMSA-PSS-ENCODE cho ra thông báo “lỗi định dạng” thì RSASSA-PSS-SIGN cũng cho ra thông báo “lỗi định dạng” và dừng lại.

2. Chữ ký RSA:

a. chuyển thông điệp đã được định dạng (chuỗi octet) EM thành biểu diễn thông điệp ở dạng số nguyên m;

m = OS2IP (EM)

b. áp dụng phép toán cơ sở RSASP với K là khóa bí mật RSA và biểu diễn thông điệp m để tạo ra biểu diễn chữ ký là số nguyên s:

s = RSASP(K, m);

c. chuyển chữ ký s dạng số nguyên thành chữ ký S dạng chuỗi octet có độ dài k:

S = I2OSP (s, k)

3. xuất ra chữ ký S.

Các phép toán và thuật toán liên quan trong TCVN 7635:2007 (Chi tiết phép toán trong phụ lục kèm theo)

Như vậy các yêu cầu quá trình tạo chữ ký số:

Độ dài khóa RSA: 1024, 2048, 4096 bitThuật toán băm: SHA 256Thuật toán ký: RSA Lược đồ ký: RSA – PSSPhiên bản tiêu chuẩn PKCS#1 ver 2.1ID thuật toán

Bảng 1: Yêu cầu quá trình tạo chữ ký số

2.4 Nghiên cứu tiêu chuẩn kỹ thuật cho kiểm tra chữ ký sốKiểm tra tại thời điểm ký hoặc kiểm tra với đầy đủ thông tin đã được lưu trữ.

Module tách thông tin trên văn bản điện tử ký số: văn bản, chứng thư số, chữ ký và các thông tin lưu trữ kèm theo ( danh sách chứng thư số thu hồi của tổ chức cung

31

Page 32: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

cấp dịch vụ chứng thực chữ ký số tại thời điểm ký, quy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm ký, thông tin về trách nhiệm người ký, chứng thực đấu thời gian hợp lệ vào thời điểm ký)

Thông tin cần lấy trong văn bản ký số gồm:

Văn bảnChữ kýChứng thư số của người ký số tại thời điểm kýDanh sách thu hồi của tổ chức cung cấp dịch vụ chứng thực chữ ký số tại thời điểm kýQuy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm kýThông tin về trách nhiệm người kýChứng thực đấu thời gian hợp lệ vào thời điểm ký

Bảng 2: Yêu cầu thông tin cần lấy trong văn bản ký

Phần mềm xác minh dấu thời gian hợp lệ tại thời điểm ký bằng cách kiểm tra các thông tin kèm theo

Module kiểm tra chữ ký số đọc trường khóa công khai trong chứng thư số, và sử dụng thuật toán RSA-PSS-VERIFY để kiểm tra chữ ký số bằng khóa công khai tương ứng.

2.4.1 Giải mã chữ ký số và kiểm tra tính toàn vẹn của văn bản điện tửQuá trình kiểm tra chữ ký số là Quá trình dùng thuật toán chữ ký số và

khóa công khai để kiểm tra chữ ký số của thông điệp. Việc xác minh chữ ký số của văn bản điện tử đảm bảo cả quá trình giải mã chữ ký số và tính toàn vẹn của văn bản điện tử.

Tương tự như quá trình kiểm tra chữ ký số, lược đồ giải mã được quy định trong PKCS#1

32

Page 33: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Bảng 3: Kiểm tra lược đồ RSA-PSS

Quá trình kiểm tra chữ ký số theo TCVN 7635: 2007 (chi tiết phép toán trong phụ lục kèm theo)

RSASSA-PSS-VERIFY((n, e), M, S)

Đầu vào: (n, e) Khóa công khai RSA của người kýM Thông điệp mà chữ ký của nó cần được

kiểm tra, là chuỗi octetS Chữ ký được kiểm tra, chuỗi octet có độ dài

k, với k là độ dài theo octet của số n, môđun RSAĐầu ra: “chữ ký hợp lệ” hoặc “chữ ký không hợp lệ”Các bước:

33

Page 34: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

1. kiểm tra độ dài: Nếu độ dài của chữ ký S không là k octet, cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng;

2. kiểm tra chữ ký RS;

a. chuyển chữ ký S thành biểu diễn chữ ký ở dạng số nguyên s;

s = OS2IP (S)

b. áp dụng phép toán cơ sở RSAVP với khóa công khai RSA là (n, e) và biểu diễn chữ ký s để tạo ra m là số nguyên biểu diễn thông điệp;

m = RSAVP ((n, e), s)

c. chuyển biểu diễn thông điệp m thành thông điệp đã được định dạng EM có độ dài emLen =(modBits-1/8 octet, với modBits là độ dài theo bit của số n (mođun RSA):

EM = I2OSP (m, emLen)

Chú ý rằng emLen sẽ bằng k-1 nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia hết cho 8. Nếu I2OSP cho ra thông báo lỗi “số nguyên quá lớn” thì RSASSA-PSS-VERIFY cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng lại.

3. kiểm tra EMSA-PSS: Áp dụng thao tác kiểm tra EMSA-PSS-VERIFY (sẽ được mô tả ở phần 5.6 dưới đây) vào thông điệp M và thông điệp đã được định dạng EM để xác định xem chúng có tương ứng với nhau hay không;

Result = EMSA-PSS-VERIFY (M, EM, modBits-1)

4. nếu kết quả (Result) là “phù hợp” thì cho ra “chữ ký hợp lệ”. Ngược lại sẽ cho ra “chữ ký không hợp lệ”.

Các phép toán và thuật toán liên quan trong TCVN 7635:2007 hoặc phụ lục kèm theo.

Như vậy các yêu cầu xác minh chữ ký số trong văn bản gồm:

Khóa công khai chứng thư số 1024, 2048, 4096Thuật toán băm SHA 256Thuật toán xác minh RSAThuật toán giải mã RSA-PSSPhiên bản tiêu chuẩn PKCS#1 ver 2.1ID thuật toán

34

Page 35: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Bảng 4: Yêu cầu xác minh chữ ký số

2.4.2 Kiểm tra hiệu lực chứng thư sốKiểm tra, xác thực thông tin của người ký số trên chứng thư số gắn kèm văn

bản điện tử. Để kiểm tra chứng thư số, đầu tiên phần mềm cần kiểm tra tính toàn vẹn chứng thư bằng cách kiểm tra chữ ký trên chứng thư. Sau đó, phần mềm kiểm tra chuỗi chứng thư tin tưởng đến chứng thư số gốc tin tưởng đảm bảo chứng thư được tổ chức cung cấp dịch vụ chứng thực chữ ký số tin tưởng cấp phát. Việc xác minh theo quy trình sau

Hình 12: Kiểm tra chứng thư số

Trong đó

4.2.1 Đầu vào

- Chứng thư số tin tưởng gốc

4.2.2 Khởi tạo

- Tập các chính sách, ràng buộc quy định trước cho chứng thư số

- Các thông tin chứng thư số gốc

Thuật toán ký chứng thư số35

Page 36: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Khóa công khai Tham số khóa công khai Định danh tổ chức cấp phát Độ dài tối đa chuỗi xử lý: từ 1->n

4.2.3 Xử lý chứng thư số

Xử lý chứng thư số cơ bản thực hiện tại chứng thư số thứ I trong chuỗi

- Xác minh các thông tin cơ bản

Chữ ký trong chứng thư số phải được xác minh sử dụng các trường working_public_key_algorithm, working_public_key, và the working_public_key_parameters

Kiểm tra thời hạn của chứng thư So sánh tổ chức cấp phát với working_issuer_name

- Kiểm tra chứng thư số không bị thu hồi

Kiểm tra trạng thái chứng thư số thông qua giao thức CRL hoặc OCSP

36

Page 37: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 13: Kiểm tra trạng thái chứng thư số

- Kiểm tra chính sách chứng thư và phạm vi sử dụng của chứng thư

- Khởi tạo cho chứng thư số tiếp theo (thứ i+1)

Gán các trường thông tin xác minh Kiểm tra thiết lập các trường mở rộng yêu cầu critical Xem xét các tham số chính sách gán vào

- Thực hiện vòng lặp kiểm tra các chứng thư số cho đến chứng thư số cuối cùng

4.2.4 Đầu ra

- Chứng thư số hợp lệ hay không

Bảng sau tóm tắt yêu cầu kiểm tra hiệu lực chứng thư số37

Page 38: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Kiểm tra thông tin chứng thư sốCác trường chứng thư số Khóa công khai ký

Thuật toán kýChữ ký CACác trường cơ bản chứng thư sốSo sánh chuỗi name trong chuỗi chứng thư số(Trường Issuer của Chứng thư số dưới trùng trường Subject của chứng thư số trên)Các trường mở rộng criticalThời hạn chứng thư sốChính sách và phạm vi sử dụng chứng thư số

Kiểm tra hiệu lực chứng thư số bằng CRL hoặc OCSPHiệu lực chứng thư số CRL

Xác minh chữ ký & tổ chức cấp phát CRLKiểm tra hiệu lực CRLKiểm tra chứng thư số có nằm trong CRL hay không

Kiểm tra OCSP Gửi OCSP requestPhân tích OCSP response

Kiểm tra chứng thư số tiếp theo lăp cho đến chứng thư số gốcKiểm tra chứng thư số cuối cùng

So sánh chứng thư số gốc với chứng thư số gốc đầu vào

Bảng 5: Yêu cầu kiểm tra hiệu lực chứng thư số

2.5 Thông tin cần lưu trữ kèm văn bản điện tử đã ký sốCác thông tin đi kèm văn bản điện tử ký số cần được xác minh để đảm bảo

việc xác minh chữ ký số thực hiện đầy đủ.

Trong ký văn bản, thời điểm ký và thời điểm nhận có độ lệch thời gian.Thông thường, trong thực tế, nhiều ứng dụng (như kê khai thuế, kê khai hải quan, văn bản điều hành, …) mặc định thời điểm ký và thời điểm nhận là giống nhau và sử dụng thời điểm xác minh văn bản làm nhãn thời gian để kiểm tra. Do đó, các ứng dụng này kiểm tra văn bản ký số tại thời điểm làm việc mà không cần quan tâm đến nhãn thời gian đi kèm. Điều này dẫn đến việc kiểm tra chữ ký số tại thời điểm ký có thể sẽ không thực hiện được khi mà thời điểm xác minh chữ ký đã quá hạn so với hiệu lực chứng thư.

Để đảm bảo tính chính xác đầy đủ, thông tin đi kèm đi kèm văn bản điện tử đã ký số cần được chứng nhận dấu thời gian hợp lệ vào thời điểm ký.

Đối với văn bản đi, các thông tin bao gồm38

Page 39: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Văn bảnChữ kýChứng thư số của người ký số tại thời điểm kýDanh sách thu hồi của tổ chức cung cấp dịch vụ chứng thực chữ ký số tại thời điểm kýQuy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm kýThông tin về trách nhiệm người kýChứng thực đấu thời gian hợp lệ vào thời điểm ký

Bảng 6: Thông tin đính kèm văn bản ký số đi

Đối với văn bản đến, các thông tin gồm:

Văn bảnChữ kýChứng thư số của người ký số tại thời điểm kýDanh sách thu hồi của tổ chức cung cấp dịch vụ chứng thực chữ ký số tại thời điểm kýQuy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm kýThông tin về trách nhiệm người kýChứng thực đấu thời gian hợp lệ vào thời điểm nhận

Bảng 7: Thông tin đính kèm văn bản ký số đến

39

Page 40: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

CHƯƠNG III. XÂY DỰNG TIÊU CHUẨN KỸ THUẬT3.1 Xây dựng yêu cầu kỹ thuật đánh giá chức năng module

phần mềm ký sốTrước hết, phần mềm ký số cần đảm bảo các yêu cầu cơ bản về truy xuất

định dạng văn bản và ký số. Phần mềm ký số ký số nên kiểm tra hiệu lực chứng thư số giúp giảm tải quá trình xác minh chữ ký số. Khi chứng thư số không còn hiệu lực, phần mềm ký số không cần thiết ký lên văn bản. Quá trình xác minh ngay tại thời điểm ký giảm các rủi ro liên quan trong dịch vụ chứng thực chữ ký số, bởi vì không phải người dùng nào cũng am hiểu về quy trình xác minh.

Trong thực tế, để tiện lợi cho dịch vụ chứng thực chữ ký số, phần mềm ký số cũng sẽ quản lý thông tin lưu trữ kèm theo văn bản ký số và có chức năng hủy bỏ văn bản ký số. Phần mềm nên thông báo (có thể bằng chữ hoặc bằng ký hiệu) cho người ký số biết việt ký số vào văn bản điện tử thành công hay không thành công.

Để giúp mở rộng các miền xác thực cũng như thuận tiện khi cài đặt, phần mềm hỗ trợ cài đặt, tích hợp chứng thư số gốc của tổ chức chứng thực chữ ký số cấp chứng thư số để ký số văn bản điện tử vào phần mềm ký số để kiểm tra hiệu lực chứng thư số trên văn bản điện tử.

Chữ ký trên văn bản cần được xác nhận dấu thời gian tại thời điểm ký đảm bảo chứng thư số và các ràng buộc liên quan đến người ký là hợp lệ tại thời điểm ký. Do đó, các thông tin tại thời điểm ký cũng được phần mềm ký số đóng dấu thời gian.

Bảng sau tổng hợp các yêu cầu kỹ thuật đánh giá chức năng module phần mềm ký số:

Yêu cầu Các chức năng Chú thíchYêu cầu truy xuất định dạng và quản lý thông tin

Định dạng văn bản PDF Phiên bản 1.4 trở lên

Giao tiếp với thẻ mật mã

PKCS#11

40

Page 41: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Yêu cầu đóng gói văn bản ký số

Văn bản Văn bản theo định dạng PDF

Chữ ký số văn bản Trường chữ ký số đóng gói trong định dạng PDF

Chứng thư số của người ký số tại thời điểm ký

Thông tin chứng thư số trong định dạng PDF

Danh sách thu hồi của tổ chức cung cấp dịch vụ chứng thực chữ ký số tại thời điểm ký

Danh sách thu hồi của CA đi kèm

Quy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm ký

Quy chế chứng thực đi kèm

Thông tin về trách nhiệm người ký

Thông tin đi kèm

Chứng thực dấu thời gian hợp lệ vào thời điểm ký

Đóng dấu thời gian gắn kèm các thông tin

Quản lý thông tin Truy xuất các thông tinLưu trữ thông tinHủy bỏ thông tin Thông tin bị hủy bỏ đồng

thời với văn bản điện tửKý số

Lược đồ ký Độ dài khóa RSA: 1024, 2048, 4096 bitThuật toán băm: SHA 256Thuật toán ký: RSA Lược đồ ký: RSA – PSSPhiên bản tiêu chuẩn PKCS#1 ver 2.1ID thuật toán RSASSA-PSS-SHA256-

IdentifierKiểm tra hiệu lực chứng thư số

Các trường chứng thư số

Khóa công khai kýThuật toán kýChữ ký CA Kiểm tra giống kiểm tra chữ

ký số trên văn bảnCác trường cơ bản chứng thư số

Kiểm tra đầy đủ các trường định dạng X509- Version 3- Serial Number- Signature Algorithm

41

Page 42: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Identifier- Issuer Name- Validity Period- Subject Name- Public Key Information

So sánh chuỗi name trong chuỗi chứng thư số

Trường Issuer của Chứng thư số dưới trùng trường Subject của chứng thư số trên (so sánh Issuer Unique ID của chứng thư số dưới với Subject Unique ID của chứng thư số trên)

Các trường mở rộng Các trường chứng thư số mở rộng - Authority Key Identifier- Subject Key Identifier- Key usage- CP- Subject Alternative Name- Issuer Alternative Name- Subject Directory Attributes- Basic constraints- Name Constraints- Distributions point

Thời hạn chứng thư sốChính sách và phạm vi sử dụng chứng thư số

- Key usage- Extended Key Usage - Policy mapping- Policy Constraints- Inhibit Policy mapping

Kiểm tra hiệu lực chứng thư số bằng CRL hoặc OCSP

Hiệu lực chứng thư số CRL

Xác minh chữ ký & tổ chức cấp phát CRLKiểm tra hiệu lực CRLKiểm tra chứng thư số có nằm trong CRL hay không

Kiểm tra OCSP

Gửi OCSP requestPhân tích OCSP response

Kiểm tra chứng thư So sánh chứng thư số cuối 42

Page 43: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

số cuối cùng cùng với chứng thư số gốc đầu vào

Chức năng khácTích hợp chứng thư số gốc

Hỗ trợ, cài đặt tích hợp chứng thư số gốc của tổ chức chứng thực chữ ký số cấp chứng thư số để ký số văn bản điện tử vào phần mềm ký số để kiểm tra hiệu lực chứng thư số trên văn bản điện tử

Thông báo Thông báo việc ký số thành công hay không thàn chông

Tiêu chuẩn kỹ thuật khác

Các tiêu chuẩn trong thông tư 22, thông tư 06

Bảng 8: Yêu cầu đánh giá chức năng module phần mềm ký số

3.2 Xây dựng yêu cầu kỹ thuật đánh giá chức năng module phần mềm kiểm tra chữ ký số

Phần mềm kiểm tra chữ ký số cũng cần đảm bảo các yêu cầu cơ bản về truy xuất định dạng văn bản, yêu cầu kiểm tra chữ ký, kiểm tra hiệu lực chứng thư.

Cũng giống như phần mềm ký số, để tiện lợi cho dịch vụ chứng thực chữ ký số, phần mềm kiểm tra ký số cũng sẽ quản lý thông tin lưu trữ kèm theo văn bản ký số và có chức năng hủy bỏ văn bản ký số. Phần mềm thông báo kết quả kiểm tra chữ ký số là hợp lệ hoặc không hợp lệ cho người kiểm tra biết. Phần mềm cũng cần hỗ trợ cài đặt, tích hợp chứng thư số gốc của tổ chức chứng thực chữ ký số cấp chứng thư số để ký số văn bản điện tử vào phần mềm ký số để kiểm tra chữ ký số trên văn bản điện tử.

Phần mềm kiểm tra chữ ký số cần xác minh dấu thời gian tại thời điểm tiếp nhận văn bản đảm bảo xác minh thời điểm nhận. Khi văn bản ký số đến, các thông tin gửi kèm được gán nhãn thời gian tại thời điểm ký. Phần mềm cũng cần xác minh dấu thời gian tại thời điểm ký (của các thông tin đến) đảm bảo chứng thư số và các ràng buộc liên quan đến người ký là hợp lệ tại thời điểm ký.

Ngoài ra, phần mềm kiểm tra chữ ký số cần lưu trữ thông tin của người ký (trách nhiệm người ký) để cho phép người kiểm tra xác minh được thẩm quyền người ký.

43

Page 44: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Bảng sau tổng hợp các yêu cầu kỹ thuật đánh giá chức năng module phần mềm kiểm tra chữ ký số:

Yêu cầu Các chức năng Chú thíchYêu cầu truy xuất định dạng và quản lý thông tin

Định dạng văn bản PDF Phiên bản 1.4 trở lênGiao tiếp với thẻ mật mã

PKCS#11

Yêu cầu truy xuất văn bản ký số & thông tin kèm theo

Văn bản Văn bản theo định dạng PDF

Chữ ký số văn bản Trường chữ ký số đóng gói trong định dạng PDF

Chứng thư số của người ký số tại thời điểm ký

Thông tin chứng thư số trong định dạng PDF

Danh sách thu hồi của tổ chức cung cấp dịch vụ chứng thực chữ ký số tại thời điểm ký

Danh sách thu hồi của CA đi kèm

Quy chế chứng thực của tổ chức cung cấp dịch vụ chứng thực chữ ký số vào thời điểm ký

Quy chế chứng thực đi kèm

Thông tin về trách nhiệm người ký

Thông tin đi kèm

Xác minh dấu thời gian hợp lệ với các thông tin kèm theo tại thời điểm ký số

Xác minh dấu thời gian khi của thông tin gửi đến

Đóng dấu thời gian Chứng thực dấu thời gian hợp lệ tại thời điểm tiếp nhận

Gán nhãn thời gian tại thời điểm tiếp nhận

Quản lý thông tin Truy xuất các thông tinLưu trữ thông tinHủy bỏ thông tin Thông tin bị hủy bỏ đồng

thời với văn bản điện tửKiểm tra chữ ký số trên văn bản

Thuật toán kiểm tra Khóa công khai chứng thư số

1024, 2048, 4096

Thuật toán băm SHA 256Thuật toán xác minh RSAThuật toán giải mã RSA-PSS

44

Page 45: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Phiên bản tiêu chuẩn PKCS#1 ver 2.1ID thuật toán RSASSA-PSS-SHA256-

IdentifierKiểm tra thông tin từng chứng thư số trong chuỗi

Các trường chứng thư số

Khóa công khai kýThuật toán kýChữ ký CA Kiểm tra giống kiểm tra chữ

ký số trên văn bảnCác trường cơ bản chứng thư số

Kiểm tra đầy đủ các trường định dạng X509- Version 3- Serial Number- Signature Algorithm Identifier- Issuer Name- Validity Period- Subject Name- Public Key Information

So sánh chuỗi name trong chuỗi chứng thư số

Trường Issuer của Chứng thư số dưới trùng trường Subject của chứng thư số trên (so sánh Issuer Unique ID của chứng thư số dưới với Subject Unique ID của chứng thư số trên)

Các trường mở rộng Các trường chứng thư số mở rộng - Authority Key Identifier- Subject Key Identifier- Key usage- CP- Subject Alternative Name- Issuer Alternative Name- Subject Directory Attributes- Basic constraints- Name Constraints- Distributions point

Thời hạn chứng thư sốChính sách và phạm vi sử dụng chứng thư số

- Key usage- Extended Key Usage

45

Page 46: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

- Policy mapping- Policy Constraints- Inhibit Policy mapping

Kiểm tra hiệu lực chứng thư số bằng CRL hoặc OCSPHiệu lực chứng thư số CRL

Xác minh chữ ký & tổ chức cấp phát CRLKiểm tra hiệu lực CRLKiểm tra chứng thư số có nằm trong CRL hay không

Kiểm tra OCSP Gửi OCSP requestPhân tích OCSP response

Kiểm tra chứng thư số cuối cùng

Kiểm tra tồn tại chứng thư số gốc trong phần mềm

Chức năng khác

Tích hợp chứng thư số gốc

Hỗ trợ, cài đặt tích hợp chứng thư số gốc của tổ chức chứng thực chữ ký số cấp chứng thư số để ký số văn bản điện tử vào phần mềm ký số để kiểm tra hiệu lực chứng thư số trên văn bản điện tử

Thông báo Thông báo kết quả kiểm tra chữ ký là hợp lệ/không hợp lệ

Tiêu chuẩn kỹ thuật khác

Các tiêu chuẩn cần áp dụng trong thông tư 22, thông tư 06

Bảng 9: Yêu cầu đánh giá chức năng module phần mềm kiểm tra chữ ký số

46

Page 47: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

KẾT LUẬN Đề tài đã xây dựng được dự thảo Tiêu chuẩn Việt Nam về bộ tiêu chí kỹ thuật để

đánh giá chất lượng module phần mềm ký số, kiểm tra ký số, lưu trữ văn bản đã ký số bao gồm:

9 nhóm yêu cầu kỹ thuật cho ký số 9 nhóm yêu cầu kỹ thuật cho kiểm tra ký số nhóm yêu cầu kỹ thuật cho lưu trữ văn bản đã ký số

Bộ tiêu chí này giới hạn để đánh giá chất lượng module ký số được quy định trong văn bản chỉ đọc pdf theo TT 22/2013/BTTTT

47

Page 48: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

PHỤ LỤC I: CƠ SỞ TOÁN HỌC CỦA LƯỢC ĐỒ KÝ SỐ RSA-PSS

1 Các hàm cơ sở chuyển đổi dữ liệu

1.1 Hàm cơ sở chuyển đổi dữ liệu số nguyên sang dạng chuỗi octet

I2OSP (x, xLen)

Chức năng:

Chuyển số nguyên không âm x thành một chuỗi octet có độ dài xLen

Đầu vào:

x Số nguyên không âm cần chuyển đổi

Đầu ra:

X Chuỗi octet tương ứng có độ dài xLen

Thông báo lỗi:

“số nguyên quá lớn”

Các bước:

1. nếu x ≥ 256xLen, cho ra thông báo lỗi “số nguyên quá lớn” và dừng

2. viết số nguyên x duy nhất gồm xLen chữ số với cơ số 256:

x = xxLen-1·256xLen-1 + xxLen-2·256xLen-2 + … + x1·256 + x0

với 0 ≤ xi < 256 (chú ý rằng một hay nhiều chữ số đầu sẽ bằng 0 nếu x nhỏ hơn 256xLen-1).

3. cho octet Xi giá trị nguyên xxLen-i với 1 ≤ i ≤ xLen. Cho ra chuỗi octet

X = X1 X2… XxLen

1.2 Hàm cơ sở chuyển đổi từ dạng chuỗi octet về dạng số nguyên

OS2IP (X)

48

Page 49: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Chức năng:

Chuyển chuỗi octet thành một số nguyên không âm

Đầu vào:

X Chuỗi octet cần chuyển đổi

Đầu ra:

x Số nguyên không âm tương ứng

Các bước:

1. cho X1X2…XxLen là các octet của X từ octet đầu tiên với octet cuối cùng, xxLen-i là giá trị nguyên của octet Xi với 1 ≤ i ≤ xLen;

2. cho x = xxLen-1·256xLen-1 + xxLen-2·256xLen-2 + … + x1·256 + x0;

3. xuất ra x.

2. Các phép toán mật mã cơ sở

2.1. Phép toán cơ sở RSASP

RSASP (K, m)

Đầu vào:

K Khóa bí mật RSA, với K có một trong hai dạng sau:

- cặp (n, d);- bộ năm (p, q, dP, dQ, qlnv);

m Biểu diễn của thông điệp, dưới dạng số nguyên giữa 0 và n-1

Đầu ra:

s Biểu diễn của chữ ký, là số nguyên giữa 0 và n-1

Thông báo lỗi:

“biểu diễn thông điệp ở ngoài miền hợp lệ”

Giả thiết:

K là một khóa bí mật RSA hợp lệ

Các bước:

1. nếu biểu diễn của thông điệp m không nằm giữa 0 và n-1, cho ra thông báo lỗi “biểu diễn thông điệp ở ngoài miền hợp lệ” và dừng lại;

49

Page 50: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

2. biểu diễn của chữ ký được tính như sau:

a. nếu dạng thứ nhất (n, d) của K được sử dụng thì s = md mod n;

b. nếu dạng thứ hai (p, q, dP, dQ, qlnv) của K được sử dụng thì tiến hành như sau:

i. Lấy s1 = mdP mod p và s2 = mdQ mod q

ii. Đặt h = (s1 - s2)·qlnv mod p

iii. Đặt s = s2 + q·h

c. xuất ra s.

2.2. Phép toán cơ sở RSAVP

RSAVP ((n, e), s)

Đầu vào:

(n, e)

Khóa công khai RSA

s Biểu diễn của chữ ký, là số nguyên giữa 0 và n-1Đầu

ra:m Biểu diễn của thông điệp, là số nguyên giữa 0 và

n-1Thông

báo lỗi:“biểu diễn chữ ký ở ngoài miền hợp lệ”

Giả thiết:

Khóa công khai RSA (n, e) là hợp lệ

Các bước:

1. nếu biểu diễn của chữ ký s không nằm giữa 0 và n-1, cho ra “biểu diễn chữ ký ở ngoài miền hợp lệ” và dừng lại;

2. đặt m = se mod n;

3. xuất ra m.

3. Lược đồ chữ ký RSA kèm phụ lục theo PSS

Các thao tác tạo chữ ký số áp dụng một thao tác định khuôn dạng vào một thông điệp trước khi nó được chuyển thành một biểu diễn thông điệp ở dạng số nguyên. Phép toán cơ sở RSASP được áp dụng vào biểu diễn thông điệp này để tạo

50

Page 51: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

ra chữ ký số. Đảo ngược quá trình này, các thao tác kiểm tra chữ ký áp dụng một phép toán cơ sở RSAVP vào một chữ ký để khôi phục một biểu diễn thông điệp, sau đó nó được chuyển thành thông điệp đã được định dạng ở dạng chuỗi octet. Thao tác kiểm tra được áp dụng vào thông điệp ban đầu và thông điệp đã được định dạng để xác định xem chúng có tương ứng với nhau hay không.

3.1. Thao tác tạo chữ ký

RSASSA-PSS-SIGN(K, M)

Đầu vào:

K Khóa bí mật RSA của người ký

M Thông điệp sẽ được ký, là một chuỗi octetĐầu

ra:S Chữ ký, chuỗi octet có độ dài k, với k là độ dài

của môđun RSA theo octetThông

báo lỗi:“văn bản quá dài”, “lỗi định dạng”

Các bước:

1. mã hóa EMSA-PSS: Áp dụng thao tác EMSA-PSS-ENCODE (được giới thiệu ở phần sau) vào văn bản M để tạo ra thông điệp được định dạng EM có độ dài (modBits-1)/8 octet sao cho độ dài bit của số nguyên OS2IP (EM) nhiều nhất là modBits-1, với modBits là độ dài theo bit của số n (mođun RSA):

EM = EMSA-PSS-ENCODE (M, modBits-1)

Chú ý rằng độ dài octet của EM sẽ bằng k - 1 nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia hết cho 8. Nếu hàm EMSA-PSS-ENCODE cho ra thông báo lỗi “văn bản quá dài” thì RSASSA-PSS-SIGN cũng cho ra thông báo lỗi “văn bản quá dài” và dừng lại. Nếu EMSA-PSS-ENCODE cho ra thông báo “lỗi định dạng” thì RSASSA-PSS-SIGN cũng cho ra thông báo “lỗi định dạng” và dừng lại.

2. Chữ ký RSA:

a. chuyển thông điệp đã được định dạng (chuỗi octet) EM thành biểu diễn thông điệp ở dạng số nguyên m;

m = OS2IP (EM)51

Page 52: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

b. áp dụng phép toán cơ sở RSASP với K là khóa bí mật RSA và biểu diễn thông điệp m để tạo ra biểu diễn chữ ký là số nguyên s:

s = RSASP(K, m);

c. chuyển chữ ký s dạng số nguyên thành chữ ký S dạng chuỗi octet có độ dài k:

S = I2OSP (s, k)

3. xuất ra chữ ký S.

3.2. Thao tác kiểm tra chữ ký

RSASSA-PSS-VERIFY((n, e), M, S)

Đầu vào:

(n, e)

Khóa công khai RSA của người ký

M Thông điệp mà chữ ký của nó cần được kiểm tra, là chuỗi octet

S Chữ ký được kiểm tra, chuỗi octet có độ dài k, với k là độ dài theo octet của số n, môđun RSA

Đầu ra:

“chữ ký hợp lệ” hoặc “chữ ký không hợp lệ”

Các bước:

1. kiểm tra độ dài: Nếu độ dài của chữ ký S không là k octet, cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng;

2. kiểm tra chữ ký RS;

a. chuyển chữ ký S thành biểu diễn chữ ký ở dạng số nguyên s;

s = OS2IP (S)

b. áp dụng phép toán cơ sở RSAVP với khóa công khai RSA là (n, e) và biểu diễn chữ ký s để tạo ra m là số nguyên biểu diễn thông điệp;

m = RSAVP ((n, e), s)

52

Page 53: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

c. chuyển biểu diễn thông điệp m thành thông điệp đã được định dạng EM có độ dài emLen =(modBits-1/8 octet, với modBits là độ dài theo bit của số n (mođun RSA):

EM = I2OSP (m, emLen)

Chú ý rằng emLen sẽ bằng k-1 nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia hết cho 8. Nếu I2OSP cho ra thông báo lỗi “số nguyên quá lớn” thì RSASSA-PSS-VERIFY cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng lại.

3. kiểm tra EMSA-PSS: Áp dụng thao tác kiểm tra EMSA-PSS-VERIFY (sẽ được mô tả ở phần 5.6 dưới đây) vào thông điệp M và thông điệp đã được định dạng EM để xác định xem chúng có tương ứng với nhau hay không;

Result = EMSA-PSS-VERIFY (M, EM, modBits-1)

4. nếu kết quả (Result) là “phù hợp” thì cho ra “chữ ký hợp lệ”. Ngược lại sẽ cho ra “chữ ký không hợp lệ”.

4. Phương pháp định dạng cho chữ ký kèm phụ lục theo PSS (EMSA-PSS)

4.1. Thao tác định dạng

Phương pháp định dạng được tham số hóa bằng cách chọn:

- hàm băm (cố định với khóa RSA đã cho);

- hàm tạo mặt nạ (cố định với khóa RSA đã cho) và;

- độ dài phần phụ thêm (có thể thay đổi với khóa RSA đã cho).

Các hàm băm và hàm tạo mặt nạ được đề xuất sẽ được mô tả trong phần 6 và 5.6.3. Hình 2 minh họa thao tác định dạng.

53

Page 54: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Hình 2 - Minh họa thao tác định dạng

Công thức để tính EM:

((PD2||r) MGF(h(PD1||h(M)||r))) || h(PD1||h(M)||r)) || 0xbc

EMSA-PSS-ENCODE (M, emBits)

Lựa chọn:

h Hàm băm (độ dài đầu ra của nó theo octet là hLen)

MGF

Hàm tạo mặt nạ

sLen Đô dài chủ định của phần phụ thêm theo octetĐầu

vào:M Văn bản để mã hóa, là một chuỗi octet

emBits độ dài tối đa theo bit của số nguyên OS2IP (EM), ít nhất bằng 8hLen + 8sLen + 9

54

Page 55: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Đầu ra:

EM Văn bản đã được mã, đó là chuỗi octet có độ dài emLen = emBits/8

Thông báo lỗi: “lỗi định dạng”; “văn bản quá dài”Các bước:

1. nếu độ dài của M lớn hơn giới hạn đầu vào cho hàm băm (264-1 đối với SHA-256 thì cho ra thông báo lỗi “văn bản quá dài” và dừng;

2. lấy mHash = h(M), đó là một chuỗi octet dài hLen;

3. nếu emLen < hLen + sLen + 2, cho ra thông báo “lỗi định dạng” và dừng;

4. tạo ra chuỗi octet ngẫu nhiên salt có độ dài sLen; nếu sLen = 0 thì salt không có;

5. đặt M’ = (0x)00 00 00 00 00 00 00 00 || mHash ||salt;

6. lấy H = Hash(M’), đó là một chuỗi octet dài hLen;

7. lấy PS là một chuỗi octet bằng 0 dài emLen - hLen - sLen - 2;

8. Lấy DB = PS || 0x01 || salt; DB là một chuỗi octet dài emLen-hLen - 1;

9. lấy maskedDB = DB dbMask;

10. đặt 8emLen-emBits bit đầu tiên bên trái của octet đầu tiên bên trái trong maskedDB bằng 0;

11. lấy EM = maskedDB ||H || 0xbc;

12. xuất ra EM.

4.2. Thao tác kiểm tra

EMSA-PSS-VERIFY(M, EM, emBits)

Lựa chọn:

h Hàm băm (độ dài đầu ra của nó theo octet là hLen)

MGF

Hàm tạo mặt nạ

sLen Đô dài dự kiến của phần thêm theo octet

55

Page 56: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Đầu vào:

M Thông điệp cần kiểm tra chữ ký, là chuỗi octet

EM Thông điệp đã được định dạng, là chuỗi octet có độ dài emLen = emBits/8

emBits Độ dài tối đa theo bit của số nguyên OS2IP (EM), tối thiểu là 8hLen + 8sLen + 9

Đầu ra:

“phù hợp” hoặc “không phù hợp”.

Các bước:

1. nếu độ dài của M lớn hơn giới hạn đầu vào của hàm băm (264 - 1 octet đối với SHA-256, thì đưa ra thông báo “không phù hợp” và dừng;

2. đặt mHash = h(M), là chuỗi octet có độ dài hLen;

3. nếu emBits < 8hLen+8sLen+9, đưa ra thông báo “không phù hợp” và dừng;

4. nếu octet đầu tiên bên phải của EM không chứa giá trị bc, đưa ra thông báo “không phù hợp” và dừng;

5. đặt maskedDB là emLen-hLen-1 octet đầu tiên bên trái của EM, và H là hLen octet tiếp theo;

6. nếu 8emLen-emBits bit đầu tiên bên trái của octet đầu tiên bên trái trong maskedDB không phải tất cả bằng 0, đưa ra thông báo “không phù hợp” và dừng;

7. đặt dbMask = MGF(H, emLen-hLen-1);

8. đặt DB = maskedDB dbMask;

9. thiết lập 8emLen-emBits bit đầu tiên bên trái của DB bằng 0;

10. nếu emLen-hLen-sLen-2 octet đầu tiên bên trái của DB không phải bằng 0 hoặc nếu octet tại vị trí thử emLen-hLen-sLen-1 không bằng 0x01, đưa ra thông báo “không phù hợp” và dừng;

11. đặt salt bằng sLen octet cuối cùng của DB;

12. đặt M’ = 00 00 00 00 00 00 00 00 || mHash || salt

M’ là chuỗi octet có độ dài 8+hLen+sLen với 8 octet bằng 0 khởi đầu;

13. đặt H’ = h(M’), là chuỗi octet có độ dài hLen;56

Page 57: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

14. nếu H = H’, đưa ra thông báo “phù hợp”. Ngược lại, đưa ra thông báo “không phù hợp” .

4.3. Hàm tạo mặt nạ MGF dựa vào hàm băm

MGF(mgfSeed, maskLen)

Lựa chọn

h Hàm băm (độ dài đầu ra của nó theo octet là hLen)

Đầu vào:

mgfSeed Mầm được dùng để tạo mặt nạ, là chuỗi octet

maskLen

Độ dài chủ ý theo octet của mặt nạ, nhiều nhất là 232hLen

Đầu ra:

mask Mặt nạ, là chuỗi octet có độ dài maskLen

Thông báo lỗi:

“mặt nạ quá dài”

Các bước:

1. nếu maskLen > 232 hLen, cho ra thông báo lỗi “mặt nạ quá dài” và dừng;

2. lấy T là chuỗi octet rỗng;

3. với counter chạy từ 0 tới maskLen/hLen -1, thực hiện các bước

a. chuyển counter thành một chuỗi octet C có độ dài 4 octet;

C = I2OSP (counter, 4)

b. nối hàm mgfSeed với C, tính hàm băm của chuỗi này. Sau đó nối chuỗi octet T với giá trị băm vừa thu được.

T = T || h(mgfSeed || C)

4. xuất ra maskLen octet đầu tiên của T như là chuỗi octet mask.

57

Page 58: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

PHỤ LỤC II. HÀM BĂM SHA-256

1 Một số khái niệm và thuật ngữ

1.1 Biến, tham số

a, b, c,…, h

Các biến làm việc, các biến này là các từ 32 bit được sử dụng để tính toán các giá trị băm H(i)

H(i) Giá trị băm thứ i. H(0) là giá trị băm khởi tạo. H(N) là giá trị băm cuối cùng được sử dụng để xác định bản tóm lược của văn bản

Hj(i) Từ thứ j của giá trị băm thứ i, H0(i) là từ ngoài cùng bên trái

của giá trị băm thứ i.Kt Hằng số được sử dụng cho vòng lặp thứ t của quá trình bămk Số lượng bit 0 được bổ sung cho thông điệp trong bước bổ

sung dữ liệul Độ dài của thông điệp (ký hiệu là M) theo đơn vị bitm Số lượng bit trong một khối thông điệp (M(i))M Thông điệp cần bămM(i) Khối thông điệp thứ lMj

(i) Từ thứ j của khối thông điệp thứ i. M0(i) là từ ngoài cùng bên

trái của khối thông điệp thứ ln Số lượng các bit quay vòng hoặc dịch đi khi xử lý một từN Số khối của bản thông điệp sau khi đã được bổ sungT Biến tạm thời lưu trữ (32 bit) trong quá trình tính toánWt Từ (32 bit) thứ t trong chuỗi thông điệp.

1.2 Các ký hiệu tính toán

^ Phép AND bitv Phép OR bit Phép XOR bit Phép bù bit+ Phép cộng mođun 232

<< Phép dịch trái, x<<n có nghĩa là dịch x đi n bit sang trái

58

Page 59: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

(loại bỏ n bit ngoài cùng bên trái) bổ sung n bit 0 vào bên phải;>> Phép dịch phải, x>>n có nghĩa là dịch x đi n bit sang phải

(loại bỏ n bit ngoài cùng bên phải) bổ sung n bit 0 vào bên trái.1.3 Chuỗi các bit và các số nguyên

● một chữ số hexa là một phần tử thuộc tập {0, 1,… 9, a,… f};

● một từ là một chuỗi 32 bit có thể được biểu diễn bởi dãy các số hexa (8 chữ số hexa). Để chuyển đổi một chuỗi bit thành dạng một chuỗi hexa chúng ta có thể lần lượt chuyển đổi từng bộ 4 bit thành một số hexa tương ứng;

● một số nguyên lớn hơn bằng 0 và nhỏ hơn 264 có thể được biểu diễn như một từ (nếu nhỏ hơn 232) hoặc một cặp từ (nếu lớn hơn hoặc bằng 232). Chúng ta có thể dùng hai từ, để biểu diễn độ dài của thông điệp theo bit;

● đối với SHA-256, mỗi khối thông điệp gồm 512 bit, nó được biểu diễn dưới dạng 16 từ (32 bit).

1.4 Các phép tính với các từ● các phép tính logic từng bit với từ: , , , và ;

● cộng hai từ môđun 232;

● phép dịch phải SHRn(x), với x là một từ (32 bit) và n là một số nguyên 0 ≤ n < 32, được định nghĩa như sau;

SHRn(x) = x >> n.

● phép dịch vòng phải ROTRn(x), với x là một từ (32 bit) và n là một số nguyên 0 ≤ n < 32, được định nghĩa như sau.

ROTRn(x) = (x >> n) V (x << 32 - n)

Tức là lấy n bit loại ra ở phía cuối bổ sung vào phía đầu theo đúng thứ tự đã có từ trước

59

Page 60: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

2 Thuật toán

2.1 Các hàm và các hằng được sử dụng cho thuật toán2.1.1 Các hàm

SHA-256 sử dụng 6 hàm logic, mỗi hàm đều thực hiện trên các từ (32 bit), các từ này được biểu diễn bởi các biến x, y, z. Kết quả đầu ra của các hàm này là một từ 32 bit mới.

Ch(x, y, z) = (x y) ( x z)

Maj(z, y, x) = (x y) (x z) (y z)

∑0

{256}(x )= ROTR2(x) ROTR13(x) ROTR22(x)

∑1

{256}(x )= ROTR6(x) ROTR11(x) ROTR25(x)

σ 0{256}( x )= ROTR7(x) ROTR18(x) SHR3(x)

σ 1{256}( x )= ROTR17(x) ROTR19(x) SHR10(x)

2.1.2 Các hằng số

SHA-256 sử dụng chuỗi 64 từ (32 bit) làm hằng số, K0{256 },K1

{256}, .. . , K 63{256}

. Các từ này lần lượt là 32 bit đầu tiên của phần thập phân khi lấy căn bậc ba 64 số nguyên tố đầu tiên. Khi biểu diễn dưới dạng hexa các hằng số có giá trị như liệt kê dưới đây:

60

Page 61: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

2.1.3 Bước tiền xử lýTiền xử lý được thực hiện trước khi bắt đầu tính toán giá trị băm. Bước tiền

xử lý được chia làm 3 bước nhỏ: bổ sung thông điệp, chia thông điệp đã được bổ sung thành các khối, và thiết lập các giá trị băm khởi đầu H(0).

2.1.4 Bổ sung thông điệpGiả sử thông điệp M có độ dài là l bit, bổ sung bit “1” vào cuối thông điệp,

tiếp theo là k bit 0, với k thỏa mãn l+1+k = 448 mod 512. Cuối cùng bổ sung một khối 64 bit để lưu giá trị l (độ dài thật của thông điệp). Như vậy thông điệp sau khi đã được bổ sung có độ dài là bội của 512 bit.

2.1.5 Chia thông điệp thành khối sau khi đã được bổ sungThông điệp sau khi đã được bổ sung được chia thành N khối 512 bit, M(1),

M(2),…, M(N). Mỗi khối thông điệp gồm 16 từ (32 bit). 32 bit đầu tiên của khối thông

điệp thứ i là M 0( i )

, 32 bit tiếp theo là M 1( i )

và 32 bit cuối cùng của khối thông điệp thứ

i là M 15( i )

.

2.1.6 Thiết lập các giá trị băm khởi đầu H(0)

Các giá trị băm khởi đầu gồm 8 từ (32 bit):

2.2 Thuật toán tính giá trị bămSHA-256 được sử dụng để tính giá trị băm của một thông điệp có độ dài là l,

với 0 ≤ l < 264. Thuật toán sử dụng một chuỗi 64 từ (32 bit) được tạo ra từ một khối thông điệp đầu vào, 8 biến làm việc cho mỗi từ 32 bit, giá trị băm trung gian gồm 8

61

Page 62: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

từ (32 bit), kết quả cuối cùng của SHA-256 là 256 bit mã băm hay còn gọi là bản tóm lược thông điệp.

Các từ tạo tạo ra từ khối thông điệp đầu vào được ký hiệu là W0,W1,…,W63, tám biến làm việc được ký hiệu là a, b, c, d, e, f, g và h. Các từ của kết quả băm

được ký hiệu là H0(t ) , H1

( t ) , .. . , H7( t)

, chúng được gán các giá trị băm khởi đầu, H(0), và sẽ được thay thế bởi các giá trị băm trung gian (sau khi mỗi khối thông điệp được xử lý), H(i), và cuối cùng là giá trị băm, H(N).

2.2.1 Tiền xử lý SHA-256Thông điệp M được xử lý như mục 6.2.2.

2.2.2 Tính toán giá trị băm SHA-256Việc tính toán giá trị băm SHA-256 sử dụng các hàm và hằng được định

nghĩa trong phần 6.2.1. Phép tính “+” được xem là cộng môđun 232.

Sau khi hoàn thành bước tiền xử lý, mỗi khối thông điệp, M(1), M(2),…, M(N)

tuần tự được xử lý theo các bước dưới đây:

Với i từ 0 đến n

{

1. Tính các từ Wt từ khối thông điệp

Wt = M t( i ) với 0 ≤ t ≤ 15

W t=σ1{256}(W t−2)+W t−7+σ 1

{256} (W t−15 )+W t−16 với 16 ≤ t ≤ 63

2. Khởi gán tám biến làm việc a, b, c, d, e, f, g và h bằng các giá trị băm thứ (i - 1)

a=H0(i−1 )

b=H 1(i−1 )

c=H 2( i−1)

d=H3( i−1)

e=H 4( i−1)

f =H5(i−1)

62

Page 63: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

g=H6( i−1)

h=H7( i−1)

3. với t từ 0 đến 63, tính

{

T 1=h+∑1

{256}(e )+Ch(e , f , g )+K t

{256}+W t

T 2=∑0

{256}(a )+Maj (a , b , c )

h=g

g=f

f=e

e=d+T1

d=c

c=b

b=a

a=T1+T2

}

4. Tính giá trị băm trung gian thứ i, H(i)

H0(i)=a+ H0

( i−1)

H1(i )=b+ H1

( i−1)

H2(i)=c+H2

(i−1)

H3(i )=d+H3

( i−1)

H4(i)=e+H4

(i−1 )

H5(i)=f +H5

( i−1)

H6(i )=g+H6

( i−1)

H7(i )=h+H7

( i−1)

63

Page 64: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

Sau khi xử lý N lần (tương ứng với N khối thông điệp), kết quả đầu ra hàm băm SHA-256 của thông điệp M là:

H0(N )

||H1(N )

||H2(N )

||H3(N )

||H4(N )

||H5(N )

||H6(N )

||H7(N )

2.3 Dữ liệu kiểm traĐể giúp các nhà lập trình kiểm tra tính đúng đắn của chương trình do mình

xây dựng, TCVN này đưa ra các giá trị được sử dụng để kiểm tra:

2.3.1 Thông điệp đầu vào chỉ có một khối

2.3.2 Thông điệp đầu vào gồm nhiều khối

2.3.3 Đầu vào là một thông điệp dài

64

Page 65: wcag.mic.gov.vn€¦  · Web viewTrong thời gian qua, các hoạt động xây dựng cơ sở hạ tầng khóa công khai (PKI) để triển khai dịch vụ chứng thực

TÀI LIỆU THAM KHẢO[1] TCVN 7635:2007 - Kỹ Thuật Mật Mã - Chữ Ký Số;

[2] RSA PKCS#7 v1.5: March, 1998. Cryptographic Message Syntax Standard , RSA

security inc. ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-7/pkcs-7v1-5.pdf;

[3] RSA PKCS#1 v2.1: June 14, 2002. RSA Cryptography Standard, RSA security inc.

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf;

[4] RSA PKCS#11 v 2.40: Mark, 2014. RSA Cryptographic Token Interface, RSA security

inc. ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/pkcs-1v2-40.pdf;

[5] RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation

List (CRL) Profile. https://www.ietf.org/rfc/rfc5280.txt;

[6] RFC 3125: Electronic Signature Policies https://tools.ietf.org/html/rfc3125;

[7] RFC 3379: Delegated Path Validation and Delegated Path Discovery

Protocol Requirements. https://tools.ietf.org/html/rfc3379.

65