Bài giảng Nhập môn an toàn hệ thống thông tin - Chương 4: Chữ ký điện tử cung cấp cho người học các kiến thức: Khái niệm về chữ ký số (Digital Signature), các dịch vụ bảo mật cung cấp bởi chữ ký số, một vài chữ ký số thông dụng, mô tả vài ứng dụng của chữ ký số. Mời các bạn cùng tham khảo.
Trang 1(DIGITAL SIGNATURES)
Trang 2Nội dung chính
1 Khái niệm về chữ ký số (Digital Signature)
2 Các dịch vụ bảo mật cung cấp bởi chữ ký số
3 Một vài chữ ký số thông dụng
4 Mô tả vài ứng dụng của chữ ký số
(Cryptography & Network Security
McGraw-Hill, Inc., 2007., Chapter 13)
Trang 3Khái niệm về chữ ký điện tử
• Khái niệm về Digital Signature được để xuất bởi Diffie &Hellman (1976)
• “Chữ ký điện tử (còn gọi là chữ ký số) là thông tin được mãhoá bằng Khoá riêng của người gửi, được gửi kèm theovăn bản nhằm đảm bảo cho người nhận định danh, xácthực đúng nguồn gốc và tính toàn vẹn của tài liệu nhận
• Chữ ký điện tử thể hiện văn bản gửi đi là đã được ký bởichính người sở hữu một Khoá riêng tương ứng với mộtChứng chỉ điện tử nào đó.”
• Chữ ký điện tử và chữ ký tay đều có chung đặc điểm là rấtkhó có thể tìm được hai người có cùng một chữ ký Chữ ký
Trang 4Khái niệm về chữ ký điện tử
• Chữ ký điện tử là một trong ứng dụng quan trọng nhất của mã hóa khóa công khai
• Message Authentication chỉ bảo vệ thông điệp trao đổi giữa hai bên tham gia không bị hiệu chỉnh hay giả mạo
từ bên thứ 3, nhưng nó không bảo vệ thông điệp bị hiệu chỉnh hay giả mạo từ một trong 2 bên tham gia, nghĩa là:
• Bên nhận giả mạo thông điệp của bên gửi
• Bên gửi chối là đã gửi thông điệp đến bên nhận
• Chữ ký điện tử không những giúp xác thực thông điệp
Trang 5VÍ DỤ CHỮ KÝ SỐ TRONG THỦ TỤC HQĐT
Doanh nghiệp nhập tờ khai
Ký điện tử Kiểm tra chữ ký điện tử
Kiểm tra hiệu lực chữ ký số của DN
Lưu tờ khai và xử lý theo quy trình nghiệp vụ
Khai hải quan
In tờ khai và làm các quy trình
trong thông quan điện tử
Trả phản hồi về cho DN
Trang 6Khái niệm về chữ ký điện tử
Ví dụ cơ bản:
• Mike có hai khóa, một khóa công khai và một khóa riêng
• Mike đưa khóa công khai của mình cho Amanda, nhưng giữ lại khóa riêng cho mình
• Khi muốn chuyển tài liệu cho Amanda, Mike có thể xác nhận (ký) các tài liệu này dùng chính khóa riêng của
mình và gửi chúng đến Amanda
• Amanda sau đó sẽ dùng khóa công khai của Mike, để có thể kiểm tra tài liệu mà cô ấy nhận được, thực sự được
Trang 7Mục tiêu của chữ ký điện tử
Mục tiêu an toàn
• Xác thực (Authentication)
• Chống phủ nhận (Non-repudiation)
Trang 8Đặc điểm chữ ký số
1 Đảm bảo tính xác thực
• Chứng minh tính hợp pháp của người gửi
• Chứng minh tính toàn vẹn của dữ liệu
2 Chữ ký số là hàm của các tham số
• Thông báo giao dịch (văn bản gốc)
• Thông tin bí mật của người gửi (Khóa riêng của sender)
• Thông tin công khai trên mạng (Khóa công khai)
• Mã xác thực : Đảm bảo tính toàn vẹn của thông điệp
Trang 9Đặc điểm chữ ký số
Trang 101 Người gởi (chủ nhân văn bản): ký văn bản bằng cách mã
hóa nó với khóa bí mật của mình, rồi gởi cho bên nhận
2 Người nhận tiến hành kiểm tra chữ ký bằng cách sử
dụng khóa công khai của người gởi để giải mã văn bản.Nếu giải mã thành công thì văn bản ký là đúng người gởiNguyên lý ký điện tử trong hệ mật
mã công khai
Trang 11Sơ đồ sử dụng chữ ký điện tử
Trang 12• Dùng để chiết xuất đặc trưng của văn bản, đầu ra là một dãy số xác định gọi là mã băm.
• Rất “nhạy” đối với các thay đổi trong văn bản
• Có tính kháng xung đột, tính một chiều và tốc độ nhanh
Hàm băm mật mã
Trang 13Hàm băm mật mã
Signing the Digest
• Ký trên digest của thông đệp sẽ ngắn hơn ký trên thông điệp
• Người gửi có thể ký trên cốt thông điệp và người nhận có thể kiểm tra trên cốt thông điệp
Trang 14Digital Signature Process
Tạo và Kiểm tra chữ ký số
• Trong mô hình này, Alice sau khi tính giá trị hash HA cho thông điệp M thì sẽ
mã hóa HA bằng khóa riêng của Alice để tạo thành chữ ký điện tử DS Alice gửi kèm DS theo M cho Bob.
Trang 15• Chữ ký không phải là nét vẽ ngoằn ngoèo khó bắt chước mà là một dãy số trích từ đặc trưng văn bản đã được mã hóa.
• So với chữ ký thông thường, chữ ký số có ưu thế vượt trội hơn chữ ký tay.
Trang 16• Mô hình CKS ở trên chỉ đạt được nếu như mỗi người sở hữu đúng cặp chìa khóa của chính mình.
• Có thể xẩy ra hiện tượng “mạo danh” người gởi.
Do đó, ta cần có cơ chế để xác định “ai là ai” trên toàn hệ thống.
• Giải pháp: chứng minh thư số
Nhược điểm mô hình chữ ký số
Trang 171 Xác thực thông điệp (Message Authentication): Người
ký được xác nhận là chủ chữ ký
2 Toàn vẹn thông điệp (Message Integrity): Nội dung
chưa bị thay đổi hoặc xáo trộn kể từ khi nó được ký điện tử
3 Chống từ chối (Non-repudiation): Chứng minh với tất
cả các bên về nguồn gốc của nội dung đã ký Từ
"thoái thác" dùng để chỉ hành động của một người ký
từ chối bất kỳ mối liên kết nào với nội dung đã ký
4 Bảo mật (Confidentiality)
Ứng dụng của chữ ký số
Trang 18• Nonrepudiation có thể được cung cấp bằng cách dùng một trusted Center
Trang 19• Thêm confidentiality vào cơ chế digital signature
Một Digital Signature không cung cấp tính bí mật Nếu cần bảo mật, encryption/decryption được áp dụng
Trang 20Public Notary (công chứng)
• Trong trường hợp bên Alice cố cãi rằng cô ta chẳng maylàm thất lạc hay vô tình đánh lộ zA và bị một kẻ thứ ba lợidụng chứ không có ý định tạo ra văn bản có chữ ký nhưthế khi đó có thể thêm trọng tài vào hệ thống
• Người trọng tài này cũng còn gọi là công chứng viên (publicnotary) sẽ ký đè lên chữ ký của Alice để chứng thực, Alicekhông thể nào chối cãi
Trang 21Proof of delivery (xác nhận
giao hàng - hoá đơn)
• Ngược lại, bên gửi cũng cần được bảo vệ để chống lại hiệntượng người nhận có nhận được thông báo nhưng chối làchưa nhận được
• Điều này có thể thực hiện được qua những giao thức cóphân xử (adjudicated protocol), tức là những giao thức màsau đó cho phép người thứ ba có thể kiểm định lại được
Trang 22Tấn công trên Digital
Trang 23Attack Types
• Key-Only Attack
• Known-Message Attack
• Chosen-Message Attack
Trang 24Forgery Types
• Existential Forgery
• Selective Forgery
Trang 25Vài chữ ký số thông dụng
• RSA Digital Signature Scheme
• ElGamal Digital Signature Scheme
• Schnorr Digital Signature Scheme
• Digital Signature Standard (DSS)
• Elliptic Curve Digital Signature Scheme
Trang 26RSA Digital Signature Scheme
• Ý tưởng mật mã RSA được dùng cho việc ký và kiểmtra chữ ký, nó được gọi là cơ chế chữ ký số RSA
• Người gửi dùng private key của chính mình để kývào tài liệu; người nhận dùng public key của ngườigửi để kiểm tra chữ ký
• So với chữ ký truyền thống, private key đóng vai trò
là chữ ký của chính người gửi, public key của ngườigửi đóng vài trò là bản sao của chữ ký mà có thểđược công khai
Trang 27RSA Digital Signature Scheme
• Ý tưởng tổng quát của cơ chế chữ ký RSA
Trang 28RSA Digital Signature Scheme
Phát sinh khóa (Key Generation)
• Phát sinh khóa trong cơ chế chữ ký RSA là hoàn toàn giống như phát sinh khóa RSA
• Trong đó d là bí mật, e và n là công khai
Trang 29RSA Digital Signature Scheme
1) Tạo cặp khóa (bí mật, công khai) (a, b):
• Chọn 2 số nguyên tố p, q, xác định n = p * q, n là công khai,
đặt P = A = Zn và định nghĩa:
• Tính f(n) = (p-1).(q-1).
• Chọn khóa công khai e < f(n), nguyên tố cùng nhau với f(n).
• Khóa bí mật d là phần tử nghịch đảo của e theo
mod f(n): e*d1 (mod f(n).
• Tập cặp khóa (bí mật, công khai) K = (e, d)/ e, d Zn , e*d 1
(mod f(n)).
2) Ký số: Chữ ký trên M P là S = sigk (M) = M d (mod n), SA
Trang 30RSA Digital Signature Scheme
Tạo và Thẩm tra chữ ký
Trang 31RSA Digital Signature Scheme
Trang 32Chữ ký trên m = 2
*Tạo cặp khóa (bí mật, công khai) :
Chọn 2 số nguyên tố: p=3, q=5 n = p*q = 3*5 = 15(công khai) Đặt P = A = Z n Tính f(n) = (p-1).(q-1) = 2 * 4 = 8.
Chọn khóa công khai e = 3 < f(n), nguyên tố với f(n) = 8.
=>Tìm d: là phần tử nghịch đảo của e theo
mod f(n): e*d1 (mod f(n)).
EXAMPLE
Bước i N b R i+1 Q i+1 X i X i+1 X i+2
Trang 34Sử dụng cơ chế chữ ký RSA cho các bài toán sau: 1) Cho p=5, q=11, e=7 Tạo và kiểm tra chữ ký
điện tử với bản tin M=5
2) Cho p=7, q=11, e=17 Tạo và kiểm tra chữ ký điện tử với bản tin M=3
BÀI TẬP
Trang 35Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA:
a) Ký trước, Mã hóa sau:
• T ký trước vào x bằng chữ ký S = sig k (M), sau đó mã hoá x và y nhận được
z = e T (M, S) T gửi z cho N.
• Nhận được z, N giải mã z để được M, S.
• Tiếp theo kiểm tra chữ ký ver N (M, S) = true ?
b) Mã hóa trước, Ký sau:
• T mã hoá trước M bằng u = e T (M), sau đó ký vào u bằng chữ
ký v = sig T (u).
• T gửi (u, v) cho N.
• Nhận được (u, v), N giải mã u được M.
ĐỘ AN TOÀN CỦA CHỮ KÝ RSA
Trang 36Chữ ký RSA trên Message
Digest
Trang 37Chữ ký RSA trên Message Digest
Lưu ý:
• Khi cốt thông điệp được ký thay cho thông điệp của
nó, thì độ nhạy cảm của chữ ký số RSA tùy thuộc
vào sức mạnh của hàm băm
Trang 38ElGamal Digital Signature
Scheme
• Ý tưởng tổng quát của chữ ký ElGamal
Trang 39ElGamal Digital Signature Scheme
Phát sinh khóa (Key Generation)
• Phát sinh khóa trong cơ chế chữ ký ElGamal là hoàntoàn giống như phát sinh khóa mật mã ElGamal
• Trong đó (e1,e2,p) là public key; d là private key
Trang 40ElGamal Digital Signature
Trang 41ElGamal Digital Signature
Scheme
Tạo và Thẩm tra chữ ký
Trang 42ElGamal Digital Signature
•Nếu không dùng hàm băm thì có thể bị tình trạng existential forgery
Trang 431) Tạo cặp khóa (bí mật, công khai) (a, k) :
• Chọn phần tử nguyên tử α Zp*
Đặt P = Z p*, A = Z p* x Z p-1.
• Chọn khóa bí mật là a Zp* Tính khóa công khai β
α a mod p.
• Định nghĩa tập khóa: = {(p, α, a, β): β α a mod p}.
• Các giá trị p, α, β được công khai, phải giữ bí mật a.
HỆ CHỮ KÝ ELGAMMAL
Trang 442) Ký số:
• Dùng 2 khóa ký: khóa a và số ngẫu nhiên kZ p-1 *
• (Vì kZ p-1 * , nên nguyên tố cùng p -1, do đó tồn tại k -1 mod
Trang 45Chữ ký Elgamal trên dữ liệu x = 112.
1) Tạo cặp khóa (bí mật, công khai) (a, β) :
• Chọn số nguyên tố p = 463 Đặt P = Z p *, A = Z p * x Z p-1
• Chọn phần tử nguyên tử α = 2Z p*
• Chọn khóa bí mật là a = 211Z p*
• Tính khóa công khai β α a mod p = 2 211 mod 463 = 249.
• Định nghĩa tập khóa: = {(p, α, a, β): β α a mod p}.
• Các giá trị p, α, β được công khai, phải giữ bí mật a.
EXAMPLE
Trang 46i e[i]= 211 10 p=p*p p=p mod 463 p= p*2 p= p mod
Trang 49i e[i]= 235 10 p=p*p p=p mod 463 p= p*2 p= p mod
Trang 51* Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgammal:
1) TH1: Giả mạo chữ ký cùng với tài liệu được ký.
• T có thể ký trên tài liệu ngẫu nhiên bằng cách chọn trước đồng
thời x,,.
• Chọn x,, thoả mãn điều kiện kiểm thử như sau:
• Chọn các số nguyên i, j sao cho 0 i, j p-2, GCD(j, p-1) = 1 và tính:
Trang 52• Chọn các tham số của sơ đồ chữ ký Elgammal:
• Chọn p = 463, phần tử sinh α = 2, Khóa bí mật a = 135.
• Khóa công khai β = α a mod p = 2 135 mod 463 = 272
• Chọn x,, thoả mãn điều kiện kiểm thử như sau:
Trang 532) TH2: Sử dụng lại chữ ký của bức điện trước đó
• Nếu (, ) là chữ ký trên tài liệu x có từ trước, thì có thể giả mạo chữ ký trên tài liệu x’ khác.
Trang 54Cả hai cách giả mạo nói trên đều cho chữ ký đúng trên tài liệu tương ứng, nhưng đó không phải là tài liệu được chọn theo ý của người giả mạo Tài liệu đó đều được tính sau khi tính chữ ký, vì vậy giả mạo loại này trong thực tế cũng không có ý nghĩa nhiều.
TÓM LẠI
Trang 55Schnorr Digital Signature
Scheme
• Với chữ ký ElGamal thì p cần phải rất lớn thì mới đảm bảo bài toán logaric rời rạc là khó thực hiện trong Z*
p Theo khuyến cáo p phải ít nhất 1024-bit chữ ký là 2048-bit.
• Để giảm kích cỡ của chữ ký, Schnorr đề xuất một cơ chế chữ ký mới dựa trên ElGamal nhưng với một kích cỡ chữ ký được giảm.
Trang 56Schnorr Digital Signature
Scheme
Ý tưởng tổng quát của chữ ký Schnorr
Trang 57Schnorr Digital Signature
3.Alice chọn e1 sao cho e1p = 1 mod p.
4.Chọn 1 số nguyên d, làm private key
5.Tính e2= e1 d mod p.
6.Public key là (e1, e2, p, q); private key là d
Trang 58Schnorr Digital Signature
Scheme
Tạo và Thẩm tra chữ ký
Trang 59• Thuật toán CKĐT DSA là thuật toán được đề
nghị trong chuẩn chữ ký điện tử DSS (Digital
Signature Standard) của NIST.
• Nó cung cấp một trình tự để tạo và xác nhận
CKĐT
• DSA sử dụng 1 cặp khóa công khai – khóa riêng.
Trong cả giai đoạn ký và xác nhận văn bản được
ký thể hiện dưới dạng thông điệp rút gọn là kết
quả của việc áp dụng hàm băm SHA-1 lên văn
THUẬT TOÁN CKĐT DSA & CHUẨN CKĐT DSS
Trang 60Digital Signature Process
Tạo và Kiểm tra chữ ký số
Trang 62Thuật giải DSA – Chuẩn chữ
• Tính s = (k-1(SHA-1(m) + x*r)) mod q, ở đây
SHA-1(m) là hàm băm mã hoá SHA-1 áp dụng
cho thông điệp m
• Tính toán lại chữ ký trong trường hợp không
Trang 63Thuật giải DSA – Chuẩn chữ
• Nếu v != r’ văn bản có thể đã được sửa đổi trên đường
truyền hoặc khóa cá nhân mã hóa văn bản không khớp
Trang 64Thuật giải DSA – Chuẩn chữ
ký số
Trang 65Digital Signature Standard
(DSS)
• NIST đã công bố chuẩn xử lý thông tin liên ban FIPS
186, được biết như là Digital Signature Standard(DSS)
• DSS được đề xuất năm 1991 và hiểu chỉnh lại 1993,
1996 có một hiệu chỉnh nhỏ, năm 2000, một phiênbản mở rộng của chuẩn được phát hành như FIPS186-2, 2009 cập nhật FIPS 186-3 Phiên bản cuốicùng hợp nhất các thuật tóan chữ ký số dựa trên mật
mã RSA và đường cong Eliptic
Trang 66Digital Signature Standard
(DSS)
• Ý tưởng tổng quát của chữ ký DSS
Trang 671) Tạo cặp khóa: Cho p là 1 số nguyên tố 512 bit trong
trường logarit rời rạc Zp ; q là 1 số nguyên tố 160 bit và qchia hết cho (p-1) Cho α Є Zp*; P=Zp*; A =Zp*Zq:
Trang 68Digital Signature Standard
(DSS)
Trang 71Digital Signature Standard
Trang 72Elliptic Curve Digital Signature
Scheme
• Ý tưởng tổng quát của chữ ký EC
Trang 73Elliptic Curve Digital Signature
Scheme
Phát sinh khóa
• Chọn một đường cong elliptic Ep(a, b).
• Chọn số nguyên tố q, chọn private key d (số nguyên)
• Chọn e1(…, …), một điểm trên đường cong.
• Tính e2(…, …) = d × e1(…, …).
• Public key là (a, b, p, q, e1, e2); private key là d.
Trang 74Elliptic Curve Digital Signature
Scheme
Tạo và Thẩm tra chữ ký
Trang 75Những biến thể chữ ký
• Time Stamped Signatures
• Một tài liệu được ký cần được gắn nhãn thời gian(Timestamped) để ngăn chặn tài liệu bị phát lại(replay) bởi đối phương
• Ví dụ: Alice ký một yêu cầu đối với ngân hàng của
cô ta, Bob chuyển tiền cho Eve Tài liệu yêu cầunày có thể bị chặn và phát lại bởi Eve nếu không
có nhãn thời gian gắn trên tài liệu
Trang 76Những biến thể chữ ký
Blind Signatures
• Giả sử có một tài liệu mà chúng ta muốn có chữ ký mà không muốn tiết lộ nội dung của tài liệu đối với người ký.
• Ví dụ: Nhà khoa học phát minh ra một lý thuyết rất quan trọng mà cần được ký bởi công chứng viên, công chứng viên sẽ ký nhưng sẽ không biết gì về nội dung của phát
Trang 78• Là chứng thực để gắn một chìa khóa công khai với một thực thể (cá nhân, máy chủ, cty,…) Hay nói cách khác, CTS giúp xác định chìa khóa công khai thuộc về thực thể nào.
• Một CTS thường gồm chìa khóa công khai và một
số thông tin khác về thực thể sở hữu chìa khóa đó.
• Chứng thư số thuộc sở hữu của nhà cc chứng thư
số, viết tắt CA (certificate authority).
Chứng thư số
Trang 83Sơ đồ tạo chứng thư số
Trang 85Các mô hình hệ thống
Trang 86• Là quá trình lưu trữ an toàn các dấu tích
về thời gian tạo ra văn bản cùng với
Trang 87Qui trình đóng dấu và kiểm định tem thời gian có sự tham gia của các đối tượng sau:
1 Dữ liệu cần đóng dấu tem thời gian
2 Bên thứ 3 tin cậy (TSA-time stamp authority)
3 Dịch vụ gắn tem thời gian: cung cấp thẻ tem
thời gian.
4 Người yêu cầu tem thời gian
5 Người kiểm tra tem thời gian
Tem thời gian tin cậy
(trusted timestamping)
Trang 88Sơ đồ đóng tem thời gian tin cậy cho dữ liệu
Trang 89Kiểm tra tem thời gian tin cậy
Trang 90• Do tính chất của hàm băm nên tem thời gian tin
cậy không chỉ khẳng định dữ liệu đã tồn tại trước thời điểm ghi nhãn thời gian mà còn khẳng định dữ liệu không hề thay đổi kể từ khi được cấp phát tem thời gian.
• Tem thời gian chỉ khẳng định dữ liệu được sinh ra trước thời điểm cấp tem thời gian Để xác định
chính xác khoảng thời gian xẩy ra một sự kiện nào
Nhận xét
Trang 91• Công cụ mật mã mà TSA sử dụng sắp hết thời hạn sử dụng
• Bản thân TSA có thể sắp được thay thế bởi TSA khác
• Thuật toán băm thay đổi
Dữ liệu được cấp phát tem thời gian mới bao gồm dữ liệu gốc và con tem cũ
Tem thời gian bội