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
MỞ ĐẦU
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ệ.
Một điểm đặc biệt của công nghệ bảo mật hiện đại là không dựa vào khả năng giữ
bí mật của phương pháp (công nghệ), vì nó thường không chỉ một người nắm giữ,
nói chung thường là nhóm đông người biết, mà khả năng giữ bí mật tuyệt đối của cả
một nhóm người là không thể, vì thế bí mật chỉ có thể giữ bởi một người mà lợi ích
của anh ta gắn liền với bí mật đó. Chính vì vậy, trong mã hóa hiện đại, người ta
luôn giả thiết rằng phương pháp mã hóa thông tin là cái không thể giữ được bí mật,
chúng sẽ được công khai, còn việc thực hiện thì cho phép thay đổi theo một tham số
do từng người sử dụng tự ấn định (mỗi giá trị của tham số sẽ xác định một cách mã
hóa riêng), việc lập mã và giải mã chỉ có thể được thực hiện khi biết được tham số
đó. Tham số như vậy được gọi là “chìa khóa” và đó là thông tin duy nhất cần phải
giữ bí mật. Tóm lại, một hệ mã hiện đại cần phải dựa trên nguyên tắc: chốt tính bảo
mật vào chìa khóa, chứ không phải vào phương pháp (thuật toán).
Luận văn sẽ nghiên cứu và xác định rõ 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. 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:
Mở đầu
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.
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.
Chương 3: Kỹ thuật quản trị và kiểm tra việc sử dụng khóa.
Chương 4: Một số cách tổ chức các dịch vụ quản trị khóa.
Kết luận
78 trang |
Chia sẻ: banmai | Lượt xem: 2006 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu 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
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 tâm chuyển khóa
Trung tâm chuyển khóa KTC
Trung tâm chuyển khóa KTC (Key Translation Center) T là một phục vụ được ủy
quyền cho phép hai bên U và V truyền thông an toàn thông qua việc sử dụng các giá
trị khóa KUT và KVT đã thống nhất trước với T. Nếu U muốn gửi cho V văn bản M
thì anh ta có thể sử dụng giao thức có sự tham gia của KTC như trong Hình 3.1 dưới
đây. Trong trường hợp văn bản M chính là khóa K cần chuyển cho nhau, thì giao
thức có thể được coi là giao thức chuyển khóa; vì thế KTC được gọi là trung tâm
chuyển khóa hay văn bản.
Trong giao thức E là thuật toán mã khóa đối xứng. Giá trị M là văn bản U muốn gửi
cho V. Trước khi thực hiện giao thức U chia sẻ KUT với T, còn V là KVT.
Với giao thức trên thì chỉ một trong hai U hoặc V là truyền thông trực tiếp với T.
Ngoài ra có thể thay đổi giao thức đi bằng cách U gửi văn bản cho T, sau đó T sẽ
Hình 3.1 Giao thức chuyển văn bản có KTC
1. U mã hóa M (cùng với danh tính của bên nhận V) bằng KUT, rồi gửi
cho T cùng với danh tính của mình (cho phép T kiểm tra KUT)
U→T: )||(, MVEU
UTK
(1)
2. Sau khi giải mã văn bản, T xác định được đây là thông tin U cần gửi
cho V, T sẽ tìm khóa KVT của V, mã hóa văn bản M bằng khóa này rồi
gửi cho V.
T trả lại văn bản đã được mã hóa bằng khóa của V cho U (hoặc có thể
gửi tới một site công cộng) để U gửi cho V. (hoặc có thể trực tiếp gửi cho
V)
T→U: )||( UME
VTK
(2)
U→V: )||( VME
VTK
(3)
Nguyễn Thị Hiền Luận văn thạc sỹ 49
mã hóa và trực tiếp gửi cho V. Nó được gọi là “chuyển văn bản” vì T chỉ làm nhiệm
vụ chuyển M mà U muốn gửi cho V.
Tính an toàn của giao thức:
- Danh tính mà (1) sử dụng khóa công khai của U để mã hóa, được đưa vào trong
(2) nhằm chỉ rõ nguồn gốc dữ liệu tránh tấn công tráo khóa.
- Thứ tự của hai trường danh tính và văn bản trong (1) và (2) ngược nhau nhằm
không cho kẻ tấn công dùng lại (1) để gửi trở lại U.
- Tấn công dùng lại văn bản hoàn toàn bị loại bỏ khi ta sử dụng thêm tem thời
gian hoặc số tuần tự. Giao thức trên không cung cấp xác thực thực thể.
- Nên sử dụng kỹ thuật kiểm tra tính toàn vẹn dữ liệu trên bản mã để T có thể phát
hiện được sự giả mạo danh tính U trong (1), cũng như trong (2) và (3).
- Có thể sử dụng mã hóa CBC [6] để ngăn ngừa kiểu tấn công chọn bản rõ trên
khóa KVT trong (2), và thêm vào phần đầu một số ngẫu nhiên.
Chứng chỉ khóa đối xứng
Nếu KTC không muốn luôn luôn phải duy trì CSDL các bí mật của người dùng (có
khi phải có thêm các bản sao trên nhiều phục vụ khác nhau) và thực hiện các giao
dịch truy xuất tới các giá trị đó khi có yêu cầu chuyển khóa thì sử dụng chứng chỉ là
một giải pháp thay thế.
Giờ đây khóa của mỗi cá thể V, KVT được mã hóa bằng khóa KT chỉ có T biết khi
đưa vào trong chứng chỉ )||( VKE VTKT . Ngoài ra chứng chỉ cũng có thể thêm khoảng
thời gian còn hợp lệ của nó. Khi đó (1) trong Giao thức 3.1 sẽ được thay bằng
U→T: VKU SCertMVESCert UT ),||(, (1)
trong đó ),||( UKESCert UTKU T= )||( VKESCert VTKV V=
Hệ thống sẽ có một CSDL công khai gồm nhiều mục dữ liệu, mỗi mục có tên người
dùng và chứng chỉ tương ứng của người đó. Để xây dựng được (1), U lấy chứng chỉ
Nguyễn Thị Hiền Luận văn thạc sỹ 50
của V và đưa vào văn bản gửi cho T cùng với thông tin về mình. T sử dụng khóa KT
của mình thu được KUT và KVT từ chứng chỉ của U, V. Ngoài ra T còn phải thử lại
rằng người dùng V mà U muốn truyền thông mô tả trong )||( MVE
UTK
có đúng là
định danh trong SCertV hay không.
3.2.2 Kỹ thuật phân phối khóa công khai
Các hệ mã khóa công khai chúng ta đã biết yêu cầu mỗi người phải có một giá trị
khóa công khai. Để phân phối các giá trị đó cho người dùng đảm bảo tính xác thực
tránh được tấn công giữa dòng như đã chỉ ra trong chương 1 ta có thể sử dụng một
trong các kỹ thuật dưới đây:
• Phân phối điểm - điểm trên kênh truyền tin cậy. Khóa công khai của các bên thu
được thông qua việc trao đổi trực tiếp với nhau trên một kênh tin cậy. Phương
pháp này phù hợp với hệ thống không thường xuyên sử dụng hoặc hệ đóng và
nhỏ.
Nhược điểm lớn nhất của phương pháp này là rất bất tiện khi cần một giá trị khóa
để cho người dùng mới tham gia vào hệ thống. Lý do chính là tính không tự động
của hệ thống. Hơn nữa để sử dụng phương pháp này phải có thêm chi phí để duy
trì những kênh truyền tin cậy.
• Truy nhập trực tiếp tới các tệp dùng chung (đăng ký khóa công khai). Sử dụng
một CSDL công khai lưu trữ tên và khóa công khai được xác thực của mỗi người
dùng hệ thống. Truy nhập từ xa qua những kênh truyền công cộng có thể tránh
được những tấn công bị động, còn nếu muốn kháng lại những tấn công chủ động
phải dùng những kênh truyền tin cậy. Phương pháp này thường sử dụng cây xác
thực để xác thực các giá trị công khai đó.
• Sử dụng phục vụ uỷ quyền trực tuyến. Một phục vụ tin cậy cho phép các truy
nhập tương tự như khi truy nhập tới tệp dùng chung, khi các bên có yêu cầu khóa
công khai, nó sẽ được phục vụ gửi cho cộng với chữ ký của phục vụ trên khóa đó.
Mỗi người sử dụng đều có thể kiểm thử được chữ ký của phục vụ.
Nguyễn Thị Hiền Luận văn thạc sỹ 51
Trở ngại chính của phương pháp này là phục vụ luôn luôn phải trực tuyến (on-
line), điều này có thể dẫn đến tình trạng thắt nút cổ chai. Ngoài ra phương pháp
còn yêu cầu đường truyền thông nối giữa phục vụ với các bên, và giữa hai bên với
nhau.
• Sử dụng phục vụ uỷ quyền ngoại tuyến & chứng chỉ. Trong trường hợp này phục
vụ được gọi là CA (uỷ quyền chứng chỉ). Mỗi cá thể U chỉ phải liên lạc với phục
vụ một lần để đăng ký khóa công khai của mình và nhận khóa kiểm thử chữ ký
của CA (để kiểm thử chứng chỉ của người khác). CA sẽ chứng nhận (công chứng)
khóa công khai của U rồi ràng buộc giá trị này với xâu xác định danh tính của U,
đó sẽ là nội dung chứng chỉ của U.
• Sử dụng hệ xác thực ẩn các tham số hệ thống. Đó là các hệ dựa trên danh tính có
sử dụng các khóa công khai xác thực ẩn thông qua việc thiết kế thuật toán, vì vậy
mà mọi sự thay đổi các tham số hệ thống sẽ bị phát hiện.
Dưới đây chúng ta sẽ xem xét chi tiết các khái niệm được nhắc đến trong các kỹ
thuật trên.
Cây xác thực
Cây xác thực là phương pháp tạo ra các giá trị công khai cùng với tính xác thực có
thể kiểm chứng của chúng thông qua việc sử dụng cấu trúc cây kết hợp với hàm
băm và tính xác thực của nút gốc. Những ứng dụng có thể sử dụng chúng gồm:
• xác thực khóa công khai (hoặc các chứng chỉ công khai)
• dịch vụ tem thời gian tin cậy
• xác thực các tham số hợp lệ của người dùng
Để thuận tiện cho việc khảo sát chi tiết, trước tiên ta nhắc lại các khái niệm cơ bản
của cây nhị phân.
Cây nhị phân
Nguyễn Thị Hiền Luận văn thạc sỹ 52
Cây nhị phân là một cấu trúc gồm các đỉnh và các cạnh có hướng (cung). Các đỉnh
của cây gồm có ba loại:
1. đỉnh gốc. Đỉnh có hai cung đi về phía nó, gọi là cung trái và cung phải.
2. đỉnh trong. Mỗi đỉnh trong có ba cung liên quan đến nó, hai cung trái và phải
đi về phía nó và một cung đi ra khỏi nó.
3. lá. Mỗi đỉnh lá có một cung đi ra khỏi nó.
Hai đỉnh gắn với cung nào đó có quan hệ “cha - con”, đỉnh mà cung đó đi ra khỏi nó
gọi là con (tương ứng với cung trái và phải là con trái và phải), ngược lại gọi là cha.
Từ cấu trúc cây nhị phân xác định ở trên dễ dàng thấy rằng luôn luôn tồn tại duy
nhất một đường đi từ một đỉnh trong (hoặc lá) bất kỳ tới gốc.
Hình 3.2: Cây nhị phân (3 đỉnh lá màu đen, 1 đỉnh trong)
Xây dựng và sử dụng cây xác thực
Xét một cây nhị phân T có t lá. Gọi h là hàm băm không va chạm. Ta có thể sử
dụng cây T để xác thực t giá trị công khai Y1, Y2, …, Yt, bằng cách xây dựng cây
xác thực T* như sau.
1. Gán nhãn cho t lá các giá trị Yi khác nhau đó.
2. Trên mỗi cung đi ra từ Yi gán nhãn h(Yi).
3. Nếu cung trái và phải của mỗi đỉnh trong được gán nhãn tương ứng là h1, h2
thì đỉnh trong đó sẽ được gán nhãn là h(h1||h2).
4. Nếu các cung đi đến gốc được gán nhãn là u1, u2, thì gốc sẽ được gán nhãn
là h(u1||u2).
Cung phải Cung phải
Gốc
Nguyễn Thị Hiền Luận văn thạc sỹ 53
Nếu giả thiết rằng giá trị ứng với nhãn của gốc đã được xác thực khi đó t giá trị
công khai Yi được xác thực như sau: với mỗi giá trị Yi, tồn tại đường đi duy nhất
(đường xác thực) từ Yi đến gốc. Mỗi cung trên đường đi sẽ là cung trái hay cung
phải của một đỉnh nào đó hoặc là gốc. Nếu e là cung trực tiếp đi về phía x, ta sẽ ghi
lại nhãn trên cung đi về phía x mà không phải là e . Dãy các nhãn này viết theo
đúng thứ tự đường đi sẽ xác thực giá trị Yi.
Hình 3.3: Cây xác thực.
Chứng chỉ khóa công khai
Chứng chỉ được dùng như một phương tiện để phân phối hay chuyển các khóa công
khai trên kênh truyền thông tin cậy, nó sẽ tạo ra các giá trị công khai của một thực
thể sao cho các bên khác có thể kiểm tra tính xác thực và hợp lệ. Trong thực tế
người ta thường hay sử dụng các chứng chỉ X.509.
Cấu trúc chứng chỉ
Nó gồm có hai phần: phần dữ liệu và phần chữ ký. Phần dữ liệu tối thiểu phải có
khóa công khai và thông tin về danh tính xác định chủ thể dưới dạng bản rõ. Phần
chữ ký là chữ ký của uỷ quyền xác nhận thông tin trong phần dữ liệu.
Tạo chứng chỉ
Trước khi tạo chứng chỉ khóa công khai cho chủ thể U nào đó, uỷ quyền nên xác
định các độ đo thích hợp (mức độ an toàn cần thiết, những hoạt động thương mại),
để kiểm thử danh tính của U và xác thực đúng là giá trị công khai đó là của U.
Chúng ta phân biệt hai trường hợp sau:
h2 = h(Y3)
Y3
h(Y2) h(Y1)
Y2 Y1
h1 = h(h(Y1)||h(Y2))
R = h(h1 || h2)
Nguyễn Thị Hiền Luận văn thạc sỹ 54
− Trường hợp thứ nhất (uỷ quyền tạo khóa). Uỷ quyền sẽ tạo ra cặp khóa công
khai, rồi cấp cho cá thể nào đó, cũng như đưa cả giá trị đó vào chứng chỉ của
cá thể. Các thành viên sẽ thu được giá trị bí mật tương ứng qua kênh truyền
an toàn và tin cậy sau khi chứng tỏ được mình. Tất cả các bên sau đó sử dụng
chứng chỉ này chủ yếu uỷ thác sự tin cậy vào một danh tính đã được kiểm
thử trước đó.
− Trường hợp thứ hai (thực thể tạo khóa). Các thành viên sẽ tự lấy khóa công
khai của mình, rồi chuyển giá trị đó cho bên được uỷ quyền. Sau khi kiểm tra
tính tin cậy của nguồn gốc dữ liệu, uỷ quyền sẽ tạo ra chứng chỉ khóa công
khai như ta đã biết ở trên.
Lưu ý rằng trong trường hợp thứ hai, uỷ quyền sẽ yêu cầu các cá thể chứng tỏ sự
hiểu biết về giá trị bí mật tương ứng, để ngăn ngừa những bên không có quyền.
Sử dụng và kiểm thử chứng chỉ
Toàn bộ quá trình mà bên V nào đó sử dụng chứng chỉ để xác nhận khóa công khai
của bên U có thể mô tả qua các bước như sau:
1. V yêu cầu khóa công khai từ uỷ quyền.
2. V nhận được xâu xác định danh tính U.
3. yêu cầu (từ CSDL chứng chỉ công khai tập trung, hoặc trực tiếp từ U),
chứng chỉ khóa công khai tương ứng với chủ thể U và chấp nhận xâu định
danh trước (thực hiện trên kênh công cộng).
4. (a) Kiểm tra thời gian hiện tại có vi phạm khoảng thời gian hợp lệ
trong chứng chỉ.
(b) Kiểm tra xem khóa công khai của CA còn hợp lệ hay không.
(c) Kiểm thử chữ ký trên chứng chỉ của U, sử dụng khóa công khai của
CA.
(d) Kiểm tra xem chứng chỉ đã bị thu hồi hay chưa.
Nguyễn Thị Hiền Luận văn thạc sỹ 55
5. Nếu tất cả các kiểm tra đều thành công thì V chấp nhận giá trị trong chứng
chỉ đúng là khóa công khai của U.
Hệ dựa trên danh tính
Hệ này tương tự như hệ mã khóa công khai, nó cũng có những phép toán với khóa
công khai và những biến đổi với khóa bí mật, chỉ khác là trong hệ mã công khai thì
người dùng có giá trị khóa công khai tường minh, còn trong hệ dựa trên danh tính
khóa công khai được thay bằng (hoặc có thể xác định được từ) những thông tin
danh tính công khai đã có. Bất kỳ thông tin không thể chối được xác định duy nhất
người sử dụng đều có thể được dùng làm thông tin định danh.
Hệ mã khóa dựa trên danh tính (hay còn gọi là hệ dựa trên ID) là một hệ phi đối
xứng trong đó thông tin xác định giá trị công khai của thực thể (tên duy nhất) đóng
vai trò như khóa công khai, và được uỷ quyền T sử dụng để tính giá trị bí mật cho
thực thể.
Sau khi tính được, T chuyển khóa bí mật cho thực thể qua một kênh an toàn, tin cậy.
Giá trị bí mật của thực thể được tính toán từ những thông tin xác định danh tính,
hoặc có thể từ những thông tin chỉ có T biết. Nhằm chống lại sự giả mạo và mạo
nhận thực thể, nên chỉ có T mới có thể tạo ra những giá trị bí mật hợp lệ từ những
thông tin xác định danh tính.
Trong một vài trường hợp, có thể đưa thêm vào dữ liệu công khai của hệ thống DU
gắn với người dùng U trong thông tin định danh của anh ta IDU; những hệ thống
như thế không còn là “thuần” dựa trên danh tính nữa, mặc dù không cần phải xác
thực DU hay IDU một cách tường minh.
Chú ý (tính xác thực của hệ dựa trên ID): Hệ dựa trên ID khác với hệ mã khóa
công khai ở một điểm nữa là tính xác thực của những dữ liệu công khai đặc tả người
dùng không cần phải được kiểm thử một cách tường minh. Chính sự dư thừa vốn có
của dữ liệu công khai người dùng trong hệ thống, cùng với việc sử dụng dữ liệu hệ
thống công khai tin cậy, đã ngầm bảo vệ để chống lại sự giả mạo; nếu dữ liệu đó
được sử dụng không đúng, việc mã hóa sẽ thất bại, cụ thể hơn: không kiểm thử
Nguyễn Thị Hiền Luận văn thạc sỹ 56
được chữ ký trong sơ đồ ký dựa trên ID, không xác thực được thực thể trong quá
trình xác thực, không thể giải mã được bản mã trong sơ đồ mật mã, quá trình thỏa
thuận khóa sẽ khiến các bên tạo ra các khóa khác nhau sau khi thực hiện giao thức.
Nghiên cứu các hệ dựa trên ID cho phép xây dựng một hệ thống mô phỏng hệ thống
thư điện tử lý tưởng. Trong thực tế người ta đã cài đặt những hệ thống dạng này
trong đó có sử dụng các thẻ điện tử (chipcard).
Khóa công khai xác thực ẩn
Thay vì sử dụng hệ thống khóa công khai ta có thể kết hợp sử dụng cùng với khóa
công khai xác thực ẩn. Trong hệ này, các khóa công khai của người dùng phải được
tái dựng lại chứ không chuyển chúng như trong hệ thống dựa trên chứng chỉ. Người
ta thiết kế các hệ này sao cho:
1. Các giá trị công khai có thể dễ dàng tái dựng được (bởi bên khác) từ những
dữ liệu công khai (chủ yếu thay cho chứng chỉ)
2. Dữ liệu công khai có thể bao gồm:
a. dữ liệu hệ thống gắn với uỷ quyền T;
b. danh tính của thực thể người dùng (tên hay địa chỉ chẳng hạn);
c. dữ liệu bổ trợ thêm của mỗi cá thể.
3. Tính toàn vẹn của khóa công khai không được kiểm thử một cách trực tiếp,
nhưng giá trị công khai “đúng” chỉ có thể thu được từ những dữ liệu đã
được xác thực.
Để đảm bảo tính xác thực của giá trị công khai có thể tái dựng được, khi thiết kế hệ
thống phải cho phép:
1. thay đổi dữ liệu tái dựng khóa công khai hay danh tính người dùng sẽ
không thu được giá trị công khai.
Nguyễn Thị Hiền Luận văn thạc sỹ 57
2. những kẻ tấn công (không biết giá trị bí mật của T) muốn tính được khóa
bí mật từ những giá trị công khai của bất kỳ bên nào là không thể thực
hiện được trong một thời gian chấp nhận được.
Đánh giá và so sánh các kỹ thuật trên
Các phương pháp đã khảo sát ở trên cơ bản khác nhau như sau:
1. Hệ thống dựa trên chứng chỉ lưu giữ khóa công khai ở dạng hiện, với hệ dựa
trên danh tính thì giá trị này không ở dạng tường minh; còn trong hệ xác thực ẩn
giá trị này có thể tái dựng. Khóa công khai trong hệ mã khóa công khai được
thay bằng:
a. bộ ba (DA, IDA, PT) trong hệ dựa trên danh tính, trong đó IDA là danh tính
của A, DA là các thông tin công khai bổ trợ (do T xác lập liên quan đến
IDA và khóa bí mật của A), PT là khóa công khai (hay tham số hệ thống)
của uỷ quyền T.
b. bộ ba (RA, IDA, PT) trong hệ xác thực ẩn. Khóa PA được tái dựng từ
những tham số này, RA đóng vai trò tương tự như DA ở trên.
2. Tính xác thực của khóa công khai có thể (hay phải) được kiểm thử rõ ràng
trong hệ dựa trên chứng chỉ, nhưng không cần trong hệ dựa trên ID hay hệ xác
thực ẩn.
3. Cơ quan uỷ quyền (TA) không cần biết khóa bí mật của người dùng trong hệ
dựa trên chứng chỉ hay hệ xác thực ẩn với khóa tự xác thực, nhưng trong hệ dựa
trên ID thì ngược lại TA cần phải biết giá trị đó.
4. Giống như hệ dựa trên ID, khóa công khai xác thực ẩn (của cả hai lớp) phụ
thuộc vào những thông tin xác định danh tính thực thể, theo nghĩa này thì nó
cũng được gọi là “dựa trên danh tính”. Tuy nhiên hệ dựa trên ID không cho phép
phơi bày toàn bộ khóa công khai.
5. Có hai lớp khóa công khai xác thực ẩn khác với quan hệ giữa dữ liệu công
khai và khóa bí mật như sau:
Nguyễn Thị Hiền Luận văn thạc sỹ 58
a. Lớp 1: khóa bí mật của thành viên là hàm của dữ liệu công khai, và do
bên thứ ba tin cậy tính toán.
b. Lớp 2: dữ liệu công khai là hàm của khóa công khai, và khóa bí mật
tương ứng chỉ do bên sở hữu tính toán.
6. Trong cả ba cách tiếp cận trên, có thể ở một giai đoạn nào đó bên thứ ba (có
mức độ tin cậy nhất định) yêu cầu một đường truyền để chuyển sự tin cậy giữa
những người dùng trước đó chưa từng gặp nhau, cũng như không có gì chung
ngoài các tham số hệ thống (hoặc có thể là những hiểu biết về danh tính của bên
kia).
Chú ý:
- So với hệ dựa trên chứng chỉ, khóa công khai xác thực ẩn có ưu điểm là
không gian yêu cầu ít hơn (chứng chỉ cần lưu chữ ký); tiết kiệm chi phí tính
toán (không phải kiểm thử chữ ký), và chi phí truyền thông (thông tin về
danh tính có thể biết trước). Tuy nhiên nó lại yêu cầu tính toán trong quá
trình tái dựng giá trị công khai; và các dữ liệu khác.
- Việc thu hồi (loại bỏ) các giá trị công khai được giải quyết trong sơ đồ dựa
trên ID và hệ sử dụng khóa công khai xác thực ẩn bằng cách kết hợp các giá
trị đó với khoảng thời gian khóa còn hợp lệ hoặc số seri.
3.3. Kỹ thuật kiểm tra việc sử dụng khóa
3.3.1 Tách biệt khóa và ràng buộc việc dùng khóa
Những thông tin có thể đưa thêm vào kết hợp với khóa sẽ dùng để mã hóa có thể là
những tham số hạn chế những sử dụng trên khóa đó bao gồm:
1) Người sở hữu giá trị khóa đó.
2) Thời gian khóa còn hợp lệ.
3) Định danh khóa.
4) Mục đích sử dụng.
Nguyễn Thị Hiền Luận văn thạc sỹ 59
5) Thuật toán riêng nào đó.
6) Hệ thống hay môi trường dự định sẽ dùng, những sử dụng được phép.
7) Tên cá thể gắn với quá trình tạo, đăng ký, xác nhận khóa.
8) Kiểm tra tính toàn vẹn trên khóa.
Nguyên lý của việc tách biệt khóa là các khóa có chức năng khác nhau phải được
tách bạch về mặt mã hóa, tránh dùng cùng khóa cho nhiều mục đích khác nhau ví
như không nên dùng khóa mã hóa khóa giống như khóa mã hóa dữ liệu, hoặc như
khóa đối xứng và khóa dùng để ký cũng phải phân biệt rõ ràng vì vòng đời của
chúng là không giống nhau. Những sai lầm chúng ta thường mắc phải là: dùng khóa
công khai trong cả sơ đồ ký và phần hỏi – đáp nhằm xác thực thực thể; khóa dùng
cả trong mã hóa và xác thực thực thể (rất dễ bị tấn công chọn bản rõ); sử dụng khóa
đối xứng cả trong mã hóa và xác thực văn bản.
3.3.2 Các kỹ thuật điều khiển việc sử dụng khóa
3.3.2.1. Tạo đuôi khóa và các biến thể khóa
Tạo đuôi khóa là phương pháp tương đối đơn giản để mô tả những sử dụng được
phép trên khóa (khóa dùng để mã hóa dữ liệu hay mã hóa khóa). Nó là một vecto bit
hay một trường có cấu trúc đi cùng khóa trong toàn bộ thời gian sống của khóa.
Vecto này được mã hóa cùng với khóa, và chỉ có thể nhận được nó ở dạng tường
minh sau khi giải mã khóa.
Phương pháp đơn giản nhất để phân tách khóa là các khóa khác nhau đó được xác
định từ một giá trị nào đó nhờ các hàm, các giá trị đó gọi là các biến thể khóa.
- Kỹ thuật đơn giản nhất là kỹ thuật lấy phần bù khóa. Thay vì dùng khóa K
(khóa mã hóa các khóa khác) ta sẽ sử dụng giá trị K⊕N trong đó N tăng lên
sau mỗi lần sử dụng.
- Kỹ thuật thứ hai sử dụng phần bù theo mặt nạ định sẵn. Giả sử trong hệ
thống có ba lớp khóa, khi đó các khóa sẽ được xác định từ hai biến thể
Nguyễn Thị Hiền Luận văn thạc sỹ 60
11 vKK ⊕= và 22 vKK ⊕= của khóa chính K, với v1, v2 là các giá trị mặt nạ
công khai có sẵn.
Lưu ý rằng các phép toán trên phải không khả nghịch (một chiều), nếu không giá trị
ban đầu có thể tính được từ các biến thể của nó.
3.3.2.2. Chứng nhận khóa
Yêu cầu chống lại sự tráo đổi khóa xuất hiện trong hầu hết các giao thức tạo lập
khóa. Một trong những kỹ thuật dùng để ngăn ngừa việc tráo đổi khóa là đặc tả rõ
ràng danh tính các bên có liên quan tới giá trị khóa đó, và chỉ khi có các thông tin
định danh đúng đắn mới có thể xác định được khóa. Khi đó, khóa được gọi là dành
riêng cho các danh tính đó, hay được chứng nhận cho các bên đó.
Hệ thống có thể thực hiện chứng nhận khóa bằng cách đơn giản như sau: Phục vụ
được uỷ quyền (hoặc có thể là bên nào đó) dùng khóa mã hóa khóa K để mã hóa
khóa phiên S cho bên gửi i và bên nhận j dưới dạng: )()||( SE jiK⊕ , trong đó giá trị i và
j là duy nhất xác định thực thể trong hệ thống. Khi đó hai bên để tính được S phải
có chung giá trị K, và các giá trị i, j đúng đắn.
3.3.2.3. Vecto điều khiển
Là giải pháp kết hợp ý tưởng tạo đuôi khóa và chứng nhận trên khóa. Mỗi khóa S sẽ
đi kèm với một vecto C, chỉ rõ mục đích sử dụng khóa. Vecto này sẽ ràng buộc S
thông qua sự thay đổi khóa mã khóa K trước khi mã hóa: )(SE CK⊕ .
Việc giải mã để nhận được khóa yêu cầu phải cung cấp vecto C đúng đắn cũng như
K, còn nếu giá trị CK ⊕ không đúng thì kẻ tấn công sẽ không thu được thông tin gì.
3.4. Quản lý khóa trong hệ thống đa vùng
Các kỹ thuật ta đã xét trong các phần trên chủ yếu hoạt động trong vùng chỉ có một
cơ quan được uỷ thác (CA). Tuy nhiên trong thực tế có những hệ thống gồm nhiều
vùng, mỗi vùng có một CA riêng. Vậy thì làm thế nào để các bên uỷ thác vào CAX
nào đó có thể tin cậy vào các giá trị khóa của các thành viên uỷ thác vào CAy.
Nguyễn Thị Hiền Luận văn thạc sỹ 61
3.4.1 Quan hệ tin cậy giữa hai vùng
Nếu hai bên U và V, trong đó U thuộc vùng DU có cơ quan được uỷ thác TU, còn V
là thành viên của vùng DV, uỷ quyền TV, muốn truyền tin cho nhau, thì có thể thực
hiện một trong hai cách sau:
1. (dùng chung khóa đối xứng) thiết lập khóa chung KUV chỉ có hai bên (có thể
có uỷ quyền) biết. Quá trình để U và V có chung một giá trị khóa có thể phác
thảo các bước như sau:
- U thông báo cho TU muốn có khóa với V
- TU, TV thiết lập khóa bí mật ngắn hạn KUV
- TU chuyển KUV cho U, TV chuyển cho V an toàn và tin cậy
- U dùng KUV để truyền thông trực tiếp với V.
2. (chia sẻ khóa công khai tin cậy) giá trị khóa công khai tin cậy sẽ được sử
dụng như là cầu nối tin cậy giữa các vùng. U có thể nhận được khóa công
khai tin cậy từ V như sau:
- U yêu cầu TU cung cấp khóa công khai của V
- TU nhận được giá trị đó từ TV xác thực
- TU chuyển khóa này cho U
- U sử dụng khóa này để truyền thông trực tiếp với V
Để thực hiện được một trong hai trường hợp trên thì giữa TU và TV phải có quan hệ
tin cậy, nó có thể là trực tiếp “tin” vào nhau, hoặc cả hai cùng “tin” vào một bên
trung gian thứ ba.
Bây giờ chúng ta sẽ nói đến một khái niệm thường xuyên được nhắc đến trong phần
tiếp theo.
Chứng chỉ giao chéo (cross - certificate) là chứng chỉ do một CA tạo ra, chứng
nhận khóa công khai của CA khác.
Nguyễn Thị Hiền Luận văn thạc sỹ 62
3.4.2 Các mô hình tin cậy với nhiều CA
Có rất nhiều mô hình khác nhau để tổ chức quan hệ tin cậy giữa các CA trong hệ
thống gồm nhiều CA, để phân biệt với mô hình truyền thông người ta gọi đó là mô
hình dùng để chứng nhận. Các quan hệ tin cậy được thiết lập như thế nào để các
thành viên của một CA nào đó có thể kiểm thử được chứng chỉ do CA khác cấp.
3.4.2.1. Sự tin cậy trên các vùng riêng biệt
Mô hình này có các CA khác nhau xác định trên các vùng khác nhau, giữa chúng
không có quan hệ tin cậy. Người dùng ở vùng này không thể kiểm thử tính xác thực
của chứng chỉ trong vùng khác.
3.4.2.2. Mô hình tin cậy có thứ bậc chặt chẽ
Mô hình này gồm có một nút gốc, và mọi sự chứng nhận đều xuất phát từ gốc, vì
thế nó còn được gọi là mô hình tin cậy tập trung.
Nhược điểm của mô hình này là:
- mọi sự tin cậy của hệ thống phụ thuộc vào gốc
- luôn luôn yêu cầu một dãy các bước chứng nhận kể cả với hai thực thể trên
cùng một vùng.
- khi cây có độ cao lớn thì dãy các bước chứng nhận càng lớn.
. . .
)1(
rE
)1(
1E
CA1
)2(
sE
)2(
1E
CA2
. . .
Hình 3.4 Các vùng riêng biệt
Nguyễn Thị Hiền Luận văn thạc sỹ 63
- không thật tự nhiên, vì thông thường sự tin cậy bao giờ cũng bắt nguồn từ
những nút cục bộ chứ không phải gốc ở xa.
Hình 3.5 Mô hình tin cậy có thứ bậc chặt chẽ
3.4.2.3. Chứng chỉ ngược thứ bậc và mô hình tổng quát
Để khắc phục nhược điểm sự tin cậy tập trung quá nhiều vào gốc của mô hình
trước, người ta đưa ra một mô hình tổng quát hơn cho phép các CA con ở mức dưới
có thể chứng nhận chứng chỉ của các CA cha. Vì thế trong mô hình này có hai loại
chứng chỉ: loại đúng thứ bậc do CA cha chứng nhận cho các CA con, loại ngược
thứ bậc do các CA con chứng nhận CA cha. Mô hình này tự nhiên hơn mô hình
trước vì CA của mỗi vùng sẽ chứng nhận khóa công khai của thực thể trong vùng
đó. Tuy nhiên mô hình này vẫn còn không thuận tiện khi phải thiết lập quan hệ tin
cậy giữa hai thực thể thuộc hai vùng khác nhau.
)2(
1E
CA5
CA3
CA4CA1 CA2
)1(
rE
)1(
1E …
)2(
sE …
)4(
1E )2(rE …
…
Nguyễn Thị Hiền Luận văn thạc sỹ 64
Hình 3.6 Mô hình tin cậy ngược thứ bậc.
Khi đó mô hình tin cậy không tập trung, không có nút gốc, có dạng đồ thị có hướng,
trong đó quan hệ tin cậy được thể hiện bởi các cung của đồ thị là mô hình tổng quát
và phù hợp với yêu cầu thực tế nhất trong số các mô hình đã xét.
Ngoài ra, đôi khi người ta phải giới hạn phạm vi của dãy chứng nhận có thể chỉ nhỏ
hơn một giá trị nào đó, hoặc các vùng hợp lệ trong khi chứng nhận.
3.5. Vòng đời khóa
Cách quản lý khóa đơn giản nhất là dùng khóa vĩnh cửu nghĩa là giá trị của nó
không thay đổi mỗi khi sử dụng. Tuy nhiên điều này rất nguy hiểm, vì vậy khóa
phải được cập nhật một cách định kỳ để tránh sự phụ thuộc giữa khóa mới và khóa
cũ trong quá khứ. Dãy các trạng thái thể hiện sự thao tác trên chất liệu khóa trong
CA5
CA3
CA4CA1 CA2
CA5
CA3
CA4CA1 CA2
Hình 3.7 Mô hình tin cậy tổng quát
Nguyễn Thị Hiền Luận văn thạc sỹ 65
toàn bộ thời gian sống của nó được gọi là vòng đời quản lý khóa. Các giai đoạn này
thường bao gồm:
1 đăng ký thành viên - thực thể trở thành thành viên của vùng. Giai đoạn này
yêu cầu một thực thể nào đó khi gia nhập vùng phải cung cấp một số PIN,
hay mật khẩu.
2 khởi tạo người dùng - thực thể bắt đầu thực hiện ứng dụng mã hóa, thường là
hoạt động sử dụng hay cài đặt chất liệu khóa ban đầu thu được sau khi đăng
ký.
3 sinh khóa – sinh ra khóa để mã hóa. Thành viên có thể tự lấy khóa của mình
hoặc yêu cầu từ một uỷ quyền nào đó.
4 cài đặt khóa - chất liệu khóa được cài đặt thực sự để sử dụng
5 đăng ký khóa – cùng với cài đặt khóa, chất liệu khóa phải chính thức được
ghi lại cùng với tên để phân biệt các thành viên.
6 sử dụng thông thường - sử dụng khóa để mã hóa theo sơ đồ mã hóa nào đó.
7 sao lưu khóa – sao lưu chất liệu khóa một cách độc lập bằng phương tiện lưu
giữ tin cậy.
8 cập nhật khóa - trước khi khoảng thời gian mã hóa hết liệu lực, chất liệu
khóa phải được thay bằng giá trị mới.
9 lưu trữ lại - chất liệu không còn được dùng nữa có thể được lưu giữ lại phục
vụ cho một vài trường hợp nhất định nào đó.
10 đăng ký lại và huỷ bỏ - mỗi khi không còn yêu cầu khóa hay duy trì nó nữa,
thì cần phải đăng ký lại (loại bỏ tất cả bản ghi chính thức các khóa đang có)
và loại bỏ tất cả cá bản sao của khóa. Nếu là khóa bí mật thì mọi sự theo dấu
cũng phải được xóa bỏ hẳn.
Nguyễn Thị Hiền Luận văn thạc sỹ 66
11 khôi phục khóa - nếu chất liệu khóa bị mất không phải vì để lộ (ví dụ như
thiết bị hư hỏng hay quên mật khẩu), cần phải khôi phục lại từ bản sao lưu
của nó.
12 thu hồi khóa - việc làm cần thiết khi loại bỏ khóa đã dùng hết hạn. Nếu sử
dụng chứng chỉ khóa công khai điều này có nghĩa là thu hồi chứng chỉ.
Các giai đoạn này thường được sử dụng trong hệ mã công khai, còn với hệ đối xứng
thì không cần giai đoạn: đăng ký, sao lưu, huỷ bỏ hay lưu trữ lại.
Nguyễn Thị Hiền Luận văn thạc sỹ 67
Chương 4 - MỘT SỐ CÁCH TỔ CHỨC CÁC DỊCH VỤ QUẢN TRỊ
KHÓA
4.1. Giới thiệu
Ngày nay hầu như tất cả các doanh nghiệp đều có Web site riêng của mình và trong
các công ty thì việc sử dụng Internet ngày càng trở nên hết sức bình thường. Hệ quả
của nó là mọi người ngày càng quan tâm thực sự đến thương mại điện tử (TMĐT)
trên nền tảng Web. TMĐT với sự tham gia của rất nhiều tổ chức, doanh nghiệp
khác nhau với nhiều giao dịch điện tử, không có giấy tờ, chỉ có truyền thông mạng
và máy tính, truyền thông có thể là công khai hoặc bí mật, hoặc cũng có thể là sự
hợp thành của cả hai. Trước đây TMĐT chủ yếu tập trung vào trao đổi dữ liệu điện
tử, và đó là phương thức chính để thực hiện các hoạt động kinh doanh giữa các bên
đã thiết lập quan hệ làm ăn trước đó. Nhưng giờ đây dưới sự phát triển của trình
duyệt và HTML, TMĐT đã được mở rộng như là các hoạt động kinh doanh thông
qua Internet thậm chí có thể giữa các bên mà có thể trước đây chưa hề biết nhau,
còn Web được coi là hình thức thông dụng cho việc chuyển vận thông tin. Việc giao
dịch sử dụng cơ sở hạ tầng của mạng công khai Internet có thể giảm chi phí cho các
doanh nghiệp. Nó sẽ cho phép tất cả các công ty lớn, vừa, nhỏ vươn tới các khách
hàng thực sự ở khắp mọi nơi.
Tuy nhiên chúng ta phải đối mặt với một thực tế là Internet và Web cực kỳ nhạy
cảm với các kiểu tấn công, và vì thế nhu cầu tất yếu ở đây đòi hỏi cần phải phát
triển các dịch vụ đảm bảo an toàn.
Trong chương này luận văn sẽ tập trung vào hai vấn đề ngày càng trở nên quan
trọng hơn và gần như đã trở thành một phần của thương mại Web: giao thức Socket
an toàn SSL và cơ sở hạ tầng khóa công khai PKI.
4.2. Giao thức SSL
SSL (Secure Socket Layer) do Netscape đưa ra dùng để cung cấp tính bí mật và tin
cậy giữa hai ứng dụng đang giao tiếp.
Nguyễn Thị Hiền Luận văn thạc sỹ 68
SSL Handshake Protocol cho phép server và client thực hiện việc xác thực lẫn nhau,
thỏa thuận một thuật toán mã hóa và các khóa bí mật trước khi giao thức ứng dụng
gửi hoặc nhận dữ liệu.
4.2.1 Kiến trúc của SSL
Hình 4.1 Chồng giao thức SSL
Giao thức SSL Record cung cấp các dịch vụ an ninh chủ yếu cho các giao thức khác
ở tầng trên. Đặc biệt là giao thức HTTP (Hypertext Transport Protocol) cung cấp
dịch vụ tương tác Web giữa client/server có thể hoạt động trên nền của SSL. Ba
giao thức mức cao hơn có thể coi là một phần của SSL: giao thức SSL Handshake,
giao thức Change Cipher Spec, và giao thức Alert. Ngoài ra có hai khái niệm quan
trọng của SSL là phiên làm việc SSL và kết nối SSL:
− kết nối SSL: Một kết nối là một chuyển vận (được xác định trong mô hình
OSI) cung cấp loại dịch vụ phù hợp. Với SSL, kết nối là quan hệ ngang
hàng (peer-to-peer). Kết nối xảy ra rất nhanh chóng, và luôn luôn gắn liền
với một phiên làm việc nào đó.
− phiên làm việc SSL: luôn luôn gắn giữa client và server. Chúng được tạo
ra bởi giao thức Handshake, xác định các tham số an toàn mã hóa có thể
dùng chung cho nhiều kết nối. Sử dụng phiên làm việc để giảm chi phí
Giao thức
SSL
Handshake
Giao thức
Change
Cipher Spec
Giao thức
SSL Alert
HTTP
Giao thức SSL Record
TCP
IP
Nguyễn Thị Hiền Luận văn thạc sỹ 69
thương lượng tham số mới mỗi khi kết nối. Một phiên làm việc gồm nhiều
kết nối.
4.2.2 Giao thức SSL Record
Giao thức này cung cấp hai dịch vụ cho kết nối SSL:
− bí mật: Giao thức Handshake xác định khóa bí mật dùng chung để sử dụng
mã hóa đối xứng cho payload SSL.
− toàn vẹn dữ liệu: Giao thức Handshake cũng xác định khóa bí mật dùng
chung sử dụng để hình thành mã xác thực văn bản (MAC).
Hình vẽ dưới đây sẽ chỉ rõ hơn toàn bộ hoạt động của giao thức SSL Record:
Hình 4.2 Hoạt động giao thức SSL Record
Đầu tiên là phân mảnh dữ liệu thành các khối có kích thước nhỏ hơn hoặc bằng 214
byte. Sau đó, có thể thực hiện nén dữ liệu, tuy nhiên trong phiên bản SSLv3, không
áp dụng thuật toán nén nào nên trường này có giá trị null. Bước tiếp theo trong quá
trình xử lý là tính mã xác thực văn bản trên dữ liệu đã nén. Để làm được điều này,
phải có một khóa bí mật dùng chung. Tính toán này được xác định như sau:
Thêm MAC
Phân mảnh
Dữ liệu ứng dụng
Nén
Thêm header của
SSL record
Mã hóa
Nguyễn Thị Hiền Luận văn thạc sỹ 70
hash(MAC_write_secret || pad_2 || hash(MAC_write_secret || pad_1 || seq_num ||
SSLCompress.type || SSLCompress.length || SSLCompressed.fragment))
trong đó
MAC_write_secret : khóa bí mật dùng chung
hash : thuật toán băm (MD5 hạơc SHA-1)
pad_1 : byte 0x36 lặp lại 48 lần với MD5, 40 lần với SHA-1
pad_2 : byte 0x5C lặp lại 48 lần với MD5, 40 lần với SHA-1
seq_num : số tuần tự của văn bản
SSLCompress.type : giao thức tầng trên được dùng xử lý phân mảnh này
SSLCompress.length : độ lớn của phân mảnh đã nén
SSLCompressed.fragment : phân mảnh nén
Sau đó, văn bản nén cùng với MAC được mã hóa bằng thuật toán mã hóa đối xứng,
có thể là IDEA, RC2-40, DES-40, DES, 3DES, …Bước cuối cùng của giao thức là
thêm header gồm các trường sau:
− Content Type (8 bit): giao thức tầng cao hơn được dùng để xử lý các phân
đoạn đã đóng gói.
− Major Version (8 bit): phiên bản chính của SSL đang dùng. Với SSLv3 thì
giá trị này bằng 3.
− Minor Version (8 bit): phiên bản phụ đang dùng. Với SSLv3 thì giá trị này
bằng 0.
− Compressed length (16 bit): độ lớn tính theo byte của phân đoạn bản rõ.
4.2.3 Giao thức Change Cipher Spec
Một trong những giao thức đặc tả SSL dùng trong SSL Record và là giao thức đơn
giản nhất, gói tin của nó chỉ có một byte với giá trị bằng 1, chỉ ra trạng thái treo để
chờ sao chép vào trạng thái hiện thời, đang cập nhật bộ mã hóa sử dụng để kết nối.
Nguyễn Thị Hiền Luận văn thạc sỹ 71
4.2.4 Giao thức Alert
Giao thức dùng để chuyển cảnh báo có liên quan đến SSL cho thực thể ngang hàng.
Gói tin của giao thức gồm hai byte, byte thứ nhất có giá trị cảnh báo hoặc rất có hại
để chuyển tính nghiêm trọng của vấn đề: nếu là rất có hại, SSL ngay lập tức kết thúc
kết nối, kết nối khác của phiên làm việc sẽ được tiếp tục, không thiết lập kết nối
mới. Byte thứ hai là mã đặc tả cảnh báo: gói tin nhận được không thích hợp, MAC
nhận được không đúng, không giải nén được, handshake thất bại (tương ứng với giá
trị thứ nhất là rất có hại).
4.2.5 Giao thức Handshake
Phần phức tạp nhất của SSL. Giao thức cho phép server và client xác thực với nhau
và thỏa thuận thuật toán mã hóa, MAC và khóa để bảo vệ dữ liệu SSL. Giao thức
được gọi trước khi chuyển dữ liệu của ứng dụng. Giao thức bao gồm một dãy các
các gói tin trao đổi giữa client và server như trong hình vẽ dưới đây:
Hình 4.3 Hoạt động giao thức Handshake
Pha 1 Thiết lập năng lực an ninh gồm
phiên bản giao thức, định danh phiên
làm việc, bộ mã hóa, phương pháp nén,
số ngẫu nhiên khởi tạo.
Pha 2 Server gửi chứng chỉ, trao
đổi khóa, và yêu cầu chứng chỉ.
Tín hiệu server kết thúc pha chào
hỏi.
Pha 3 Client gửi chứng chỉ nếu
được yêu cầu, trao đổi khóa, và gửi
kiểm thử chứng chỉ (có thể).
Pha 4 Thay đổi bộ mã hóa và kết
thúc giao thức bắt tay.
Nguyễn Thị Hiền Luận văn thạc sỹ 72
Mỗi gói tin đều gồm có ba trường:
− Type (1 byte): chỉ rõ gói tin này là loại nào trong số 10 gói tin.
− Length(3 byte): độ lớn của gói tin tính theo byte.
− Content (≥ 1 byte): tham số kết hợp với gói tin.
Quá trình thiết lập kết nối logic giữa client và server có thể chia làm bốn pha như
dưới đây:
Pha 1: Thiết lập năng lực an ninh
Thiết lập kết nối logic và thiết lập khả năng an ninh sẽ có. Quá trình trao đổi sẽ
xuất phát từ client thông qua việc gửi client_hello_massage với các tham số dưới
đây:
− Version: Phiên bản SSL mà client có thể hiểu được.
− Random: Cấu trúc ngẫu nhiên do client sinh ra chứa 32 bit
− Session ID: Định danh phiên làm việc có độ dài thay đổi
− CipherSuite: Danh sách tổ hợp các thuật toán mã hóa client được hỗ trợ.
− Compression Method: Danh sách các phương pháp nén client hỗ trợ.
Sau khi nhận được gói tin client_hello, client chờ để nhận gói tin server_hello cũng
có các tham số tương tự như gói tin client_hello.
Thành phần đầu tiên của Cipher Suite là phương thức trao đổi khóa: RSA, Diffie-
Hellman có dùng chứng chỉ, Diffie-Hellman có xác thực khóa, Diffie-Hellman
không có xác thực, Fortezza.
Pha 2: Xác thực server và trao đổi khóa
Server bắt đầu pha này bằng cách gửi chứng chỉ của nó, nếu thực sự cần thiết, gói
tin sẽ chứa một hoặc dãy các chứng chỉ X.509. Gói tin certificate là bắt buộc với bất
kỳ phương pháp thỏa thuận trao đổi khóa nào ngoại trừ Diffie-Hellman không có
xác thực. Sau đó server sẽ gửi gói tin server_key_exchange đi nếu có yêu cầu. Với
Nguyễn Thị Hiền Luận văn thạc sỹ 73
hai tình huống: Server đã gửi chứng chỉ với các tham số Fixed Diffie-Hellman hay
sử dụng trao đổi khóa RSA thì không cần gói tin này. Nếu server không sử dụng
Diffie-Hellman nặc danh thì nó sẽ yêu cầu chứng chỉ từ client bằng cách gửi
certificate_request gồm hai tham số: certificate_type, certificate_authorities. Gói tin
cuối cùng cần phải có trong mọi trường hợp là server_done kết thúc quá trình chào
hỏi từ server. Sau đó server sẽ đợi client trả lời.
Pha 3: Client xác thực và trao đổi khóa
Sau khi nhận được gói tin server_done từ server, client nên kiểm thử rằng server đã
cung cấp chứng chỉ hợp lệ nếu cần và kiểm tra xem các tham số server_hello có
chấp nhận được hay không. Nếu thỏa mãn, client sẽ gửi một vài gói tin cho server.
Nếu server yêu cầu chứng chỉ, client bắt đầu pha này bằng cách gửi certificate. Nếu
không có chứng chỉ client sẽ gửi no_certificate. Sau đó gửi gói tin
client_key_exchange, gói này là bắt buộc. Nội dung thì tùy thuộc phương pháp trao
đổi khóa:
− RSA: client sinh giá trị 48 byte rồi mã hóa bằng khóa công khai của lấy được
từ chứng chỉ của server hoặc từ gói tin server_key_change.
− Diffie-Hellman nặc danh hay thay đổi: gửi tham số Diffie-Hellman công khai
của client.
− Diffie-Hellman cố định: phần này sẽ là null nếu tham số Diffie-Hellman
công khai của client đã gửi trong gói tin certificate.
− Fortezza: tham số Fortezza của client.
Kết thúc pha này client gửi gói tin certificate_verify để cung cấp sự kiểm thử tường
minh chứng chỉ client. Gói tin này chỉ gửi đi nếu chứng chỉ client có khả năng ký.
Pha 4. Kết thúc
Pha này sẽ hoàn thành quá trình khởi động một kết nối an toàn. Client gửi gói tin
change_cipher_spec và sao chép CipherSpec đang chờ vào CipherSpec hiện tại. Sau
đó client ngay lập tức gửi gói tin finished bằng các thuật toán, khóa, bí mật mới.
Nguyễn Thị Hiền Luận văn thạc sỹ 74
Gói tin này sẽ kiểm thử tiến trình trao đổi khóa và xác thực có thành công hay
không. Để đáp lại server gửi gói tin chage_cipher_spec, chuyển CipherSpec chờ vào
CipherSpec hiện thời, rồi gửi finished. Đến thời điểm này quá trình bắt tay đã hoàn
thành từ đây client và server có thể bắt đầu trao đổi dữ liệu tầng ứng dụng.
4.3. PKI
PKI (Public Key Infrastructure) cho phép các bên khi tham gia vào một giao dịch có
thể nhận ra bên kia bằng cách cung cấp thông tin xác thực thông qua chứng chỉ, và
tin tưởng vào truyền thông bằng cách cung cấp bí mật thông qua việc sử dụng mã
hóa, xác thực, toàn vẹn dữ liệu, và không thể thoái thác thông qua chữ ký điện tử.
PKI là sự hợp thành của chứng chỉ điện tử, mã hóa khóa công khai, các CA. Trong
môi trường Internet mở như hiện nay thì sử dụng PKI cấp quyền cho các bên là giải
pháp hợp lý nhất.
Nguyễn Thị Hiền Luận văn thạc sỹ 75
4.3.1 Các dịch vụ PKI
PKI chủ yếu cung cấp dịch vụ xuất bản chứng chỉ và làm sao để có thể truy nhập và
sử dụng chúng. Giống như danh bạ điện thoại vậy, thư mục PKI liệt kê khóa công
khai của tổ chức hay cá nhân. Các PKI giải quyết các bài toán quản lý khóa: tạo
sinh, phân phối, xác thực, và lưu giữ. Một cơ sở hạ tầng khóa công khai PKI gồm:
− Một uỷ quyền chứng chỉ (CA) sinh và kiểm thử các chứng chỉ
− Một uỷ quyền đăng ký (RA) thực hiện kiểm thử ủy quyền chứng chỉ trước
khi xuất bản chứng chỉ cho bên yêu cầu.
ký
băm mã hóa bằng
khóa đối xứng
hỗ trợ
hỗ trợ hỗ trợ
Bản mã
Bản rõ
Văn bản tóm lược
Bản mã + khóa đối xứng được mã hóa Chữ ký điện tử
Chứng chỉ điện tử
Cơ sở hạ tầng khóa công khai PKI
Thành
phần phần
mềm PKI
Chức
năng PKI
Cấu trúc uỷ quyền:
Mô hình uỷ quyền
Chứng chỉ giao chéo
Sản phẩm thương mại
Khả năng thông dịch
Chuẩn
khóa đối xứng được mã
hóa bằng khóa công khai
của người nhận
Hình 4.4 Kỹ thuật kết khối an toàn gói tin Internet
Nguyễn Thị Hiền Luận văn thạc sỹ 76
− Dịch vụ thư mục (DS) trong đó các chứng chỉ (cùng với khóa công khai của
chúng) được lưu giữ và có sẵn dùng (thường là trong thư mục chuẩn ITU
X.500)
− Thực thể cuối (EE) giữ chứng chỉ: người dùng, tổ chức, ứng dụng, .v.v.
− Các client dùng PKI để nhận chứng chỉ, hợp lệ chứng chỉ và chữ ký;
− Một hệ thống quản lý chứng chỉ.
Hệ thống quản lý chứng chỉ thường có các dịch vụ sau:
− Hủy bỏ chứng chỉ: hủy chứng chỉ đã xuất bản, tạo và công khai danh sách
chứng chỉ thu hồi, lưu lại và ..
− Hết hạn chứng chỉ và cập nhật
− Dịch vụ bảo đảm có thể giải mã được các văn bản đã mã hóa trước đó
− Sao lưu và phục hồi chứng chỉ: Bảo đảm không bị mất thông tin
− Dịch vụ hỗ trợ không thể thoái thác: việc sao lưu và phục hồi khóa gây ra
một kẽ hở cho hệ thống. Ai đó có thể lợi dụng điều này cho rằng đã có người
khác truy nhập tới khóa đang ký của họ, vì thế họ không hoàn toàn chịu trách
nhiệm cho những giao dịch kiểu như thế, mặc dù những giao dịch này rõ
ràng là do họ ký. Do đó cần thiết phải duy trì hai cặp khóa cho mỗi người
dùng. Cặp khóa mã hóa có thể sao lưu và phục hồi, ngược lại thì cặp khóa ký
không nên để cho người dùng sở hữu hoàn toàn.
− Dịch vụ tem thời gian
− Hợp lệ chứng chỉ thông qua chính sách.
Nguyễn Thị Hiền Luận văn thạc sỹ 77
NHẬN XÉT VÀ KẾT LUẬN
Ý nghĩa của việc nghiên cứu vấn đề
Vấn đề đặt ra trong luận văn rất cần thiết trong nghiên cứu về mật mã, và sử dụng
chúng trong các ứng dụng, đặc biệt là ngày nay khi mà hầu hết các hoạt động trao
đổi thông tin của con người đều được thực hiện thông qua mạng truyền thông công
cộng như Internet. Trong bối cảnh đó kể cả khi hệ thống sử dụng phương pháp mã
hóa công khai thì việc quản lý và điều phối việc sử dụng khóa vẫn cực kỳ cần thiết.
Còn nếu hệ thống sử dụng thuật toán mã hóa đối xứng thì việc trao đổi, phân phối,
chuyển vận giá trị bí mật một cách an toàn cho hai bên là yêu cầu tất yếu. Trên cơ
sở đó luận văn đã cố gắng tìm hiểu các giao thức tạo lập khóa bí mật và các kỹ thuật
quản trị khóa và đạt được một vài kết quả nhất định.
1. Các kết quả đạt được
- Nghiên cứu tìm hiểu và phân tích các giao thức tạo lập khóa: trao đổi, phân
phối, chuyển vận khóa .
- Tìm hiểu các kỹ thuật quản trị và kiểm tra việc sử dụng khóa.
- Tìm hiểu giao thức socket an toàn – công nghệ ứng dụng sử dụng các giao
thức tạo lập khóa đã nghiên cứu, cơ sở hạ tầng khóa công khai PKI trong môi
trường mạng toàn cầu.
2. Hướng phát triển của luận văn
- Nghiên cứu thay đổi các giao thức trao đổi khi đưa vào thực tế nhằm làm
tăng thêm độ an toàn và tin cậy cho các bên tham gia truyền thông.
- Nghiên cứu các khả năng tránh được các tấn công dùng lại, an toàn tiếp theo,
tránh tấn công từ chối dịch vụ và bảo vệ danh tính của khóa phiên trong các
giao thức trao đổi khóa.
- Nghiên cứu và đề xuất một vài giải pháp cho các hệ thống ứng dụng mã hóa
đòi hỏi sự tin cậy nhiều nhất hiện nay.
Nguyễn Thị Hiền Luận văn thạc sỹ 78
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Phan Đình Diệu (2002), Lý thuyết mật mã & an toàn thông tin, Nhà xuất
bản Đại học Quốc gia Hà nội.
[2] Phạm Huy Điển – Hà Huy Khoái (2003), Mã hóa thông tin - Cơ sở Toán
học & ứng dụng, Nhà xuất bản Đại học Quốc gia Hà nội.
[3] Hà Huy Khoái (1997), Nhập môn số học thuật toán, Nhà xuất bản Khoa
học.
Tiếng Anh
[4] A.J. Menezes, P.C. Van Oorschot, S.A. Vanstone (1997), Handbook of
Applied Cryptography, CRC Press.
[5] Bruce Schneier (1996), Applied Cryptography – Protocols, Algorithms and
Source Code in C, John Wiley & Sons, Inc.
[6] Douglas R.Stinson (1995), Cryptography – Theory and Practice, CRC
Press
[7]. Jan Li (2000), Public key infrastructure technology introduction, Intel
Semiconductor Ltd.
[8] S. Goldwasser, M.Bellare (2001), Lecture notes on Cryptography, MIT
Laboratory of Computer Science.
[9] Steven M. Bellovin & Michael Merritt (1992), Encrypted Key Exchange:
Password Based Protocols Secure Against Dictionary Attacks. The IEEE
Symposium on Research in Security and Privacy Oakland May 1992
[10] William Stalling (1998), Cryptography and network security – Principles
and Practice, 2nd ed., Prentice Hall, Inc.
[11] (1998) An Introduction to Cryptography, Network Associates Inc.
Các file đính kèm theo tài liệu này:
- CD007.pdf