Để sử dụng toàn bộ tiện ích nâng cao của Hệ Thống Pháp Luật vui lòng lựa chọn và đăng ký gói cước.
Nếu bạn là thành viên. Vui lòng ĐĂNG NHẬP để tiếp tục.
BỘ THÔNG TIN VÀ | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
Số: 769/QĐ-BTTTT | Hà Nội, ngày 27 tháng 4 năm 2022 |
BỘ TRƯỞNG BỘ THÔNG TIN VÀ TRUYỀN THÔNG
Căn cứ Luật Giao dịch điện tử ngày 29 tháng 11 năm 2005;
Căn cứ Nghị định số 130/2018/NĐ-CP ngày 27 tháng 9 năm 2018 của Chính phủ quy định chi tiết thi hành Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số;
Căn cứ Nghị định số 17/2017/NĐ-CP ngày 17 tháng 02 năm 2017 của Chính phủ quy định chức năng, nhiệm vụ, quyền hạn và cơ cấu tổ chức của Bộ Thông tin và Truyền thông;
Căn cứ Thông tư số 16/2019/TT-BTTTT ngày 05 tháng 12 năm 2019 của Bộ trưởng Bộ Thông tin và Truyền thông quy định danh mục tiêu chuẩn bắt buộc áp dụng về chữ ký số và dịch vụ chứng thực chữ ký số theo mô hình ký số trên thiết bị di động và ký số từ xa;
Theo đề nghị của Giám đốc Trung tâm Chứng thực điện tử quốc gia.
QUYẾT ĐỊNH:
Điều 1. Ban hành kèm theo Quyết định này Hướng dẫn kết nối ứng dụng sử dụng chữ ký số với tổ chức cung cấp dịch vụ chứng thực chữ ký số công cộng đối với hình thức ký số từ xa.
Điều 2. Quyết định này có hiệu lực thi hành kể từ ngày ký.
Điều 3. Chánh Văn phòng, Giám đốc Trung tâm Chứng thực điện tử quốc gia, Thủ trưởng các đơn vị thuộc Bộ, các tổ chức, cá nhân có liên quan chịu trách nhiệm thi hành Quyết định này./.
| KT. BỘ TRƯỞNG |
KẾT NỐI ỨNG DỤNG SỬ DỤNG CHỮ KÝ SỐ VỚI TỔ CHỨC CUNG CẤP DỊCH VỤ CHỨNG THỰC CHỮ KÝ SỐ CÔNG CỘNG ĐỐI VỚI HÌNH THỨC KÝ SỐ TỪ XA
(Ban hành kèm theo Quyết định số 769/QĐ-BTTTT ngày 27 tháng 4 năm 2022 của Bộ trưởng Bộ Thông tin và Truyền thông)
Hướng dẫn này là đặc tả các giao thức kết nối để chuyển yêu cầu ký số từ một dịch vụ/ứng dụng có kết nối mạng (SP) đến Tổ chức cung cấp dịch vụ chứng thực chữ ký số (CA) và nhận lại chứng thư số của người ký, kết quả ký số.
Hướng dẫn này không áp dụng đối với các dịch vụ/ứng dụng đã tích hợp chức năng ký số, các phần mềm ký số.
Trong trường hợp pháp luật chuyên ngành có quy định về định dạng của dữ liệu thì áp dụng trực tiếp quy định đó.
Giao thức này có thể được ứng dụng để thực hiện các hành động khác của người dùng (đăng ký, đăng nhập,...).
Do đặc thù của ký số từ xa cần phải có sự xác nhận của người sử dụng thông qua một phương tiện điện tử khác nên giao thức ký được miêu tả theo tài liệu là giao thức ký không đồng bộ. Tức là giữa SP và CA không duy trì kết nối trong quá trình CA xác thực với người dùng. Sau khi người dùng xác thực ký, kết quả ký số sẽ được CA trả về trên một kết nối khác tuân theo phương thức kết nối webhook như mô tả trong tài liệu này. Tuy nhiên, trong trường hợp khả thi, SP và CA được khuyến khích duy trì kết nối khoá phiên theo chuẩn TLS.
Hình 1. Sơ đồ luồng kết nối ký số tài liệu
2.1. Khởi tạo yêu cầu ký số
Người sử dụng thực hiện yêu cầu ký số.
SP đóng gói dưới dạng .xml (hoặc json) yêu cầu ký số bao gồm: thông tin xác thực tài khoản của SP (sp_credentials), mã tài liệu (doc_id), mã giao dịch (transaction_id), mã định danh người ký trong hệ thống SP (user_id), số xê-ri của chứng thư số (serial_number, trường hợp người dùng có nhiều hơn 01 chứng thư số), thời gian thực hiện yêu cầu.
SP gửi dữ liệu đã được đóng gói theo giao thức TLS cho CA.
SP gọi CA để lấy thông tin chứng thư.
SP tiến hành băm tài liệu cần được ký số và nén dữ liệu.
SP gửi mã băm (file_hash), thông tin xác thực tài khoản của SP (sp_credentials), mã giao dịch (transaction_id) cho CA.
2.2. Thực hiện ký số
CA bóc tách thông tin các thông tin trong dữ liệu .xml (hoặc json).
CA xác thực sp_credentials.
CA tìm thuê bao từ user_id, gửi lại chứng thư số cho SP.
CA gửi yêu cầu và nhận lại xác nhận ký đến người dùng (thông qua app của CA) để thực hiện quy trình ký số.
CA thực hiện cấp dấu thời gian cho giao dịch (nếu có).
2.3. Trả kết quả
CA đóng gói kết quả ký số dưới dạng .xml (hoặc json), gồm: chữ ký số theo từng mã tài liệu (doc_id), chứng thư số của người ký (user_cert), dấu thời gian (nếu có), thời gian thực hiện yêu cầu, mã giao dịch (transaction_id).
CA gửi dữ liệu đã được đóng gói theo giao thức TLS cho SP.
SP gắn chữ ký vào file và hoàn tất quy trình ký.
Hình thức trả:
Thông qua cơ chế webhook: Khi có kết quả ký tài liệu, CA sẽ gửi kết quả cho SP theo url webhook SP đăng ký trước với CA.
3.1. API lấy thông tin chứng thư
Mô tả:
- SP gọi CA.
- Khi người dùng tạo yêu cầu ký số, SP gọi CA để lấy dữ liệu chứng thư người dùng.
- CA sẽ kiểm tra và trả về danh sách chứng thư của người dùng.
- Khi có thông tin chứng thư, SP sử dụng dữ liệu này để tính toán hash file cần ký.
a. Đặc tả API
Phương thức: GET
Đường dẫn: https://x.x.x.x/get_certificate (x.x.x.x là URL API sẽ do mỗi CA tự quyết định)
Tham số đầu vào:
STT | Tham số | Kiểu dữ liệu | Bắt buộc | Chú thích |
1 | sp_id | String | Tên tài khoản của SP do CA cung cấp | |
2 | sp_password | String | Mật khẩu do CA cung cấp cho SP | |
3 | user_id | String | Số CCCD/CMND/Hộ chiếu/Mã số thuế/ của cá nhân/tổ chức muốn đăng nhập | |
4 | serial_number | String |
| Số xê-ri của chứng thư số |
5 | transaction_id | String | Mã giao dịch khởi tạo bởi SP |
Ví dụ tham số đầu vào:
Tham số đầu ra:
STT | Tham số | Kiểu dữ liệu | Chú thích |
1 | status_code | Int | Mã request thành công hoặc mã lỗi tương ứng. VD: 200, 401,403, 500... |
2 | message | String | Thông điệp thành công hoặc thông điệp lỗi tương ứng với mã trạng thái ở status_code. |
3 | cert_id | String | Định danh chứng thư số (còn gọi là cert alias) |
4 | cert_data | String | Raw data chứng thư (dạng base64) |
5 | chain_data | List | List chứng thư, gồm 3 phần tử. Phần tử đầu tiên là chứng thư số người ký, thứ hai là chứng thư số của CA, cuối cùng là chứng thư số root do NEAC cấp. |
6 | serial_number | String | Số xê-ri của chứng thư số |
7 | transaction_id | String | Mã giao dịch khởi tạo bởi SP |
Ví dụ tham số đầu ra:
3.2. API ký số tài liệu
a. Mô tả
- SP gọi CA, cung cấp mã giao dịch (transaction_id)
- SP dùng dữ liệu chứng thư người dùng để tính toán mã băm của tệp cần ký.
- SP gửi dữ liệu file_hash đến CA để thực hiện ký số tài liệu.
- SP sử dụng mã giao dịch để lấy thông tin chữ ký khi cần.
- Trong trường hợp đặc thù cần thiết, SP và CA có thể trao đổi thêm để trả về luôn kết quả ký tại request này (giữ và chờ request).
b. Đặc tả API
Phương thức: POST
Đường dẫn: https://x.x.x.x/sign (x.x.x.x là URL API sẽ do mỗi CA tự quyết định)
Tham số đầu vào:
STT | Tham số | Kiểu dữ liệu | Bắt buộc | Chú thích |
1 | sp_id | String | Tên tài khoản của SP do CA cung cấp | |
2 | sp_password | String | Mật khẩu do CA cung cấp cho SP | |
3 | user_id | String | Số CCCD/CMND/Hộ chiếu/Mã số thuế/ của cá nhân/tổ chức muốn đăng nhập | |
4 | data_to_be_signed | String | Chuỗi biểu diễn của tài liệu được yêu cầu ký số (base64 string với file, hex với hash) | |
5 | doc_id | String | Mã tài liệu yêu cầu ký số (Mã này cần được hiển thị đồng thời tại giao diện của SP và tại giao diện tại ứng dụng của CA khi người dùng thực hiện xác thực yêu cầu ký số) | |
6 | file_type | String | Loại file: xml/json/word/pdf/excel/... | |
7 | sign_type | String | Loại ký số: hash/file | |
8 | serial_number | String |
| Số xê-ri của chứng thư số (trong trường hợp một chủ thể có nhiều chứng thư số) |
9 | time_stamp | String |
| Thời gian người dùng gửi yêu cầu ký số. Định dạng: YYYYMMddHHmmSS |
10 | transaction_id | String | Mã giao dịch khởi tạo bởi SP |
Lưu ý: Truyền data_to_be_signed dạng base64 dung lượng tăng thêm 30%, khuyến nghị sử dụng mã băm (hash) trong việc chuyển yêu cầu ký.
Ví dụ tham số đầu vào:
Tham số đầu ra:
STT | Tham số | Kiểu dữ liệu | Chú thích |
1 | status_code | Int | Mã request thành công hoặc mã lỗi tương ứng. VD: 200, 401, 403, 500... |
2 | message | String | Thông điệp thành công hoặc thông điệp lỗi tương ứng với mã trạng thái ở status_code |
3 | transaction_id | String | Mã giao dịch khởi tạo bởi SP |
4 | doc_id | String | Mã tài liệu yêu cầu ký số (Mã này cần được hiển thị đồng thời tại giao diện của SP và tại giao diện tại ứng dụng của CA khi người dùng thực hiện xác thực yêu cầu ký số) |
5 | signature_value | String | Dữ liệu chữ ký gắn với tài liệu (dạng base64) |
6 | timestamp_signature | String | Chữ ký của CA lên dấu thời gian của giao dịch ký số |
Ví dụ tham số đầu ra:
a. Đối với trường hợp ký không đồng bộ:
b. Đối với trường hợp ký đồng bộ: Khi theo cơ chế đồng bộ (giữ request ký và chờ xác nhận của người dùng) thì CA sẽ trả về kèm theo dữ liệu ký số file ở trường signed_files. Thời gian chờ xác nhận của người dùng phụ thuộc vào chính sách của từng CA. Sau khi hết thời gian chờ xác nhận, phiên giao dịch sẽ bị hủy bởi SP và yêu cầu ký số được xem là không thành công.
3.3. API webhook nhận thông tin ký tài liệu
a. Mô tả
- CA gọi SP theo url đăng ký trước.
- Sau khi CA có kết quả ký số tài liệu, CA sẽ gửi kết quả về cho SP.
- SP gắn chữ ký vào file, trả về cho người dùng, kết thúc luồng ký.
b. Đặc tả API
Phương thức: POST
Đường dẫn: https://x.x.x.x/recv_signature (x.x.x.x là URL API sẽ do mỗi CA tự quyết định)
Tham số đầu vào:
STT | Tham số | Kiểu dữ liệu | Bắt buộc | Chú thích |
1 | sp_id | String | Tên tài khoản của SP do CA cung cấp (SP có thể dùng để phân biệt request của CA nào gửi về) | |
2 | status_code | int | Mã request thành công hoặc mã lỗi tương ứng. VD: 200, 401, 403, 500... | |
3 | message | String | Thông điệp thành công hoặc thông điệp lỗi tương ứng với mã trạng thái ở status_code | |
4 | transaction_id | String | Mã giao dịch khởi tạo bởi SP | |
5 | doc_id | String |
| Mã tài liệu yêu cầu ký số |
6 | signature_value | String |
| Dữ liệu chữ ký gắn với tài liệu (dạng base64) |
7 | timestamp_signature | String |
| Chữ ký của CA lên dấu thời gian của giao dịch ký số |
Ví dụ tham số đầu vào:
Tham số đầu ra:
STT | Tham số | Kiểu dữ liệu | Chú thích |
1 | status_code | Int | Mã request thành công hoặc mã lỗi tương ứng. VD: 200, 401, 403, 500... |
2 | message | String | Thông điệp thành công hoặc thông điệp lỗi tương ứng với mã trạng thái ở status_code |
Ví dụ tham số đầu ra:
3.4. Bảng mã trạng thái
STT | Status_code | Chú thích |
1 | 200 | Thành công |
2 | 400 | Tài liệu không hợp lệ |
3 | 401 | Credentials không hợp lệ |
4 | 403 | Chứng thư bị thu hồi hoặc không rõ định dạng |
5 | 500 | Lỗi hệ thống |
| ... | Các lỗi khác (Neu có) |
- Bảng mã lỗi này tượng trưng cho các nhóm mã trạng thái cơ bản: thành công (mã 2xx, ví dụ 201, 202...), không hợp lệ do phía người dùng (mã 4xx, ví dụ 401, 402...) và lỗi hệ thống (mã 5xx, ví dụ 500, 503...).
- Nếu CA có hệ thống mã trạng thái riêng thì có thể áp dụng hệ thống mã trạng thái đó, nhưng bắt buộc phải có đầy đủ 5 nhóm mã trạng thái cơ bản như trên và phải được công bố cho các bên muốn kết nối.
Trách nhiệm giữa tổ chức cung cấp dịch vụ (SP) và tổ chức cung cấp dịch vụ chứng thực ký số cộng cộng (CA) khi sử dụng giao thức quy định tại hướng dẫn này:
- SP và CA có trách nhiệm thỏa thuận SP_credentials với độ an toàn phù hợp với yêu cầu kỹ thuật được nêu chi tiết ở Phụ lục, quản lý và sử dụng an toàn, bí mật thông tin này.
- SP và CA có trách nhiệm thống nhất về các địa chỉ URL dành cho yêu cầu ký số, mã trạng thái và thông điệp trong trường hợp kết nối thành công cũng như lỗi.
- SP và CA có trách nhiệm thiết lập đường truyền TLS trong việc truyền, nhận dữ liệu, tránh trường hợp bị tấn công dẫn đến lộ, lọt dữ liệu.
- Xác thực và chịu trách nhiệm về thông tin được truyền tải;
- Bảo mật thông tin của người dùng khi nhận được chứng thư số;
- Có phương án ngăn chặn việc lạm dụng giao thức này cho các mục đích khác, bảo vệ quyền lợi người dùng.
- Đảm bảo tính sẵn sàng của dịch vụ ký số để phục vụ nhu cầu của SP.
- Đảm bảo hệ thống ký số đáp ứng các tiêu chuẩn.
YÊU CẦU KỸ THUẬT
STT | Nội dung | Yêu cầu kỹ thuật |
1 | sp_credentials | Chuẩn bị, thực thi và so sánh chuỗi username và password (theo RFC 8265) |
2 | Mã băm (hash) | Mã băm phải đạt được ít nhất độ an toàn theo chuẩn băm SHA (theo RFC 6234) hoặc cao hơn. |
3 | Ký số | Theo Thông tư số 22/2020 của Bộ Thông tin và Truyền thông Quy định về yêu cầu kỹ thuật đối với phần mềm ký số, phần mềm kiểm tra chữ ký số |
4 | TLS | Kết nối đạt chuẩn an toàn tầng giao vận TLS 1.3 (theo RFC 8446) |
5 | Hex | Chuẩn mã hóa base16, base32 và base64 (theo RFC 4648) |
6 | Chứng thư số của người dùng | Chứng thư số đạt chuẩn x509 (theo RFC 5280) |
- 1Quyết định 1166/QĐ-BHXH năm 2020 về ban hành Quy chế Cung cấp, quản lý và sử dụng chứng thư số, dịch vụ chứng thực chữ ký số trong ngành Bảo hiểm xã hội do Tổng giám đốc Bảo hiểm xã hội Việt Nam ban hành
- 2Thông tư 10/2020/TT-NHNN sửa đổi Thông tư 28/2015/TT-NHNN quy định về quản lý, sử dụng chữ ký số, chứng thư số và dịch vụ chứng thực chữ ký số của Ngân hàng Nhà nước
- 3Thông tư 31/2020/TT-BTTTT về Quy chế chứng thực của Tổ chức cung cấp dịch vụ chứng thực chữ ký số quốc gia do Bộ trưởng Bộ Thông tin và Truyền thông ban hành
- 4Hướng dẫn 31/HD-VKSTC năm 2022 thực hiện chữ ký số, xác thực số liệu báo cáo thống kê gửi qua hệ thống truyền số liệu của ngành Kiểm sát nhân dân do Viện kiểm sát nhân dân tối cao ban hành
- 5Công văn 293/BCY-CTSBMTT năm 2023 về cung cấp dịch vụ chứng thực chữ ký số chuyên dùng Chính phủ sử dụng giải pháp ký số tập trung do Ban Cơ yếu Chính phủ ban hành
- 6Công văn 1043/BTTTT-CĐSQG năm 2024 tiếp tục triển khai một số giải pháp thúc đẩy hiệu quả cung cấp và sử dụng dịch vụ công trực tuyến do Bộ Thông tin và Truyền thông ban hành
- 7Nghị định 48/2024/NĐ-CP sửa đổi Nghị định 130/2018/NĐ-CP hướng dẫn Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số
- 1Luật Giao dịch điện tử 2005
- 2Nghị định 17/2017/NĐ-CP quy định chức năng, nhiệm vụ, quyền hạn và cơ cấu tổ chức của Bộ Thông tin và Truyền thông
- 3Nghị định 130/2018/NĐ-CP hướng dẫn Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số
- 4Thông tư 16/2019/TT-BTTTT quy định về Danh mục tiêu chuẩn bắt buộc áp dụng về chữ ký số và dịch vụ chứng thực chữ ký số theo mô hình ký số trên thiết bị di động và ký số từ xa do Bộ trưởng Bộ Thông tin và Truyền thông ban hành
- 5Thông tư 22/2020/TT-BTTTT quy định về yêu cầu kỹ thuật đối với phần mềm ký số, phần mềm kiểm tra chữ ký số do Bộ Thông tin và Truyền thông ban hành
- 6Quyết định 1166/QĐ-BHXH năm 2020 về ban hành Quy chế Cung cấp, quản lý và sử dụng chứng thư số, dịch vụ chứng thực chữ ký số trong ngành Bảo hiểm xã hội do Tổng giám đốc Bảo hiểm xã hội Việt Nam ban hành
- 7Thông tư 10/2020/TT-NHNN sửa đổi Thông tư 28/2015/TT-NHNN quy định về quản lý, sử dụng chữ ký số, chứng thư số và dịch vụ chứng thực chữ ký số của Ngân hàng Nhà nước
- 8Thông tư 31/2020/TT-BTTTT về Quy chế chứng thực của Tổ chức cung cấp dịch vụ chứng thực chữ ký số quốc gia do Bộ trưởng Bộ Thông tin và Truyền thông ban hành
- 9Hướng dẫn 31/HD-VKSTC năm 2022 thực hiện chữ ký số, xác thực số liệu báo cáo thống kê gửi qua hệ thống truyền số liệu của ngành Kiểm sát nhân dân do Viện kiểm sát nhân dân tối cao ban hành
- 10Công văn 293/BCY-CTSBMTT năm 2023 về cung cấp dịch vụ chứng thực chữ ký số chuyên dùng Chính phủ sử dụng giải pháp ký số tập trung do Ban Cơ yếu Chính phủ ban hành
- 11Công văn 1043/BTTTT-CĐSQG năm 2024 tiếp tục triển khai một số giải pháp thúc đẩy hiệu quả cung cấp và sử dụng dịch vụ công trực tuyến do Bộ Thông tin và Truyền thông ban hành
- 12Nghị định 48/2024/NĐ-CP sửa đổi Nghị định 130/2018/NĐ-CP hướng dẫn Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số
Quyết định 769/QĐ-BTTTT năm 2022 hướng dẫn kết nối ứng dụng sử dụng chữ ký số với tổ chức cung cấp dịch vụ chứng thực chữ ký số công cộng đối với hình thức ký số từ xa do Bộ trưởng Bộ Thông tin và Truyền thông ban hành
- Số hiệu: 769/QĐ-BTTTT
- Loại văn bản: Quyết định
- Ngày ban hành: 27/04/2022
- Nơi ban hành: Bộ Thông tin và Truyền thông
- Người ký: Nguyễn Huy Dũng
- Ngày công báo: Đang cập nhật
- Số công báo: Đang cập nhật
- Ngày hiệu lực: Kiểm tra
- Tình trạng hiệu lực: Kiểm tra