Tải bản đầy đủ (.doc) (28 trang)

Tiểu luận môn an toàn bảo mật thông tin: TÌM HIỂU HẠ TẦNG KHÓA CÔNG KHAI PKI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (600.5 KB, 28 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Website: itf.ud.edu.vn, E-mail:

TIỂU LUẬN MÔN HỌC
AN TOÀN THÔNG TIN MẠNG

NGÀNH KHOA HỌC MÁY TÍNH
ĐỀ TÀI :

TÌM HIỂU HẠ TẦNG KHÓA CÔNG KHAI PKI
(PUBLIC KEY INFRASTRUCTURE) VÀ ỨNG DỤNG
GVHD :

TS. Nguyễn Tấn Khôi

HVTH :

1. Trần Hữu Phước
2. Hoàng Tiến Sơn

Lớp Cao học KHMT Khóa 31 (2015 − 2017)

ĐÀ NẴNG, 5/2016


MỤC LỤC
Chương 1: Giới Thiệu..................................................................................................1
1.1. Hạ tầng khóa công khai (PKI).......................................................................................................1


1.1.1. PKI là gì...........................................................................................................................1
1.1.2. Cở sở hạ tầng khóa công khai..........................................................................................1
1.2. Một vài kiến trúc và công nghệ PKI hiện hành.............................................................................3
1.2.1. Một số ứng dụng..............................................................................................................3
1.2.2. Một số hệ thống PKI........................................................................................................3

Chương 2: Xây dựng hạ tầng khóa công khai(PKI), vấn đề cấp phát chứng thực
số và ứng dụng trong thương mại điện tử..................................................................4
2.1. Hàm băm mật mã học..................................................................................................................4
2.1.1. Hàm băm..........................................................................................................................4
2.1.2. Hàm băm mật mã học......................................................................................................4
2.1.3. Đảm bảo tính toàn vẹn dữ liệu.........................................................................................4
2.1.4. Một số hàm băm thông dụng............................................................................................4
2.2. Mã hóa thông tin.........................................................................................................................6
2.3. Chữ ký số.....................................................................................................................................7
2.3.1. Chữ ký số.........................................................................................................................7
2.3.2. Tạo và kiểm tra chữ ký số................................................................................................7
2.4. Chứng thực số............................................................................................................................11
2.5. Cấu trúc phân tầng của hệ thống PKI.........................................................................................12
2.6. Cấp phát và xác thực chứng thực số..........................................................................................13
2.6.1. Cấp phát chứng thực số..................................................................................................13
2.6.2. Xác thực chứng thực số..................................................................................................14
2.7. Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực.................................................14
2.7.1. Mã hóa...........................................................................................................................14
2.7.2. Chống giả mạo...............................................................................................................14
2.7.3. Xác thực.........................................................................................................................14
2.7.4. Chống chối bỏ nguồn gốc..............................................................................................15
2.7.5. Chữ ký điện tử................................................................................................................15
2.7.6. Bảo mật website.............................................................................................................15
2.7.7. Đảm bảo phần mềm.......................................................................................................15

2.8. OpenCA hệ thống hạ tầng khóa công khai trong thực tế...........................................................16
2.8.1. Định nghĩa :...................................................................................................................16
2.8.2. Đánh giá về hệ OpenCA................................................................................................16
2.9. Các ứng dụng của PKI trong thực tiễn........................................................................................16


2.9.1. Mô hình phân cấp thứ bậc trên - dưới............................................................................16
2.9.2. Mô hình chứng thực chéo...............................................................................................17
2.9.3. Mô hình CA cầu nối.......................................................................................................17
2.9.4. Các sản phẩm.................................................................................................................17
2.9.5. Định hướng nghiên cứu phục vụ hệ thống PKI chuyên dùng Chính phủ........................17

Chương 3: Triển khai cài đặt ứng dụng OpenSSL..................................................19
3.1. Triển khai cài đặt........................................................................................................................19
3.2. Kịch bản sử dụng opensl để mã hóa bản tin và file....................................................................19
3.2.1. Mã hóa thông điệp với cú pháp......................................................................................19
3.2.2. Giải mã bằng cú pháp.....................................................................................................20
3.2.3 Khóa công khai và khóa cá nhân.....................................................................................20

KẾT LUẬN................................................................................................................22
1. Về mặt lý thuyết............................................................................................................................22
2. Về mặt thực tiễn...........................................................................................................................22
3. Hướng phát triển..........................................................................................................................22


DANH MỤC TỪ VIẾT TẮT

PKI

Public Key Infrastructure


CA

Certificate Authority

RSA

Rivest Shamir Adleman

DSA

Digital Signature Algorithm

MD5

Message Digest 5

RA

Registration Authority

SHA

Secure Hash Algorithm

SHS

Secure Hash Standard

H


Hash function

RFC

Request For Comments


DANH MỤC HÌNH VẼ VÀ BẢNG
Hình 1.1: Mô hình xây dựng PKI cơ bản
Hình 1.2: Sơ đồ gửi và nhận tin nhắn sử dụng PKI
Bảng 1.3: Bảng mô tả chi tiết các hoạt động của PKI
Bảng 2.1 : Đặc điểm của các thuật toán băm SHA
Bảng 2.2 : So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của
RSA với DSA
Hình 2.3 : Thời gian tạo khóa của RSA và DSA
Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA
Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA
Hình 2.6 : Mô hình phân cấp
Hình 3.1 : Cài đặt Opensl
Hình 3.2 : Mã hóa thông điệp
Hình 3.3 : Giải mã thông điệp
Hình 3.4 : Tạo khóa cá nhân
Hình 3.5 : Tạo khóa công khai từ khóa cá nhân


Chương 1: Giới Thiệu
1.1. Hạ tầng khóa công khai (PKI)
1.1.1. PKI là gì
- PKI: viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa công

khai. Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số)
cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ
chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công
khai/khóa bí mật.
Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa có thể
thông qua internet. Tuy nhiên, mặt khác khó mà bảo đảm rằng những giao dịch trên
Internet luôn an toàn. Cơ sở hạ tầng khóa công khai (PKI) đã đáp ứng những yêu cầu
cấp thiết đó. Dựa trên cách sử dụng của chìa khóa mật mã công cộng và chữ ký điện
tử, một PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp
ứng nhu cầu bảo mật của người sử dụng.
1.1.2. Cở sở hạ tầng khóa công khai

Hình 1.1: Mô hình xây dựng PKI cơ bản
- PKI cung cấp một cặp chìa khóa, trong đó có một chìa là chìa khóa công khai
(Public key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Private key)
mà người sử dụng phải giữ bí mật. Hai chìa khóa này có liên quan mật thiết đến nhau,
sao cho một thông điệp được mã hóa bởi một chìa khóa mật mã công khai thì chỉ giải
mã được bởi một chìa khóa bí mật tương ứng.
- Ví dụ về mô hình xử dụng xác thực :
Giả sử có 2 người dùng Bob và Alice muốn chuyển thư điện tử cho nhau để
đảm bảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI. Các hoạt động được mô
tả như hình 1.1

1


Hình 1.2. Sơ đồ gửi và nhận tin nhắn sử dụng PKI
Chi tiết các hoạt động của PKI được mô tả qua bảng 1.3
Hành động


Trạng thái của hệ thống PKI

Bob muốn chuyển một thư điện tử đến cho Phần mềm PKI dùng chìa khóa cá
Alice, với yêu cầu rằng giao dịch phải chứng nhân của Bob tạo ra một chữ ký điện
minh được chính anh đã gởi nó đi và nội tử cho bức thư
dung bức thư không bị thay đổi.
Bob muốn chắc chắn rằng không ai ngoài Phần mềm PKI của Bob dùng chìa
Alice đọc được bức thư này
khóa công cộng của Alice để mã hóa
thông điệp của Bob.
Alice muốn đọc thư do Bob gởi

Phần mềm PKI dùng chìa khóa cá
nhân của Alice để để giải mã thông
điệp.

Alice muốn kiểm chứng rằng chính Bob đã Phần mềm PKI của Alice dùng chìa
gởi đi thông điệp đó và nội dung thông điệp khóa công cộng của Bob để kiểm
không bị chỉnh sửa.
chứng chữ ký điện tử của anh ta.
Bảng 1.3: Bảng mô tả chi tiết các hoạt động của PKI
2


1.2. Một vài kiến trúc và công nghệ PKI hiện hành
1.2.1. Một số ứng dụng
- Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ
giữa khóa và định dạng người dùng. Nhờ vậy người dùng có thể sử dụng trong một số
ứng dụng như:
+ Mã hoá Email hoặc xác thực người gửi Email (OpenPGP hay S/MIME).

+ Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc mã hoá
XML* khi văn bản được thể hiện duới dạng XML).
+ Xác thực người dùng ứng dụng (Đăng nhập bằng thẻ thông minh - smartcard,
nhận thực người dùng trong SSL).
+ Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL):
trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng.
1.2.2. Một số hệ thống PKI
- Dưới đây là danh sách một số hệ thống PKI, trong đó một số nhà cung cấp
chứng thực số hàng đầu (ví dụ VeriSign) không được liệt kê vì các phần mềm của họ
không được công bố công khai:
+ Hệ thống quản lý chứng thực Red Hat
+ Cơmputer Associate eTrust PKI
+ Microsoft
+ OpenCA (Một mô hình PKI mã nguồn mở)
+ RSA Security
+ IDX-PKI
+ Simple CA

3


Chương 2: Xây dựng hạ tầng khóa công khai(PKI), vấn đề cấp
phát chứng thực số và ứng dụng trong thương mại điện tử
2.1. Hàm băm mật mã học
2.1.1. Hàm băm
Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trị băm tương ứng
với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đoạn tin nhắn...). Giá trị băm đóng
vai trò gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận
hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giải thuật để giảm
thiểu sự đụng độ đó. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí

tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm
nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn).
2.1.2. Hàm băm mật mã học
Trong ngành mật mã học, một hàm băm mật mã học (tiếng Anh: Cryptographic
hash function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc
sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn như chứng thực
(authentication) và kiểm tra tính nguyên vẹn của thông điệp (message integrity). Một
hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra
kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông điệp
(message digest) hoặc chữ ký số (digital fingerprint).[4]
2.1.3. Đảm bảo tính toàn vẹn dữ liệu
Hàm băm mật mã học là hàm bam và có tính chất là hàm 1 chiều. Từ khối dữ
liệu hay giá trị băm đầu vào chỉ có thể đưa ra 1 giá trị băm duy nhất. Như chúng ta đã
biết đối với tính chất của hàm 1 chiều. Một người nào đó dù bắt được giá trị băm họ
cũng không thể suy ngược lại giá trị, đoạn tin nhắn băm khởi điểm.
- Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi
tìm một khối dữ liệu trong một tập hợp. Giá trị băm đóng vai trò gần như một khóa để
phân biệt các khối dữ liệu
Giá trị đầu vào(tin nhắn, dữ liệu...) bị thay đổi tương ứng giá trị băm cũng bị
thay đổi. Do vậy nếu 1 kẻ tấn công phá hoại, chỉnh sửa dữ liệu thì server có thể biết
ngay lập tức.
2.1.4. Một số hàm băm thông dụng
2.1.4.1. Thuật toán hàm băm MD5
a. Thuật toán hàm băm MD5
- MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng
phổ biến, được thiết kể bởi Giáo sư Ronald L. Rivest tại trường MIT vào năm 1991 để
thay thế cho hàm băm trước đó là MD4 (1990). Là một chuẩn Internet (RFC 1321),
MD5 đã được dùng trong nhiều ứng dụng bảo mật và cũng được dùng phổ biến để
kiểm tra tính toàn vẹn của tập tin. Cũng như các hàm băm khác như MD4 và SHS
(Secure Hash Standard), MD5 là phương pháp có ưu điểm tốc độ xử lý rất nhanh, thích

hợp với các thông điệp dài và cho ra giá trị băm dài 128 bit.

4


- Trong MD5, thông điệp ban đầu X sẽ được mở rộng thành dãy bit X có độ dài
là bội của 512. Dãy bit X gồm các thành phần được sắp thứ tự như sau: Dãy bit X ban
đầu, một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng là bội của 512), dãy
64 bit 1 biểu diễn chiều dài của thông điệp. Đơn vị xử lý trong MD5 là các từ 32-bit,
nên dãy bit X ở trên sẽ được biểu diễn thành dãy các từ X[i] 32-bit sau:
X=X[0] X[l] X[2] .. ,X[N-1] , với N là bội của 16.[5]
b. Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4
- Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4
để tăng mức độ an toàn.
- Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân biệt, trong
khi MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi.
- Hàm G ở chu kỳ 2 của MD4: G(X,Y,Z) = ((X A Z) V (X A Y) V (Y AZ))
được thay thế bằng G(X,Y,Z) = (XAZ) V (YA(-,Z)) để giảm tính đối xứng.
- Mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biến
đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche).
- Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ được tối ưu hóa nhằm tăng
tốc độ hiệu ứng lan truyền. Ngoài ra, mỗi chu kỳ sử dụng 4 hệ số dịch chuyển khác
nhau.
- Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằng
phương pháp MD4 có vẻ không an toàn. Den Boer và Bosselaers đã chỉ ra các điểm
yếu trong MD4 trong một bài báo được đăng vào năm 1991 và một tấn công xung đột
đầu tiên được tìm thấy bởi Han Dobbertin vào năm 1996 .
- Tuy nhiên, các nỗ lực tấn công, phân tích của các nhà nghiên cứu cho thấy
MD5 cũng không còn an toàn và cần được thay thế bằng một thuật toán băm khác như
các công bố của Den Boer và Bosselaers năm 1993; của Hans Dobbertin năm 1996;

của nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo ngày
19/8/2004; của Arjen Lenstra, Xiaoyun Wang, và Benne de Weger ngày 1/3/2005; và
của Vlastimil Klima, ...
2.1.4.2. Chuẩn băm an toàn SHS
- SHS (Secure Hash Standard) là chuẩn gồm tập hợp các thuật toán băm mật mã
an toàn (Secure Hash Algorithm - SHA) như SHA-1, SHA-224, SHA- 256, SHA-384,
SHA-512 doNIST2 vàNSA3 xây dựng.
- Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên cùng cơ sở với
phương pháp MD4 và MD5. Tuy nhiên, phương pháp SHA-1 sử dụng trên hệ thống
Big-endian5 thay vì Little-endian6 như phương pháp MD4 và MD5. Ngoài ra, hàm
băm SHA-1 tạo ra thông điệp rút gọn kết quả có độ dài 160 bit nên thường được sử
dụng
- Phương pháp SHA-1 giống với MD5 (cải tiến từ MD4) nhưng thông điệp tóm
tắt được tạo ra có độ dài 160 bit. Dưới đây là một số điểm so sánh giữa MD5 và SHA1:
+ Giống như MD5, SHA-1 cũng thêm chu kỳ thứ 4 để tăng mức độ an toàn cho
thuật toán. Tuy nhiên, chu kỳ 4 của SHA-1 sử dụng lại hàm f của chu kỳ thứ 2.
5


+ Trong SHA-1, 20 bước biến đổi trong cùng một chu kỳ sử dụng cùng một
hàng số K[t] . Trong khi đó, mỗi bước biến đổi trong cùng một chu kỳ của MD5 sử
dụng các hằng số khác nhau.
+ So với MD4, hàm G trong MD5 được thay thế thành hàm mới để làm giảm
tính đối xứng. Trong khi SHA-1, hàm G trong SHA-1 vẫn giữ lại hàm G của MD4.
+ Cả MD5 và SHA-1, mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết
quả của biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền.
Kích thuớc tinh theo bit

Số


Thuật

Kết

toán

quả

Thông
chu
Khối điệp tối Từ
kỳ
thái
đa

SHA-0

160

160

512

264 - 1 32

80

SHA-1

160


160

512

264 - 1 32

80

256/224

256

512

264 - 1 32

64

512/384

512 1024 2128 - 1 64

80

SHA256/224
SHA512/384

Trạng


Độ
Các

Đụng

an

thao tác

độ

toàn7

+. and. or.
xor. rotl



80

+. and. or,

263

xor. rotl

thao tác

+. and. or.
xor. shr, rotr

+. and. or,
xor. shr, rotr

80

Chưa

112/128

Chưa

192/256

Bảng 2.1: Đặc điểm của các thuật toán băm SHA
2.2. Mã hóa thông tin
- Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi đi
như: thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về tài
khoản cá nhân, thông tin về cá nhân như số chứng minh thư, số thẻ...
- Các thông tin bí mật được cung cấp cho các máy tính quan mạng Internet bằng
nhiều phương thức khác nhau ví dụ: Một cách bảo mật đơn giản nhưng minh bạch nhất
là lưu các thông tin bí mật trên các bộ nhớ có thể xoá được (Removable Storage) như
đĩa mềm. Tuy nhiên dạng bảo mật phổ biến nhất vẫn là dựa vào quá trình mã hoá dữ
liệu (Encryption).
- Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại
sau:
+ Mã hoá với khoá đối xứng (Symmetric-key Encryption) : Trong phương pháp
mã hoá với khoá đối xứng, mỗi máy tính có một khoá bí mật (dạng mã) dùng để mã
hoá các gói thông tin trước khi chúng được gửi qua mạng tới các máy tính khác.
Phương pháp mã hoá với khoá đối xứng đòi hỏi người sử dụng phải xác định được
những máy tính nào đang liên lạc trao đổi thông tin với nhau để cài đặt khoá này trên

mỗi máy.
+ Mã hoá với khoá công khai (Public-key Encryption). [6]

6


2.3. Chữ ký số
2.3.1. Chữ ký số
- Chữ ký số (Digital Signature) chỉ là tập cơn của chữ ký điện tử. Chữ ký số là
chữ ký điện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong đó, mỗi người có
một cặp khóa (một khóa bí mật và một khóa công khai). Khóa bí mật không bao giờ
được công bố, trong khi đó, khóa công khai được tự do sử dụng. Để trao đổi thông
điệp bí mật, người gửi sử dụng khóa công khai của người nhận để mã hóa thông điệp
gửi, sau đó, người nhận sẽ sử dụng khóa bí mật tương ứng của mình để giải mã thông
điệp.
- Chữ ký điện tử là thông tin được mã hoá bằng Khoá riêng của người gửi, được
gửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh, xác thực đúng nguồn
gốc và tính toàn vẹn của tài liệu nhận được. Chữ ký điện tử thể hiện văn bản gửi đi là
đã được ký bởi chính người sở hữu một Khoá riêng tương ứng với một Chứng chỉ điện
tử nào đó.”
- Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng
các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật và
qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật. Khóa công
khai thường được phân phối thông qua chứng thực khóa công khai. Quá trình sử dụng
chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký. [7]
2.3.2. Tạo và kiểm tra chữ ký số
2.3.2.1. Các thuật toán chữ ký số thông dụng
Chữ ký số giúp xác định được người tạo ra hay chịu trách nhiệm đối với một
thông điệp được ký. Một phương pháp chữ ký số phải bao gồm ít nhất 3 thuật toán
chính, đó là thuật toán dùng để tạo khóa, thuật toán dùng để tạo ra chữ ký số và thuật

toán tương ứng để xác nhận chữ ký số.
2.3.2.2. Thuật toán chữ ký số RSA
- Phương pháp chữ ký số RSA được xây dựng dựa trên thuật toán mã hóa khóa
công khai RSA. Để tạo một cặp khóa, RSA thực hiện các bước sau:
+ Chọn 2 số nguyên tố lớn ngẫu nhiên p, q. Nhằm có sự an toàn tối đa nên chọn
p và q có độ dài bằng nhau.
+ Tính n=pq và φ =(p - 1 )(q - 1).
+ Chọn ngẫu nhiên một số nguyên e (lsố chung lớn nhất.
+ Tính: d=e - 1 mod φ.
- Kết quả là ta có được cặp khóa: khóa công khai (n,e) và khóa bí mật (n,d).
Hai người sẽ sử dụng chung một hàm băm H an toàn trước hiện tượng xung đột.
Để ký một thông điệp m, người ký thực hiện các bước sau:
+ Dùng hàm băm để băm thông điệp m: h = H(m).
+ Tạo chữ ký số sử dụng khóa bí mật (n,d) để tính: s=h d mod n.
Chữ ký của m là s và được gửi kèm với thông điệp m đến người nhận. Để xác
nhận chữ ký, người nhận thực hiện các bước sau:
7


+ Sử dụng khóa công khai (n,e) của người ký để giải mã chữ ký: h=se mod n.
+ Sử dụng cùng hàm băm H với người ký để băm thông điệp m: h’ = H(m).
Chấp nhận chữ ký nếu h' = h. Ngược lại từ chối chữ ký.
2.3.2.3. Thuật toán chữ ký số DSA
Thuật toán chữ ký số DSA (Digital Signature Algorithm) được đề nghị bởi
NIST vào tháng 8/1991 để sử dụng trong chuẩn chữ ký số DSS (Digital Signature
Standard), được chỉ ra trong FIPS 186, được chấp nhận năm 1993. Một sửa đổi nhỏ
được đưa ra ngày năm 1996 trong FIPS 186-1, chuẩn được mở rộng hơn năm 2000,
được xem như FIPS 186-2. Việc tạo khóa gồm hai bước. Bước thứ nhất là lựa chọn
các tham số cho thuật toán được chia sẻ giữa các người sử dụng khác nhau trong cùng

hệ thống:
+ Chọn một hàm băm mã hóa H. Trong DSS chuẩn H luôn là SHA-1, nhưng
các hàm băm tốt hơn trong nhóm SHA cũng đang được sử dụng. Đôi khi đầu ra của
một thuật toán băm mới hơn bị rút ngắn kích thước so với các thuật toán băm mới cũ
để tương tích với cặp khóa hiện có.
+ Chọn kích thước khóa L. Đây là thước đo chính quyết định sức mạnh mã hóa
của khóa. DSS chuẩn ràng buộc L là bội số của 64 và 512 ≤ L ≤ 1024. Sau đó, FIPS
186-2 xác định L luôn là 1024. Không lâu sau, NIST 800-57 đề nghị độ dài khóa là
2048 (hoặc 3072) để thời gian an toàn đến năm 2010 (hoặc 2030), sử dụng tương ứng
với các giá trị băm và q dài hơn. Bản thảo FIPS 186-3 cũng tính đến các hàm băm sau
này và các khóa dài hơn.
+ Chọn một số nguyên tố q cùng so bit với đầu ra của H.
+ Chọn một số nguyên tố p độ dài L bit sao cho p - 1 là bội của q. Tức là p=qz l với số nguyên z nào đó.
+ Chọn g = h(p-1)/q mod p với h bất kỳ (l < h < p - l), và chọn lại nếu kết quả là 1.
Hầu hết cách chọn h đều nhận được g có thể sử dụng, thông thường chọn h=2.
- Các tham số thuật toán (p, q, g) có thể chia sẻ giữa những người khác nhau
trong hệ thống. Bước thứ hai tính các khóa bí mật và khóa công khai của từng người:
+ Chọn X ngẫu nhiên sao cho 0 < x < q.
+ Tính y = gy mod p.
+ Khóa công khai là (p, q, g, y), khóa bí mật là x.
- Phiên bản FIPS 186-3 sắp tới sử dụng SHA-224/256/384/512 là các hàm băm,
kích thước của q là 224 (hoặc 256 bit), và L bằng 2048 (hoặc 3072).
- Để ký một thông điệp m, người ký thực hiện các bước sau:
+ Phát sinh một số ngẫu nhiêu k (0 < k < q) cho mỗi thông điệp.
+ Tính r=(gk mod p) mod q.
+ Tính s = k-1 (

(m) + xr)) mod q.

+ Tính toán lại chữ ký trong trường hợp không chắc chắn r = 0 hoặc s = 0.

+ Chữ ký là (r, s).
8


- Để xác nhận chữ ký, người nhận thực hiện các bước sau:
+ Loại bỏ chữ ký nếu 0 < r < q hoặc 0 < s < q không thỏa mãn.
+ Tính w= s-1 mod q.
+ Tính u1=(

(m) x w) mod q.

+ Tính u2 =(r x w) mod q.
+ Tính v=( (gu1 x yu2 ) mod p) mod q
+ Chữ ký có hiệu lực nếu v = r.
Tính đúng đắn của giải thuật được chứng minh như sau:
+ Đầu tiên, nếu g = h(p-1)/q mod p suy ra gp= hp-1 -1 = 1(mod p) theo định lý
Fermat nhỏ. Bởi vì g > l và q là số nguyên tố nên g có bậc q.
+ Người ký tính s = k-1 (H(m) + xr)) mod q.
+ Như vậy k = H (m)s-1 + xrs-1 = H (m)w+xrw (mod q).
+ Bởi vì g có bậc q nên ta có:
gk =gH(m)w . gxrw = gH(m)w yrw =gu1 yu2 (mod p)
+ Cuối cùng, tính đúng đắn của DSA suy ra từ:
r= (gk mod p) mod q = (gu1 yu2 mod p) mod q = v.
- Phương pháp DSA đã giải quyết vấn đề này bằng cách sử dụng chữ ký 320 bit
cho văn bản 160 bit với các phép tính được thực hiện trên tập cơn có 2160 phần tử với
p là số nguyên tố 512 bit.
2.3.2.4. Kết quả thử nghiệm và nhận xét
- So sánh RSA và DSA
+ Để so sánh tốc độ của hai thuật toán chữ ký số RSA và DSA, Thử nghiệm 2.2
dưới đây đã được tiến hành và ghi nhận.

+ Thử nghiệm 2.2: DSS chuẩn ràng buộc độ dài khóa L là bội số của 64 và 512
< L < 1024 và để an toàn lâu dài độ dài khóa L được đề nghị là 2048 hoặc 3072. Do đó
độ dài khóa được thử nghiệm cho cả RSA và DSA là 576, 640, 704, 768, 832, 896,
960, 1024, 2048, 3072 (bit), ứng với mỗi độ dài khóa, lần lượt cho cả RSA và DSA
phát sinh khóa, ký văn bản ngẫu nhiên (kích thước 2 MB) và kiểm tra chữ ký tạo được.
Để thuận tiện so sánh, hàm băm mật mã SHA-1 được chọn để sử dụng cho cả RSA và
DSA. Thử nghiệm được lặp lại 50.000 lần. Kết quả nhận được như sau:
Kích

Tạo khóa (giây)

thước

DSA/

Tạo chữ ký (giây)

(bit)
512

0,0408

0,5676

13,93 0,0351 0,0011 32,60 0,0320 0,0017 19,32

576

0,0568


0,8030

14,14 0,0361 0,0013 27,24 0,0321 0,0022 14,60

640

0,0757

1,2464

16,47 0,0371 0,0015 24,53 0,0319 0,0025 12,57

DSA

RSA

DSA

RSA/

DSA

9

DSA

RSA/

RSA


RSA

RSA

Xác nhận chữ ký (giây)

DSA


704

0,0994

1,7948

18,06 0,0387 0,0019 20,25 0,0320 0,0031 10,16

768

0,1278

2,3668

18,52 0,0408 0,0016 25,29 0,0321 0,0040

7,94

832

0,1609


3,0526

18,97 0,0428 0,0021 20,31 0,0322 0,0044

7,34

896

0,2026

4,2369

20,92 0,0454 0,0027 16,58 0,0321 0,0050

6,36

960

0,2446

5,4622

22,33 0,0480 0,0026 18,45 0,0321 0,0061

5,29

1024

0,2734


7,1210

26,05 0,0515 0,0035 14,86 0,0318 0,0068

4,69

2048

2,4876 103,1124 41,45 0,1749 0,0124 14,16 0,0325 0,0240

1,35

3072

11,1882 508,2395 45,43 0,5056 0,0278 18,19 0,0341 0,0539

0,63

Bảng 2.2: So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA
với DSA

Hình 2.3: Thời gian tạo khóa của RSA và DSA
+ Kết quả Thử nghiệm 2.5 cho thấy tốc độ tạo khóa của RSA nhanh hơn rất
nhiều so với DSA và khi kích thuớc khóa tăng lên thì tỷ lệ này ngày càng gia tăng.
Hơn nữa, khi tăng kích thuớc L của DSA và tương ứng với các hàm băm SHA có đầu
ra lớn hơn thì DSA sẽ còn chậm hơn rất nhiều.

Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA
10



+ Kết quả Thử nghiệm 2.2 cho thấy tốc độ tạo chữ ký của RSA chậm hơn DSA
nhưng tỷ lệ này có xu hướng giảm khi kích thước khóa tăng lên. Nguyên nhân là do
khi số mũ khóa công khai e cố định thì số mũ khóa bí mật d sẽ tăng khi kích thước n
tăng. Mặt khác, phép tính chiếm thời gian nhiều nhất của quy trình ký chính là phép
lũy thừa modulo nên khi số mũ tăng thì thời gian thực hiện cũng sẽ tăng. Tuy nhiên,
kích thước khóa được sử dụng phổ biến hiện nay là 1024 và 2048 nên thời gian ký lúc
này sẽ không còn là vấn đề đáng lo ngại do toàn bộ quy trình chỉ mất ít hơn 0,2 giây.

Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA
Thử nghiệm trên môi trường Windows XP, bộ xử lý Pentium 4, 3.00 GHz, bộ
nhớ 512 MB.
+ Kết quả Thử nghiệm 2.2 cũng cho thấy tốc độ xác nhận chữ ký của RSA
không thay đổi đáng kể khi kích thước khóa tăng do số mũ công khai e được sử dụng
luôn là một số nhỏ (giá trị phổ biến hiện này là 65537) và tốc độ thực hiện phép lũy
thừa modulo (phép toán chính trong quy trình xác nhận chữ ký) sẽ tăng không nhiều.
Ngược lại, tốc độ xác nhận chữ ký của DSA mặc dù thấp hơn RSA nhưng sẽ ngày
càng tăng khi kích khóa tăng lên. Nguyên nhân là do quy trình xác nhận chữ ký của
DSA gồm rất nhiều phép tính tốn chi phí cao (phép lũy thừa modulo và phép nhân)
nên khi kích thước khóa tăng dần thì điều này sẽ trở thành gánh nặng. Mặc khác, nếu
kích thước L được chọn lớn hơn thì tốc độ xác nhận chữ ký sẽ chậm hơn nữa. Với các
thử nghiệm trên ta dễ dàng nhận thấy RSA tốt hơn DSA về mọi mặt, đặc biệt là tốc độ
phát sinh khóa của RSA nhanh hơn DSA rất nhiều. Ngoài ra, tốc độ ký và xác nhận
chữ ký dẫu có chậm hơn DSA nhưng thời gian này là không đáng kể. [8]
2.4. Chứng thực số
- Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số /
chứng thực điện tử) là một chứng thực sử dụng chữ ký số để gắn một khóa công khai
với một thực thể (cá nhân, máy chủ hoặc công ty...). Một chứng thực khóa công khai
tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, địa chỉ...) về thực thể

sở hữu khóa đó. Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa công
khai nào đó thuộc về ai.
- CA phát hành các chứng thực khóa công khai trong đó thể hiện rằng CA đó
chứng nhận khóa công khai nằm trong mỗi chứng thực thuộc về cá nhân, tổ chức, máy
11


chủ hay bất kỳ thực thể nào ghi trong cùng chứng thực đó. Nhiệm vụ của CA là kiểm
tra tính chính xác của thông tin liên quan tới thực thể được cấp chứng thực. Khi người
sử dụng tin tưởng vào một CA và có thể kiểm tra chữ ký số của CA đó thì họ cũng có
thể tin tưởng vào khóa công khai và thực thể được ghi trong chứng thực. [9]
2.5. Cấu trúc phân tầng của hệ thống PKI

Hình 2.6 : Mô hình phân cấp
- Mô hình này tương ứng với cấu trúc phân cấp với CA gốc và các CA cấp
dưới. CA gốc xác nhận các CA cấp dưới, các CA này lại xác nhận các CA cấp thấp
hơn. Các CA cấp dưới không cần xác nhận các CA cấp trên.
- Mô hình phân cấp được minh hoạ như hình ở trên. Trong mô hình này, mỗi
thực thể sẽ giữ bản sao khoá công khai của root CA và kiểm tra đường dẫn của chứng
thư bắt đầu từ chữ ký của CA gốc. Đây là mô hình PKI tin cậy sớm nhất và được sử
dụng trong PEM.
* Ưu điểm của mô hình:
- Mô hình này có thể dùng được trực tiếp cho những doanh nghiệp phân cấp và
độc lập, cũng như những tổ chức chính phủ và quân đội.
- Cho phép thực thi chính sách và chuẩn thông qua hạ tầng cơ sở.
- Dễ vận hành giữa các tổ chức khác nhau.
* Nhược điểm:
- Có thể không thích hợp đối với môi trường mà mỗi miền khác nhau cần có
chính sách và giải pháp PKI khác nhau.
- Các tổ chức có thể không tự nguyện tin vào các tổ chức khác.

- Có thể không thích hợp cho những mối quan hệ ngang hàng giữa Chính phủ
và doanh nghiệp.
- Những tổ chức thiết lập CA trước có thể không muốn trở thành một phần của
mô hình.
- Có thể gây ra sự trội hơn của sản phẩm đối với vấn đề về khả năng tương tác.
12


- Chỉ có một CA gốc nên có thể gây ra một số vấn đề như thiếu khả năng hoạt
động. Thêm vào đó, trong trường hợp khóa cá nhân của CA bị xâm phạm, khóa công
khai mới của CA gốc phải được phân phối đến tất cả các người sử dụng cuối trong hệ
thống theo một số cơ chế khác nhau.
- Mặc dù có những nhược điểm, song mô hình này vẫn thích hợp với yêu cầu
của các tổ chức Chính phủ vì cấu trúc phân cấp tự nhiên sẵn có.
2.6. Cấp phát và xác thực chứng thực số
2.6.1. Cấp phát chứng thực số
2.6.1.1. Sinh cặp khóa ngẫu nhiên (PKI client)
- Tại Client hệ thống PKI sẽ cấp phát cặp khóa riêng và khóa công khai
- Hệ thống PKI(cụ thể PKI client) sẽ sử dụng 1 thuật toán bất kỳ hợp lý được
chọn lựa để sinh cặp khóa ngẫu nhiên.
- Chẳng hạn đây là thuật tóa RSA. Cặp khóa ngẫu nhiên được sinh ra từ 2 số
nguyên tố ngẫu nhiên lập đủ lớn. Cặp khóa ngẫu nhiên ở đây là :
+ Khóa công khai: (n,e)
+ Khóa bí mật : (n,d)
2.6.1.2. Tạo chữ ký số
- Sau khi tạo cặp khóa ngẫu nhiên, hệ thống PKI client sẽ tạo ra chữ ký số
tương ứng với cặp khóa ngẫu nhiên của từng client và ký theo từng văn bản ngẫu
nhiên.
2.6.1.3. Cấp phát chứng thực số
Sau khi PKI client tạo cặp khóa riêng và khóa công khai đồng thời tạo chữ ký

số cho client tương ứng. Thông tin bảo mật sẽ được gửi đến server.
- Tại server, server sẽ xác thực những thông tin mà client gửi đến có chính xác
và đúng đắn. Nếu thông tin xác thực là đúng đắn(khóa công khai, chữ ký số, giá trị
băm của văn bản, tin nhắn) server sẽ cấp phát cho client 1 chứng thực số bao gồm các
thông tin sau : tên, tuổi, địa chỉ., các thông tin cá nhân khác, khóa công khai, ngày tạo,
ngày hết hạn, và ID của chứng thực số. ID của chứng thực số có tính duy nhất với mỗi
client.
2.6.1.4. Thu hồi và cấp phát lại chứng thực số
- Một chứng thực số bị thu hồi khi nào :
+ Khi mà chứng thực số đã hết hạn sử dụng, chứng thực sẽ bị thu hồi để ra hạn
hoặc cấp một chứng thực số mới
+ Khi client phát hiện khóa bí mật của người này bị lộ hoặc server phát hiện
thấy hằm băm mật mã của mình bị lộ hoặc các thông tin bảo mật khác của 1 client đã
bị rò rỉ
+ Cấp phát lại chứng thực số :
+ Client sẽ gửi yêu cầu đến server yêu cầu và 1 bản thông tin(địa chỉ, khóa công
khai,khóa riêng...) của client đăng ký một bản chứng thực số mới.
13


2.6.2. Xác thực chứng thực số
- Khi bạn gửi một thông tin kèm chứng chỉ số, người nhận - có thể là đối tác
kinh doanh, tổ chức hoặc cơ quan chính quyền - sẽ xác định rõ được danh tính của
bạn. Có nghĩa là dù không nhìn thấy bạn, nhung qua hệ thống chứng chỉ số mà bạn và
người nhận cùng sử dụng, người nhận sẽ biết chắc chắn đó là bạn chứ không phải là
một người khác. Xác thực là một tính năng rất quan trọng trong việc thực hiện các giao
dịch điện tử qua mạng, cũng như các thủ tục hành chính với cơ quan pháp quyền. Các
hoạt động này cần phải xác minh rõ người gửi thông tin để sử dụng tư cách pháp nhân.
Đây chính là nền tảng của một Chính phủ điện tử, môi trường cho phép công dân có
thể giao tiếp, thực hiện các công việc hành chính với cơ quan nhà nước hoàn toàn qua

mạng. Có thể nói, chứng chỉ số là một phần không thể thiếu, là phần cốt lõi của Chính
phủ điện tử.
- Một người thứ 3 bất kỳ (Có thể là 1 client khác, khách chưa đăng ký chứng
thực số) đều có thể kiểm tra được tính đúng đắn của 1 chứng thực số. Bằng cách PKI
client sẽ cung cấp 1 dịch vụ xác thực. Người dùng có thể nhập vào ID của 1 chứng
thực số bất kỳ cần kiểm tra và gửi thông tin đó lên server. Neu chứng thực số tồn tại
server sẽ trả lại thông báo cho client vừa kiểm tra.
2.7. Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực
2.7.1. Mã hóa
- Lợi ích đầu tiên của chứng chỉ số là tính bảo mật thông tin. Khi người gửi đã
mã hóa thông tin bằng khóa công khai của bạn, chắc chắn chỉ có bạn mới giải mã dược
thông tin để đọc. Trong qúa trình truyền thông tin qua Internet, dù có đọc được các gói
tin đã mã hóa này, kẻ xấu cũng không thể biết được trong gói tin có thông tin gì. Đây
là một tính năng rất quan trọng, giúp người sử dụng hoàn toàn tin cậy về khả năng bảo
mật thông tin. Những trao đổi thông tin cần bảo mật cao, chẳng hạn giao dịch liên
ngân hàng, ngân hàng điện tử, thanh toán bằng thẻ tín dụng, đều cần phải có chứng chỉ
số để đảm bảo an toàn.
2.7.2. Chống giả mạo
- Khi bạn gửi đi một thông tin, có thể là một dữ liệu hoặc một Email, có sử
dụng chứng chỉ số, người nhận sẽ kiểm tra được thông tin của bạn có bị thay đổi hay
không. Bất kỳ một sự sửa đổi hay thay thế nội dung của thông điệp gốc đều sẽ bị phát
hiện. Địa chỉ mail, tên domain... đều có thể bị kẻ xấu làm giả để đánh lừa người nhận
lây lan virus, ăn cắp thông tin quan trọng. Tuy nhiên , chứng chỉ số thì không thể làm
giả, nên việc trao đổi thông tin có kèm chứng chỉ số luôn đảm bảo an toàn.
2.7.3. Xác thực
- Khi sử dụng một chứng chỉ số, người nhận - có thể là đối tác kinh doanh, tổ
chức hoặc cơ quan chính quyền- sẽ xác định rõ được danh tính của bạn. Có nghĩa là dù
không nhìn thấy bạn, nhưng qua hệ thống chứng chỉ số mà bạn và người nhận cùng sử
dụng, người nhận sẽ biết chắc chắn đó là bạn chứ không phải ai khác. Xác thực là một
tính năng rất quan trọng trong việc giao dịch điện tử qua mạng, cũng như các thủ tục

hành chính với cơ quan với cơ quan pháp quyền. Các hoạt động này cần phải xác minh
rõ người gửi thông tin để sử dụng tư cách pháp nhân. Đây chính là nền tảng của một
chính phủ điện tử, môi trường cho phép công dân có thể giao tiếp. Có thể nói, chứng
chỉ số là một phần không thể thiếu, là phần cốt lõi của chính phủ điện tử.
14


2.7.4. Chống chối bỏ nguồn gốc
- Khi sử dụng một chứng chỉ số, bạn phải chịu trách nhiệm hoàn toàn về những
thông tin mà chứng chỉ số đi kèm. Trong trường hợp người gửi chối cãi, phủ nhận một
thông tin nào đó không phải do mình gửi(chẳng hạn qua mạng) chứng chỉ số mà người
nhận có được sẽ là bằng chứng khẳng định người gửi là tác giả của thông tin đó. Trong
trường hợp chối bỏ, CA cung cấp chứng chỉ số cho hai bên sẽ chịu trách nhiệm xác
minh nguồn gốc thông tin, chứng tỏ nguồn gốc thông tin được gửi.
2.7.5. Chữ ký điện tử
- Email đóng vai trò khá quan trọng trong trao đổi thông tin hàng ngày của
chúng ta vì ưu điểm nhanh, rẻ và dễ sử dụng. Những thông điệp có thể gửi đi nhanh
chóng qua internet đến khách hàng đồng nghiệp, nhà cung cấp và đối tác. Tuy nhiên,
email rất dễ bị đọc bởi các Hacker. Những thông điệp có thể bị đọc hay bị giả mạo
trước khi đến người nhận.
- Bằng việc sử dụng chứng chỉ cá nhân, bạn sẽ ngăn ngừa được các nguy cơ này
mà vẫn không làm giảm những lợi thể của Email. Với chứng chỉ số cá nhân, bạn có thể
tạo thêm một chữ ký điện tử vào email như một bằng chứng xác nhận của minh. Chữ
ký điện tử cũng có tính năng xác thực thông tin, toàn vẹn dữ liệu và chống chối bỏ
nguồn gốc.
- Ngoài ra, chứng chỉ số cá nhân còn cho phép người dùng có thể chứng thực
mình với một web server thông qua giao thức bảo mật SSL. Phương pháp chứng thực
dựa trên chứng chỉ số được đánh giá là tốt, an toàn bảo mật hon phương pháp chứng
thực truyền thống dựa trên mật khẩu.
2.7.6. Bảo mật website

- Khi website của bạn sử dụng cho mục đích thương mại điện tử hay cho những
mục đích quan trọng khác, những thông tin trao đổi giữa bạn và khách hàng có thể bị
lộ. Đe tránh nguy cơ này, bạn có thể dùng chứng chỉ so SSL server để bảo mật cho
Website của mình.
- Chứng chỉ số SSL server sẽ cho phép bạn lập cấu hình website của mình theo
giao thức bảo mật SSL(Secure Sockets Layer). Các tính năng nổi bật:
+ Thực hiện mua bán bằng thẻ tín dụng.
+ Bảo vệ những thông tin cá nhân nhạy cảm xủa khách hàng
+ Đảm bảo hacker không thể dò tìm được mật khẩu.
2.7.7. Đảm bảo phần mềm
- Chứng chỉ số nhà phát triển phần mềm sẽ cho phép bạn ký vào các applet,
script, Java software, ActiveX cơntrol, các file định dạng EXE, CAB, DLL... Như vậy,
thông qua chứng chỉ số bạn sẽ đảm bảo tính hợp pháp cũng như nguồn gốc xuất xứ của
sản phẩm. Hơn nữa người dùng có thể xác thực được bạn là nhà cung cấp, phát hiện
được sự thay đổi của chương trình(virus, crack, bản lậu...).

15


2.8. OpenCA hệ thống hạ tầng khóa công khai trong thực tế
2.8.1. Định nghĩa :
- OpenCA là một hệ thống mã nguồn mở, được xây dựng và phát triển bởi rất
nhiều nhà lập trình trên thế giới. OpenCA được xây dựng với mục đích tạo ra một hệ
thống công cụ nhằm hỗ trợ cho các dự án về bảo mật.OpenCA hồ trợ từ mức độ thấp
như mã hoá dữ liệu,tạo chữ ký số cho đến các hệ thống an toàn dữ liệu cao cấp. Mã
nguồn của OpenCA được cung cấp rộng rãi trên www.openca.org. Từ những đặc điểm
như trên có thể thấy OpenCA chính là một công cụ rất hiệu quả để xây dựng những
ứng dụng theo mô hình hạ tầng khoá công khai PKI. OpenCA hồ trợ xây dựng tất cả
các thủ tục lõi cho một ứng dụng PKI từ việc sinh khoá mã hoá giải mã dữ liệu cho tới
các thủ tục cấp phát,thu hồi chứng thư,tạo chữ ký số...Với tất cả những cái đó,ta có thể

xây dựng một ứng dụng theo mô hình PKI cơ sở, phần mở rộng còn lại sẽ được xây
dựng tiếp theo định hướng của nhà phát triển.
- Các thành phần chính của OpenCA bao gồm 3 thành phần là hệ thống thư viện
OpenSSL, cơ sở dữ liệu và giao diện web. Trong đó giao diện web được xây dựng
bằng ngôn ngữ Perl. Thư viện OpenSSL thực hiện các tiến trình về mã hoá. [10]
2.8.2. Đánh giá về hệ OpenCA
2.8.2.1. Ưu điểm của hệ thống
- OpenCA được thiết kế và xây dựng theo nguyên lý của mô hình PKI và nó
đảm bảo đầy đủ những chức năng cơ sở của một hệ PKI cần phải có: cấp phát, gia hạn,
thu hồi chứng thư số, đảm bảo tính xác thực, an toàn tin cậy.
- Với các kịch bản đã thử nghiệm trong thời gian dài hệ thống đã hoạt động khá
ổn định và không xảy ra những lỗi nghiêm trọng dẫn đến từ chối dịch vụ.
- Hệ mã nguồn mở OpenCA hoàn toàn tương thích với môi trường Linux và
không hề gây xung đột với các hệ thống khác cùng cài đặt trên một hệ điều hành.
- Hệ thống OpenCA sử dụng rất nhiều chuẩn công nghiệp( như các chuẩn về
chứng thư số X509). Vì vậy nó được chấp nhận và sử dụng rất rộng rãi trong thực tế.
2.8.2.2. Những điểm còn hạn chế của hệ thống
- Lỗi không xác định khi RA ký lên các yêu cầu gửi lên cho CA.
- Không làm việc được với các thiết bị sử dụng chuẩn USB 2.0
- Khó khăn trong việc cài đặt và thay đổi. [11]
2.9. Các ứng dụng của PKI trong thực tiễn
2.9.1. Mô hình phân cấp thứ bậc trên - dưới
Mô hình phân cấp thứ bậc bao gồm một RootCA chung cho các miền PKI với
các CA (certificate authority) cấp thấp hơn. Các CA cấp thấp hơn không cần phải
chứng nhận các CA cấp cao hơn trong cây phân cấp. Mỗi bên tham gia phải có hiểu
biết về khóa công khai của RootCA và coi đây là sự tin cậy cho tất cả các bên tham
gia.

16



2.9.2. Mô hình chứng thực chéo
Mô hình này quy định các miền PKI và RootCA chứng thực chéo với nhau,
tương ứng từng cặp một. RootCA kia và ngược lại để những người sử dụng thuộc cả
hai miền PKI đề có mỏ neo để tin cậy khi giao dịch điện tử.
Khi đó, muốn kiểm tra chứng thư số của một miền PKI miền thứ 2, người sử
dụng PKI thứ nhất phải kiểm tra theo chuỗi móc xích tin cậy. Điểm nổi bật của mô
hình này là khi chứng thực chéo thì các các miền PKI vẫn tồn tại riêng rẽ với các mối
quan hệ tin cậy bên trong mà không ảnh hưởng đến các mối quan hệ tin cậy bên ngoài.
2.9.3. Mô hình CA cầu nối
Trong mô hình này, khi có nhiều miền PKI và các RootCA tương ứng có nhu
cầu liên lạc, người ta thiết lập thêm một CertificateAuthority trung gian bình đẳng để
làm cầu nối. CA cầu nối chứng thực chéo với từng RootCA trong các miền PKI tương
ứng để tạo ra liên tác. Những người sử dụng sẽ có mỏ neo tin cậy thông qua Chứng
thư số của CertificateAuthority cầu nối. Mô hình này được ví như hình ảnh của một
chiếc bánh xe, trong đó CertificateAuthority cầu nối là trục bánh xe, các chứng thực
chéo là các nan hoa, còn các RootCA của các miền PKI sẽ nằm trên vành bánh xe.
Thực tế phát triển các hạ tầng PKI làm xuất hiện nhiều miền PKI đứng riêng
biệt như các ốc đảo. Các miền PKI này chỉ cung cấp các dịch vụ chữ ký điện tử là gì
cho người sử dụng trong hệ thống của mình và duy trì cung cấp các dịch vụ cần thiết.
Điều này dẫn đến việc, chỉ những thực thể đầu cuối có các chứng thư số được
cấp phát bởi cùng một miền PKI thì mới có thể giao dịch Chứng thư điện tử với nhau.
Các thực thể đầu cuối thuộc về các miền PKI khác nhau muốn giao dịch với nhau cần
phải được cấp phát các Chứng thư số khác nhau tương ứng.
2.9.4. Các sản phẩm
- Đảm bảo chứng thư số cho người sử dụng trong các cơ quan thuộc hệ thống
chính trị để tích hợp chữ ký số vào văn bản điện tử, thư điện tử, ứng dụng phần mềm
điều hành tác nghiệp (Chứng thư số cho công chức).
- Đảm bảo tính xác thực của các hệ thống trang thông tin điện tử của các cơ
quan Nhà nước (Chứng thư số cho Web Server).

- Đảm bảo chứng thư số cho các hệ thống dịch vụ mạng và bảo mật của Nhà
nước (Chứng thư số cho Mail Server, VPN Server).
- Gói sản phẩm xác thực và bảo mật cho người dùng cuối: xác thực bảo mật các
tài liệu điện tử, thư điện tử, các tài liệu Ms Office như: (Ms Word, Excel) xác thực,
bảo mật tài liệu định dạng PDF, bảo mật các ổ đĩa lưu trữ....
- Bộ PKI Toolkit nhằm trợ giúp các cơ quan, đơn vị tự tích hợp chữ ký số,
chứng thư số vào các ứng dụng chuyên ngành của mình.
- Bộ phần mềm ký web nhằm trợ giúp tích hợp chữ ký số vào các ứng dụng
web- based của các cơ quan thuộc hệ thống chính trị.
2.9.5. Định hướng nghiên cứu phục vụ hệ thống PKI chuyên dùng Chính phủ
- MobilePKI
17


Ngày nay thiết bị di động (máy tính bảng, điện thoại di động,...) đang phát triển
rất mạnh và trở thành một loại thiết bị không thể thiếu trong xã hội hiện đại. Khái
niệm về Mobile PKI, đã có từ năm 2001, tuy nhiên, ứng dụng quy mô rộng của Mobile
PKI chủ yếu phát triển trong năm 2008 - 2009. Nhiều công nghệ và giao thức đang
được sử dụng trong Mobile PKI được công bố công khai. Việc nghiên cứu về
MobilePKI đã được Ban Cơ yếu Chính phủ quan tâm nhằm ứng dụng chữ ký số và các
thiết bị di động cầm tay của các cơ quan Đảng và Nhà nước trong thời gian sắp tới.
- e-Passport (hộ chiếu điện tử)
Trên thế giới, nhiều quốc gia đã triển khai hệ thống hộ chiếu điện tử để kiểm
soát xuất nhập cảnh với mục đích chống giả mạo hộ chiếu, thuận tiện cho việc quản lý.
Ở Việt Nam, triển khai hộ chiếu điện tử là cần thiết trong quá trình hội nhập và phát
triển. Chương trình xây dựng và triển khai hộ chiếu điện tử để phù hợp với các nhu
cầu phát triển của xã hội, tăng tính an toàn/an ninh cũng như chống giả mạo hộ
chiếu/thị thực là rất cần thiết. Những nghiên cứu về hộ chiếu điện tử đang được một số
cơ quan dầu tư nghiên cứu.
- Giấy phép lái xe điện tử

Mẫu giấy phép lái xe mới (thẻ nhựa) đã được Tổng cục Đường bộ Việt Nam
nghiên cứu và sẽ triển khai đưa vào sử dụng trong năm 2012. Trong quá trình xây
dựng phần mềm quản lý cấp phép lái xe mới, Tổng cục ĐBVN đã được Ban Cơ yếu
Chính phủ hỗ trợ tích hợp chữ ký số vào phần mềm này. Như vậy, giấy phép lái xe
trong thời gian tới sẽ được tích hợp chip điện tử và sẽ phải tích hợp chứng thư số.
- Chứng minh thư điện tử
Chứng minh thư điện tử đang được sử dụng rộng rãi ở các nước phát triển. Việt
Nam đã có dự án triển khai chứng minh thư điện tử. Việc tích hợp chứng thư số và
chứng minh thư điện tử đã được một số nước phát triển ứng dụng mang nhiều tiện lợi,
đây là một định hướng nghiên cứu mới trong triển khai chứng minh thư điện tử.

18


Chương 3: Triển khai cài đặt ứng dụng OpenSSL
3.1. Triển khai cài đặt
Cài đặt opensl trên ubuntu với câu lệnh từ Terminal
sudo apt-get install openssl
Làm theo hướng dẫn từ Terminal để cài đặt

Hình 3.1 : Cài đặt opensl
3.2. Kịch bản sử dụng opensl để mã hóa bản tin và file
3.2.1. Mã hóa thông điệp với cú pháp
echo "thong diep can ma hoa" | openssl enc -base64

Hình 3.2: Mã hóa thông điệp
19


3.2.2. Giải mã bằng cú pháp

echo "V2VsY29tZSB0byB1cHdvcmtmb2xsb3cuY29tCg==" | openssl enc
-base64 –d

Hình 3.3 : Giải mã thông điệp
3.2.3 Khóa công khai và khóa cá nhân
Cú pháp tạo khóa cá nhân:
openssl genrsa -out private_key.pem 1024

Hình 3.4 : Tạo khóa cá nhân
20


×