Bài giảng An toàn an ninh thông tin - Chương 5: Chữ ký số - Bùi Trọng Tùng

05/05/2021  
BÀI 5.  
CHỮ KÝ SỐ  
Bùi Trọng Tùng,  
Viện Công nghệ thông tin và Truyền thông,  
Đại học Bách khoa Hà Nội  
1
1
Nội dung  
• Khái niệm cơ bản về chữ ký số  
• Một số phương pháp ký số  
• Giao thức chữ ký số  
• Hạ tầng khóa công khai PKI  
2
1
2
05/05/2021  
KHÁI NIỆM CƠ BẢN  
3
3
Khái niệm – Digital Signature  
• Chữ kí số(Digital Signature) hay còn gọi là chữ ký điện tử  
là đoạn dữ liệu được bên gửi gắn vào văn bản gốc để  
chứng thực nguồn gốc và nội dung của văn bản  
• Yêu cầu:  
• Tính xác thực: người nhận có thể chứng minh được văn bản được  
ký bởi gửi  
• Tính toàn vẹn: người nhận có thể chứng minh được không có ai  
sửa đổi văn bản đã được ký  
• Không thể tái sử dụng: mỗi chữ ký chỉ có giá trị trên 1 văn bản  
• Không thể giả mạo  
• Chống từ chối: người gửi không thể phủ nhận được hành động ký  
vào văn bản  
• Đề nghị của Diffie-Hellman: Sử dụng khóa cá nhân trong  
mật mã công khai để tạo chữ ký.  
4
2
4
05/05/2021  
Chữ ký số  
• Hàm sinh khóa: Gen()  
• Hàm ký S(sk, m)  
• Hàm ký phải có tính  
ngẫu nhiên  
• Đầu vào:  
• sk: Khóa ký  
• Bất kỳ ai có khóa sk đều  
có thể tạo chữ ký  
• m: Văn bản cần ký  
• Đầu ra: chữ ký số S  
• Bất kỳ ai có khóa pk đều  
có thể kiểm tra chữ ký  
• Hàm kiểm tra: V(pk, m, sig)  
• Đầu vào:  
• pk: Khóa thẩm tra  
• m, sig  
• Đầu ra: True/False  
• Tính đúng đắn: V(pk, m, S(sk,m)) = True  
5
5
Tấn công vào chữ ký số  
• Kẻ tấn công chọn trước một số bản tin ꢀ1, ꢀ2, . . , ꢀꢁ và có  
chữ ký của bản tin đó ꢂꢃꢄꢃ ← ꢅ(ꢂꢆ, ꢀꢃ)  
• Mục tiêu: Tạo ra chữ ký cho bản tin ꢀ ∉ {ꢀ1, ꢀ2, . . , ꢀꢁ}  
• Yêu cầu đồi với chữ ký số: Xác suất tấn công thành công  
là không đáng kể  
• Quiz: Nếu kẻ tấn công tìm được 2 bản tin m1, m2 sao cho  
V(pk, m1, sig) = V(pk, m2, sig) ∀(sk, pk)thì chữ ký số đó có  
an toàn không?  
6
3
6
05/05/2021  
Một số ứng dụng của chữ ký số  
• Chữ ký xác thực phần mềm  
Khởi tạo cài đặt, pk  
sk  
Cập nhật, sig  
• Chữ ký xác thực giao dịch  
Chi tiết giao dịch,  
Mã PIN (nếu có)  
sk  
Chi tiết giao dịch và  
Chữ ký số  
Chữ ký số  
• Chữ ký xác thực thư điện tử: DKIM  
• …  
7
7
Khi nào cần sử dụng chữ ký số?  
• Nếu 1 bên ký và 1 bên xác thực: sử dụng MAC/HMAC  
2 bên cần chia sẻ trước 1 khóa bí mật  
Không có khả năng chống từ chối: bên nhận có thể thay đổi nội  
dung và ký lại  
• Nếu 1 bên ký và nhiều bên xác thực: sử dụng chữ ký số  
Bên ký cần công bố khóa công khai của mình  
Có khả năng chống từ chối  
8
4
8
05/05/2021  
Chữ ký số dựa trên hàm băm  
• Phía gửi : hàm ký  
1. Băm bản tin gốc, thu được giá  
trị băm h  
2. Mã hóa giá trị băm bằng khóa  
riêng chữ kí số sig  
3. Gắn chữ kí số lên bản tin gốc  
(m || sig)  
• Phía nhận : hàm xác thực  
1. Tách chữ kí số sig khỏi bản tin.  
2. Băm bản tin m, thu được giá trị  
băm h  
3. Giải mã sig với khóa công khai  
của người gửi, thu được h’  
4. So sánh : h và h’. Kết luận.  
9
Một số phương pháp tạo chữ ký số  
• Chữ ký số 1 lần: mỗi khóa chỉ dùng để ký 1 bản tin  
Thuật toán Lamport  
• Chữ ký số nhiều lần:  
Chữ ký số RSA  
Chữ ký số ElGamal  
Chuẩn chữ ký số DSS  
• Chữ ký mù: người ký không biết nội dung bản tin  
10  
5
10  
05/05/2021  
Chữ ký số RSA  
• Sinh cặp khóa: kU = (n, e), kR = (n, d)  
• Chữ ký: sig = E(kR, H(m)) = H(m)d mod n  
• Thẩm tra: nếu H(m) = sige mod n thì chấp nhận  
D(kU, H(m))  
11  
11  
Chuẩn chữ ký số DSS  
• Digital Signature Standard  
• Các tham số:  
Hàm băm H  
L: Kích thước khóa, N ≤ Kích thước mã băm  
• Tạo khóa nhóm kUG = (p, q, g):  
Số nguyên tố p kích thước N bit  
Số nguyên q là ước số của p-1  
g = h(p - 1)/q mod p  
• Khóa riêng: x ngẫu nhiên thỏa mãn 0 < x <q  
• Khóa công khai: y = gx mod p  
12  
6
12  
05/05/2021  
Chuẩn chữ ký số DSS  
• Tạo chữ ký:  
Chọn giá trị k ngẫu nhiên, giữ bí mật cho mỗi thông điệp cần ký  
Tính r = (gk mod p) mod q ; Nếu r = 0 khởi tại lại quá trình  
Tính s = [k -1 (H(m) + xr)] mod q; Nếu s = 0 khởi tại lại quá trình  
Chữ ký (r, s)  
• Thẩm tra chữ ký:  
w = (s)-1 mod q  
u1 = [H(m)w] mod q  
u2 = (r)w mod q  
v = [(gu1yu2) mod p] mod q  
Nếu v = r thì chấp nhận  
13  
13  
An toàn cho chữ ký số  
• Tính tin cậy của khóa công khai.  
• Vấn đề: kẻ tấn công làm sử dụng khóa công khai giả  
mạo. Nếu người dùng bị đánh lừa, họ sẽ tin cậy vào  
chữ ký giả mạo  
• Giải pháp: sử dụng hệ thống PKI để phát hành khóa  
công khai dưới dạng chứng thư số  
• Tính an toàn của khóa cá nhân  
• Vấn đề: nếu khóa cá nhân bị kẻ tấn công đánh cắp, hắn  
có thể giả mạo chữ ký của người sở hữu khóa.  
• Giải pháp:  
• Bảo vệ bằng mật khẩu  
• Sử dụng thẻ thông minh(Smart Card)  
• Sử dụng thiết bị lưu trữ an toàn (USB Token)  
14  
7
14  
05/05/2021  
Bảo vệ khóa cá nhân(1)  
• Khóa cá nhân được đóng  
gói vào file(ví dụ .pfx), lưu  
trên thiết bị nhớ thông  
thường (ổ cứng, USB…)  
• File được bảo vệ bởi mật  
khẩu dạng mã PIN  
• Mức an toàn thấp nhất:  
• Dễ dàng sao chép file chứa  
khóa  
• Mã PIN có thể bị đoán nhận  
15  
15  
Bảo vệ khóa cá nhân(2)  
• Khóa được lưu trữ trên chip điện  
tử (IC) của Smart Card  
• Khi thực hiện ký số:  
• Giá trị băm được truyền vào chip IC  
• Chip IC mã hóa giá trị băm bằng khóa  
cá nhân (yêu cầu người dùng nhập mã  
PIN) chữ ký số  
• Truyền chữ ký số từ Smart Card tới ứng  
dụng  
• Yêu cầu:  
• Phải có đầu đọc chuyên dụng  
• Thư viện API để giao tiếp  
16  
8
16  
05/05/2021  
Bảo vệ khóa cá nhân (3)  
• Khóa được lưu trữ trong thiết bị nhớ  
chuyên dụng, sử dụng giao tiếp USB  
• Có nhiều mức độ giải pháp khác  
nhau:  
• Chỉ có chức năng lưu trữ khóa, cho phép  
ứng dụng truy xuất khóa cá nhân để sử  
dụng  
• Kịch bản sử dụng tương tự Smart Card  
• Khóa được sinh ngay trên thiết bị  
17  
17  
2. GIAO THỨC CHỮ KÝ SỐ  
18  
9
18  
05/05/2021  
Chữ ký điện tử có trọng tài  
• Trọng tài (Trent – T) có nhiệm vụ:  
Áp dụng một số lần kiểm tra lên bản tin, kiểm tra tính toàn vẹn của nội  
dung và nguồn gốc  
Kiểm tra nhãn thời gian (timestamp) của bản tin  
(1) A T: IDA || E(kUB,m) || SA(E(kUB,m)) || TA || SA(mAT)  
(2) T A: IDA || E(kUB,m) || SA(E(kUB,m)) || TA || ST(mTB)  
(3) A gửi cho B bản tin 2  
SA(E(kUB, m)) = E(kRA, H(E(kUB, m)))  
SA(mAT) = E(kRA, H(mAT))  
mAT = IDA || E(kUB, m) || SA(E(kUB, m)) || TA  
ST(mTB) = E(kRT, H(mTB))  
mTB = IDA || E(kUB, m) || SA(E(kUB, m)) || TA  
19  
19  
Chữ ký mù (Blind Signature)  
• Một số giao dịch điện tử yêu cầu cần che giấu  
thông tin cá nhân của các bên tham gia:  
Thương mại điện tử  
Bầu cử điện tử  
• Chữ ký mù: người ký không biết nội dung của  
văn bản  
Người kiểm tra tính hợp lệ của phiếu bầu không được  
phép biết nội dung của phiếu (tên cử tri, người được cử  
tri bầu...)  
Sau khi xác minh và chấp nhận cho khách hàng rút  
tiền, ngân hàng không thể kiểm tra lại trên tờ tiền điện  
tử lưu thông có tên người rút là gì.  
20  
10  
20  
05/05/2021  
Chữ ký mù RSA cho Phiếu bầu điện tử  
• Cơ quan bầu cử sử dụng cặp khóa kU = (e,n), kR = (d,n)  
• Sau khi đã thực hiện xác thực với cơ quan bầu cử, Alice  
điền thông tin trên phiếu bầu. Thông tin này được ghi lên  
bản tin x:  
Chữ ký  
điện tử  
của cơ  
quan BC  
lên X  
Chọn 1 giá trị ngẫu nhiên r  
Làm mù nội dung lá phiếu: m’ = (H(x).re) mod n  
Đưa cho cơ quan bầu cử ký  
• Cơ quan BC thực hiện ký mù  
s’ = (m’)d mod n =
• Alice xóa mù chữ ký: s = s’.r−1 mod n = (H(x))d mod n  
Lưu ý 1 < r−1 < n là giá trị sao cho r.r−1 mod n = 1  
• Phiếu điện tử của Alice (x, s)  
• Làm thế nào để cơ quan kiểm phiếu tin tưởng đây là  
phiếu bầu do cơ quan bầu cử phát hành?  
21  
21  
Chữ ký mù một phần  
• Ngăn chặn người gửi gian lận nội dung  
• Giao thức:  
(1) Alice gửi cho trọng tài n bản tin (đã được làm mù bởi n  
giá trị ngẫu nhiên khác nhau), trong đó có chứa 1 bản  
tin cần trọng tài ký  
(2) Trọng tài yêu cầu Alice gửi k giá trị làm mù bất kỳ  
(3) Trọng tài kiểm tra tính hợp lệ trong nội dung của k bản  
tin  
(4) Nếu k bản tin trên là hợp lệ, trọng tài ký vào “siêu bản  
tin” được ghép từ (n-k) bản tin còn lại  
22  
11  
22  
05/05/2021  
Chữ ký nhóm  
• Yêu cầu: Chỉ xác thực được chữ ký và nhóm nào ký,  
không xác định được chính xác người ký  
• Giao thức:  
(1) Người quản trị tạo ra n*m cặp khóa  
(2) Người quản trị phân phối cho mỗi thành viên của nhóm  
m cặp khóa  
(3) Người quản trị công bố danh sách khóa công khai (thứ  
tự đã xáo trộn)  
(4) Khi cần ký, mỗi người lựa chọn 1 khóa cá nhân ngẫu  
nhiên để ký  
(5) Người xác thực tìm khóa công khai trong danh sách (3)  
để xác thực chữ ký  
23  
23  
3. HẠ TẦNG KHÓACÔNG KHAI  
24  
12  
24  
05/05/2021  
Hạ tầng khóa công khai PKI  
• Public Key Infrastructure  
• Hệ thống bao gồm phần cứng, phần mềm, chính sách,  
thủ tục cần thiết để tạo, quản lý và lưu trữ, phân phối và  
thu hồi các chứng thư số  
• Chứng thư số: văn bản điện tử chứng thực khóa công  
khai  
• Các thành phần:  
• RA(Registration Authority): Chứng thực thông tin đăng ký  
• CA(Certification Authority): Phát hành và quản lý chứng thư số  
• CR(Certificate Reposiroty): Lưu trữ, chứng thực chứng thư số  
• EE(End-Entity): đối tượng sử dụng chứng thư số  
25  
25  
Các thành phần của PKI  
26  
13  
26  
05/05/2021  
Chứng thư số X.509  
27  
27  
Chứng thư số X.509  
• Version: phiên bản của chứng thư số  
• Số serial của chứng thư số (tối đa 20 byte)  
• Algorithm: Thuật toán chữ ký số được CA sử dụng để ký  
• Issuer: Thông tin cơ quan cấp chứng thư số  
• C: Quốc gia  
• CN: Tên giao dịch của CA  
• DN: Tên định danh  
• O: Tên tổ chức phát hành  
• ST: Tên đơn vị hành chính trực thuộc trung ương  
• Validity: Thời gian hiệu lực của chứng thư số  
• Not Before: Ngày bắt đầu có hiệu lực  
• Not after: Ngày hết hiệu lực  
28  
14  
28  
05/05/2021  
Chứng thư số X.509(tiếp)  
• Subject: Thông tin người được cấp chứng thư  
• Các trường con tương tự thông tin tổ chức phát hành  
• Subject’s Public Key Information: Thông tin khóa công  
khai  
• Algorithm: Thuật toán tạo khóa  
• Public Key: Giá trị khóa  
• Signature: chữ ký số của cơ quan cấp chứng thư số  
• Issuer UID: định danh của cơ quan cấp chứng thư số  
• Subject UID: định danh của người được cấp chứng thư  
• Extensions: Các trường mở rộng khác  
29  
29  
Xác thực chứng thư số  
Chứng thư số cần được kiểm tra tính tin cậy:  
• Kiểm tra tên thực thể sử dụng có khớp với tên đăng ký  
trong chứng thư số  
• Kiểm tra hạn sử dụng của chứng thư số  
• Kiểm tra tính tin cậy của CA phát hành chứng thư số  
• Kiểm tra trạng thái thu hồi chứng thư số  
• Kiểm tra chữ ký trên chứng thư số để đảm bảo chứng thư  
không bị sửa đổi, làm giả  
30  
15  
30  
05/05/2021  
Thu hồi chứng thư số  
• Thực hiện khi khóa của người dùng mất an toàn  
PKI  
Công bố:  
Thông tin  
Chứng thư số ID = 1234  
Tình trạng: Đã thu hồi  
công bố được  
ký bởi CA  
Yêu cầu thu hồi  
chứng thư số  
ID=1234  
Kiểm tra thông tin tình  
trạng chứng thư số: 2  
phương pháp  
-
-
CRLs  
OCSP  
Alice  
Bob  
31  
31  
CRLs  
• PKI công bố danh sách chứng thư số bị thu hồi. Danh sách  
này được ký bởi CA  
Chứng thư số ID = 1234  
Tình trạng: Đã thu hồi  
PKI  
Download CRLs  
Hạn chế:  
-
-
Kích thước CRLs lớn  
Không cập nhập liên tục  
Bob  
32  
16  
32  
05/05/2021  
OCSP  
• Dịch vụ kiểm tra trạng thái chứng thư số trực tuyến(Online  
Certificate Status Protocol)  
Hãy cho biết tình trạng của chứng thư số ID = 1234  
Chứng thư số ID = 1234 đã bị thu hồi  
PKI  
Bob  
Hãy cho biết tình trạng của chứng thư số ID = 5678  
Chứng thư số ID = 5678 còn giá trị  
Thông điệp trả lời từ PKI được ký bởi CA  
33  
33  
Kiến trúc PKI  
• Kiến trúc PKI rất đa dạng, tương ứng theo mô hình hoạt  
động của mỗi tổ chức  
• Các kiến trúc PKI sau được phân loại dựa trên số lượng  
CA, tổ chức và mối quan hệ giữa chúng:  
Kiến trúc đơn CA (Sigle CA)  
Kiến trúc PKI xí nghiệp (Enterprise PKI)  
Kiến trúc PKI lai (Hybrid PKI)  
34  
17  
34  
05/05/2021  
Kiến trúc đơn CA  
• Chỉ sử dụng 1 CA trong hệ thống PKI  
• Đơn giản, phù hợp với hệ thống nhỏ  
• Không có khả năng mở rộng  
• Mô hình danh sách tin cậy: 2 thực thể  
sử dụng chứng thư số được phát hành  
bởi 2 CA khác nhau  
Mỗi CA có danh sách các CA mà nó tin cậy  
Mỗi CA phải nằm trong danh sách tin cậy của  
CA còn lại  
Hạn chế: Luôn đòi hỏi phải đồng bộ. Ví dụ: 1  
CA ngừng hoạt động  
35  
35  
Kiến trúc PKI phân cấp  
• Mỗi CA chứng thực cho tất cả các CA cấp dưới của nó  
• Dễ dàng mở rộng  
• Yêu cầu: Root CA cần được giữ an toàn tuyệt đối(thông  
thường Root CA luôn nằm ở phân vùng mạng offline)  
36  
18  
36  
05/05/2021  
Chứng thư số trong kiến trúc PKI phân cấp  
37  
37  
Chuỗi xác thực  
• Một chứng thư được phát hành bởi hệ thống PKI phân  
cấp cần được chứng thực theo một chuỗi hướng từ nút  
gốc tới nút lá trong cây phân cấp  
• Ví dụ: Một chứng thư trong kiến trúc phân cấp  
Certificate  
“I’m  
“I’m  
because I say so!”  
Certificate  
Certificate  
because  
because  
says so”  
“I’m  
says so”  
38  
19  
38  
05/05/2021  
Chuỗi chứng thực  
Certificate  
“I’m  
because I say so!”  
✓
✓
✓
Certificate  
“I’m  
because  
because  
says so”  
Certificate  
“I’m  
says so”  
Chuỗi xác thực từ chối chứng thư số nếu có bất kỳ  
bước nào cho kết quả xác thực thất bại  
39  
39  
Tổng kết  
• Chữ ký số:  
Sử dụng hệ mật mã khóa công khai  
Tạo chữ ký: người gửi dùng khóa cá nhân của mình để mã hóa mã  
băm của bản tin  
Xác thực chữ ký: người nhận sử dụng khóa công khai của người  
gửi để xác thực  
Cần đảm bảo an toàn cho khóa cá nhân và xác thực khóa công  
khai  
• PKI  
Phát hành chứng thư số để xác thực khóa công khai của người  
dùng  
Chứng thư số X.509: chứa khóa thông tin công khai của người  
dùng, được xác thực bởi chữ ký số của CA  
40  
20  
40  
pdf 20 trang baolam 13100 Free
Bạn đang xem tài liệu "Bài giảng An toàn an ninh thông tin - Chương 5: Chữ ký số - Bùi Trọng Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_an_toan_an_ninh_thong_tin_chuong_5_chu_ky_so_bui_t.pdf