Chức năng xem chứng thư

Một phần của tài liệu Ký số từ xa và ứng dụng (Trang 72)

Mô tả. Chức năng này cho phép người dùng xem danh sách và thông tin chi tiết chứng thư.

Điều kiện tiên quyết. Người dùng phải đăng nhập vào hệ thống.

Trình tự thực hiện.

1. Từ giao diện chính, người dùng mở màn hình Cá nhân/Chứng thư.

2. Hệ thống hiển thị danh sách các chứng thư. 3. Người dùng nhấn vào một chứng thư bất kỳ. 4. Hệ thống hiển thị thông tin chi tiết chứng thư đó.

5. Use case kết thúc.

72 3.3 Thiết kế cơ sở d liu 3.3.1 Mô hình thc th liên kết Hình 3.5 Mô hình thực thể liên kết 3.3.2 Bng users Bảng 3.2 Bảng users STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả 1 id bigint Khóa chính Mã người dùng 2 usertype varchar Not

null

Loại định danh người dùng

3 username varchar Not null

73 4 password varchar Not

null

Chuỗi ký tự bí mật được ghi nhớ bởi người dùng cuối 5 access_token varchar Mã truy cập dịch vụ tồn tại

trong thời gian ngắn được sử

dụng để xác thực các yêu cầu dịch vụ web tiếp theo trong cùng phiên làm việc

6 expires_at datetime Thời điểm access_token hết hạn sử dụng

7 remaining_counter int Not null

Số lần đăng nhập sai còn lại

trước khi bị khóa tài khoản 8 temp_lockout_until datetime Thời điểm tài khoản được mở

khóa 9 full_name varchar Not

null

Tên đầy đủ của người dùng 10 phone varchar Not

null

Sốđiện thoại của người dùng

11 email varchar Not null

Email của người dùng

12 oauth2 varchar Thông tin OAUTH2 của tài khoản

13 created_at timestamp Thời điểm tạo tài khoản 14 updated_at timestamp Thời điểm cập nhật thông tin

tài khoản gần nhất 3.3.3 Bng devices Bảng 3.3 Bảng devices STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả

1 device_uuid varchar Khóa chính

74 2 user_id bigint Khóa

ngoại

Mã người dùng 3 lang varchar Ngôn ngữ của thiết bị

4 otp_encrypted varchar Mã hóa base64 của OTP

đã được mã hóa bởi KAK.PublicKey

5 access_token varchar Mã truy cập dịch vụ tồn tại trong thời gian ngắn

được sử dụng để xác thực các yêu cầu dịch vụ web tiếp theo trong cùng phiên làm việc

6 expires_at datetime Thời điểm access_token hết hạn sử dụng

7 remember_me int Not null refresh_token có hiệu lực hay không

8 refresh_token varchar Mã làm mới dài hạn được sử dụng để xác thực lại

người dùng trong các phiên làm việc sau

9 remaining_counter int Not null Số lần đăng nhập sai còn lại trước khi bị khóa thiết bị

10 temp_lockout_until datetime Thời điểm thiết bị được mở khóa

11 change_device int Not null Đã thay đổi thiết bị hay thiết bịđầu tiên

12 os_type varchar Loại hệ điều hành của thiết bịdi động

13 os_version varchar Phiên bản hệ điều hành của thiết bị

75 14 model varchar Mẫu thiết bịdi động 15 tse_version varchar Not null Phiên bản của ứng dụng

TSE

16 firebase_id varchar Not null Mã Firebase của thiết bị

di động, giá trị này được lấy từ dịch vụ Firebase dùng cho thông báo đẩy 17 client_uuid varchar Not null Thông tin của thiết bị di

động, có thê là IMEI hoặc MAC hoặc một chuỗi được sinh ngẫu nhiên bởi ứng dụng TSE hoặc tổ hoặc của chúng 18 kak_public_key varchar Not null Mã hóa base64 của khóa

công khai của khóa xác thực

19 kak_private_encrypted varchar Not null Mã hóa base64 của khóa bí mật của khóa khóa xác thực

20 recovery_code varchar Mã phục hồi, nếu có sẽ được máy chủ gửi tới

người dùng thông qua email

21 created_at timestamp Thời điểm tạo thiết bị

22 updated_at timestamp Thời điểm cập nhật thông tin thiết bị gần nhất 3.3.4 Bng inactive_devices Bảng 3.4 Bảng inactive_devices STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả

76 1 device_uuid varchar Khóa

chính

Mã thiết bị

2 user_id bigint Khóa ngoại

Mã người dùng

3 activation_code varchar Not null Mã kích hoạt thiết bị được gửi đến người dùng qua email

4 activation_token varchar Mã truy cập dịch vụ tồn tại trong thời gian ngắn được sử dụng để xác thực các yêu cầu kích hoạt thiết bị

5 expires_at datetime Thời điểm activation_token hết hạn sử dụng

6 created_at timestamp Thời điểm tạo thiết bị

7 updated_at timestamp Thời điểm cập nhật thông tin thiết bị gần nhất 3.3.5 Bng credentials Bảng 3.5 Bảng credentials STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả 1 id bigint Khóa chính Mã chứng thư

2 user_id bigint Khóa

ngoại

Mã người dùng 3 cert_status varchar Not

null

Trạng thái của chứng

thư

4 cert_certificates varchar Not null

Một hoặc nhiều mã hóa base64 của các

77 chứng thư X.509v3 từ chuỗi chứng thư.

5 cert_issuer_dn varchar Not null Issuer Distinguished Name từ chứng thư X.509v3 dưới dạng chuỗi ký tự được mã hóa UTF-8.

6 cert_serial_number varchar Not null

Serial Number từ

chứng thư X.509v3

được biểu diễn dưới dạng chuỗi hexa. 7 cert_thumbprint varchar Not

null

Dấu tay của chứng

thư. Giá trị này được tính bằng cách băm

biểu diễn nhị phân của chứng thư được mã hóa. Thuật toán SHA-256 thường

được sử dụng đểbăm

dữ liệu này. 8 cert_subject_dn varchar Not

null Subject Distinguished Name từ chứng thư X.509v3 dưới dạng chuỗi ký tự được mã hóa UTF-8.

9 cert_valid_from datetime Not null

Ngày bắt đầu có hiệu lực từ chứng thư X.509v3 dưới dạng chuỗi ký tự.

78 10 cert_valid_to datetime Not

null

Ngày hết hiệu lực từ

chứng thư X.509v3

dưới dạng chuỗi ký tự.

11 cert_profile_name varchar Not null

Tên hồsơ của chứng

thư.

12 cert_profile_desc varchar Mô tả hồ sơ chứng

thư.

13 cert_purpose varchar Mục đích sử dụng của chứng thư.

14 shared_mode varchar Not null

Chếđộ chia sẻ nào sẽ được sử dụng trong ký số từ xa.

15 created_rp varchar Not null

Tên của Relying Party. Nó ám chỉ

rằng chứng thư đã được tạo bởi RP đó.

16 multisign int Not

null

Một số bằng hoặc lớn

hơn 1đại diện cho số lượng chữ ký tối đa

có thểđược tạo bằng chứng thư này với một yêu cầu ủy quyền duy nhất. 17 auth_modes varchar Not

null

Chỉ định một trong các chếđộ ủy quyền. 18 auth_mode varchar Not

null Một giá trị trong các giá trị của auth_modes, là chế độ ủy quyền được kích hoạt lúc này. Để

79

thay đổi phải do quản trị viên RRSP thực hiện.

19 scal int Not

null Các giá trị1: Mã băm dùng để ký không được liên kết với dữ liệu kích hoạt chữ ký; 2: Mã băm dùng để ký được liên kết với dữ liệu kích hoạt chữ ký. 20 contract_expiration_date datetime Not

null

Ngày hết hạn hợp

đồng. 21 remaining_signing_counter int Not

null

Sốlượt ký còn lại của chứng thư này.

22 auth_email varchar Not null

Email ủy quyền.

23 auth_phone varchar Not null

Số điện thoại ủy quyền.

24 default_passphrase int Not null

True nếu passphrase là mặc định và người dùng phải thay đổi

passphrase trước khi thực hiện mã hóa. 25 kak_changed int Not

null

Cờ ám chỉ trạng thái của KAK sẽthay đổi. 26 created_at timestamp Thời điểm tạo chứng

thư

27 updated_at timestamp Thời điểm cập nhật thông tin chứng thư

80 3.3.6 Bng transactions Bảng 3.6 Bảng transactions STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả 1 id bigint Khóa chính Mã giao dịch

2 credential_id bigint Khóa ngoại

Mã chứng thư

3 notification_message varchar Tin nhắn được hiển thịởthông báo đẩy. 4 message_caption varchar Chú thích của tin

nhắn.

5 message varchar Văn bản được hiển thị bên cạnh Tên dịch vụvà trước khi yêu cầu mã PIN xác thực.

6 logo_uri varchar URI của logo tùy chọn để hiển thị

trong trình xác thực. 7 bg_image_uri varchar URI của hình nền để

hiển thị trong trình xác thực.

8 rp_icon_uri varchar URI của biểu tượng Relying Party tùy chọn được hiển thị

trong trình xác thực.

9 rp_name varchar Not

null

Tên tùy chỉnh của Relying Party được

81 hiển thị trong trình xác thực.

10 confirmation_policy varchar Not null Chính sách xác nhận, một trong "PIN", "FINGER- PRINT", "TAP", "SWIPE", "IRIS".

11 vc_enabled int Not

null

Bật

VerificationCode. Giá trị mặc định là true.

12 ac_enabled int Not

null

Bật AuthorizeCode. Nếu giá trị là true, nó yêu cầu người dùng cuối nhắc lại AC mỗi khi lấy trạng thái.

13 num_signatures int Not null

Số lượng chữ ký cho ủy quyền một lần.

14 doc_digests_hashes text Một hoặc nhiều giá trịbămđược mã hóa base64 sẽ được ký.

Nó được yêu cầu khi SCAL là cấp 2. 15 doc_digetst_hash_algo_oid varchar Not

null

OID của thuật toán

băm dùng để tính

các mã băm của tài liệu.

16 sca_identity varchar Not null

82 17 auth_data_hash_algo_oid varchar Not

null

Thuật toán băm.

Mặc định SHA256. 18 auth_data_sign_algo varchar Not

null

Thành phần chỉ định OID thuật toán

được sử dụng để ký. 19 auth_data_sign_algo_params varchar Mã hóa base64 của tham số chữ ký ASN.1 mã hóa DER, nếu thuật toán chữ ký yêu cầu. 20 auth_data_challenge varchar Not

null

Mã hóa base64 của chuỗi thử thách.

21 type varchar Not

null

Loại giao dịch, có ba giá trị "SIGN",

"SYNC" và "LOGIN".

22 expires_at datetime Not null

Ngày giờ yêu cầu giao dịch hết hạn. 23 sign_algo varchar Not

null

Thành phần chỉ định OID thuật toán

được sử dụng để ký. 24 sign_algo_params varchar Mã hóa base64 của tham số chữ ký ASN.1 mã hóa DER, nếu thuật toán chữ ký yêu cầu.

25 status varchar Not

null

Trạng thái hiện tại của yêu cầu ký, một trong "WAITING, SIGNED,

83 CANCELED,

EXPIRED".

26 created_at timestamp Thời điểm tạo giao dịch

27 updated_at timestamp Thời điểm cập nhật thông tin giao dịch gần nhất

3.4 Thiết kế dch v Web

3.4.1 API xác thc

Chức năng activate cho phép thiết bị di động ràng buộc với tài khoản của

người dùng cuối (chủ sở hữu). Chức năng này có bốn bước:

• login: Đăng nhập với tên tài khoản và mật khẩu để lấy access-token.

• retrieveActivationCode: Sử dụng access-token để lấy mã kích hoạt qua email hoặc SMS.

• initialize: Thiết bị TSE gửi mã kích hoạt đến endpoint. Endpoint sẽ phản hồi activation-token lại cho thiết bị TSE.

• sendDevice: Sử dụng activation-token để cập nhật thông tin thiết bị.

activate/login

Chức năng này nhận access-token dùng để truy xuất mã kích hoạt.

Bảng 3.7 API yêu cầu activate/login

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 usertype string Có Giá trị luôn là "USERNAME".

84 3 password string Có Giá trị bí mật được ghi nhớ

bởi người dùng cuối.

Bảng 3.8 API phản hồi activate/login

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 error int Có Mã mô tả kết quả. 2 errorDescription string Có Mô tả chi tiết kết quả. 3 accessToken string Có Mã truy cập dịch vụ tồn tại

trong thời gian ngắn được sử dụng để xác thực các yêu cầu API tiếp theo trong cùng một phiên làm việc.

activate/retrieveActivationCode

Chức năng này yêu cầu RSSP gửi mã kích hoạt cho người dùng cuối thông qua email hoặc SMS. Người dùng cuối phải đăng ký sử dụng TSE trước, việc đăng

ký thực hiện trong BackOffice.

TSE Client phải gửi access-token nhận được từ activate/login trong HTTP header với tên: "Authorization" bắt đầu bằng "Bearer".

Bảng 3.9 API yêu cầu activate/retrieveActivationCode

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

Bảng 3.10 API phản hồi activate/retrieveActivationCode

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

85 1 error int Có Mã mô tả kết quả.

2 errorDescription string Có Mô tả chi tiết kết quả. 3 deviceUUID string Có Định danh của thiết bị TSE. 4 changeDevice bool Có true nếu thay đổi thiết bị, false nếu kích hoạt thiết bị đầu tiên.

activate/initialize

Chức năng này để khởi tạo kích hoạt, TSE gửi mã kích hoạt đến máy chủ

RSSP.

Bảng 3.11 API yêu cầu activate/initialize

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 deviceUUID string Có Định danh của thiết bị TSE,

nhận trong

getActivationCode.

2 activationCode string Có Mã kích hoạt, giá trị này

được gửi bởi RSSP tới người dùng cuối qua email hoặc SMS.

Bảng 3.12 API phản hồi activate/initialize

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 error int Có Mã mô tả kết quả. 2 errorDescription string Có Mô tả chi tiết kết quả. 3 activationToken string Có Mã truy cập dịch vụ tồn tại

trong thời gian ngắn được sử dụng để xác thực các

86 yêu cầu API tiếp theo trong cùng một phiên làm việc.

activate/sendDevice

TSE client phải gửi activationToken nhận được từ activate/initialize trong HTTP header với tên: "Authorization" bắt đầu bằng "Bearer".

TSE client phải tạo KAK là cặp khóa RSA. Nếu người dùng cuối đồng ý sao

lưu KAK thì TSE client phải gửi kakPrivateEncrypted trong phần nội dung yêu cầu, kakPrivateEncrypted được mã hóa bằng RECOVERY CODE và phải có checksum (ví dụ: HMAC256) để TSE client có thể kiểm tra tính toàn vẹn của KAK khi khôi phục KAK.

Bảng 3.13 API yêu cầu activate/sendDevice

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 osType string Có Loại hệđiều hành của thiết bị di động, một trong ba giá trị

"IOS", "ANDROID" và "WINDOWS_PHONE".

2 osVersion string Có Phiên bản hệ điều hành của thiết bị di động. Ví dụ: 13.0.1.

3 model string Mẫu của thiết bịdi động. Thí dụ: Vsmart Joy 1+.

4 tseVersion string Phiên bản của ứng dụng TSE.

5 firebaseID string Có Mã Firebase của thiết bị di

động, giá trị này được truy xuất từ dịch vụ Firebase,

được sử dụng để đẩy thông báo.

87 6 clientUUID string Có Thông tin của thiết bị di

dộng, có thể là IMEI hoặc MAC hoặc được sinh ngẫu nhiên bởi TSE client hoặc tổ

hợp của tất cả chúng.

7 kakPublicKey string Có Mã hóa base64 của khóa công khai của khóa ủy quyền.

8 kakPrivateEncrypted string Mã hóa base64 của khóa bí mật của khóa ủy quyền. 9 rememberMe bool Yêu cầu refresh-token từ

TSE, giá trị mặc định là false.

Bảng 3.14 API phản hồi activate/sendDevice

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 error int Có Mã mô tả kết quả. 2 errorDescription string Có Mô tả chi tiết kết quả. 3 accessToken string Có Mã truy cập dịch vụ tồn tại

trong thời gian ngắn được sử dụng để xác thực các yêu cầu API tiếp theo trong cùng một phiên làm việc.

4 ownerInfo/fullName string Có Tên đầy đủ của người dùng.

5 ownerInfo/phone string Có Số điện thoại của người dùng.

88

login

Chức năng này truy xuất token dùng cho các yêu cầu API tiếp theo trong cùng phiên làm việc.

Bảng 3.15 API yêu cầu login

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 usertype string Có Giá trị luôn là "DEVICE_UUID".

2 username string Có Device UUID được trả về bởi

RSSP trong activate/retrieveActivationCode.

3 password string Có Giá trị bí mật được ghi nhớ bởi

người dùng cuối.

4 rememberMe bool Yêu cầu refresh-token từ TSE, giá trị mặc định là false.

Bảng 3.16 API phản hồi login

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 error int Có Mã mô tả kết quả. 2 errorDescription string Có Mô tả chi tiết kết quả. 3 accessToken string Có Mã truy cập dịch vụ tồn tại

trong thời gian ngắn được sử dụng để xác thực các yêu cầu API tiếp theo trong cùng một phiên làm việc.

89

revoke

Chức năng này thu hồi access-token hoặc refresh-token khi người dùng đăng

xuất trên TSE client. TSE client phải gửi access-token nhận được từ login trong HTTP header với tên: "Authorization" bắt đầu bằng "Bearer".

Bảng 3.17 API yêu cầu revoke

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

Bảng 3.18 API phản hồi revoke

Các thuộc tính phản hồi

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 error int Có Mã mô tả kết quả. 2 errorDescription string Có Mô tả chi tiết kết quả.

updateAccount

Chức năng này cập nhật tên đầy đủ và/hoặc email của người dùng. TSE client phải gửi access-token nhận được từ login trong HTTP header với tên: "Authorization" bắt đầu bằng "Bearer".

Bảng 3.19 API yêu cầu updateAccount

Các thuộc tính yêu cầu

STT Tên thuộc tính Kiểu dữ

liệu

Bắt

buộc Mô tả

1 fullName string Tên đầy đủ của người dùng. 2 email string Email của người dùng.

Bảng 3.20 API phản hồi updateAccount

Một phần của tài liệu Ký số từ xa và ứng dụng (Trang 72)

Tải bản đầy đủ (PDF)

(115 trang)