1.2.3 Ứng dụng của các hệ mã hóa 1.2.3.1 Hệ mã hóa khóa đối xứng Hệ mã hoá khoá đối xứng thường được sử dụng trong một môi trường chung có thể dễ dàng trao đổi bí mật, chẳng hạn trong c
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
ĐỖ THỊ HỒNG
CÁC GIAO THỨC QUẢN LÝ KHÓA
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Lê Văn Phùng
HÀ NỘI, 2013
Trang 2LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc tới TS Lê Văn Phùng đã tận tình hướng dẫn, chỉ bảo và cung cấp những tài liệu rất hữu ích để tôi có thể hoàn thành luận văn
Xin cảm ơn lãnh đạo Trường Đại học Sư phạm Hà Nội 2, Trường Đại học Công nghiệp Việt Trì đã tạo điều kiện giúp đỡ tôi về mọi mặt trong suốt quá trình thực hiện luận văn
Tôi xin bày tỏ sự biết ơn sâu sắc đến gia đình, người thân, bạn bè đồng nghiệp, những người luôn động viên, khuyến khích và giúp đỡ về mọi mặt để tôi có thể hoàn thành công việc nghiên cứu
Hà Nội, tháng 12 năm 2013
Tác giả luận văn
Đỗ Thị Hồng
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy giáo hướng dẫn TS Lê Văn Phùng
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tác giả, tên công trình, thời gian, địa điểm công bố
Hà Nội, tháng 12 năm 2013
Tác giả luận văn
Đỗ Thị Hồng
Trang 4MỤC LỤC
CÁC KÝ HIỆU VÀ CỤM TỪ VIẾT TẮT 7
DANH MỤC HÌNH 8
MỞ ÐẦU 9
Chương 1: Những vấn đề quan trọng nhất trong quá trình bảo đảm an toàn bảo mật thông tin trên đường truyền 12
1.1 Một số khái niệm toán học 12
1.1.1 Số nguyên tố và nguyên tố cùng nhau 12
1.1.2 Đồng dư thức 12
1.1.3 Không gian Z n và Z n * 13
1.1.4 Phần tử nghịch đảo 13
1.1.5 Khái niệm nhóm, nhóm con, nhóm Cyclic 14
1.1.6 Bộ phần tử sinh (Generator-tuple) 15
1.1.7 Bài toán đại diện (Presentation problem) 16
1.2 Các nội dung cơ bản trong an toàn bảo mật thông tin 17
1.2.1 Vấn đề mã hóa dữ liệu 17
1.2.2 Các hệ mã hóa dữ liệu 18
1.2.3 Ứng dụng của các hệ mã hóa 21
Chương 2: Tổng quan về khóa và việc quản lý khóa 23
2.1 Tổng quan về khóa 23
2.1.1 Các khái niệm về khóa 23
Trang 52.1.2 Các cách phân loại khóa 23
2.1.3 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 24
2.1.4 Vấn đề xác thực khóa 28
2.1.5 An toàn khóa trong các giải pháp bảo mật 30
2.2 Quản lý khóa 32
2.2.2 Quản lý khóa bí mật 34
2.2.3 Quản lý khóa công khai 35
2.3 Các phương pháp phân phối khóa 37
2.3.1 Sơ đồ phân phối khóa 37
2.3.2 Trung tâm phân phối khóa 38
2.3.3 Phân phối khóa theo phương pháp thông thường 40
2.3.4 Phân phối theo phương pháp hiệu quả 41
2.4 Các phương pháp thỏa thuận khóa bí mật 41
2.4.1 Phương pháp hiệu quả 42
2.4.2 Phương pháp thông thường 42
Chương 3: Các giao thức quản lý khóa 43
3.1 Giao thức phân phối khóa 43
3.1.1 Nhu cầu thỏa thuận, chuyển vận và phân phối khóa 43
3.1.2 Giao thức phân phối khóa Blom 45
3.1.3 Giao thức phân phối khoá Diffie-Hellman 51
3.1.4 Giao thức phân phối khóa “tươi” Kerboros 55
Trang 63.1.5 Sơ đồ chia sẻ bí mật ngưỡng Shamir 58
3.2 Giao thức thỏa thuận khóa 62
3.2.1 Giao thức thỏa thuận khóa Diffie-Hellman 62
3.2.2 Giao thức thoả thuận khoá trạm tới trạm( Station to Station – STS) 64
3.3.3 Giao thức thoả thuận khoá MTI 67
3.3.4 Giao thức Girault trao đổi khóa không chứng chỉ 70
Chương 4 Chương trình thử nghiệm 74
4.1 Mục đích yêu cầu 74
4.1.1 Mục đích 74
4.1.2 Yêu cầu 74
4.2 Lựa chọn giao thức thỏa thuận khóa 74
4.3 Chương trình giao thức thỏa thuận khóa 74
4.3.1 Cấu hình hệ thống 74
4.3.2 Các thành phần của chương trình 75
4.3.3 Giao diện chương trình 76
4.3.4 Kết quả chương trình 78
4.4 Hướng phát triển của luận văn 78
KẾT LUẬN 78
DANH MỤC TÀI LIỆU THAM KHẢO 80
Trang 7K (Key): Tập hữu hạn các khóa
CA: Certificate Authority – Cơ quan chứng thực khóa công khai CBC: Cipher Block Chaining
CSDL: Cơ sở dữ liệu
KDC: Key Distribution Center – Trung tâm phân phối khóa KTC: Key Translation Center – Trung tâm chuyển khóa
STS: Station To Station
TA: Trust Authority – Ủy quyền tin cậy
MIT: Masumoto, Takashima, Imai
Trang 8DANH MỤC HÌNH
Hình 1.1 Sơ đồ mã hóa với khóa mã và khóa giải mã giống nhau 18
Hình 2.1 Sơ đồ phân phối khóa của Trung tâm 38
Hình 3.1 Sơ đồ phân phối khóa Blom 46
Hình 3.2 Sơ đồ phân phối khóa Diffie - Hellman 52
Hình 3.3 Sơ đồ phân phối khóa Kerboros 56
Hình 3.4 Sơ đồ ngưỡng Shamir 59
Hình 3.5 Giao thức thỏa thuận khóa Diffie-Hellman 62
Hình 3.6 Giao thức thỏa thuận khóa trạm tới trạm( STS) 65
Hình 3.7 Giao thức thỏa thuận MTI 67
Hình 3.8 TA cung cấp khóa công khai tự xác thực cho thành viên 71
Hình 3.9 Sơ đồ Girault 71
Hình 4.1 Nhập dữ liệu vào 76
Hình 4.2 Giá trị người dùng gửi cho nhau 77
Hình 4.3 Khóa bí mật chung tính được K_UV 77
Trang 9MỞ ÐẦU
1 Lý do chọn đề tài
Hiện nay, ở các nước phát triển cũng như đang phát triển, mạng máy tính và Internet đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của xã hội, và một khi nó trở thành phương tiện làm việc trong các hệ thống thì nhu cầu bảo mật thông tin được đặt lên hàng đầu Nhu cầu này không chỉ có ở các bộ máy An ninh, Quốc phòng, Quản lý Nhà nước, mà đã trở thành cấp thiết trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại…thậm chí trong cả một số hoạt động thường ngày của người dân (Thư điện tử, thanh toán tín dụng,…) Do ý nghĩa quan trọng này mà những năm gần đây công nghệ mật mã và an toàn thông tin đã có những bước tiến vượt bậc và thu hút sự quan tâm của các chuyên gia trong nhiều lĩnh vực khoa học, công nghệ
Quản lý khóa có vai trò cực kỳ quan trọng đối với an ninh của các hệ
thống dựa trên mật mã
Rất nhiều yếu tố quan trọng góp phần trong việc quản lý khóa thành công lại không thuộc về phạm vi của mật mã học mà lại thuộc về lĩnh vực quản lý Chính điều này lại làm cho việc thực hiện thành công chính sách quản lý khóa thêm phức tạp Cũng vì nguyên nhân này mà phần lớn các tấn công vào các hệ thống mật mã là nhằm vào cách thức quản lý khóa hơn là tấn công vào các kỹ thuật mật mã
Luận văn sẽ nghiên cứu và xác định rõ vai trò của khóa trong các giải pháp bảo mật và an toàn thông tin Trên cơ sở nghiên cứu và phân tích các giải pháp an toàn khóa trong việc phân phối, trao đổi, chuyển vận khóa, cũng như các phương thức quản lý nhằm mang lại hiệu quả cao nhất trong quá trình thực hiện các giao thức đó Luận văn gồm có bốn chương:
Trang 10Chương 1: Những vấn đề quan trọng nhất trong quá trình bảo đảm an toàn bảo mật thông tin trên đường truyền
Chương 2: Tổng quan về khóa và việc quản lý khóa
Chương 3: Các giao thức quản lý khóa
Chương 4: Chương trình thử nghiệm
2 Mục đích nghiên cứu
Nghiên cứu và xác định vai trò của khóa trong các giải pháp bảo mật
và an toàn thông tin Trên cơ sở nghiên cứu và phân tích các giải pháp an toàn khóa trong việc phân phối, trao đổi, chuyển vận khóa, cũng như các phương thức quản lý nhằm mang lại hiệu quả cao nhất trong quá trình thực hiện các giao thức đó
3 Nhiệm vụ nghiên cứu
1 Tổng quan những vấn đề quan trọng nhất trong quá trình bảo đảm an toàn bảo mật thông tin trên đường truyền
2 Tổng quan về khóa và việc quản lý khóa
3 Nghiên cứu sâu về các giao thức quản lý khóa: giao thức phân phối, giao thức thỏa thuận khóa
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài tập trung vào khóa lập mã và khóa giải
mã trong an toàn và bảo mật thông tin trên đường truyền
Phạm vi nghiên cứu của đề tài được giới hạn trong vấn đề quản lý khóa,
cụ thể là các giao thức phân phối và thỏa thuận khóa
5 Phương pháp nghiên cứu
Trang 11- Phương pháp tổng hợp phân tích các vấn đề liên quan đến đề tài
- Phương pháp thống kê kết hợp với phương pháp chuyên gia
- Phương pháp kết hợp lý thuyết với thực nghiệm trên máy tính
6 Dự kiến đóng góp mới của đề tài
Các vấn đề bảo mật, các giao thức phân phối và thỏa thuận khóa, cài
đặt và thử nghiệm chương trình
Trang 12Chương 1: Những vấn đề quan trọng nhất trong quá trình bảo đảm an
toàn bảo mật thông tin trên đường truyền 1.1 Một số khái niệm toán học
1.1.1 Số nguyên tố và nguyên tố cùng nhau
Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó
Ví dụ: 2, 3, 5, 7, 17, … là những số nguyên tố
Hệ mật mã thường sử dụng các số nguyên tố ít nhất là lớn hơn 10150
Hai số m và n được gọi là nguyên tố cùng nhau nếu ước số chung lớn nhất của chúng bằng 1 Ký hiệu: gcd(m, n) = 1
Ví dụ: 9 và 14 là nguyên tố cùng nhau
1.1.2 Đồng dư thức
Cho a và b là các số nguyên tố, n là số nguyên dương thì a được
gọi là đồng dư với b theo modulo n nếu n|a-b (tức a - b chia hết cho n,
hay khi chia a và b cho n được cùng một số dư như nhau) Số nguyên n được gọi là modulo của đồng dư
Trang 13· Tính giao hoán: Nếu a ≡ b mod n và b ≡ c mod n thì a ≡ c mod n
· Nếu a ≡ a1 mod n, b ≡ b1 mod n
thì a + b ≡ (a1 + b1) mod n và ab ≡ a1b1 mod n
1.1.3 Không gian Z n và Z n *
Không gian Z n (các số nguyên theo modulo n)
Là tập hợp các số nguyên {0, 1, 2, …, n-1} Các phép toán trong Zn như cộng, trừ, nhân, chia đều được thực hiện theo module n
Cho a Î Zn Nghịch đảo của a theo modulo n là số nguyên x Î Z n sao
cho ax ≡ 1 (mod n) Nếu x tồn tại thì đó là giá trị duy nhất, và a được gọi là khả nghịch, nghịch đảo của a ký hiệu là a-1
Tính chất:
· Cho a, b Î Z n Phép chia của a cho b theo modulo n là tích của a và b -1
Trang 14theo modulo n, và chỉ được xác định khi b có nghịch đảo theo modulo n
· Cho a Î Z n , a là khả nghịch khi và chỉ khi gcd(a, n) = 1
· Giả sử d=gcd (a, n) Phương trình đồng dư ax ≡ b mod n có nghiệm x nếu và chỉ nếu d chia hết cho b, trong trường hợp các nghiệm d nằm trong khoảng 0 đến n - 1 thì các nghiệm đồng dư theo modulo n/d
Trang 15Cho a Î Zn*, cấp của a ký hiệu là ord(a)
được định nghĩa là số nguyên dương nhỏ nhất t thoả mãn: at ≡ 1 (mod n)
{g 1 , , g k } được gọi là bộ phần tử sinh nếu mỗi g i là một phần tử sinh
và những phần tử này khác nhau (g i ≠ g j nếu i ≠ j)
Trang 161.1.7 Bài toán đại diện (Presentation problem)
Gọi g là phần tử sinh của nhóm con G(q) thuộc Zn* Bài toán logarit rời
rạc liên quan đến việc tìm số mũ a, sao cho:
a = log g h mod n (với h Î G(q))
g
g
k a
a
mod
*
*
1
2 1
Trang 17Bài toán đại diện là với h = 13 Î G(11), tìm {a1, a2} sao cho:
23 mod 3
1.2.1.1 Khái niệm mã hóa
Để đảm bảo được an toàn thông tin lưu trữ trong máy tính (giữ gìn thông tin cố định) hay đảm bảo an toàn thông tin trên đường truyền tin (trên mạng máy tính), người ta phải “che giấu” các thông tin này
“Che” thông tin (dữ liệu) hay còn gọi là “mã hoá” thông tin là thay đổi hình dạng thông tin gốc, và người khác khó nhận ra “Giấu” thông tin (dữ liệu) là cất giấu thông tin trong bản tin khác, và người khác khó nhận ra
1 Hệ mã hóa
Việc mã hoá phải theo nguyên tắc nhất định, quy tắc đó gọi là Hệ mã hoá
Hệ mã hoá được định nghĩa là một bộ năm (P, C, K, E, D) trong đó:
Trang 18Hình 1.1 Sơ đồ mã hóa với khóa mã và khóa giải giống nhau
Người gửi G muốn bán tin T cho người nhận N Để bảo đảm bí mật, G mã hoá bản tin bằng khoá lập mã ke, nhận được bản mã eke(T), sau đó gửi cho N Tin tặc có thể trộm bản mã eke(T), nhưng cũng “khó” hiểu được bản tin gốc T nếu không có khoá giải mã kd
Người nhận N nhận được bản mã, họ dùng khoá giải mã kd, để giải mã eke(T),
sẽ nhận được bản tin gốc T = dkd(eke(T))
1.2.2 Các hệ mã hóa dữ liệu
1.2.2.1 Hệ mã hóa khóa đối xứng
Hệ mã hoá khoá đối xứng là Hệ mã hoá khoá mà biết được khoá lập mã thì có thể “dễ” tính được khoá giải mã và ngược lại Đặc biệt một số Hệ mã hoá có khoá lập mã và khoá giải mã trùng nhau (ke =kd)
Hệ mã hoá khoá đối xứng còn gọi là Hệ mã hoá khoá bí mật, hay khoá riêng, vì phải giữ bí mật cả hai khoá Trước khi dùng Hệ mã hoá khoá đối
Trang 19xứng, người ta gửi và nhận phải thoả thuận thuật toán mã hoá và khoá chung (lập mã hay giải mã), khoá phải được giữ bí mật
Độ an toàn của khoá này phụ thuộc vào khoá
Ví dụ:
+ Hệ mã hoá cổ điển là Mã hoá khoá đối xứng: dễ hiểu, dễ thực thi, nhưng có
độ an toàn không cao Vì giới hạn tính toán chỉ trong phạm vi bảng chữ cái,
sử dụng trong bản tin cần mã, ví dụ là Z26 nếu dùng các chữ cái tiếng Anh Với hệ mã hoá cổ điển, nếu biết khoá lập mã hay thuật toán lập mã, có thể
“dễ” xác định được bản rõ, vì “dễ” tìm được khoá giải mã
+ Hệ mã hoá DES (1973) là Mã hoá khoá đối xứng hiện đại, có độ an toàn cao
Đặc điểm của hệ mã hóa khóa đối xứng:
Ưu điểm: Hệ mã hoá khoá đối xứng mã hoá và giải mã nhanh hơn Hệ mã hoá
khoá công khai
Hạn chế:
1/ Mã hoá khoá đối xứng chưa thật an toàn với lý do sau:
Người mã hoá và người giải mã phải có “chung”một khoá Khoá phải được giữ bí mật tuyệt đối, vì biết khoá này “dễ” xác định được khoá kia và ngược lại
2/ Vấn đề thoả thuận khoá và quản lý khoá chung là khó khăn và phức tạp, Người gửi và người nhận phải luôn thống nhất với nhau về khoá Việc thay đổi khoá là rất khó và dễ bị lộ Khoá chung phải được gửi cho nhau trên kênh an toàn
Trang 20Mặt khác khi hai người (lập mã, giải mã) cũng biết “chung” một bí mật, thì càng khó giữ được bí mật!
1.2.2.2 Hệ mã hóa khóa công khai
Hệ mã hoá khoá phi đối xứng là Hệ mã hoá có khoá lập mã và khoá giải mã khác nhau (ke ≠ kd) biết được khoá này cũng “khó” tính được khoá kia Hệ mã hoá này còn được gọi là Hệ mã hoá khoá công khai, vì:
Khoá lập mã cho công khai, còn gọi là khoá công khai (Public key) Khoá giải mã giữ bí mật, còn gọi là khoá riêng (Private key) hay khoá
bí mật Một người bất kì có thể dùng khoá công khai để mã hoá bản tin, nhưng chỉ người nào có đúng giải mã thì mới có khả năng đọc được bản rõ
Đặc điểm của hệ mã hóa công khai
Ưu điểm: Thuật toán được viết một lần, công khai cho nhiều lần dùng, cho
nhiều người dùng, họ chỉ cần giữ bí mật khoá riêng của mình Khi biết các tham số ban đầu của hệ mã hoá, việc tính ra cặp khoá công khai và bí mật phải là “dễ”, tức là trong thời gian đa thức
Người gửi có bản rõ là P và khoá công khai, thì “dễ” tạo ra bản mã C Người nhận có bản mã C và khoá bí mật, thì “dễ” giải được thành bản rõ P
Người mã hoá dùng khoá công khai, người giải mã giữ khoá bí mật Khả năng lộ khoá bí mật khó hơn vì chỉ có một người giữ gìn
Nếu thám mã biết khoá công khai, cố gắng tìm khoá bí mật, thì chúng phải đương đầu với bái toán “khó”
Nếu thám mã biết khoá công khai và bản mã C, thì việc tìm ra bản rõ P cũng là bài toán “khó”, số phép thử là vô cùng lớn, không khả thi
Trang 21Hạn chế: Hệ mã hoá khoá công khai: mã hoá và giải mã chậm hơn hệ mã hoá
khoá đối xứng
1.2.3 Ứng dụng của các hệ mã hóa
1.2.3.1 Hệ mã hóa khóa đối xứng
Hệ mã hoá khoá đối xứng thường được sử dụng trong một môi trường chung có thể dễ dàng trao đổi bí mật, chẳng hạn trong cùng một mạng nội mạng nội bộ
Hệ mã hoá khoá đối xứng thường dùng để mã hoá những bản tin lớn, vì tốc độ mã hoá và giải mã nhanh hơn hệ mã hoá khoá công khai
2.2.3.2 Hệ mã hóa khóa công khai
Hệ mã hoá khoá công khai thường được sử dụng chủ yếu trên các mạng công khai như Internet, khi mà việc trao chuyển khoá bí mật tương đối khó khăn
Đặc trưng nổi bật của hệ mã hoá công khai là khoá công khai (public key) bản mã (ciphertext) đều có thể gửi trên một kênh truyền tin không an toàn Khi biết cả khoá công khai và bản mã, thì thám mã cũng không dễ khám phá được bản rõ
Nhưng vì tốc độ mã hoá và giải mã chậm, nên hệ mã hoá khoá công khai chỉ dùng để mã hoá những bản tin ngắn
Hệ mã hoá khoá công khai thường được sử dụng cho cặp người dùng thoả thuận khoá bí mật của hệ mã hoá khoá riêng
Ứng dụng của hệ mã hóa công khai là bảo mật: một văn bản được mã hóa bằng khóa công khai của một người sử dụng thì chỉ có thể giải
Trang 22mã với khóa bí mật của người đó Các thuật toán tạo chữ ký số khóa công khai có thể dùng để nhận thực, tiền điện tử, thỏa thuận khóa,…
Trang 23Chương 2: Tổng quan về khóa và việc quản lý khóa
2.1 Tổng quan về khóa
2.1.1.Các khái niệm về khóa
Trong mật mã học, khóa là một đoạn thông tin điều khiển hoạt động của thuật toán mật mã hóa Nói một cách khác, khóa là thông tin để cá biệt hóa quá trình mã hóa cũng như giải mã Khóa cũng được sử dụng trong các thuật toán khác trong mật mã học như thuật toán tạo chữ ký số hay hàm băm mật mã
Khóa: Là một giá trị dùng để dùng để thực hiện một số thuật toán mã hóa Khóa có thể là một số, một xâu kí tự, Khóa này có thể nhận một hay nhiều giá trị
Khóa( key): Thành phần quan trọng trong hệ mật mã Khóa là đại lượng bí mật, biến thiên trong hệ mật mã
2.1.2 Các cách phân loại 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)
Trang 24Khó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
2.1.3 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
Mật mã hay các giải pháp bảo mật được sử dụng để bảo vệ tính bí mật của thông tin khi chúng được truyền trên các kênh truyền thông công cộng Giả sử nếu một người U muốn gửi cho người V một văn bản p, để bảo mật U lập cho p một bản mật mã c bằng một phương pháp Toán học nào đó, và thay
vì gửi cho V văn bản p, U gửi choV văn bản c V nhận được c thực hiện giải
mã để thu được p Để U biến p thành c và V biến c thành p, U và V phải thống nhất sử dụng chung một hệ mã khóa nào đó:hệ mã khóa đối xứng hoặc
hệ mã khóa công khai
2.1.3.1 Trong hệ mã khóa đối xứng
Trang 25Hoạt động của hệ mã này được mô tả như sau: Nếu U và V là hai người dùng sử dụng hệ mã khóa đối xứng (Đôi khi nó còn được gọi là hệ mã khóa bí mật) để gửi tin cho nhau U dùng thuật toán E và khóa K lập mật mã (Từ đây trở đi ta sẽ gọi tắt là mã hóa) cho văn bản M muốn gửi cho V, rồi gửi cho V bản mã: c = EK(M) Thuật toán mã hóa E sinh ra các output khác nhau phụ thuộc vào giá trị khóa K Ở đầu bên kia V sau khi nhận được bản mã c, sẽ sử dụng thuật toán giải mã D và chính khóa K để thu được bản rõ M (Việc giải bản mã thành bản rõ từ nay sẽ được gọi là giải mã)
Hệ mã loại này có tên là hệ mã khóa đối xứng vì khóa lập mã và khóa giải mã là một, U và V chỉ có thể truyền tin được với nhau nếu cả hai cùng biết khóa K Tính an toàn của hệ mã phụ thuộc vào hai yếu tố: thuật toán phải
đủ mạnh để không thể giải mã được văn bản nếu đơn thuần chỉ dựa vào bản
rõ, và tính an toàn khóa, chứ không phải là an toàn thuật toán, tức là nếu biết bản mã và thuật toán mã hóa nhưng không biết khóa vẫn không thể tìm được bản rõ Nói cách khác, ta không cần giữ bí mật thuật toán mà chỉ cần giữ bí mật chìa khóa Việc giữ bí mật chìa khóa trở thành điểm mấu chốt của hệ mã khóa loại này, nếu vì lý do nào đó mà khóa bị lộ thì tất cả những văn bản hai bên trao đổi với nhau cũng sẽ bị lộ
2.1.3.2 Trong hệ mã khóa công khai
Để sử dụng hệ mã khóa đối xứng yêu cầu hai bên trước khi truyền tin phải có chung một giá trị khóa, giá trị này cần phải giữ bí mật và điều này không thuận tiện trong môi trường truyền thông công cộng như hiện nay Vì thế người ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống có thể truyền tin cho nhau bằng cách công bố công khai thông tin cần cho việc lập mã, khiến cho người gửi và người nhận không cần quy ước trước với nhau, và cũng không có những bí mật chung
Trang 26Bên nhận được bản mã sử dụng khóa bí mật của mình giải mã để thu
được văn bản gốc Khóa K của mỗi người dùng gồm hai phần K = (K',K") trong đó K' là phần công khai, còn giữ bí mật K"
Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm được, còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có
nó thì việc giải mã cũng dễ như việc mã hóa Việc giữ bí mật khóa trong hệ
mã khóa công khai không còn là vấn đề nữa, vì mỗi người có một khóa riêng chỉ có chính anh ta biết mà thôi nên khả năng anh ta làm lộ gần như là không
có Vì vậy đối với những hệ mã loại này tính an toàn chúng nằm trong khả năng không bị lộ của chìa khóa bímật từ những thông tin công khai tất cả mọi người đều có, mà điều này thì lại phụ thuộc vào độ khó của bài toán nào đó ví như: việc tính tích hai số nguyên tố lớn n = p.q: dễ dàng nhân hai số nguyên
tố lớn p, q để thu được tích n của chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích n, xác định các nhân tử nguyên tố p, q của nó
Hay như bài toán nếu có số nguyên tố p, một phần tử nguyên thủy α
theo mod p, ta dễ dàng tính được β = αx mod p ∊ Z*p, với x là giá trị bất kỳ Nhưng nếu ngược lại biết β, α , p khó tìm được số nguyên x ( 0 ≤ x ≤ p − 2 )
sao cho αx = β( mod p) Tuy nhiên, đến nay chưa có chứng minh bằng Toán học nào chỉ ra rằng đây thực sự là các bài toán khó, hoặc không thể giải trong thời gian chấp nhận được
2.1.3.3 Trong sơ đồ xưng danh và xác nhận danh tính
Xưng danh và xác nhận danh tính là thuật ngữ ngày nay đang được nhắc đến rất nhiều, nó đảm bảo rằng bên nhận văn bản đúng là bên ta định nhằm tới, hay chắc chắn rằng các thao tác trên văn bản là do bên được phép thực hiện Cho đến giữa những năm 1970 người ta vẫn còn cho rằng xưng danh và xác nhận danh tính với mã hóa thực chất là cùng một mục tiêu an
Trang 27toàn thông tin Nhưng cùng với sự khám phá ra hàm băm, chữ ký điện tử, người ta nhận ra rằng đó là hai mục tiêu an toàn thông tin hoàn toàn độc lập Xưng danh và xác nhận danh tính rất cần thiết trong các hoạt động thông tin, đặc biệt là khi các hoạt động này thông qua mạng
Mục tiêu an toàn của việc xưng danh là bảo đảm sao cho khi “nghe” một chủ thể U nào đó xưng danh với chủ thể V, bất kỳ ai khác U cũng không thể sau đó mạo nhận mình là U, kể cả chính V Nói cách khác, U muốn chứng minh để bên kia V xác nhận danh tính của mình mà không để lộ bất kỳ thông tin gì về mình
Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nào đó, nhờ đó V có thể xác nhận danh tính của U, V hỏi U, U trả lời để chứng tỏ cho
V biết là U có sở hữu một bí mật riêng nào đó Vấn đề an toàn của sơ đồ xưng danh là phải đảm bảo để sau khi U xưng danh với V, thì bất kỳ người nào khác không thể mạo nhận mình là U kể cả V Nói cách khác, U không để lộ một thông tin gì về bí mật mà U có ngoài thông tin duy nhất là U sở hữu bí mật đó
Sự an toàn của sơ đồ xưng danh cũng nằm trong tính khó giải của các bài toán nào đó, hay dựa trên hàm một chiều nào đó
2.1.3.4 Trong hệ xác nhận và chữ ký điện tử
Như ta đã nói ở trên bài toán bảo mật được đáp ứng bằng các giải pháp mật mã Tuy nhiên giờ đây người nhận còn muốn kiểm thử tính xác thực nguồn gốc của thông tin, cũng như chắc chắn là thông tin đã không bị thay đổi trong quá trình truyền đi,và nhất là cần ràng buộc danh tính của bên đã gửi thông tin đi để sau đó anh ta không thể thoái thác là mình không gửi văn bản đó Những yêu cầu này được đáp ứng bằng cách sử dụng chữ ký điện tử
Trang 28Chữ ký điện tử có cùng mục đích như chữ ký viết tay, tuy nhiên nếu chữ ký viết tay dễ dàng giả mạo được thì chữ ký điện tử lại rất khó giả mạo, cộng thêm nó chứng nhận nội dung của thông tin cũng như là danh tính của người gửi
Sơ đồ chữ ký điện tử cơ bản được mô tả như dưới đây:
1 Người gửi (Chủ nhân của văn bản) tạo chữ ký trên văn bản bằng khóa riêng của mình;
2 Người gửi chuyển văn bản cùng chữ “ký” cho người nhận;
3 Người nhận văn bản sử dụng chìa khóa công khai của người gửi kiểm thử chữ ký trên văn bản nhận được
Chữ ký không thể làm giả được vì chỉ có duy nhất người gửi có khóa
bí mật để ký, và cũng không ai giả mạo được vì không có khóa bí mật Văn bản đã ký không thể thay đổi nội dung được nữa Người đã ký thì không thể thoái thác “chữ ký” của mình
Bài toán xác nhận với chữ ký điện tử, theo nghĩa nào đó, có thể xem là
“đối ngẫu”với bài toán mã hóa bằng hệ mã công khai Và vì thế nên sự an toàn của các sơ đồ ký cũng giống như thuật toán mã khóa công khai phụ thuộc vào độ khó của bài toán nào đó
2.1.4 Vấn đề xác thực khóa
Phân loại xác thực điện tử
Cách 1: phân loại theo đối tượng cần xác thực
Xác thực dữ liệu: Văn bản, hình ảnh, âm thanh
+ Xác thực thông điệp (Message Authentication)
+ Xác thực giao dịch ( Transaction Authentication)
Trang 29+ Xác thực khóa ( Key Authentication)
Xác thực Thực thể: Người dùng, thiết bị đầu cuối,
+ Xác thực thực thể (Entity Authentication)
Cách 2: Phân loại theo công việc cần xác thực
+ Xác thực Thông điệp (Message Authentication)
+ Xác thực Giao dịch (Transaction Authentication)
+ Xác thực Thực thể (Entity Authentication)
+ Xác thực Khóa (Key Authentication)
Cách 3: Phân loại theo đặc điểm xác thực
+ Xác thực bảo đảm định danh nguồn gốc (Identificaton Of Source) + Xác thực bảo đảm toàn vẹn dữ liệu (Data Integrity)
+ Xác thực bảo đảm tính duy nhất (Uniqueness)
+ Xác thực bảo đảm tính phù hợp về thời gian (Timeless)
Xác thực thông điệp (Message Authentication)
Xác thực thông điệp hay xác định tính nguyên bản của dữ liệu (Data Origin Authentication) là một kiểu xác thực đảm bảo một thực thể được chứng thực nguồn gốc thực sự tạo ra dữ liệu ở một thời điểm nào đó
Xác thực thông điệp bao hàm cả tính toàn vẹn dữ liệu, nhưng không đảm bảo tính duy nhất và phù hợp về thời gian của nó
Xác thực giao dịch (Transaction Authentication)
Xác thực giao dịch là xác thực thông điệp công thêm việc đảm bảo tính duy nhất (Uniqueness) và phù hợp về thời gian (Timeliness) của nó
Trang 30Xác thực giao dịch liên quan đến việc sử dụng các tham số thời gian (TVP – Time Variant Parameters)
Transaction Authentication= Message Authentication + TVP
Xác thực giao dịch mạnh hơn xác thực thông điệp
Xác thực khóa( Key Authentication):
+ Xác thực không tường minh khóa (Implicit Key Authentication)
Một bên được đảm bảo rằng bên thứ 2 (Và có thể thêm các bên tin cậy) có thể truy cập được khóa mật
+ Khẳng định (Xác nhận) khóa (Key Comfirmation)
Một bên được đảm bảo (Khẳng định) rằng bên thứ hai chắc chắn đã có sở hữu khóa mật
+ Xác thực tường minh khóa( Explicit Key Authentication):
Bao gồm cả 2 yếu tố trên Nó chứng tỏ được định danh của bên sở hữu khóa đã cho
2.1.5 An toàn khóa trong các giải pháp bảo mật
2.1.5.1 Hệ mã khóa công khai
Việc tính toán lập mã được công bố công khai (Để mọi người trong mạng có thể thực hiện được) Việc giải mã thì chỉ có người có chìa khóa riêng, bí mật mới có thể thực hiện được Quá trình để U gửi thông tin cho V
sử dụng hệ mã với khóa công khai như sau:
(1) U và V thống nhất với nhau về hệ mã công khai sẽ sử dụng;
(2) V gửi khóa công khai của mình cho U (Hoặc U lấy được khóa công khai của V từ cơ sở dữ liệu công khai đặt ở một nơi nào đó);
(3) U sử dụng khóa công khai của V để mã hóa văn bản rồi gửi cho V;
Trang 31(4) V dùng khóa bí mật của mình để giải mã văn bản nhận được từ U
Với những hệ mã khóa loại này phải đảm bảo dù kẻ tấn công có biết thuật toán và khóa công khai K không biết khóa bí mật vẫn khó tìm được cách giải mã
Trong trường hợp dữ liệu công khai được các bên lấy từ một máy chủ nào đó
ở xa, giao thức chỉ an toàn nếu giải quyết được trường hợp sau đây:
· Tấn công giữa dòng
Nếu một kẻ W có khả năng tráo đổi chìa khóa trên cơ sở dữ liệu (CSDL) khóa công khai thì người đó dễ dàng thu được toàn bộ thông tin mà U gửi cho V Muốn làm được việc này, anh ta chỉ việc lấy khóa công khai của mình tráo vào khóa công khai của V; khi U lấy chìa này để mã hóa thông tin gửi cho V,
sẽ bị W thu được và giải mã; sau khi đọc xong thông tin anh ta sẽ mã hóa bằng khóa công khai của V rồi gửi cho V; V vẫn nhận thông tin mà U gửi nhưng không biết là W đã nghe trộm toàn bộ thông tin này Vẫn bằng cách này W cũng nghe được toàn bộ thông tin mà V gửi cho U
Điểm yếu của hệ thống là khi U lấy chìa công khai của V để mã hóa thông tin
mà không biết chìa khóa đó có thực sự là của V hay không? Đặt ra yêu cầu ở đây là phải khắc phục được tình trạng này Thêm nữa, nếu giả thiết rằng không một kẻ tấn công nào có thể truy nhập được vào CSDL trên máy chủ, thì khả năng U nhận được một khóa “giả mạo” từ trung tâm vẫn có thể xảy ra nếu như W thu được các văn bản trên đường chuyển về cho U
2.1.5.2 Hệ mã khóa đối xứng
Quá trình truyền tin của hai bên U và V sử dụng hệ mã khóa đối xứng
có thể được mô tả như sau:
1 U và V thỏa thuận về hệ mã khóa
2 U và V thỏa thuận khóa dùng chung
Trang 323 U sử dụng thuật toán và khóa đã thỏa thuận mã hóa văn bản M muốn gửi cho V
4 U gửi cho V bản mã hóa đó
5 V giải mã văn bản nhận được từ U bằng thuật toán và khóa đã thỏa thuận với U để thu được bản rõ M
W nào đó trên đường truyền muốn có được văn bản M, nếu anh ta nghe đường truyền ở bước (4), anh ta sẽ phải có gắng phân tích bản mã để thu được bản rõ Tuy nhiên giờ đây chúng ta có rất nhiều thuật toán để không cho phép
W thực hiện mong muốn của mình Nhưng W không chịu lùi bước, anh ta cố gắng nghe đường truyền từ bước (2), và nếu như hai người không có một biện pháp bảo vệ nào cho khóa thì những gì mà V có được thì W cũng có
Việc mã hóa thông tin bằng hệ mã đối xứng sử dụng chìa khóa chung cho cả hai công việc lập mã và giải mã, đặt ra yêu cầu là làm thế nào để hai bên có thể có chung một giá trị bí mật, không có bên nào khác có thể biết được Ta vừa nói rằng với những hệ mã đối xứng thì giai đoạn U và V thống nhất với nhau về chìa khóa chung sẽ sử dụng là khâu yếu nhất Nếu chìa khóa này mà
bị lộ không những kẻ gian biết được thông tin hai bên trao đổi với nhau mà còn có thể đóng giả “bên này”để đánh lừa “bên nọ” Giải pháp đơn giản nhất
là sử dụng khóa phiên chỉ có hiệu lực trong khoảng thời gian nhất định Tuy nhiên đó không phải là cách làm hay, và không khắc phục tận gốc vấn đề Giải quyết bài toán này càng khó khăn hơn khi ta biết rằng việc trao đổi khóa một cách tuyệt mật (Có giá trị hơn dữ liệu) trong môi trường công cộng là vô cùng khó
2.2 Quản lý khóa
2.2.1 Tổng quan về quản lý khóa
Trang 33Trong các chương trước, ta đã làm quen với phương pháp lập mã và các bài toán quan trọng khác liên quan đến việc truyền tin bảo mật trên các mạng truyền tin công cộng nói chung Ta cũng đã thấy rằng các hệ mật mã khoá công khai công khai có nhiều ưu việt hơn các hệ mật mã đối xứng trong việc làm nền tảng cho các giải pháp an toàn thông tin, và đặc biệt đối với các
hệ mã khoá đối xứng thì việc thực hiện đòi hỏi những kênh bí mật để chuyển khoá hoặc trao đổi khoá giữa các đối tác, thì về nguyên tắc, đối với các hệ mã hoá với khoá công khai không cần có những kênh bí mật như vậy, vì các khoá công khai có thể được truyền hay trao đổi cho nhau một cách công khai qua các kênh truyền tin công cộng Tuy nhiên, trên thực tế, để bảo đảm cho các hoạt động thông tin được thật sự an toàn, không phải bất cứ thông tin nào về các khoá công khai của một hệ mã, của một thuật toán kiểm tra chữ ký, của một giao thức xác nhận thông báo hay xác nhận danh tính … cũng phát công khai một cách tràn lan trên mạng công cộng, mặc dù là công khai nhưng người ta cũng muốn là những ai cần biết thì mới nên biết mà thôi Do vó, mặc
dù sử dụng các hệ có khoá công khai, người ta cũng muốn có những giao thức thực hiện việc trao đổi khoá giữa các đối tác thực sự có nhu cầu giao lưu thông tin với nhau, kể cả trao đổi khoá công khai Việc trao đổi khoá giữa các chủ thể trong một cộng đồng nào đó có thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầu trao đổi thông tin, hoặc có thể được thiết lập một cách tương đối lâu dài trong thời gian nào đó trong cả cộng đồng với
sự điều phối của một cơ quan được uỷ quyền tin cậy (Trust Authority -TA) Việc trao đổi khoá trong trường hợp thứ nhất ta gọi đơn giản là thoả thuận khoá, còn trong trường hợp thứ hai ta gọi là phân phối khoá; TA là nơi thực hiện việc phân phối, cũng là nơi quản lý khoá Việc thoả thuận khoá nói chung không cần có sự tham gia của một TA nào và chỉ có thể xảy ra khi các
hệ bảo mật mà ta sử dụng là hệ có khoá công khai, còn việc phân phối khoá
Trang 34thì có thể xảy ra đối với các trường hợp sử dụng các hệ khoá đối xứng cũng như các hệ có khoá công khai Việc phân phối khoá với vai trò quản trị khoá của một TA là một việc bình thường, đã tồn tại rất lâu trước khi có các hệ mật
mã khoá công khai
2.2.2 Quản lý khóa bí mật
Với hệ mã hóa khóa đối xứng, nếu biết được khóa mã hóa thì có thể
"dễ" tính được khóa giải mã và ngược lại (Một số hệ mã hóa khóa đối xứng
có khóa mã hóa và giải mã trùng nhau) Chính vì vậy, hệ mã hóa khóa đối xứng còn được gọi là hệ mã hóa "khóa riêng" Hai đối tác muốn liên lạc bí mật với nhau bằng hệ mã hóa khóa đối xứng phải thỏa thuận trước 1 "khóa riêng", tức là 1"khóa bí mật"
Một người giữ 1 bí mật đã khó, nếu 2 người giữ bí mật sẽ càng khó hơn
và dễ bị lộ Chưa kể rằng nếu trên một mạng có n người dung, thì theo phương pháp thông thường, mỗi người dùng phải quản lý (n-1) khóa và tổng
số khóa riêng giữa 2 người dùng nhiều nhất là (n-1) + (n-2) + (n-3) + (n-4) + + 2 + 1 = n(n-1)/2 Nếu n lớn thì giải pháp này không thực tế vì lượng thông tin rất lớn cần phải truyền đi, khó đảm bảo an toàn
Như vậy, điều cần quan tâm là cố gắng giảm được lượng tin cần truyền
đi và cất giữ, trong khi vẫn cho phép mỗi cặp người dùng U và V có chung khóa mật Ku,v Ở đâu xuất hiện nhu cầu "quản lý khóa bí mật" cho người dùng, bao gồm các việc "phân phối khóa mật", "thỏa thuận khóa mật" và "bảo
Trang 35truyền khóa mật, hay chỉ truyền "vật liệu công khai" và cách thức tạo khóa mật đến cặp người dùng muốn có chung khóa mật
- "Thỏa thuận khóa mật" là giao thức để cặp người dùng (Hoặc nhiều hơn) liên kết với nhau cùng thiết lập khóa mật, bằng cách liên lạc trên kênh công khai
Cho đơn giản, từ nay về sau nói "Phân phối khóa hay thỏa thuận khóa"
ta hiểu là phân phối khóa hay thỏa thuận khóa "bí mật"
Mục tiêu của phân phối khóa hay thỏa thuận khóa là thời điểm kết thúc thủ tục, cặp người dùng đều có khóa K nhưng người dùng khác thì không biết được
2.2.3 Quản lý khóa công khai
Hệ mã hóa công khai có ưu điểm hơn hệ mã khóa bí mật ở chỗ: có thể
công khai thuật toán mã hóa và khóa mã hóa (Khóa công khai) cho nhiều người sử dụng, "khóa bí mật" chỉ do người quản lý, cho nên không cần kênh
an toàn để "thống nhất" khóa mật bằng phân phối khóa hay thỏa thuận khóa Tuy nhiên hầu hết các hệ mã hóa công khai đều chậm hơn hệ mã khóa riêng
Vì thế mà hệ mã khóa riêng được sử dụng để mã hóa các bản tin dài, hệ mã hóa khóa công khai được dùng để thống nhất khóa riêng
Hơn nữa, hệ mã hóa khóa công khai còn được dùng để tạo ra sơ đồ ký
số hay các giao thức phục vụ đảm bảo an toàn thông tin
Khác với hệ mã hóa khóa bí mật, với hệ mã hóa khóa công khai hai đối tác truyền tin an toàn không phải thống nhất khóa mật, do đó không có lỗi lo chung để quản lý khóa mật (Tất nhiên từng người phải lo bảo vệ khóa mật của mình) nhưng họ có nỗi lo chung về quản lý khóa công khai
Tại sao phải quản lý tốt khóa công khai Để hiểu rõ việc này ta lấy ví dụ: một người A có khóa bí mật a bị người dùng B xem trộm Nếu đối tác của
Trang 36A vẫn dùng khóa công khai b (Tương ứng với a) để mã hóa các bản tin gửi cho A thì B có thể xem được các bản tin này vì B đã có khóa mật a để giải
ký của A Thật là tai hại cho A Trong trường hợp trên người dùng A phải báo với các đối tác của mình rằng khóa mật a đã bị lộ, không dùng khóa công khai
b để kiểm tra chữ ký của A nữa Người dùng A cũng phải chọn cặp khóa (a,b) mới và công bố khóa công khai mới b
Vấn đề tiếp theo đặt ra là từng người dùng phải lo quản lý "khóa công khai" của riêng họ, hay có cơ quan chung để quản lý "khóa công khai" cả mọi người dùng
Một cơ quan như vậy phải lo cấp chứng chỉ để chứng thực "khóa công khai" của một người dùng nào đó vẫn còn hiệu lực Khi người dùng bị lộ khóa mật, họ phải báo cho cơ quan này biết để xin được cấp chứng chỉ cho "khóa công khai" mới Mọi người dùng xem chứng chỉ số sẽ biết được khóa công khai nào còn hiệu lực, nhờ đó tránh được các tình huống tương tự trên
Hiện nay thế giới người ta theo xu hướng tổ chức các cơ quan như trên
để quản lý các "khóa công khai" của người dùng Tổ chức này được gọi là cơ quan chứng thực khóa công khai (CA-Certificate Authority)
Trang 372.3 Các phương pháp phân phối khóa
Cách thức, phương pháp phân phối khóa là một trong những yếu tố quyết định đối với độ an toàn của mã hóa Quá trình phân phối khóa cần chống lại được tấn công đứng giữa (Man-in-the-middle attack) Vậy phân phối khóa
là cơ chế để một tổ chức chọn khóa mật, sau đó truyền đến cho cặp người dùng, hay chỉ truyền “vật liệu công khai” và “cách thức” tạo khóa mật đến cho họ Hơn thế nữa đảm bảo rằng thám mã khó thể khám phá hay trao đổi khóa mật của họ Phương pháp thiết lập khóa chung này phải nhờ một tổ chức
ủy quyền tin cậy (TA - Trusted Authority) điều phối
Vậy bằng cách nào để trung tâm được ủy quyền tin cậy (TA) có thể
chuyển một cách an toàn khóa mật đến cặp người dùng U và V muốn có chung
khóa mật Hay chỉ chuyển “vật liệu công khai” và “cách thức” tạo khóa
mật cho họ
Mặt khác giảm được lượng thông tin cần truyền đi và cất giữ của mỗi cặp người dùng Hơn thế nữa đảm bảo rằng kẻ thám mã khó thể khám phá hay trao đổi khóa mật của cặp người dùng
2.3.1 Sơ đồ phân phối khóa
Việc dùng mật mã bất đối xứng thì không cần đến sự trao đổi khóa mật, khắc phục được nhược điểm của mã đối xứng, thế nhưng mã khóa bất đối xứng lại có nhược điểm là tốc độ chậm rất nhiều lần so với mã đối xứng Ngoài ra khi sử dụng khóa cũng cần phải chứng thực khóa này là của ai để tránh trường hợp kẻ giả danh Bởi vậy nếu như có một phương pháp trao đổi khóa mật hiệu quả thì sẽ khắc phục được nhược điểm của mật mã đối xứng
Để trao đổi khóa giữa các bên có thể trao đổi khóa trực tiếp qua kênh mật, hoặc dùng giao thức thỏa thuận khóa hoặc sơ đồ phân phối khóa
Trang 38Cần phân biệt giữa sơ đồ phân phối khóa và giao thức thỏa thuận khóa
Sơ đồ phân phối là cấu trúc tổ chức hệ thống điều khiển khóa, còn giao thức là
tổ hợp các thao tác (lệnh) giữa hai hay nhiều bên tham gia, nhằm đảm bảo giữa
họ hình thành khóa mật chung Với giao thức phân phối khóa thì khóa được trao đổi trực tiếp giữa hai hay nhiều bên tham gia Còn dùng sơ đồ thì thông qua trung tâm phân phối khóa
Trong phần lớn người dùng hệ mật mã đối xứng thường thì họ thường trao đổi bằng sử dụng trung tâm phân phối khóa tin cậy Còn đa số người sử dụng hệ mật bất đối xứng họ thực hiện phân phối khóa nhờ đến trung tâm chứng thực khóa
2.3.2 Trung tâm phân phối khóa
Giả sử trong một sơ đồ đơn giản hai bên liên hệ với nhau, mỗi phiên giao dịch có thể sử dụng một khóa Nếu như hệ thống mật mã có N thành viên trong mạng thì cần phải phân bố khóa giữa các thành viên sử dụng ít nhất là N(N-1)/2 khóa Khi mà số lượng N thành viên lớn thì bài toán trở nên nan giải
Để giải quyết vấn đề này người ta đưa ra hàng loạt giải pháp, một trong các giải pháp phức tạp nhất và tốn tiền nhất là dùng kênh mật
Trung tam phan phoi khoa
A 1
A N
K 1
Hình 2.1 Sơ đồ phân phối khóa của Trung tâm
Một trong các phương án được đưa ra là dùng trung tâm phân phối khóa, đây là một phần chung của mạng Trung tâm phân phối cung cấp cho tất
Trang 39cả các thành viên các khóa mật khác nhau Ki (i=1,2,…,N), các thành viên sử dụng khóa này chỉ liên lạc với trung tâm mà thôi Khóa mật chung giữa hai bên i và j được thực hiện như sau (hình 2.1) Bên Ai muốn liên kết với bên Aj, thì Ai chuyển đến trung tâm khóa liên hệ của mình là kij, khóa này được mã hóa bằng ki Trung tâm nhận được bản mã từ Ai sẽ giải mã bằng khóa ki, nhận thấy chỉ thị cần liên kết Ai với Aj, thì trung tâm thực hiện mã hóa kij bằng kj, sau đó chuyển bản mã này đến Aj Aj giải mã bằng khóa kj của mình và nhận được khóa kij Sau bước liên kết mật này thì mọi việc sau đó có thể thực hiện theo kênh công cộng Trong sơ đồ này cho thấy chỉ cần sử dụng N khóa
Có thể thấy rằng việc lựa chọn khóa mật giữa các bên cũng phải tuân thủ các nguyên tắc nêu ở trên, đòi hỏi các bên tham gia cần có những kinh nghiệm và các thiết bị chuyên nghiệp để tạo ra khóa phiên Một trong các giải pháp đưa ra là hai bên Ai và Aj muốn liên kết với nhau thì hai bên yêu cầu trung tâm phân phối khóa phiên Trung tâm tạo ra khóa kij và chuyển đến Ai
và Aj dưới dạng bản mã bằng khóa ki và kj tương ứng
Nếu như số lượng thành viên trong mạng quá lớn thì trung tâm có thể thực hiện theo mô hình thứ cấp, tức là có một trung tâm chính và các trung tâm vệ tinh của nó
Khi tạo ra khóa, trung tâm cũng cần có những thông tin đi kèm, những thông tin đó có thể là:
• Thời gian tạo ra khóa;
• Kiểu khóa và tên gọi;
• Thời hạn hoạt động của khóa;
• Đối tượng hình thành khóa;
• Thông tin về người gởi và người nhận;
• Chứng nhận về người nhận khóa …vv
Trang 40Truy cập đến khóa chỉ có những người có chủ quyền và các tổ chức liên quan đến người sử dụng, sự lưu trữ và sử dụng các thiết bị lưu trữ cũng phải hết sức cẩn thận Chúng ta thấy nếu có một mối đe dọa nào đến trung tâm thì
sẽ ảnh hưởng đến tất cả các thành viên tham gia
Ngoài ra cũng còn một vấn đề lớn là chứng thực khóa mật Cần phải đảm bảo điều này để quá trình chuyển khóa chỉ giao đến những người có liên quan, loại trừ trường hợp kẻ gian lợi dụng Việc chứng thực được thực hiện khi trung tâm phân phối khóa mật qua kênh mật
2.3.3 Phân phối khóa theo phương pháp thông thường
Trung tâm được ủy quyền tin cậy (TA) chuyển từng khóa mật cho cặp người dùng U,V Phương pháp này phải dùng nhiều thông tin truyền đi và cất giữ, đồng thời độ an toàn thấp khi truyền khóa trên mạng công khai Mặt khác trung tâm cũng biết được khóa mật
Giả sử có một mạng không an toàn gồm n người dùng, trung tâm được
ủy quyền (TA) phân phối cho riêng mỗi cặp người dùng
Theo phương pháp này, tổng số khóa riêng giữa 2 người dùng nhiều nhất là:
Như vậy mỗi người dùng phải lưu trữ khóa Trung tâm phải tạo ra
và chuyễn mỗi khóa cho duy nhất một cặp người dùng
Phương pháp này chỉ dùng khi số người dùng n không nhiều, nếu n lớn thì giải pháp này không thực tế, vì lượng thông tin rất lớn cần phải truyền đi, khó bảo đảm an toàn, mặt khác vì mỗi người dùng phải cất giữ nhiều khóa mật, đó là các khóa mật của người dùng khác