Chữ ký điện tử và thủ
Chữ ký điện tử và thủ
tục xác nhận
tục xác nhận
Fourth Edition
Fourth Edition
by William Stallings
by William Stallings
Lecture slides by Lawrie Brown
Lecture slides by Lawrie Brown
Chữ ký điện tử
Chữ ký điện tử
Digital Signatures
Digital Signatures
Được xem như mẩu tin được xác thực
Được xem như mẩu tin được xác thực
Cung cấp các khả năng để
Cung cấp các khả năng để
Kiểm chứng tác giả, ngày và giờ ký
Kiểm chứng tác giả, ngày và giờ ký
Xác thực nội dung mẩu tin
Xác thực nội dung mẩu tin
Được kiểm chứng bởi bên thứ 3 để chống từ
Được kiểm chứng bởi bên thứ 3 để chống từ
chối
chối
Vì vậy bao gồm hàm xác thực
Vì vậy bao gồm hàm xác thực
và một số khả năng bổ sung
và một số khả năng bổ sung
Các tính chất của chữ ký điện tử
Các tính chất của chữ ký điện tử
Digital Signature Properties
Digital Signature Properties
Cần phải phụ thuộc vào nội dung ký
Cần phải phụ thuộc vào nội dung ký
Cần sử dụng thông tin đặc trưng duy nhất
Cần sử dụng thông tin đặc trưng duy nhất
đối với người gửi
đối với người gửi
Để chống cả giả mạo và từ chối
Để chống cả giả mạo và từ chối
Cần phải tương đối dễ dàng tạo ra
Cần phải tương đối dễ dàng tạo ra
Dễ dàng đoán nhận và kiểm chứng
Dễ dàng đoán nhận và kiểm chứng
Không thể tính toán giả mạo được
Không thể tính toán giả mạo được
Với bản tin mới và chữ ký đã có
Với bản tin mới và chữ ký đã có
Với chữ ký giả mạo cho 1 bản tin
Với chữ ký giả mạo cho 1 bản tin
Có thể lưu trữ cất chữ ký điện tử
Có thể lưu trữ cất chữ ký điện tử
Chữ ký điện tử trực tiếp
Chữ ký điện tử trực tiếp
Direct Digital Signatures
Direct Digital Signatures
Bao gồm chỉ người gửi và người nhận
Bao gồm chỉ người gửi và người nhận
Người nhận được phép có khoá công khai của
Người nhận được phép có khoá công khai của
người gửi
người gửi
Chữ ký được người gửi ký trên toàn bộ mẩu tin
Chữ ký được người gửi ký trên toàn bộ mẩu tin
hoặc Hash với khoá riêng
hoặc Hash với khoá riêng
Có thể mã bằng khoá công khai của người
Có thể mã bằng khoá công khai của người
nhận
nhận
Quan trọng là ký trước và sau đó mã hoá bản tin
Quan trọng là ký trước và sau đó mã hoá bản tin
và chữ ký
và chữ ký
Tính an toàn phụ thuộc vào khoá riêng của
Tính an toàn phụ thuộc vào khoá riêng của
người gửi
người gửi
Chữ ký điện tử có trọng tài
Chữ ký điện tử có trọng tài
Arbitrated Digital Signatures
Arbitrated Digital Signatures
Bao gồm cả việc sử dụng trọng tài A
Bao gồm cả việc sử dụng trọng tài A
Kiểm tra mọi mẩu tin được ký
Kiểm tra mọi mẩu tin được ký
Sau đó điền ngày giờ và gửi cho người nhận
Sau đó điền ngày giờ và gửi cho người nhận
Đòi hỏi mức độ tin cậy hợp lý đối với trọng
Đòi hỏi mức độ tin cậy hợp lý đối với trọng
tài
tài
Có thể cài đặt với thuật toán khoá riêng
Có thể cài đặt với thuật toán khoá riêng
hoặc khoá công khai.
hoặc khoá công khai.
Trọng tài có thể được xem hoặc không
Trọng tài có thể được xem hoặc không
được xem mẩu tin
được xem mẩu tin
Thủ tục xác thực
Thủ tục xác thực
Authentication Protocols
Authentication Protocols
Làm cho các bên tin tưởng vào danh tính
Làm cho các bên tin tưởng vào danh tính
của nhau để trao đổi khoá kỳ
của nhau để trao đổi khoá kỳ
Có thể 1 chiều và đa trị
Có thể 1 chiều và đa trị
Vấn đề chính là
Vấn đề chính là
Bảo mật - để bảo vệ khoá kỳ
Bảo mật - để bảo vệ khoá kỳ
Thời sự - chống tấn công trì hoãn
Thời sự - chống tấn công trì hoãn
Các thủ tục đã công bố bị phát hiện có lỗi
Các thủ tục đã công bố bị phát hiện có lỗi
và cần được điều chỉnh
và cần được điều chỉnh
Tấn công trì hoãn
Tấn công trì hoãn
Replay Attacks
Replay Attacks
Bao gồm chỉ người gửi và người nhận
Bao gồm chỉ người gửi và người nhận
Người nhận được phép có khoá công khai của
Người nhận được phép có khoá công khai của
người gửi
người gửi
Chữ ký được người gửi ký trên toàn bộ mẩu tin
Chữ ký được người gửi ký trên toàn bộ mẩu tin
hoặc Hash với khoá riêng
hoặc Hash với khoá riêng
Có thể mã bằng khoá công khai của người
Có thể mã bằng khoá công khai của người
nhận
nhận
Quan trọng là ký trước và sau đó mã hoá bản tin
Quan trọng là ký trước và sau đó mã hoá bản tin
và chữ ký
và chữ ký
Tính an toàn phụ thuộc vào khoá riêng của
Tính an toàn phụ thuộc vào khoá riêng của
người gửi
người gửi
Sử dụng khoá đối xứng
Sử dụng khoá đối xứng
Using Symmetric Encryption
Using Symmetric Encryption
Như đã thảo luận trước có thể sử dụng
Như đã thảo luận trước có thể sử dụng
kiến trúc 2 tầng khoá
kiến trúc 2 tầng khoá
Thông thường có Trung tâm phân phối
Thông thường có Trung tâm phân phối
khoá tin cậy
khoá tin cậy
Mỗi bên chia sẻ khoá chính của mình với
Mỗi bên chia sẻ khoá chính của mình với
KDC
KDC
KDC sinh khoá kỳ được sử dụng trao đổi giữa
KDC sinh khoá kỳ được sử dụng trao đổi giữa
các bên
các bên
Khoá chính được dùng để phân phối khoá kỳ
Khoá chính được dùng để phân phối khoá kỳ
Needham-Schroeder Protocol
Needham-Schroeder Protocol
Thủ tục phân phối khoá có bên thứ 3 tham gia
Thủ tục phân phối khoá có bên thứ 3 tham gia
Tạo khoá kỳ giữa A và B do KDC cung cấp
Tạo khoá kỳ giữa A và B do KDC cung cấp
Thủ tục cụ thể như sau:
Thủ tục cụ thể như sau:
1.
1.
A->KDC:
A->KDC:
ID
ID
A
A
||
||
ID
ID
B
B
||
||
N
N
1
1
2
2
. KDC ->
. KDC ->
A: E
A: E
Ka
Ka
[Ks
[Ks
||
||
ID
ID
B
B
||
||
N
N
1
1
|| E
|| E
Kb
Kb
[
[
Ks
Ks
||
||
ID
ID
A
A
] ]
] ]
3.
3.
A ->
A ->
B:
B:
E
E
Kb
Kb
[
[
Ks
Ks
||
||
ID
ID
A
A
]
]
4.
4.
B ->
B ->
A:
A:
E
E
Ks
Ks
[
[
N
N
2
2
]
]
5.
5.
A ->
A ->
B:
B:
E
E
Ks
Ks
[f(
[f(
N
N
2
2
)]
)]
Needham-Schroeder Protocol
Needham-Schroeder Protocol
Sử dụng phân phối khoá bộ phận mới để A và
Sử dụng phân phối khoá bộ phận mới để A và
B trao đổi
B trao đổi
Có lỗ hổng là bị tấn công trì hoãn, nếu khoá bộ
Có lỗ hổng là bị tấn công trì hoãn, nếu khoá bộ
phận cũ vẫn còn thỏa thuận dùng
phận cũ vẫn còn thỏa thuận dùng
Khi đó mẩu tin 3 có thể bị gửi lại khẳng định
Khi đó mẩu tin 3 có thể bị gửi lại khẳng định
với B là đang trao đổi với A
với B là đang trao đổi với A
Muốn sửa lỗi trên cần phải
Muốn sửa lỗi trên cần phải
Dùng Tem thời gian (Denning 81)
Dùng Tem thời gian (Denning 81)
Sử dụng thêm nhãn (Neuman 93)
Sử dụng thêm nhãn (Neuman 93)
Sử dụng khoá công khai
Sử dụng khoá công khai
Using Public-Key Encryption
Using Public-Key Encryption
Có nhiều ứng dụng dựa trên khoá công
Có nhiều ứng dụng dựa trên khoá công
khai
khai
Cần phải tin tưởng rằng có khoá công
Cần phải tin tưởng rằng có khoá công
khai đúng của các đối tác khác.
khai đúng của các đối tác khác.
Sử dụng máy chủ xác thực trung tâm AS
Sử dụng máy chủ xác thực trung tâm AS
(Authentication Server)
(Authentication Server)
Có nhiều thủ tục tồn tại sử dụng tem thời
Có nhiều thủ tục tồn tại sử dụng tem thời
gian và nhãn
gian và nhãn
Denning AS Protocol
Denning AS Protocol
Denning 1981 đề xu
Denning 1981 đề xu
ất
ất
1.
1.
A ->
A ->
AS:
AS:
ID
ID
A
A
||
||
ID
ID
B
B
2.
2.
AS ->
AS ->
A: E
A: E
PRas
PRas
[
[
ID
ID
A
A
||PU
||PU
a
a
||T] || E
||T] || E
PRas
PRas
[
[
ID
ID
B
B
||PU
||PU
b
b
||T]
||T]
3.
3.
A ->
A ->
B: E
B: E
PRas
PRas
[
[
ID
ID
A
A
||PU
||PU
a
a
||T] || E
||T] || E
PRas
PRas
[
[
ID
ID
B
B
||PU
||PU
b
b
||T] || E
||T] || E
PUb
PUb
[E
[E
PRas
PRas
[K
[K
s
s
||
||
T]]
T]]
Nhận thấy rằng khoá kỳ được chọn bởi A, do đó
Nhận thấy rằng khoá kỳ được chọn bởi A, do đó
AS không cần được uỷ quyền bảo vệ nó
AS không cần được uỷ quyền bảo vệ nó
Tem thời gian chống trì hoãn nhưng cần đồng
Tem thời gian chống trì hoãn nhưng cần đồng
hồ đồng bộ
hồ đồng bộ
Xác thực một chiều
Xác thực một chiều
One-Way Authentication
One-Way Authentication
Được dùng khi người nhận và người gửi
Được dùng khi người nhận và người gửi
không cùng ở trạng thái trao đổi
không cùng ở trạng thái trao đổi
Có đầu tin rõ ràng để có thể phân phối bởi
Có đầu tin rõ ràng để có thể phân phối bởi
hệ thống thư điện tử
hệ thống thư điện tử
Có thể muốn nội dung tin được bảo vệ và
Có thể muốn nội dung tin được bảo vệ và
xác thực bởi người gửi
xác thực bởi người gửi
Sử dụng khoá đối xứng
Sử dụng khoá đối xứng
Using Symmetric Encryption
Using Symmetric Encryption
Có thể làm tốt hơn ứng dụng của KDC
Có thể làm tốt hơn ứng dụng của KDC
nhưng không thể trao đổi nhãn cuối cùng:
nhưng không thể trao đổi nhãn cuối cùng:
1.
1.
A
A
->
->
KDC:
KDC:
ID
ID
A
A
||
||
ID
ID
B
B
||
||
N
N
1
1
2
2
. KDC
. KDC
->
->
A: E
A: E
Ka
Ka
[Ks
[Ks
||
||
ID
ID
B
B
||
||
N
N
1
1
|| E
|| E
Kb
Kb
[
[
Ks
Ks
||
||
ID
ID
A
A
] ]
] ]
3.
3.
A
A
->
->
B:
B:
E
E
Kb
Kb
[
[
Ks
Ks
||
||
ID
ID
A
A
] || E
] || E
Ks
Ks
[M]
[M]
does not protect against replays
does not protect against replays
Không bảo vệ chống trì hoãn được
Không bảo vệ chống trì hoãn được
Có thể dựa trên tem thời gian trên mẳu tin,
Có thể dựa trên tem thời gian trên mẳu tin,
tuy nhiên trì hoãn email tạovẫn nên vấn đề đó
tuy nhiên trì hoãn email tạovẫn nên vấn đề đó
Sử dụng khoá công khai
Sử dụng khoá công khai
Public-Key Approaches
Public-Key Approaches
Chúng ta đã thấy một số cách tiếp cận khoá
Chúng ta đã thấy một số cách tiếp cận khoá
công khai
công khai
Nếu bảo mật là chính, có thể dùng:
Nếu bảo mật là chính, có thể dùng:
A
A
->
->
B: E
B: E
PUb
PUb
[Ks] || E
[Ks] || E
Ks
Ks
[M]
[M]
Mã được khoá kỳ và bản tin mã
Mã được khoá kỳ và bản tin mã
Nếu xác thực cần chữ ký điện tử với xác
Nếu xác thực cần chữ ký điện tử với xác
nhận điện tử:
nhận điện tử:
A
A
->
->
B: M || E
B: M || E
PRa
PRa
[H(M)] || E
[H(M)] || E
PRas
PRas
[T||ID
[T||ID
A
A
||PU
||PU
a
a
]
]
với mẩu tin, chữ ký và xác nhận
với mẩu tin, chữ ký và xác nhận
Chuẩn chữ ký điện tử (DSS)
Chuẩn chữ ký điện tử (DSS)
Digital Signature
Digital Signature
Standard
Standard
Chính phủ Mỹ ủng hộ sơ đồ chữ ký điện
Chính phủ Mỹ ủng hộ sơ đồ chữ ký điện
tử FIPS 186
tử FIPS 186
Sử dụng thuật toán hash SHA công bố
Sử dụng thuật toán hash SHA công bố
1991, sửa 1996, 2000
1991, sửa 1996, 2000
DSS là chuẩn và DSA là thuật toán
DSS là chuẩn và DSA là thuật toán
Có phương án cải biên Elgamal và
Có phương án cải biên Elgamal và
Schnorr
Schnorr
Thuật toán chữ ký điện tử DSA
Thuật toán chữ ký điện tử DSA
Digital Signature
Digital Signature
Algorithm
Algorithm
(DSA)
(DSA)
Tạo 320 bit chữ ký
Tạo 320 bit chữ ký
Với lựa chọn 512-1024 bit an toàn
Với lựa chọn 512-1024 bit an toàn
hơn
hơn
Nhỏ và nhanh hơn RSA
Nhỏ và nhanh hơn RSA
Chỉ có sơ đồ chữ ký điện tử
Chỉ có sơ đồ chữ ký điện tử
An toàn phụ thuộc vào độ khó của
An toàn phụ thuộc vào độ khó của
tính logarit rời rạc
tính logarit rời rạc
Digital Signature
Digital Signature
Algorithm
Algorithm
(DSA)
(DSA)
Sinh khoá DSA
Sinh khoá DSA
DSA Key Generation
DSA Key Generation
Chia sẻ giá trị khoá công khai tổng thể
Chia sẻ giá trị khoá công khai tổng thể
(p,q,g):
(p,q,g):
số nguyên tố lớn
số nguyên tố lớn
p = 2
p = 2
L
L
ở đó L= 512 to 1024 bits và là bội của 64
ở đó L= 512 to 1024 bits và là bội của 64
chọn q là số nguyên tố 160 bit ước của p-1
chọn q là số nguyên tố 160 bit ước của p-1
chọn
chọn
g = h
g = h
(p-1)/q
(p-1)/q
ở đó
ở đó
h<p-1, h
h<p-1, h
(p-1)/q
(p-1)/q
(mod p) > 1
(mod p) > 1
Người sử dụng chọn khoá riêng và tính khoá
Người sử dụng chọn khoá riêng và tính khoá
công khai
công khai
chọn x<q
chọn x<q
Tính y = g
Tính y = g
x
x
(mod p)
(mod p)
Tạo chữ ký DSA
Tạo chữ ký DSA
DSA Signature Creation
DSA Signature Creation
Để ký mẩu tin M người gửi cần
Để ký mẩu tin M người gửi cần
Sinh khoá chữ ký ngẫu nhiên k: k < p,
Sinh khoá chữ ký ngẫu nhiên k: k < p,
k phải là số ngẫu nhiên, được xoá sau khi
k phải là số ngẫu nhiên, được xoá sau khi
dùng và không bao giờ dùng lại
dùng và không bao giờ dùng lại
Sau đó tính cặp chữ ký
Sau đó tính cặp chữ ký
:
:
r = (g
r = (g
k
k
(mod p))(mod q)
(mod p))(mod q)
s = (k
s = (k
-1
-1
(H(M)+ x.r))(mod q)
(H(M)+ x.r))(mod q)
Gửi cặp chữ ký (r, s) cùng với bản tin M
Gửi cặp chữ ký (r, s) cùng với bản tin M
Kiểm chứng chữ ký DSA
Kiểm chứng chữ ký DSA
DSA Signature Verification
DSA Signature Verification
Nhận được bản tin M cùng với chữ ký (r,
Nhận được bản tin M cùng với chữ ký (r,
s)
s)
Để kiểm chứng chữ ký người nhận cần
Để kiểm chứng chữ ký người nhận cần
tính:
tính:
w = s
w = s
-1
-1
(mod q)
(mod q)
u1= (H(M).w)(mod q)
u1= (H(M).w)(mod q)
u2= (r.w)(mod q)
u2= (r.w)(mod q)
v = (g
v = (g
u1
u1
.y
.y
u2
u2
(mod p)) (mod q)
(mod p)) (mod q)
•
Nếu v = r thì chữ ký đã được kiểm chứng
Nếu v = r thì chữ ký đã được kiểm chứng
Summary
Summary
have discussed:
have discussed:
digital signatures
digital signatures
authentication protocols (mutual & one-way)
authentication protocols (mutual & one-way)
digital signature algorithm and standard
digital signature algorithm and standard