MỤC LỤC
MỤC LỤC. 1
DANH MỤC HÌNH. 4
CÁC KÝ HIỆU VÀ CỤM TỪVIẾT TẮT. 6
MỞ ĐẦU. 7
Chương 1 – Vai trò chìa khóa trong các giải pháp bảo mật và an toàn thông tin
. 9
1.1 Vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin . 9
1.1.1 Trong hệmã khóa đối xứng. 9
1.1.2 Trong hệmã khóa công khai . 10
1.1.3 Trong sơ đồxưng danh và xác nhận danh tính. 10
1.1.4 Trong hệxác nhận và chữký điện tử. 11
1.2 Vấn đềan toàn khóa trong các giải pháp bảo mật. 11
1.2.1 Hệmã khóa công khai . 11
1.2.2 Hệmã khóa đối xứng. 13
1.2.3 Trong môi trường truyền tin công cộng . 14
Chương 2 – Các giao thức an toàn khóa trong trao đổi, phân phối và chuyển
vận khóa. 16
2.1 Nhu cầu thỏa thuận, chuyển vận và phân phối khóa . 16
2.2 An toàn khóa trong các giao thức trao đổi. 18
2.2.1 Trao đổi khóa Diffie-Hellman. 18
2.2.2 Trao đổi khóa STS. 20
2.2.3 Thỏa thuận khóa MTI. 22
2.2.4 Giao thức Shamir . 24
2.2.5 Giao thức trao đổi khóa mã hóa EKE . 25
2.2.6 Sơ đồGirault . 28
2.3 An toàn khóa trong các giao thức phân phối khóa . 31
2.3.1 Sơ đồphân phối khóa Blom . 32
2.3.2 Hệphân phối khóa Kerberos. 34
2.3.3 Hệphân phối khóa Diffie-Hellman . 36
2.3.4 An toàn khóa trong các sơ đồchia sẻbí mật. 37
2.4 An toàn khóa trong các giao thức chuyển vận khóa . 39
2.4.1 Giao thức không sửdụng chữký . 40
2.4.2 Giao thức có sửdụng chữký. 40
2.4.3 Giao thức lai . 42
Chương 3 - Kỹthuật quản trịvà kiểm tra việc sửdụng khóa. 46
3.1 Quản trịkhóa . 46
3.2 Các kỹthuật quản trị. 46
3.2.1 Các kỹthuật phân phối khóa bí mật. 46
3.2.2 Kỹthuật phân phối khóa công khai. 50
3.3 Kỹthuật kiểm tra việc sửdụng khóa . 58
3.3.1 Tách biệt khóa và ràng buộc khóa. 58
3.3.2 Kỹthuật điều khiển việc sửdụng khóa . 59
3.4 Quản lý khóa trong hệthống đa vùng. 60
3.4.1 Quan hệtin cậy giữa hai vùng. 61
3.4.2 Mô hình tin cậy với nhiều TA . 62
3.5 Vòng đời khóa . 64
Chương 4 - Một sốcách tổchức các dịch vụquản trịkhóa. 67
4.1 Giới thiệu. 67
4.2 Giao thức socket an toàn SSL . 67
4.2.1 Kiến trúc SSL . 68
4.2.2 Giao thức SSL Record . 69
4.2.3 Giao thức SSL Change Cipher Spec. 70
4.2.4 Giao thức Alert . 71
4.2.5 Giao thức Handshake. 71
4.3 Cơsởhạtầng khóa công khai PKI. 74
4.3.1 Tổng quan PKI. 75
4.3.2 Các dịch vụPKI. 75
NHẬN XÉT VÀ KẾT LUẬN. 77
TÀI LIỆU THAM KHẢO. 78
78 trang |
Chia sẻ: netpro | Lượt xem: 1867 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ính cùng một giá trị khóa chung, nhưng cũng không thể xác định được
những giá trị mà U, V có. Do đó, giống như MTI, sơ đồ cung cấp tính xác thực khóa
ẩn.
Ở đây có thể ta sẽ đặt câu hỏi là tại sao TA lại yêu cầu U gửi cả giá trị aU trong khi
đó TA có thể tính được pU mà chỉ cần sử dụng bU. Lý do của nó là TA phải tin chắc
rằng U thực sự biết aU trước khi TA tính pU cho U. Chúng ta sẽ phân tích kỹ hơn để
thấy được sự cần thiết của điều này.
Nếu kẻ tấn công W chọn một giá trị a’U nào đó, rồi tính:
nb UaU mod
′=′ α
và lấy
)()( WIDUIDbb UW +−′=′
sau đó gửi b’W và ID(W) cho TA. TA tính khóa công khai
nWIDbp dWW mod))(( −′=′
cho W. Ta thấy rằng
)(mod )()( nUIDbWIDb UW −′≡−′
Nguyễn Thị Hiền Luận văn thạc sỹ 31
hay UW pp ′=′ .
Sau này, khi U và V thực hiện giao thức, W có thể thay thế thông tin như hình vẽ
dưới đây:
V sẽ tính khóa K’ = UVVU arar ′+′α mod n
trong khi đó U sẽ tính khóa K = UVVU arar +α mod n
W có thể tính được K’ = UeV
a
V rVIDps U ′+′ ))(( mod n
W biết khóa K’ của V, còn V nghĩ rằng mình đang dùng chung khóa với U. Vì thế
W sẽ giải mã được tất cả văn bản mà V gửi cho U.
2.3. An toàn khóa trong các giao thức phân phối khóa
Giao thức phân phối khóa: Là quá trình nhờ đó một bên tạo ra hoặc ngược lại nhận
được một giá trị dùng làm bí mật (khóa), và chuyển cho bên kia một cách an toàn.
Phân phối khóa đôi khi còn được gọi là chuyển vận khóa.
Trong phần này chúng ta sẽ nghiên cứu các giao thức phân phối có sự tham gia của
một Trung tâm phân phối khóa (KDC – Key Distribution Center) được các thành
viên trong hệ thống tin cậy. Giao thức giả thiết rằng U và V tương ứng chia sẻ khóa
KU, KV với KDC. Khi đó hoạt động của các giao thức dạng này có thể mô tả tổng
quát như sau:
− U yêu cầu T (KDC) cung cấp một khóa phiên để truyền thông với V.
− T sinh ngẫu nhiên khóa phiên K, gửi )(KE
UK
cho U và )(KE
VK
cho V.
− U và V sử dụng KU, KV của mình giải mã để thu được khóa K.
U
W
V
ID(U), p’U, Ur ′α mod n
ID(V), p’V, Vr ′α mod n ID(V), pV, Vrα mod n
ID(U), pU, Urα mod n
Nguyễn Thị Hiền Luận văn thạc sỹ 32
Vấn đề an toàn của giao thức:
- Khi TA phân phối bí mật cho U, V thì một thành viên của hệ thống có thể
thu được khóa của U và V hay không, nếu không thì bao nhiêu người liên
minh với nhau để tính được khóa của U và V?
2.3.1. Sơ đồ phân phối khóa Blom
2.3.1.1. Trình bày sơ đồ
Sơ đồ Blom [6] thường được dùng trong hệ thống mạng gồm n thành viên, các giá
trị khóa được lấy trong trường Zp, trong đó p nguyên tố, p ≥ n, nếu k số nguyên
thỏa mãn 1 ≤ k ≤ n-2 là số người nhiều nhất mà sơ đồ mong muốn còn giữ được an
toàn thì TA sẽ phải chuyển k +1 giá trị trong Zp cho mỗi người qua kênh chuyển tin
cậy. U và V nếu muốn truyền thông với nhau sau đó sẽ tính khóa chung KU,V = KV,U
mà k người bất kỳ ngoại trừ U và V không thể xác định được giá trị khóa này.
Trước tiên luận văn sẽ trình bày sơ đồ trong trường hợp k = 1 như trong Hình 2.8
dưới đây.
Hình 2.8 Sơ đồ phân phối khóa Blom (k=1)
1. Công khai số nguyên tố p của hệ thống, mỗi cá thể U công khai giá trị
rU∈Zp, giá trị này của mọi người là khác nhau.
2. TA lấy ba giá trị ngẫu nhiên a, b, c ∈ Zp (không cần phải khác nhau),
sau đó xây dựng đa thức:
pcxyyxbayxf mod ))(),( +++=
3. TA xác định rồi chuyển cho mỗi người dùng U một đa thức
prxfxg UU mod ),()( =
Với cách xác định như trên thì gU(x) là đa thức tuyến tính biến x, vì thế ta
có thể viết
gU(x) = aU + bUx
trong đó pbraa UU mod += , pcrbb UU mod +=
4. U và V muốn truyền tin với nhau, hai người sẽ dùng khóa chung
Nguyễn Thị Hiền Luận văn thạc sỹ 33
prcrrrbarrfKK VUVUVUUVVU mod )(),(,, +++===
trong đó U tính KU, V bằng
)(),( VUVU rgrrf =
còn V tính KU, V
)(),( UVVU rgrrf =
2.3.1.2. Vấn đề an toàn của sơ đồ
Sơ đồ Blom với k=1 là an toàn tuyệt đối đối với bất kỳ người dùng nào.
Thật vậy, giả sử nếu W là một thành viên của hệ thống muốn tính khóa của U, V
prcrrrbaK VUVUVU mod )(, +++=
W có thể biết các giá trị công khai rU, rV, cộng thêm những giá trị aW, bW TA gửi
cho W, còn a, b, c thì không thể biết được, :
pbraa WW mod += , pcrbb WW mod +=
Với những thông tin mà W có thì giá trị bất kỳ pZl ∈ đều có thể là khóa KU, V. Xét
hệ phương trình được biểu diễn bởi ma trận (trong Zp) như dưới đây:
=
+
w
w
W
W
VUVU
b
a
l
c
b
a
r
r
rrrr
10
01
1
Phương trình đầu tiên chính là giả thiết lKU, V = ; phương trình thứ hai và thứ ba là
những thông tin mà W biết. Định thức của ma trận này là
))(()(2 VWUWWVUVUW rrrrrrrrrr −−=+−+
(các phép toán ở đây đều được thực hiện trong Zp). Do UW rr ≠ và VW rr ≠ , nên định
thức trên khác không, do đó hệ phương trình có duy nhất nghiệm a, b, c. Hay nói
cách khác với những thông tin mà W có thì giá trị l bất kỳ đều có thể là khóa VUK ,
của U và V.
Nguyễn Thị Hiền Luận văn thạc sỹ 34
Tuy nhiên, nếu hai thành viên W, X nào đó sao cho {W, X} ∩ {U,V} = φ liên
minh với nhau thì họ có thể xác định được a, b, c. Thật vậy hệ phương trình:
+=
+=
+=
+=
XX
XX
WW
WW
crbb
braa
crbb
braa
sẽ có duy nhất nghiệm a, b, c. Một khi họ đã xác định được các giá trị này thì họ sẽ
tính được tất cả các khóa của hai bên nào đó.
Xuất phát từ chứng minh trên, làm sao để xây dựng sơ đồ an toàn với sự liên minh
của k người nào đó, thế thì trong bước 2, TA sẽ sử dụng đa thức có dạng:
∑∑
= =
=
k
i
k
j
ji
ji pyxayxf
0 0
, mod ),(
trong đó )0 ,0( , kjkiZpa ji ≤≤≤≤∈ , ijji aa ,, = với mọi i, j. Phần còn lại của giao
thức vẫn giữ nguyên.
2.3.2. Hệ phân phối khóa Kerberos
2.3.2.1. Trình bày sơ đồ
Hệ phân phối Kerberos [6] là hệ dựa trên mã khóa bí mật, sinh khóa cho mỗi phiên
truyền thông giữa hai người nào đó. Mỗi thành viên U trong mạng chia sẻ một khóa
bí mật DES KU với TA. Mỗi khi có nhu cầu truyền thông với V, U sẽ yêu cầu TA
cấp một khóa phiên cho cho cả U và V. Khi TA nhận được yêu cầu này từ U, nó sẽ
ghi lại thời gian yêu cầu T (tem thời gian), và xác định khoảng thời gian sống L của
khóa K (khoảng thời gian khóa K còn hợp lệ). Hoạt động của giao thức được trình
bày như trong Hình 2.9 dưới đây.
Hình 2.9 Hệ phân phối khóa phiên Kerboros
1. U yêu cầu TA cung cấp khóa phiên để truyền tin với V
2. TA sinh ngẫu nhiên khóa phiên K, tem thời gian T, và thời gian sống L
Nguyễn Thị Hiền Luận văn thạc sỹ 35
(khóa phiên K chỉ có giá trị từ thời điểm T đến T+L).
3. TA tính
)||||)(||(1 LTVIDKem UK=
)||||)(||(2 LTUIDKem VK=
rồi gửi m1, m2 cho U
4. U dùng hàm
UK
d giải mã để thu được K, T, L và ID(V). Sau đó tính
)||)((3 TUIDem K=
rồi gửi m2, m3 cho V.
5. V sử dụng
VK
d giải mã m2 để xác định K, T, L và ID(U), Kd giải mã m3
thu được T và ID(U). Nếu thấy các giá trị T và ID(U) giải mã được khớp
nhau thì V tính
)1(4 += Tem K
rồi gửi cho U
6. U dùng dK giải mã m4 và kiểm tra xem kết quả thu được có đúng là
T+1 hay không.
2.3.2.2. Vấn đề an toàn của sơ đồ
Trong giao thức, các văn bản m1, m2, m3 có chức năng hoàn toàn khác nhau, m1, m2
dùng để cung cấp tính an toàn quá trình chuyển K, trong khi đó m3, m4 được sử
dụng để xác nhận khóa, cho phép U và V tin rằng người kia cũng sở hữu cùng một
giá trị khóa phiên K với mình.
Sử dụng tem thời gian T và thời gian sống L để kháng lại các tấn công chủ động
dùng lại các văn bản sử dụng trước đó đã hết hiệu lực.
Trở ngại chính của Kerboros là tất cả mọi người trong mạng phải có một đồng hồ
đồng bộ, vì giao thức cần phải xác định thời điểm hiện tại để tính toán khoảng thời
Nguyễn Thị Hiền Luận văn thạc sỹ 36
gian còn hợp lệ của khóa. Trong thực tế thực hiện điều này là rất khó, vì thế luôn có
độ chênh lệch nhất định.
2.3.3. Hệ phân phối khóa Diffie – Hellman
2.3.3.1. Trình bày giao thức
Để sử dụng được Kerboros thì TA luôn luôn phải trực tuyến (on-line), đôi lúc điều
này có thể dẫn đến lãng phí tài nguyên và tình trạng thắt cổ chai... Giao thức thỏa
thuận khóa Diffie-Hellman [4] được xây dựng từ giao thức trao đổi khóa Diffie-
Hellman cho phép TA không phải biết và chuyển bất kỳ thông tin bí mật nào về
khóa của các bên tham gia truyền tin khi thiết lập khóa chung.
Trong sơ đồ này TA sử dụng thuật toán kiểm thử verTA công khai, thuật toán ký
sigTA, công khai số nguyên tố p, phần tử nguyên thủy α của Zp cho mọi người dùng
trong mạng. Mỗi cá thể U có một chứng chỉ được cấp phát một lần khi tham gia vào
hệ thống
C(U) = (ID(U), bU, sigTA(ID(U), bU))
trong đó pb UaU modα= , aU là giá trị bí mật, ID(U) là thông tin xác định danh tính
U.
Hoạt động của giao thức được mô tả trong Hình 2.10
Nguyễn Thị Hiền Luận văn thạc sỹ 37
2.3.3.2. Vấn đề an toàn của sơ đồ
Chúng ta sẽ xem xét tính an toàn của sơ đồ trước tấn công thụ động và chủ động.
Chữ ký trên chứng chỉ của người dùng chống lại các tấn công chủ động, vì rõ ràng
không ai có thể thay đổi được giá trị bU (hay bV) đã được TA ký trong chứng chỉ.
Đối với các tấn công bị động, nếu W có các giá trị pUa modα và pVa modα , thì liệu
anh ta có thể tính được pVU aa modα ? Khi đó anh ta phải giải bài toán Diffie-
Hellman, nếu bài toán giải được thì giao thức không an toàn với tấn công thụ động.
Cũng giống như giao thức Diffie-Hellman và một vài giao thức dựa trên nó, tính an
toàn của sơ đồ trước các tấn công bị động nằm trong tính khó giải của bài toán
Diffie – Hellman.
2.3.4. An toàn khóa trong các sơ đồ chia sẻ bí mật
Có những bí mật chung của một nhóm người nào đó mà chỉ khi có đủ các thành
viên trong nhóm mới có thể giải mã được. Mô hình phổ biến giải quyết vấn đề này
là các sơ đồ ngưỡng tức là dữ liệu được chia thành n gói (gọi là các hình chiếu -
shadow) sao cho có m gói thì sẽ khôi phục được dữ liệu, còn mọi tập con không quá
(m - 1) gói thì không thể.
Hình 2.10 Giao thức phân phối khóa Diffie-Hellman
1. V tính
ppbK VUV aaaUVU modmod, α==
trong đó giá trị bU lấy từ chứng chỉ của U
2. U tính
ppbK VUU aaVUV modmod,
αα==
giá trị bV lấy từ chứng chỉ của V.
Nguyễn Thị Hiền Luận văn thạc sỹ 38
Trong phần này chúng ta sẽ xem xét một sơ đồ ngưỡng tiêu biểu do Shamir đưa ra.
Sơ đồ này dựa trên nội suy đa thức: đa thức )(xfy = bậc t-1 xác định duy nhất nhờ
t điểm (xi, yi). Hoạt động của giao thức như trong Hình 2.11 dưới đây.
Sơ đồ ngưỡng Shamir có các tính chất sau đây:
• hoàn hảo theo nghĩa nếu có ít hơn t giá trị thì mọi giá trị nằm trong khoảng
[0, p-1] đều có thể là S.
• lý tưởng theo nghĩa là độ dài bit của các chia sẻ bằng với độ dài bit của S.
• khả năng mở rộng khi có thêm người dùng mới. T tính thêm rồi chuyển giá
trị cho người sử dụng mới gia nhập hệ thống, những giá trị của những người
khác không hề thay đổi.
Hình 2.11 Sơ đồ ngưỡng Shamir
1. Phân phát các gói: Trung tâm T lấy giá trị bí mật S ≥ 0, chia cho n người.
a. T lấy số nguyên tố p > max(S, n), và đặt a0 = S.
b. T lấy độc lập, ngẫu nhiên t - 1 hệ số a1, a2, …,at-1, 0 ≤ aj ≤ p-1, xác
định một đa thức ngẫu nhiên trên Zp, ∑−
=
=
1
0
)(
t
j
j
j xaxf
c. T tính các Si = f(i) mod p, 1 ≤ i ≤ n (hoặc có thể lấy n giá trị phân
biệt nằm trong khoảng 11 −÷ p ), rồi chuyển Si cho Pi, cùng với
chỉ số i công khai.
2. Tập hợp các chia sẻ. Bất kỳ một nhóm t người hoặc nhiều hơn đóng góp
các chia sẻ của mình, sẽ có t điểm khác nhau (x, y) = (i, Si), khi đó sẽ
tính được các hệ số aj, 11 −≤≤ tj , của đa thức f(x) bằng hai cách (sử
dụng nội suy, giải hệ phương trình) . Khi đó S sẽ tính được nhờ
Saf == 0)0( .
Nguyễn Thị Hiền Luận văn thạc sỹ 39
• dễ dàng thay đổi mức độ điều khiển. Thành viên nào càng có nhiều giá trị thì
càng chi phối nhiều hơn vào quá trình tính S.
• không có giả thiết nào không thể chứng minh được. Không giống như nhiều
sơ đồ mã hóa khác, tính an toàn đặt dưới một giả thiết chưa được chứng
minh đúng đắn bằng Toán học, sơ đồ ngưỡng không có một giả thiết nào
không thể chứng minh được.
Tổng quát
Ta tổng quát hóa sơ đồ ngưỡng lên như sau. Đưa ra tập tất cả người dùng P, xác
định U (cấu trúc truy nhập) là tập các tập con, được gọi là các tập con được quyền
của P. Các gói được tính toán và phân phối sao cho khi kết hợp các gói của các
thành viên trong một tập con A ∈ U sẽ thu được giá trị của S, nhưng nếu kết hợp
các gói của những người trong tập con B P⊆ , ∉B U sẽ không thể tính được giá trị
của S.
Các sơ đồ ngưỡng là lớp đặc biệt của sơ đồ chia sẻ bí mật tổng quát, trong đó cấu
trúc truy nhập bao gồm tất cả các tập con có t người.
2.4. An toàn khóa trong các giao thức chuyển vận khóa
Như ta đã nói trong mục 2.3 chuyển vận khóa chính là phân phối khóa. Tuy nhiên
trong phần này chủ yếu trình bày giao thức chuyển vận khóa dựa trên mã khóa công
khai, trong đó một bên sẽ lấy khóa đối xứng rồi chuyển cho bên kia bằng cách sử
dụng khóa công khai của bên đó để mã hóa. Với cách làm như vậy, giao thức cho
phép xác thực khóa với bên gửi vì chắc chắn rằng chỉ có bên có khóa bí mật tương
ứng với khóa công khai dùng để mã hóa mới có thể thu được giá trị khóa đối xứng
đó.
Vấn đề an toàn đặt ra đối với các giao thức loại này khi U đã chắc chắn rằng chỉ có
V mới thu được khóa thì ngoài ra:
- U cần chắc chắn thêm rằng:
o V đã nhận đúng giá trị khóa và thực sự đã có giá trị đó.
Nguyễn Thị Hiền Luận văn thạc sỹ 40
o Đúng là bên mà mình cần chuyển sẽ nhận được khóa.
- Bên nhận V cần chắc chắn:
o Người gửi cho mình đúng là U.
Giải pháp cho vấn đề này là sử dụng chữ ký, có thể ký trên văn bản vừa mã hóa
bằng khóa công khai, hoặc ký trên văn bản rồi mới thực hiện mã hóa, hoặc gửi cả
bản có chữ ký trên văn bản và bản mã hóa văn bản bằng khóa công khai. Đó chính
là các giao thức chúng ta sẽ nghiên cứu trong phần này.
2.4.1. Giao thức không sử dụng chữ ký
Giao thức một lần chuyển
U chuyển cho V gói tin: PV(k || U)
Giao thức là xác thực ẩn như đã nói ở trên. Còn đối với bên nhận V thì không có gì
đảm bảo rằng U đúng là người đã chuyển cho mình gói tin đó.
Nếu giao thức có sử dụng tem thời gian thì có thể kháng lại được tấn công biết khóa
(nếu khóa đã dùng trước đây bị lộ thì khóa dùng sau này cũng bị lộ), tức là khi đó U
sẽ chuyển cho V: PV(k, TU).
2.4.2. Giao thức có sử dụng chữ ký
Sử dụng chữ ký là một cách thức để giao thức chuyển vận xác thực nguồn gốc dữ
liệu cho bên nhận. Giao thức có thể thực hiện ký trên khóa rồi mã hóa, hoặc mã hóa
xong rồi ký, hoặc ký và mã hóa riêng.
Ta ký hiệu SU(y), PV(y) là chữ ký trên y dùng khóa bí mật của U, và mã khóa công
khai trên y dùng khóa của V.
2.4.2.1. Ký trên khóa rồi thực hiện mã hóa
• Giao thức
U gửi cho V: PV(k || tU* || SU(V || k || tU*))
Nguyễn Thị Hiền Luận văn thạc sỹ 41
tU là tem thời gian do U chọn (dấu * để chỉ giá trị không bắt buộc phải có trong gói
tin giao thức)
• Vấn đề an toàn của giao thức
Nếu có tU việc xác thực U với V thuận tiện hơn, ngoài ra nó cũng đảm bảo tính mới
của khóa. Danh tính của V được đưa vào trong văn bản ký nhằm ngăn chặn không
cho V đóng giả U gửi cho người khác.
So với phương pháp mã hóa xong rồi ký mà ta sẽ nói đến ngay sau đây thì phương
pháp này có nhược điểm là dữ liệu để mã hóa thường lớn hơn, vì thế có thể phải
điều chỉnh kích thước khối trong sơ đồ mã hóa công khai. (sử dụng CBC [6])
Nếu thuật toán ký khả nghịch tức là từ chữ ký có thể thu được văn bản gốc, U chỉ
cần chuyển cho V:
U→V: PV(SU(V || k || tU*))
2.4.2.2. Mã hóa và ký riêng
• Giao thức
Với những sơ đồ ký không cho phép xác định bản rõ từ chữ ký, thay vì mã hóa trên
chữ ký, ta sẽ thực hiện ký trên khóa và mã hóa khóa riêng biệt. Văn bản của giao
thức có dạng:
U→V: PV(k || tU*), SU(V || k || tU*)
Nếu khóa k chỉ dùng để mã hóa tệp dữ liệu y nào đó, thì thay cho k ta sẽ dùng SU(V
|| Ek(y) || tU*). Giao thức này rất phù hợp với các ứng dụng lưu và chuyển tiếp: dữ
liệu y cùng với thông tin về khóa được chuyển cho bên kia, bên nhận thu được y
bằng cách sử dụng k để giải mã tệp sau đó mới kiểm thử chữ ký trên y.
2.4.2.3. Mã hóa khóa rồi ký
• Giao thức
Ngược lại với cách ký trên bản mã khóa, U muốn chuyển cho V khóa k có thể gửi
gói tin như sau:
Nguyễn Thị Hiền Luận văn thạc sỹ 42
U→V: tU*, PV(U || k), SU(V || tU* || PV(U || k))
Thông tin về V được đưa vào trong phần ký để chống lại việc lột bỏ (stripping) chữ
ký – không cho phép kẻ tấn công W nào đó lấy được giá trị PV(k) rồi ký đè lên bằng
khóa của mình. Hơn nữa, khi chọn thuật toán mã hóa, lưu ý rằng nó phải đảm bảo
W không thể thay đổi PV(U || k) thành PV(W || k).
• Tính an toàn của giao thức
Bằng cách dùng tem thời gian, giao thức cho phép các bên xác thực lẫn nhau.
2.4.3. Giao thức lai
Không chỉ thuần sử dụng một hệ mật mã nào đó, đôi khi có những giao thức sử
dụng mã khóa đối xứng trong cả mã khóa công khai và chữ ký điện tử, giao thức
Beller-Yacobi là một ví dụ như thế. Những giao thức sử dụng cả kỹ thuật mã khóa
đối xứng và mã khóa công khai được gọi là giao thức lai.
2.4.3.1. Giao thức Beller-Yacobi 4 - lần qua (4-pass)
• Giao thức
Khi hai bên tham gia vào quá trình truyền tin có sự chênh lệch về khả năng xử lý thì
ngoài yêu cầu giao thức đảm bảo việc chuyển khóa an toàn nó còn phải hạn chế đến
mức ít nhất các phép toán cần thực hiện tại bên yếu hơn (ít tài nguyên hơn, khả
năng xử lý, tính toán kém hơn).
Về cơ bản trong giao thức, U tự xưng danh với V bằng cách ký trên một văn bản
ngẫu nhiên m, trong khi V xưng danh với U thông qua việc chứng tỏ những hiểu
biết của mình về khóa K mà chỉ có V mới xác định được. Để thuận tiện cho việc
trình bày ta sẽ sử dụng RSA với giá trị mũ công khai e = 3, mặc dù trong thực tế
người ta thường dùng Rabin vì tính hiệu quả của nó.
Ký hiệu EK(y) là bản mã khóa đối xứng của y bằng thuật toán E sử dụng khóa K,
PX(y) tương ứng với bản mã bằng khóa công khai của X trên y, ngược lại SX(y) là
Nguyễn Thị Hiền Luận văn thạc sỹ 43
kết quả giải mã bằng khóa bí mật của X trên y. IX là xâu bit xác định danh tính của
X. h(y) là giá trị băm y.
Ủy quyền T chọn số nguyên tố nS, phần tử sinh α nhóm nhân modulo nS, số nguyên
tố p, q, công khai n = pq và eT = 3, giữ bí mật dT thỏa mãn 1≡TT de mod (p-1)(q-1).
Mỗi bên (U và V) được T gửi khóa công khai có xác thực và một xâu xác định danh
tính ),(, α ST nn , IX.
Ta quy ước bên U là bên yếu hơn. Hoạt động của giao thức được mô tả như trong
Hình 2.12 dưới đây:
Hình 2.12 Giao thức Beller-Yacobi 4-lần qua
Trước khi thực hiện giao thức U lấy ngẫu nhiên số a thỏa mãn
21 −≤≤ Sna , tính SaU nmodαν = là chữ ký ElGamal rồi chuyển Uν cho
T, T xây dựng và gửi chứng chỉ cho U: ),,( UUUU GIcert ν= bao gồm danh
tính IU của U, khóa công khai ký ElGamal, chữ ký RSA GU của T trên các
thông tin đó: TdUUTU nUIUhISG T mod),((),( νν == .
1. U lấy ngẫu nhiên x sao cho 21 −≤≤ Snx và giữ bí mật, rồi tính:
S
x nmodαϑ = ; )1(mod1 −− Snx ; )1mod( −Snav . (x phải được lấy mới
trong mỗi lần ký đảm bảo tính an toàn của ElGamal, và nguyên tố cùng
nhau với 1−Sn để tồn tại 1−x ).
2. V gửi U
),,( VVVV GIcert ν= (1)
3. U kiểm tra tính xác thực của Vn bằng: TVVV nGnIh mod),( 3= . U lấy
khóa ngẫu nhiên K sao cho 11 −<< VnK và gửi cho V
Y = VV nKKP mod)( 3= (2)
4. V giải mã thu được K = SV(Y) = VdY mod nV sau đó lấy ngẫu nhiên m
Nguyễn Thị Hiền Luận văn thạc sỹ 44
∈ Z, nối thêm vào m t ( 50≈t ) số 0, mã hóa bằng khóa K, rồi gửi cho
U
{ } )0||( tK mE (3)
5. U nhận được gói tin thì giải mã ra rồi kiểm tra xem nó có dạng t bit 0 ở
cuối hay không; nếu đúng, U biết là V có khóa K. U tạo ra M = m||IV,
tính 1)( −−≡ xaMw ϑ mod nS-1, rồi gửi cho V
)||),(( UK certwE ϑ (4)
(Ở đây ),( wϑ là chữ ký theo sơ đồ ElGamal của U trên M, và
),,( UUUU GIcert ν= . Danh tính IU trong M được dùng để loại trừ khả năng
bị tấn công giữa dòng.)
6. V giải mã văn bản nhận được từ U, kiểm tra lại tính xác thực của rU:
TUUU nGIh mod),(
3=ν , V xây dựng được M = m || IV với m đã lấy ở
trên cùng với định danh của nó, sau đó kiểm thử chữ ký của U trên m
bằng cách kiểm tra: SUM nmodWϑνα ϑ≡ . Nếu đúng, V chấp nhận U với
danh tính IU chính là bên sinh ra K.
• Vấn đề an toàn khóa của giao thức
Trong giao thức mỗi bên phải thực hiện ít nhất một phép toán mã hóa với khóa bí
mật chứng tỏ sự hiểu biết của mình về khóa, và một hoặc hai phép toán với khóa
công khai (kiểm thử danh tính) vì thế mà cho phép xác thực lẫn nhau.
2.4.3.2. Giao thức Beller-Yacobi 2 - lần qua
• Giao thức
Thay đổi giao thức Beller-Yacobi 4-lần qua ta sẽ được giao thức 2-lần qua như
trong Hình 2.13 dưới đây:
Nguyễn Thị Hiền Luận văn thạc sỹ 45
• Vấn đề an toàn khóa của giao thức
So với Beller-Yacobi 4-lần qua khả năng xác thực của giao thức 2-lần qua có yếu
hơn, nhưng không đáng kể: V nhận được xác thực về U và khóa K chỉ có U biết,
trong khi U cũng chắc chắn rằng khóa K chỉ có V biết. Nếu muốn U cũng nhận
được xác thực về V thì giao thức cần thêm vào một gói tin nữa.
Ở đây có thể sẽ xảy ra hiệu ứng không mong muốn nếu lấy khóa phiên K = t, khi đó
U không thể tác động lên giá trị khóa, giao thức sẽ trở thành thỏa thuận khóa. Vì thế
thay vào đó U sẽ chọn ngẫu nhiên x, lấy K = x, rồi mã hóa x gửi đi cùng w.
Hình 2.13 Giao thức Beller-Yacobi 2-lần qua
1. V chọn ngẫu nhiên m rồi gửi m, ),,( VVVV GIcert ν= cho U
2. U xây dựng chữ ký ElGamal (t, w) trên M = (m, IV), lấy t làm khóa
phiên K = t rồi gửi cho V: PV(t), Er(certU || w).
3. V giải mã gói tin U gửi cho để thu được t (= K), sau đó lấy giá trị này
để giải mã certU và w, rồi kiểm thử certU và chữ ký (t, w) trên M =
m||IV.
Nguyễn Thị Hiền Luận văn thạc sỹ 46
Chương 3 - KỸ THUẬT QUẢN TRỊ VÀ KIỂM TRA VIỆC SỬ DỤNG KHÓA
3.1. Quản trị khóa
Quan hệ khóa là trạng thái trong đó các thực thể truyền thông chia sẻ dữ liệu chung
(chất liệu khóa) để làm thuận tiện cho các kỹ thuật mã hóa. Dữ liệu này có thể các
khóa công khai, bí mật, các giá trị khởi tạo, các tham số công khai khác.
Quản trị khóa là các kỹ thuật hay thủ tục hỗ trợ cho việc thiết lập và duy trì một
quan hệ khóa giữa các bên được phép. Cụ thể là các công việc:
1. tạo người dùng hệ thống mới trong vùng;
2. tạo sinh, phân phối, cài đặt chất liệu khóa;
3. điều phối việc sử dụng chất liệu khóa;
4. cập nhật, thu hồi, huỷ bỏ chất liệu khóa;
5. lưu giữ, sao lưu, phục hồi chất liệu khóa.
Lý do phải quản trị khóa
Quản trị khóa đóng vai trò quan trọng trong hệ thống mã hóa, nó là nền tảng để thực
hiện được các kỹ thuật nhận thực thực thể, xác nhận nguồn gốc dữ liệu, toàn vẹn dữ
liệu, và chữ ký điện tử một cách an toàn. Nếu hệ thống có sử dụng các kỹ thuật
quản trị khóa một cách hợp lý, nó có thể kháng lại các mối đe dọa sau:
1. lộ khóa bí mật
2. không còn đảm bảo tính xác thực của khóa bí mật & công khai. Tính xác thực
ở đây được xem là những hiểu biết và khả năng kiểm thử được định danh của bên
nhận đối với bên gửi.
3. thực hiện những thao tác không được phép trên khóa công khai & khóa bí mật.
3.2. Các kỹ thuật quản trị
3.2.1 Các kỹ thuật phân phối khóa bí mật
Nguyễn Thị Hiền Luận văn thạc sỹ 47
Khóa bí mật mà ta nói đến ở đây là các khóa của hệ mã khóa đối xứng và các khóa
riêng trong hệ mã khóa công khai. Trong phần này chúng ta sẽ nghiên cứu hai kỹ
thuật phân phối khóa bí mật phổ biến nhất một dựa trên việc phân lớp sử dụng khóa,
một dựa trên chứng chỉ và Trung tâm chuyển khóa.
3.2.1.1. Phân lớp khóa
Người ta phân loại khóa dựa trên mức độ quan trọng của chúng như sau:
1. khóa chính (master key): khóa ở mức cao nhất trong cây phân cấp, thông
thường không bảo vệ bằng mã hóa. Chúng thường được phân phối bằng tay, hoặc
thông qua các thủ tục, các phần cứng vật lý.
2. khóa mã hóa khóa (key - encrypting keys): khóa đối xứng hay các khóa công
khai dùng để chuyển vận hay lưu giữ các khóa khác, sự an toàn của các khóa đó phụ
thuộc vào chúng.
3. khóa dữ liệu (data keys): dùng trong các phép toán mã hóa (hay xác thực) trên
dữ liệu. Chúng có thể là các khóa phiên (trong hệ mã đối xứng). Khóa riêng trong
sơ đồ chữ ký cũng có thể là khóa dữ liệu (tuy nhiên loại này thường được dùng
trong thời gian dài).
Khóa ở mức cao được sử dụng để bảo vệ khóa ở mức thấp hơn. Mục đích chính của
việc làm này để tăng thêm độ khó cho các tấn công, và hạn chế bớt thiệt hại khi có
khóa nào đó bị lộ. Chẳng hạn khi khóa mã hóa khóa bị lộ, tệ hơn nữa là khóa chính
thì sẽ ảnh hưởng tới sự an toàn của tất cả các khóa ở mức dưới, nhưng khi khóa mã
hóa dữ liệu nào đó bị lộ thì không ảnh hưởng tới các khóa ở mức trên.
Ngoài ra người ta có thể phân chia khóa dựa trên khoảng thời gian còn hợp lệ của
chúng thành khóa vĩnh cửu (dùng mãi mãi) và khóa phiên (chỉ dùng trong một
phiên giao dịch hoặc trong khoảng thời gian nhất định). Khóa vĩnh cửu thường được
dùng trong những ứng dụng lưu trữ dữ liệu, còn khóa phiên thường được dùng trong
những ứng dụng truyền thông. Khóa dùng lâu dài chủ yếu được dùng để bảo vệ
khóa phiên.
Nguyễn Thị Hiền Luận văn thạc sỹ 48
3.2.1.2. Chứng chỉ và Trung
Các file đính kèm theo tài liệu này:
- Vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin.pdf