ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN DUY VŨ
XÂY DỰNG MÔ HÌNH TRUNG TÂM XÁC
THỰC CHỨNG CHỈ SỐ VÀ ỨNG DỤNG
TRONG VIỆC TRAO ĐỔI THÔNG TIN SỐ
CỦA DOANH NGHIỆP VỪA VÀ NHỎ
LUẬN VĂN THẠC SĨ
Hà Nội – 2011
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN DUY VŨ
XÂY DỰNG MÔ HÌNH TRUNG TÂM XÁC
THỰC CHỨNG CHỈ SỐ VÀ ỨNG DỤNG
TRONG VIỆC TRAO ĐỔI THÔNG TIN SỐ CỦA
DOANH NGHIỆP VỪA VÀ NHỎ
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
NGƢỜI HƢỚNG DẪN KHOA HỌC: Tiến sĩ Ngô Hữu Phúc
Hà Nội – 2011
3
MỤC LỤC
Bìa chính
Phụ bìa
LỜI CAM ĐOAN
MỤC LỤC
MỞ ĐẦU 5
Chƣơng 1 - CƠ SỞ LÝ THUYẾT MÔ HÌNH TRUNG TÂM XÁC THỰC 6
1.1. Tổng quan về các hệ mật mã 6
1.1.1. Giới thiệu. 6
1.1.2. Các hệ mật mã 6
1.2. Hạ tầng cơ sở khóa công khai 12
1.2.1. Sinh khóa, phân phối khóa 13
1.2.2. Mã hóa và giải mã 17
1.2.3. Chữ ký số, Hàm Băm 18
1.2.4. Chứng chỉ số và giải pháp quản lý 23
Chƣơng 2 - MÔ HÌNH TRUNG TÂM XÁC THỰC 31
2.1. Tổng quan mô hình 31
2.1.1.Các thành phần của PKI 31
2.1.2. Chức năng cơ bản của PKI 33
2.2. Một số mô hình trung tâm xác thực. 36
2.2.1. Mô hình đơn giản 36
2.2.2. Mô hình Web 36
2.2.3. Mô hình phân cấp 36
2.2.4. Mô hình mắt lƣới 37
2.2.5. Mô hình lai ghép 37
Chƣơng 3 - XÂY DỰNG MÔ HÌNH TRUNG TÂM XÁC THỰC 40
3.1. Lựa chọn mô hình 40
3.2. Hoạt động của mô hình 42
3.2.1. Trung tâm CA 42
3.2.2. Ngƣời sử dụng (End User) 49
4
3.2.3. Dịch vụ 49
3.3. Xây dựng hệ thống cơ sở dữ liệu 50
Chƣơng 4 - GIỚI THIỆU GIAO DIỆN VÀ CHỨC NĂNG HỆ THỐNG 53
4.1. Khối chức năng cơ bản 53
4.2. Mô tả các chức năng chính 53
KẾT LUẬN KIẾN NGHỊ 58
TÀI LIỆU THAM KHẢO 59
5
MỞ ĐẦU
Mục đích của luận văn này nhằm nghiên cứu các mô hình, cấu trúc và các
thành phần cơ bản của trung tâm xác thực dựa trên công nghệ PKI, giới thiệu
một số mô hình giao tiếp trong hệ thống liên trung tâm xác thực. Xây dựng
thành công mô hình trung tâm xác thực ứng dụng trong phạm vi doanh nghiệp
vừa và nhỏ trong việc trao đổi thông tin số.
Luận văn gồm 4 chƣơng:
Chƣơng 1: Cơ sở lý thuyết mô hình trung tâm xác thực
Giới thiệu về cấu trúc và các thành phần cơ bản của mô hình trung tâm xác
thực dựa trên công nghệ PKI
Chƣơng 2: Mô hình trung tâm xác thực
Tổng quan về trung tâm xác thực, giới thiệu các loại mô hình kiến trúc
trung tâm xác thực và ƣu nhƣợc điểm của từng loại mô hình kiến trúc.
Chƣơng 3: Xây dựng mô hình trung tâm xác thực
Xây dựng mô hình trung tâm xác thực dựa trên mô hình lai ghép với đầy đủ
chức năng của hệ thống trung tâm xác thực: Cấp, phân phối, thu hồi, tạm dừng,
khôi phục chứng chỉ, xác thực chứng chỉ số đa cấp và các trung tâm ngang hàng.
Giới thiệu hệ thống thƣ mục và cơ sở dữ liệu quan hệ của mô hình trung tâm xác
thực.
Chƣơng 4: Giới thiệu giao diện và chức năng hệ thống.
Giới thiệu các chức năng chính của hệ thống và các hình ảnh hoạt động
tƣơng ứng.
6
Chƣơng 1 - CƠ SỞ LÝ THUYẾT MÔ HÌNH TRUNG TÂM
XÁC THỰC
1.1. Tổng quan về các hệ mật mã
1.1.1. Giới thiệu.
Mật mã là để giữ bí mật thông tin. Ví dụ: Ngƣời A muốn gửi văn bản rõ
sang ngƣời nhận B, A phải mã hóa văn bản đó rồi gửi cho B. Để hiểu đƣợc nội
dung thông tin mà A muốn gửi cho mình, B cần khôi phục (giải mã) lại văn bản
đã bị mã hóa thành dạng rõ. Do văn bản đã bị mã hóa có thể đƣợc chuyển qua
các con đƣờng công khai nên ngƣời ngoài có thể “lấy trộm” nhƣng không thể
đọc hiểu đƣợc; còn A và B có thể mã hóa và giải mã là do hai ngƣời đã có một
thỏa thuận về khóa chung. Trong thực tiễn, có những hoạt động ngƣợc lại với
hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” đƣợc, hoạt động
này thƣờng đƣợc gọi là thám mã hay phá khóa.
Hệ mật mã đƣợc định nghĩa là một bộ gồm 5 thành phần (P, C, K, E, D)
trong đó:
P là tập hữu hạn các bản rõ có thể
C là tập hữu hạn các bản mã có thể
K là tập hữu hạn các khóa có thể
E là tập hữu hạn các hàm lập mã
D là tập các hàm giải mã
Với mỗi k thuộc K thì tồn tại hàm lập mã e
k
thuộc E, e
k
:P C là một hàm
giải mã d
k
thuộc D: C P sao cho d
k
(e
k
(X)) =x, với mọi x thuộc P
1.1.2. Các hệ mật mã
1.1.2.1. Hệ mật mã khóa đối xứng (khóa mật)
Hệ thống mã hóa đối xứng dựa trên một khóa đơn. Khóa này là một
chuỗi bit có độ dài cố định. Do đó, cơ chế mã hóa này đƣợc coi là mã hóa đơn
khóa. Khóa này là riêng (hoặc bí mật) và đƣợc sử dụng để mã hóa cũng nhƣ giải
mã. Trƣớc khi hai phía trao đổi dữ liệu, khóa phải đƣợc chia sẻ giữa chúng. Sau
đó phía gửi mã hóa bản tin ban đầu sử dụng khóa riêng đó và gửi bản tin đã
7
đƣợc mã hóa cho phía nhận. Tại phía nhận bản tin mã hóa đƣợc giải mã sử dụng
cùng loại khóa riêng trên.
Quá trình mã hóa khóa đối xứng đƣợc mô tả nhƣ hình 1.1
Hình 1.1. Hệ mật mã khóa đối xứng
Chuẩn mã dữ liệu DES (Data Encryption Standard)
DES: Viết tắt của Data Encryption Standard, DES đƣợc chọn làm tiêu
chuẩn liên bang Hoa kỳ vào tháng 11 năm 1976. Với DES, bản rõ (Plaintext)
đƣợc mã hóa theo từng khối 64 bit và sử dụng 1 khóa là 64 bits, nhƣng thực tế
thì chỉ có 56 bits là thực sự đƣợc dùng để tạo khóa, 8 bits còn lại dùng để kiểm
tra tính chẵn, lẻ. DES là một thuật toán đƣợc sử dụng rộng rãi nhất trên thế giới.
Hiện tại DES không còn đƣợc đánh giá cao do kích thƣớc của khóa quá nhỏ 56
bits và dễ bị phá vỡ.
Chuẩn mã dữ liệu 3DES (Triple Data Encryption Standard)
Triple DES (3DES) có độ phức tạp thám mã lớn hơn DES với việc sử
dụng một quá trình mã hóa và giải mã sử dụng 3 khóa. Khối 64 – bits của bản rõ
đầu tiên sẽ đƣợc mã hóa sử dụng khóa thứ nhất. Sau đó, dữ liệu bị mã hóa đƣợc
giải mã bằng việc sử dụng khóa thứ hai. Cuối cùng, sử dụng khóa thứ ba và kết
quả của quá trình giải mã trên để mã hóa:
C = EK
3
(DK
2
(EK
1
(P))) (1.1)
P = DK
1
EK
2
(DK
3
(C))) (1.2)
AES: Viết tắt của Advanced Encryption Standard, đƣợc sử dụng để thay
thế cho DES. Nó hỗ trợ độ dài của khóa từ 128 bits cho đến 256 bits
Bản
Rõ
Key
K
Bản
Mã
Môi
trƣờng
truyền
Bản
Mã
Bản
Rõ
Key
K
Khóa K đƣợc truyền trên kênh
bí mật đến ngƣời gửi, nhận
8
Ƣu nhƣợc điểm:
Ƣu điểm nổi bật của hệ mật mã khóa đối xứng là việc xây dựng một hệ
mật mã có độ bảo mật cao. Nhƣng phải cần có một nguồn sinh khóa ngẫu nhiên
cũng nhƣ việc phân phối, lƣu trữ bảo mật và thỏa thuận khóa là một vấn đề khá
phức tạp trong thực tế. Giả sử, trong một mạng có n ngƣời dùng, nếu cần khóa
cho từng cặp riêng biệt thì phải cần tới: n(n +1)/2 khóa.
1.1.2.2. Hệ mật mã khóa bất đối xứng (khóa công khai)
Trong mô hình mật mã cổ điển mà cho tới nay vẫn còn đang đƣợc
nghiên cứu Alice (ngƣời gửi) và Bob (ngƣời nhận) chọn một cách bí mật khóa
K. Sau đó dùng K để tạo luật mã hóa e
k
và luật giải mã d
k
. Trong hệ mật này, d
k
hoặc giống nhƣ e
k
hoặc dễ dàng nhận đƣợc từ nó (ví dụ trong hệ DES), quá trình
giải hệ mật thuộc loại này còn đƣợc gọi là các hệ mật khóa bí mật vì việc để lộ
e
k
sẽ làm cho hệ thống mất an toàn.
Nhƣợc điểm của hệ mật này là nó yêu cầu phải có thông tin trƣớc về
khóa K giữa Alice và Bob qua một kênh an toàn trƣớc khi gửi một bản mã bất
kỳ. Trên thực tế, điều này rất khó đảm bảo. Chẳng hạn khi Alice và Bob ở rất xa
nhau và họ chỉ có thể liên lạc với nhau bằng thƣ tín điện tử. Trong tình thế đó
Alice và Bob không thể tạo đƣợc một kênh bảo mật với giá phải chăng.
Ý tƣởng xây dựng một hệ mật khóa công khai (hay khóa dùng chung) là
tìm một hệ mật không có khả năng tính toán để xác định d
k
nếu đã biết e
k
. Nếu
thực hiện đƣợc nhƣ vậy thì quy tắc mã e
k
có thể đƣợc công khai bằng cách công
bố nó trong một danh bạ (bởi vậy nên có thuật ngữ hệ mật khóa công khai). Ƣu
điểm của hệ mật khóa công khai là ở chỗ Alice (hoặc bất kỳ một ai) có thể gửi
một bản tin đã mã cho Bob (mà không cần thông tin trƣớc về khóa mật) bằng
cách dùng luật mã công khai e
k
. Bob sẽ là ngƣời duy nhất có thể giải mã đƣợc
bản mã này bằng cách sử dụng luật giải mã bí mật d
k
của mình.
Ý tƣởng về một hệ mật khóa công khai đã đƣợc Diffie và Hellman đƣa
ra vào năm 1976. Còn việc hiện thực hóa hệ mật khóa công khai thì do Rivest
Shamir và Adleman đƣa ra đầu tiên vào năm 1977, họ đã tạo nên hệ RSA nổi
9
tiếng. Kể từ đó đã có một số hệ mật đƣợc công bố, độ mật của chúng dựa trên
các bài toán tính toán khác nhau. Trong đó quan trọng nhất là các hệ mật sau:
- Hệ mật RSA
Độ bảo mật của hệ RSA dựa trên độ khóa của việc phân tích ra thừa số
nguyên tố của các số nguyên lớn.
- Hệ mật trên các đƣờng cong Eliptic
Các hệ mật này là các biến tƣớng của các hệ mật khác (chẳng hạn từ hệ
mật ElGamal). Chúng làm việc trên đƣờng cong Eliptic chứ không phải là trên
các đƣờng hữu hạn. Hệ mật này đảm bảo độ mật với khóa số nhỏ hơn các hệ mật
khóa công khai khác.
Sơ đồ hoạt động hệ mật khóa công khai:
Hình 1.2. Sơ đồ hoạt động sử dụng khóa công khai gửi nhận dữ liệu
Khi Bob muốn gửi dữ liệu cho Alice, Bob lấy khóa công khai (Alice’s
PublicKey) của Alice mã hóa thông điệp gửi sau đó gửi bản mã cho Alice.
Khi nhận đƣợc thông điệp mã của Bob gửi Alice dùng khóa riêng của mình
(Alice’s PrivateKey) giải mã thông điệp.
Hệ mật RSA
Logarit rời rạc là sự tiếp nối của phép tính lôgarit trên trƣờng số thực vào
các nhóm hữu hạn. Giả sử hai số thực x,y và cơ số a>0, a ≠ 1, nếu a
x
= y thì x
đƣợc gọi là lôgarit cơ số a của y, ký hiệu x = log
a
y
Cho p là một số nguyên tố. Xét nhóm nhân các số nguyên modulo p
Z
p
= {1,2, p} với phép nhân modulo p.
Alice’s
PublicKey
Môi
trƣờng
truyền
Bản
Mã
Bản
Rõ
Alice’s
PrivateKey
Bản
Mã
Bản
Rõ
Bob
Gửi
Alice
Nhận
10
Nếu ta tính lũy thừa bậc k của một số trong nhóm rồi rút gọn theo
modulo p thì ta đƣợc một số trong nhóm đó. Quá trình này đƣợc gọi là lũy thừa
rời rạc modulo p. Chẳng hạn với p = 17, lấy a = 3, k = 4 ta có:
3
4
= 81 13 (mod 17)
Lôgarit rời rạc là phép tính ngƣợc lại:
Biết: 3
k
13 (mod 17) hãy tìm k
Thuật toán đƣợc Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu
tiên vào năm 1977 tai học viện Công nghệ Masachusetts (MIT). Tên của thuật
toán lấy từ 3 chữ cái đầu tiên của tên 3 tác giả. Hệ mật mã RSA đƣợc sử dụng
rộng rãi trong thực tiến đặc biệt cho mục đích bảo mật và xác thực dữ liệu số.
Tính bảo mật và an toàn của chúng đƣợc đảm bảo bằng độ phức tạp của một bài
toán số học nổi tiếng là phân tích số nguyên thành các thừa số nguyên tố. Hệ
mật RSA đƣợc mô tả nhƣ hình sau:
Cho n = pq với p,q là số nguyên tố lớn. Đặt P = C = Z
n
Ta định nghĩa:
K = {n, p, q, a, b}: n=pq, p,q là các số nguyên tố ab 1 mod (n)
(n) = (p – 1)(q – 1), a khóa mật, b khóa công khai
Với mỗi K = (n, p, q, a, b), mỗi x P, y C, ta xác định hàm mã và
giải mã nhƣ sau:
Hàm mã hóa: y = e
k
(x) = x
b
mod n.
Hàm giải mã: D
k
(x) = y
a
mod n
(x,y Z
n
) Các giá trị n,b công khai và p,q,a đƣợc giữ bí mật.
Hình 1.3. Sơ đồ hệ mật mã RSA
Khả năng đảm bảo an toàn của hệ mật mã RSA:
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: Bài toán
phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài
toán trên là khó (không tìm đƣợc thuật toán hiệu quả để giải chúng) thì không
thể thực hiện đƣợc việc phá mã toàn bộ đối với RSA.
11
Bài toán RSA là bài toán tính căn bậc e mođun n (với n là hợp số): tìm
số m sao cho m
e
= c mod n, trong đó (e,n) chính là khóa công khai và c là bản
mã. Hiện nay phƣơng pháp triển vọng nhất giải bài toán này là phân tích n ra
thừa số nguyên tố. Khi thực hiện đƣợc điều này, kẻ tấn công sẽ tìm ra số mũ bí
mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán.
Nếu kẻ tấn công tìm đƣợc 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ
dàng tìm ra đƣợc giá trị (p-1)(q-1) và qua đó xác định d từ e. Chƣa có một
phƣơng pháp nào đƣợc tìm ra trên máy tính đề giải bài toán này trong thời gian
đa thức (polynomial – time). Tuy nhiên ngƣời ta cũng chƣa chứng minh đƣợc
điều ngƣợc lại (sự không tồn tại của thuật toán).
Tại thời điểm năm 2005, số lớn nhất có thể đƣợc phân tích ra thừa số
nguyên tố có độ dài 663 bits với phƣơng pháp phân tán trong khi khóa của RSA
có độ dài từ 1024 đến 2048 bits. Một số chuyên gia cho rằng khóa 1024 bits có
thể sớm bị phá vỡ (cũng có nhiều ngƣời phản đối việc này). Với khóa 4096 bits
thì hầu nhƣ không có khả năng bị phá vỡ trong tƣơng lai gần. Do đó, ngƣời ta
thƣờng cho rằng RSA đảm bảo an toàn với điều kiện n đƣợc chọn đủ lớn. Nếu n
có độ dài 256 bits hoặc ngắn hơn, có thể bị phân tích trong vài giờ với máy tính
cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 521 bits, nó có thể bị phân
tích bởi vài trăm máy tính tại thời điểm năm 1999. Một thiết bị lý thuyết có tên
là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về độ an toàn
của khóa 1024 bits. Vì vậy hiện nay ngƣời ta khuyến cáo sử dụng khóa có độ dài
tối thiểu 2048 bits.
Thực tiễn triển khai cho thay tốc độ mã hóa khối dữ liệu lớn bằng các
thuật toán mã hóa công khai chậm hơn rất nhiều so với hệ mã hóa đối xứng. Ví
dụ, để đạt đƣợc độ an toàn nhƣ các hệ mã hóa đối xứng mạnh cùng thời, RSA
đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn lần. Do
đó, thay bằng việc mã hóa văn bản có kích thƣớc lớn bằng lƣợc đồ khóa công
khai thì văn bản này sẽ đƣợc mã hóa bằng một hệ mã đối xứng có tốc độ cao
nhƣ DES, IDEA sau đó khóa đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã
12
hóa sử dụng mật mã công khai. Phƣơng pháp này rất khả thi trong việc mã và
giải mã những văn bản có kích thƣớc lớn nhƣ đƣợc mô tả trong hình dƣới:
Hình 1.4. Dùng khóa công khai mã hóa khóa mật – Dùng khóa mật mã hóa
thông điệp gửi đi
1.2. Hạ tầng cơ sở khóa công khai
Cơ sở hạ tầng của mã công khai PKI là khung chính sách quản lý mã và
thiết lập biện pháp bảo mật cho việc chuyển đổi dữ liệu. Việc chuyển dữ liệu mà
có sử dụng PKI có thể thực hiện trong một tổ chức, một thành phố, hay một
vùng. Để tăng cƣờng quản lý khóa và bảo đảm độ an toàn cao cho dữ liệu, PKI
bao gồm các cơ chế và thủ tục hỗ trợ cho phần cứng và phần mềm. Các chức
năng của PKI bao gồm:
- Phát ra cặp khóa riêng và chung cho client PKI
- Tạo và thẩm định các ký tự
- Đăng ký và thẩm định ngƣời sử dụng
- Cấp chứng nhận cho ngƣời sử dụng
- Theo dõi các khóa đƣợc phát ra ghi lại lịch sử của từng khóa.
- Thu hồi chứng nhận hết hiệu lực.
- Tạm dừng hay kích hoạt chứng chỉ.
Môi
trƣờng
truyền
Bản
Rõ
Bản
Mã
Khóa
mật
Khóa
mật
Khóa
mật
Khóa bí
mật của
Alice
Bản
Mã
Bản
Rõ
Khóa công
khai của Alice
Bob
Gửi
Alice
Nhận
13
- Thẩm định các client PKI
1.2.1. Sinh khóa, phân phối khóa
1.2.1.1. Sinh khóa:
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh
không an toàn (ví dụ nhƣ Internet). Với thuật toán RSA, Alice đầu tiên cần tạo
ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bƣớc sau:
B1. Chọn 2 số nguyên tố lớn p và q với p ≠ q
B2. Tính n=pq và (n)=(p-1)(q-1)
B3. Chọn số b nguyên tố cùng nhau với (n) và 1< b < (n)
B4. Tính a sao cho ab 1 (mod (n))
Thành phần công khai bao gồm: n và b (khóa công khai)
Thành phần bí mật bao gồm: p, q, a (khóa bí mật)
a là số mũ bí mật (cũng gọi là số mũ giải mã).
Alice gửi khóa công khai cho Bob và giữ bí mật khóa cá nhân của mình.
Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân tố của n và cho phép
tính a khi biết b. Việc tìm ra 2 số nguyên tố đủ lớn p và q thƣờng đƣợc thực hiện
bằng cách thử xác suất của các số ngẫu nhiên có độ lớn phù hợp (dùng phép
kiểm tra nguyên tố cho phép loại bỏ hầu hết các hợp số). p và q còn cần đƣợc
chọn không quá gần nhau để phòng trƣờng hợp phân tích n bằng phƣơng pháp
phân tích Fermat. Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ thì n
cũng có thể dễ dàng bị phân tích và vì thế p và q cũng cần đƣợc thử để tránh khả
năng này.
Một điểm nữa cần nhấn mạnh là khóa bí mật a phải đủ lớn. Năm 1990,
Wiener chỉ ra rằng nếu giá trị của p nằm trong khoảng q và 2q (khá phổ biến) và
a<n
1/4
/3 thì có thể tìm ra đƣợc a từ n và b.
Mặc dù b đã từng có giá trị là 3 nhƣng hiện nay các số mũ nhỏ không
còn đƣợc sử dụng do có thể tạo nên những lỗ hổng. Giá trị thƣờng dùng hiện nay
là 65537 vì đƣợc xem là đủ lớn và cũng không quá lớn ảnh hƣởng tới việc thực
hiện hàm mũ.
14
1.2.1.2. Phân phối khóa:
Hệ thống mã khoá công khai có ƣu điểm hơn hệ thống mã khoá riêng ở
chỗ không cần có kênh an toàn để trao đổi khoá mật. Tuy nhiên, hầu hết các hệ
thống mã khoá công khai đều chậm hơn hệ mã khoá riêng, chẳng hạn nhƣ DES.
Vì thế thực tế các hệ mã khoá riêng thƣờng đƣợc dùng để mã các bức điện dài.
Nhƣng khi đó chúng ta lại trở về vấn đề trao đổi khoá mật.
Giả sử, ta có một mạng không an toàn gồm n ngƣời sử dụng. Trong một
số sơ đồ, ta có ngƣời uỷ quyền đƣợc tín nhiệm (TA) để đáp ứng những việc nhƣ
xác minh danh tính của ngƣời sử dụng, chọn và gửi khoá đến ngƣời sử dụng
Do mạng không an toàn nên cần đƣợc bảo vệ trƣớc các đối phƣơng. Đối phƣơng
(Oscar) có thể là ngƣời bị động, có nghĩa là hành động của anh ta chỉ hạn chế ở
mức nghe trộm bức điện truyền trên kênh. Song mặt khác, anh ta có thể là ngƣời
chủ động. Một đối phƣơng chủ động có thể làm nhiều hành vi xấu chẳng hạn:
-Thay đổi bức điện mà anh ta nhận thấy là đang đƣợc truyền trên
mạng.
- Cất bức điện để dùng lại sau này.
- Cố gắng giả dạng làm những ngƣời sử dụng khác nhau trên mạng.
Mục tiêu của đối phƣơng chủ động có thể là một trong những cái nêu sau
đây:
- Lừa U và V chấp nhận khoá “không hợp lệ” nhƣ khoá hợp lệ (khoá
không hợp lệ có thể là khoá cũ đã hết hạn sử dụng, hoặc khoá do đối phƣơng
chọn).
- Làm U hoặc V tin rằng, họ có thể trao đổi khoá với ngƣời kia khi họ
không có khoá.
Mục tiêu của phân phối khoá và giao thức thoả thuận khoá là, tại thời
điểm kết thúc thủ tục, hai nhóm đều có cùng khoá K song không nhóm khác nào
biết đƣợc (trừ khả năng TA). Chắc chắn, việc thiết kế giao thức có kiểu an toàn
này khó khăn hơn nhiều trƣớc đối phƣơng chủ động.
Trƣớc hết ta xem xét ý tƣởng về sự phân phối khoá trƣớc. Với mỗi cặp
ngƣời sử dụng {U,V}, TA chọn một khoá ngẫu nhiên KU,V=KV,U và truyền
15
“ngoài dải” đến U và V trên kênh an toàn (nghĩa là, việc truyền khoá không xảy
ra trên mạng do mạng không an toàn). Biện pháp này gọi là an toàn không điều
kiện song nó đòi hỏi một kênh an toàn giữa TA và những ngƣời sử dụng trên
mạng. Tuy nhiên điều quan trọng hơn là mỗi ngƣời phải lƣu n -1 khoá và TA
cần truyền tổng cộng
n
2
khoá một cách an toàn (đôi khi bài toán này đƣợc gọi
là bài toán n
2
). Thậm chí với một số mạng tƣơng đối nhỏ, giá để giải quyết vấn
đề này là khá đắt và nhƣ vậy giải pháp hoàn toàn không thực tế.
Sơ đồ phân phối trƣớc khoá an toàn không điều kiện do Blom đƣa ra. Sơ
đồ cho phép giảm lƣợng thông tin mật mà ngƣời sử dụng cần cất giữ trên mạng.
Một biện pháp thực tế hơn là TA phân phối khoá trực tiếp. Trong sơ đồ
nhƣ vậy, TA làm việc nhƣ một ngƣời chủ khoá (key server). TA chia khoá mật
K
U
cho mỗi ngƣời sử dụng U trên mạng. Khi U muốn liên lạc với V, cô ta yêu
cầu TA cung cấp khoá cho phiên làm việc (session key). TA tạo ra khoá session
K và gửi nó dƣới dạng mã hoá cho U và V để giải mã. Hệ thống mã Kerboros
mô tả dựa trên biện pháp này.
Phân phối khóa trƣớc:
Theo phƣơng pháp cơ bản, TA tạo ra
2
n
khoá và đƣa mỗi khoá cho
duy nhất một cặp ngƣời sử dụng trong mạng có n ngƣời sử dụng. Nhƣ đã nêu ở
trên, ta cần một kênh an toàn giữa TA và mỗi ngƣời sử dụng để truyền đi các
khoá này. Đây là một cải tiến quan trọng vì số kênh an toàn cần thiết giảm từ
2
n
xuống còn n. Song nếu n lớn, giải pháp này cũng không thực tế cả về
lƣợng thông tin cần truyền đi an toàn lẫn lƣợng thông tin mà mỗi ngƣời sử dụng
phải cất giữ an toàn (nghĩa là các khoá mật của n-1 ngƣời sử dụng khác). Nhƣ
vậy, điều cần quan tâm là cố gắng giảm đƣợc lƣợng thông tin cần truyền đi và
cất giữ trong khi vẫn cho phép mỗi cặp ngƣời sử dụng U và V có khả năng tính
toán khoá mật K
UV
. Một sơ đồ ƣu việt hơn thoả mãn yêu cầu này là sơ đồ phân
phối khoá trƣớc của Blom.
Sơ đồ Blom
16
Nhƣ trên, giả thiết rằng có một mạng gồm n ngƣời sử dụng. Để thuận
tiện, giả sử rằng các khoá đƣợc chọn trên trƣờng số hữu hạn Z
p
, p n là số
nguyên tố. Cho k là số nguyên, 1 < k < n -2. Giá trị k để hạn chế kích thƣớc lớn
nhất mà sơ đồ vẫn duy trì đƣợc mật độ. Trong sơ đồ Blom, TA sẽ truyền đi k +1
phần tử của Z
p
cho mỗi ngƣời sử dụng trên kênh an toàn (so với n -1 trong sơ đồ
phân phối trƣớc cơ bản). Mỗi cặp ngƣời sử dụng U và V sẽ có khả năng tính
khoá K
U,V
= K
V,U
nhƣ trƣớc đây. Điều kiện an toàn nhƣ sau: tập bất kì gồm
nhiều nhất k ngƣời sử dụng không liên kết từ {U, V} phải không có khả năng
xác định bất kì thông tin nào về K
U,V
.
Trƣớc hết, xét trƣờng hợp đặc biệt của sơ đồ Blom khi k =1. ở đây TA sẽ
truyền đi 2 phần tử của Z
P
cho mỗi ngƣời sử dụng trên kênh an toàn và ngƣời sử
dụng riêng W sẽ không thể xác định đƣợc bất kì thông tin nào về K
U,V
nếu
WU,V. Sơ đồ Blom với k=1 đƣợc đƣa ra nhƣ sau.
Z
p
Hình 1.6. Sơ đồ phân phối khóa trƣớc của Blom
Ví dụ minh họa sơ đồ Blom với k=1:
Giả sử có 3 ngƣời sử dụng U,V,W, p=17 và các phần tử công khai của
họ là r
U
= 12, r
V
= 7, r
W
= 1. Giả thiết TA chọn a=8, b=7, c=2, khi đó đa thức f
nhƣ sau:
1. Số nguyên tố P công khai, còn với mỗi ngƣời sử dụng U phần tử r
U
Z
p
là
công khai. Phần tử r
U
phải khác biệt.
2. Ta chọn 3 phần tử ngẫu nhiên a,b,cZ
p
(không cần khác biệt) và thiết lập
đa thức:
f(x,y) = a + b(x+y) +cxy mod p
3. Với mỗi ngƣời sử dụng U. TA tính đa thức:
g
U
(x)
= f(x,r
U
) mod p
và truyền g
U
(x) đến U trên kênh an toàn. Chú ý rằng, g
U
(x) là đa thức tuyến
tính theo x nên có thể viết nhƣ sau:
g
U
(x)= a
U
+ b
U
x
Với a
U
= a + br
U
mod p
b
U
= b+ cr
U
mod p
4. Nếu U và V muốn liên lạc với nhau họ sẽ dùng khóa chung:
K
U,V
= K
V,U
= f(r
U
,r
V
) = a + b(r
U
+ r
V
) + cr
U
r
V
mod p
U tính K
U,V
nhƣ sau: f(r
U
,r
V
) = g
U
(r
V
)
V tính K
V,U
nhƣ sau: f(r
V
,r
U
) = g
V
(r
U
)
17
f(x,y) = 8 + 7(x+y) + 2xy
Khi đó các đa thức
g
U
(x) = 7 + 14x
g
V
(x) = 5 + 4x
g
W
(x) = 15 + 9x
Nhƣ vậy 3 khóa nhận đƣợc sẽ là:
K
U,V
= K
V,U
= 3
K
U,W
= K
W,U
= 4
K
V,W
= K
W,V
= 10
Khi đó U tính K
U,V
nhƣ sau:
g
U
(r
V
) = 7 + 147 mod 17 = 3
Và V tính K
V,U
g
V
(r
U
) = 6 + 412 mod 17 = 3
Tƣơng tự các khóa khác.
1.2.2. Mã hóa và giải mã
Mã hóa
Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển M
thành một số m<n theo một hàm có thể đảo ngƣợc (từ m có thể xác định lại M)
đƣợc thỏa thuận trƣớc.
Lúc này Bob có m và biết n cũng nhƣ e do Alice gửi. Bob sẽ tính c là bản
mã hóa của m theo công thức:
c = m
c
mod n
Hàm trên có thể tính dễ dàng sử dụng phƣơng pháp tính hàm mũ (theo
môđun) bằng (thuật toán bình phƣơng và nhân) Cuối cùng Bob gửi c cho Alice.
Giải mã
Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm đƣợc m từ c
theo công thức sau:
m = c
d
mod n
Biết m, Alice tìm lại M theo phƣơng pháp đã thỏa thuận trƣớc. Quá trình
giải mã hoạt động vì ta có:
(1.10)
(1.11)
18
c
d
)(mod)( nmm
edde
Do ed 1(mod p-1) và ed 1(mod q-1), nên:
m
ed
m(mod p) và m
ed
1(mod q)
Mặt khác p,q là 2 số nguyên tố cùng nhau, nên theo định lý số dƣ Trung
Quốc, ta có: m
ed
m (mod pq) hay c
d
m (mod n)
Ví dụ:
Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và (n) = 100 x 112
= 11200. Vì 11200 = 2
6
5
2
7, nên có thể dùng một số nguyên b nhƣ một số mũ
hóa khi và chỉ khi b không chia hết cho 2,5 hoặc 7. (Vì thế trong thực tế Bob sẽ
không phân tích (n)), anh ta sẽ kiểm tra điều kiện UCLN((n), b) = 1 bằng
thuật toán Euclide. Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclide
mở rộng:
b
-1
= 6597 mod 11200
Bởi vậy, số mũ mật để giải mã của Bob là a = 6597.
Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ. Bây giờ, giả sử
Alice muốn gửi bản rõ 9726 tới Bob. Cô ta sẽ tính
9726
3533
mod 11413 = 5761
Rồi gửi bản mã 5761 trên kênh. Khi Bob nhận đƣợc bản mã 5761, anh ta sử
dụng số mũ a mật để tính:
5761
6597
mod 11413 = 9726
Độ mật của hàm RSA đƣợc dựa trên giả thiết là hàm mã e
k
(x) = x
b
mod n là
hàm một chiều. Bởi vậy thám mã sẽ không có khả năng về mặt tính toán để giải
mã một bản mã. Cửa sập cho phép Bob giải mã đƣợc chính là thông tin về phép
phân tích thừa số n (n = pq). Vì Bob biết phân tích này, anh ta có thể tính (n) =
(p -1)(q -1) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Euclide mở
rộng.
1.2.3. Chữ ký số, Hàm Băm
Thông thƣờng khi nhận đƣợc một văn bản bằng giấy, các vấn đề sau đây
đƣợc đặt ra và cần đƣợc giải quyết với ngƣời nhận:
19
Ai là ngƣời gửi văn bản này?: Kiểm tra họ, tên ngƣời ký văn bản
Nội dung văn bản trong quá trình gửi có bị thay đổi hay không?: xem các
chữ ký nháy trên từng trang, tính liên tục của số trang…
Ngƣời viết có thể phủ nhận nội dung văn bản không?: kiểm tra chữ ký của
ngƣời ký gửi văn bản có còn nguyên trạng không?
Những vấn đề này cũng xảy ra và cần đƣợc giải quyết trong quá trình trao
đổi thông tin điện tử (nhƣ thƣ điện tử, file dữ liệu….) và đó gọi là
Tính xác thực – Authentication
Tính toàn vẹn dữ liệu – Integrity
Tính chống chối bỏ - Non – repudiation
Tính bí mật – Privacy
Qua trình giải quyết 4 vấn đề trên đƣợc sử lý nhƣ sau:
Đoạn dữ liệu cần đƣợc bảo mật đƣợc đƣa qua hàm băm (hashing), kết quả
của hàm băm là một đoạn bit đảm bảo 2 tính chât
o Tính duy nhât: Mỗi một đoạn dữ liệu khác nhau thì sẽ có một đoạn
bit khác nhau, không trung lặp, có độ dài không đổi
o Tính một chiều: từ đoạn bit đặc trƣng này, không suy ngƣợc lại đƣợc
nội dung đoạn văn
Đoạn bit đặc trƣng này đƣợc mã hóa bằng khóa bí mật của ngƣời gửi và
đƣợc đính kèm vào “văn bản”, rồi gửi đến ngƣời nhận; đoạn bít đƣợc mã hóa
này chính là chữ ký số (digital signature)
Môi
trƣờng
truyền
Bản
Rõ
Khóa mật
của Bob
Bob ký
và gửi
Alice nhận
và xác thực
Hàm Băm
Kết quả
băm văn
bản
Bản
Rõ
Hàm
Băm
Kết
Luận
Kết quả
băm văn
bản
Kết quả
giải mã
chữ ký
Khóa
công
khai Bob
20
Hình 1.9. Mô tả quá trình ký, xác thực chữ ký
Từ phía ngƣời nhận, khi nhận đƣợc “văn bản” kèm chữ ký số, tiến trình
kiểm tra sẽ nhƣ sau:
Lấy đoạn dữ liệu gốc, đƣa qua hàm băm đã nói ở trên, thu đƣợc một đoạn
bit là kết quả hàm băm
Lấy đoạn bit đƣợc mã hóa (chữ ký số), giải mã bằng khóa công khai của
ngƣời gửi, thu đƣợc đoạn bit đặc trƣng
So sánh đoạn bit vừa thu đƣợc với đoạn bit thu đƣợc trong bƣớc 1, nếu 2
đoạn trùng nhau và tin rằng khóa công khai chắc chắn là do ngƣời gửi phát hành
thì kết luận:
o Dữ liệu nhận đƣợc có tính toàn vẹn (vì kết quả băm là duy nhất, một
chiều)
o Dữ liệu nhận dƣợc là do chính ngƣời gửi gửi đi vì chỉ duy nhất anh
ta mới có khóa bí mật phù hợp với khóa công khai đã đƣợc sử dụng để
giải mã. Nhƣ vậy tính chống từ chối và tính xác thực đƣợc kiểm tra và
xác nhận. Lúc này ngƣời nhận tin rằng, khóa công khai đó đại diện
hợp pháp cho ngƣời gửi.
Sơ đồ chữ ký số đƣợc định nghĩa nhƣ sau:
Sơ đồ gồm bộ năm thành phần (P, A, K, S, V), trong đó:
1. P là một tập hữu hạn các văn bản có thể
2. A là một tập hữu hạn các chữ ký có thể
3. K là một tập hữu hạn các khóa có thể
4. S là tập các thuật toán ký
5. V là tập các thuật toán kiểm thử
Với mỗi k K, có một thuật toán sig
k
S, sig
k
: PA là một thuật toán
kiểm thử Ver
k
V, Ver
k
: PA {Đúng, Sai} thỏa mãn điều kiện sau đây với
x P, y A:
21
)(,
)(,
),(
xsigykhiSai
xsigykhiĐúng
yxVer
k
k
k
RSA cũng là một thuật toán đƣợc dùng nhiều cho mục đích ký số. Ngoài ra,
còn có một số thuật toán công khai khác đƣợc dùng để ký số, ví dụ nhƣ chuẩn
chữ ký số DSS.
Tuy nhiên, vấn đề đặt ra là: khóa công khai đó có đúng là của ngƣời gửi
văn bản không, và ai là ngƣời chứng thực vấn đề này?
Trong đó, vai trò của khóa công khai của ngƣời gửi có thể đƣợc coi nhƣ
chữ ký mẫu của ngƣời gửi khi làm việc với văn bản giấy, chữ ký mẫu này đƣợc
công nhận và công bố công khai trong toàn hệ thống giao dịch điện tử.
Hàm băm
Việc sử dụng các hệ mật mã và sơ đồ chữ ký thƣờng là mã hóa và ký số
trên từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung
lƣợng của thông tin. Thêm vào đó có thể xảy ra trƣờng hợp: với nhiều bức thông
điệp đầu vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau (có thể
khác nhau) thì cho ra kết quả bảng mã, bản ký số giống nhau (ánh xạ N – 1;
nhiều – một. Điều này sẽ dẫn đến một số rắc rối về sau cho việc xác thực thông
tin.
Các sơ đồ ký số thƣờng chỉ đƣợc sử dụng để ký các bức thông điệp (thông
tin) có kích thƣớc nhỏ và sau khi ký, bản ký số có kích thƣớc gấp đôi bản thông
điệp gốc – ví dụ với sơ đồ chữ ký chuẩn DSS ký trên các bức thông điệp có kích
thƣớc 160 bit, bản ký số sẽ có kích thƣớc 320 bits. Trong khi đó trên thực tế, ta
cần phải ký các thông điệp có kích thƣớc lớn hơn nhiều, chẳng hạn nhƣ vài chục
MegaByte.
Hơn nữa, để đáp ứng yêu cầu xác thực sau khi thông tin đến ngƣời nhận, dữ
liệu truyền qua mạng không chỉ là bản thông điệp gốc, mà còn bao gồm bản ký
số (có dung lƣợng gấp đôi dung lƣợng bản thông điệp gốc). Một cách đơn giản
để giải quyết vấn đề trên (với thông điệp có kích thƣớc lớn) này là chặt thông
điệp thành nhiều đoạn 160 bits, sau đó ký lên các đoạn đó độc lập nhau. Nhƣng
sử dụng biện pháp này sẽ có một số vấn đề gặp phải trong việc tạo ra chữ ký số:
(1.12)
22
- Thứ nhất: Với thông điệp có kích thƣớc a, thì sau khi ký kích thƣớc
của chữ ký sẽ là 2a (trong trƣờng hợp sử dụng DSS)
- Thứ hai: Với các chữ ký “an toàn” thì tốc độ chậm vì chúng dùng
nhiều phép tính số học phức tạp nhƣ số mũ modulo.
- Thứ ba: Vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung
của thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn
trong chúng có thể bị mất mát, trong khi ngƣời nhận cần xác minh lại
thông điệp. Do đó, ta cần phải bảo đảm tính toàn vẹn của thông điệp.
Giải pháp cho các vấn đề vƣớng mắc đến chữ ký số là dùng hàm băm để trợ
giúp cho việc ký số.
Hàm băm – hiểu theo một nghĩa đơn giản là hàm cho tƣơng ứng một mảng
dữ liệu lớn với một mảng dữ liệu nhỏ hơn – đƣợc sử dụng rộng rãi trong nhiều
ứng dụng khác nhau của tin học, không chỉ thuộc phạm vi mật mã học.
Hàm băm đƣợc đề cập đến trong phạm vi luận văn là hàm băm một chiều,
có tác dụng trợ giúp cho các sơ đồ ký nhằm làm giảm dung lƣợng của dữ liệu
cần thiết để truyền qua mạng. Hàm băm ở đây đƣợc hiểu là các thuật toán không
sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó
có nhiệm vụ băm thông tin đƣợc đƣa vào theo một thuật toán h một chiều nào
đó, rồi đƣa ra một văn bản – văn bản đại diện – có kích thƣớc cố định. Giá trị
của hàm băm là duy nhất và không thể suy ngƣợc lại nội dung thông điệp từ giá
trị băm này. Hàm băm một chiều h có một số đặc tính quan trọng sau:
- Với thông điệp đầu vào x thu đƣợc bản băm z = h(x) là duy nhất
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông
điệp x’ thì h (x’) khác h (x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ
là xóa đi 1 bit dữ liệu của thông điệp thì giá trị băm cũng vẫn thay đổi.
Điều này có nghĩa là hai thông điệp hoàn toàn khác nhau thì giá trị hàm
băm cũng khác nhau.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm.
Nghĩa là: với thông điệp x thì dễ dàng tính đƣợc z = h(x), nhƣng lại
23
không thể (thực chất là khó) suy ngƣợc lại đƣợc x nếu chỉ biết giá trị
hàm băm h(x).
Một số thuật toán băm đƣợc biết đến nhiều là hàm băm dòng và hàm băm
chuẩn nhƣ: [MD2], [MD4], [MD5], [SHA-1]…
1.2.4. Chứng chỉ số và giải pháp quản lý
1.2.4.1. Chứng chỉ số
Để giải quyết vấn đề “khóa công khai đó có đúng là của ngƣời gửi văn
bản không và ai là ngƣời chứng thực vấn đề này?”, về mặt công nghệ, vấn đề
đƣợc giải quyết nhƣ sau:
Xây dựng một hệ thống tập trung làm nhiệm vụ chứng thực, cấp phát
cặp khóa bí mật – công khai cho ngƣời sử dụng (Gắn thông tin cá nhân nhƣ họ
tên, cơ quan, … của ngƣời sở hữu cặp khóa vào phần khóa công khai tạo thành
một file dữ liệu, đây chính là phần nội dung của chứng chỉ số).
Để đảm bảo tính toàn vẹn và tin cậy của file dữ liệu này, hệ thống phát
hành sử dụng khóa bí mật của mình khởi tạo chữ ký điện tử và đính kèm lên file
dữ liệu trên tạo ra chứng chỉ số (digital certificate) cho ngƣời sở hữu cặp khóa.
Hệ thống cung cấp và chứng thực khóa đó đại diện cho ngƣời tham gia
giao dịch đƣợc gọi là hệ thống chứng thực số (Certificate Authority – CA)
Tất cả các bên giao dịch muốn kiểm tra tính đúng đắn, hợp lệ về nội
dung của chứng chỉ số đều xuất phát từ việc tin cậy vào chữ ký số của CA trên
chứng chỉ số (điều này cũng hoàn toàn tự nhiên nhƣ khi ta xem xét một chứng
minh thƣ nhân dân để tin cậy vào một cá nhân, ta tin cậy vào chữ ký và dấu của
ngƣời ký chứng minh thƣ đó). Nhƣ vậy, có thể thấy rằng:
Chứng chỉ số có ba thành phần chính:
Thông tin cá nhân của ngƣời đƣợc cấp
Khóa công khai (Public Key) của ngƣời đƣợc cấp
Chữ ký số của CA cấp chứng chỉ.
Chứng thực điện tử có các chức năng chính sau:
Tính xác thực: Đảm bảo đƣợc thực thể hợp pháp.
24
Tính toàn vẹn dữ liệu: Xác định đƣợc thông tin nhận đƣợc có đúng
nhƣ thông tin gửi đi không hay đã bị thay đổi.
Tính không chối bỏ: Chứng thực điện tử đảm bảo cho ngƣời sử
dụng không thể chối bỏ về các dữ liệu của mình đã gửi.
Tính bí mật: Mã hóa thông tin gửi đi trên mạng, đảm bảo bí mật
thông tin.
Với những tính năng nhƣ vậy chứng thực điện tử đƣợc sử dụng trong khá
nhiều ứng dụng nhƣ:
- Ký vào tài liệu điện tử
- Thƣ điện tử bảo đảm
- Thƣơng mại điện tử
- Bảo vệ mạng không dây (WLAN – Wireless Lan Area Network)
- Bảo đảm an toàn cho máy chủ và các dịch vụ Web
- Mạng riêng ảo
Có nhiều loại chứng chỉ số, một trong số đó là:
- Chứng chỉ khóa công X.509
- Chứng chỉ khóa công đơn giản (Simple public key Certificates –
SPKC)
- Chứng chỉ Pretty Good Privacy (PGP)
- Chứng chỉ thuộc tính (Attribute Certifcates – AC)
Tất cả các loại chứng chỉ này đều có cấu trúc định dạng riêng. Hiện nay
chứng chỉ khóa công khai X.509 đƣợc sử dụng phổ biến trong hầu hết các hệ
thống PKI. Hệ thống chƣơng trình cấp chứng chỉ số thử nghiệm cũng sử dụng
định dạng chứng chỉ theo X.509.
Chứng chỉ khóa công khai X.509
Chứng chỉ X.509 v3 là định dạng chứng chỉ phổ biến và đƣợc hầu hết
các nhà cung cấp sản phẩm PKI triển khai.
Chứng chỉ khóa công khai X.509 đƣợc Hội viễn thông quốc tế (ITU) đƣa
ra lần đầu tiên vào năm 1988 nhƣ là một bộ phận có dịch vụ thƣ mục X.500.
25
Chứng chỉ gồm hai phần. Phần đầu là những trƣờng cơ bản cần thiết phải
có trong chứng chỉ. Phần thứ hai thêm một số trƣờng phụ, những trƣờng này
đƣợc gọi là trƣờng mở rộng dùng để xác định và đáp ứng những yêu cầu bổ sung
của hệ thống. Khuôn dạng của chứng chỉ X.509 đƣợc chỉ ra trong hình 1.10.
Version number
Seriant number
Signature
Issuer
Validity Period
Subject
Subject Public key Information
Issuer Unique ID
Subject Unique ID
Extensions
Hình 1.10. Khuôn dạng chứng chỉ X.509
Những trƣờng cơ bản của chứng chỉ X.509
Version: Xác định sô phiên bản của chứng chỉ
Certificate serianl Number: Do CA gán, là định danh duy nhất của
chứng chỉ.
Signature Algorithm ID: Chỉ ra thuật toán CA sử dụng để ký trên
chứng chỉ (thuật toán RSA, DSA,…)
Issuer: Chỉ ra CA cấp và ký trên chứng chỉ.
Validity Period: Khoảng thời gian chứng chỉ có hiệu lực. Trƣờng này
xác định thời gian chứng chỉ bắt đầu có hiệu lực và thời điểm hết hạn.
Subject: Xác định thực thể mà khóa công khai của thực tế này đƣợc
xác nhận. Tên của Subject phải duy nhất đối với mỗi thực thể CA xác nhận.
Subject Pubblic key information: Chứa khóa công khai và những tham
số liên quan; xác định thuật toán (ví dụ RSA hay DSA) đƣợc sử dụng cùng với
khóa.