Chương 1. TỔNG QUAN VỀ PKI Ngày nay, Internet được xem là cơ sở hạ tầng thông tin rộng lớn nhất. Nhiều tổ chức và cá nhân đang sử dụng Internet để giao dịch trực tuyến cũng như phục vụ các mục đích thương mại. Tuy nhiên Internet dựa trên TCP/IP là giao thức truyền thông hầu như không được đề cập tới vấn đề bảo mật trong quá trình thiết kế.
Do đó, đòi hỏi cần phải có một cơ chế tin cậy để trao đổi thông tin trên Internet một cách an toàn. Cơ sở hạ tầng khoá công khai PKI gắn liền với chứng thực điện tử (Digital Certificate) là một trong những giải pháp hữu hiệu cung cấp kênh truyền thông bảo mật để trao đổi thông tin trên Internet. Khái quát Có thể nói rằng, TCP/IP là ngôn ngữ của Internet còn PKI sẽ đảm bảo an toàn cho việc trao đổi thông tin bằng ngôn ngữ đó. PKI đảm bảo sự tin cậy (trust) được xây dựng trên cơ sở hạ tầng TCP/IP (Internet).
PKI được xây dựng dựa trên nền tảng các kỹ thuật mật mã. Thành phần cốt lõi của hệ thống PKI là các chứng thực điện tử, trên đó chứa hai thành phần thông tin cơ bản là định danh và khoá công khai của đối tượng sử dụng. Các chứng thực điện tử này do đối tượng quản lý chứng thực điện tử (CA - Certification Authority) tạo ra và ký với phương thức chữ ký số. Trong hệ thống PKI toàn diện, đối tượng quản lý đăng ký cấp phát chứng thực (RA – Registration Authority) thường được tách riêng ra khỏi CA.
RA không tạo ra các chứng thực điện tử mà làm nhiệm vụ xác minh đối tượng truyền thông để CA sẽ cấp phát chứng thực điện tử cho đối tượng đó. Như tên gọi của nó, PKI là một dịch vụ nền cho các dịch vụ an toàn an ninh dựa trên các chứng thực điện tử. Trong các hệ thống này, PKI đảm nhận Bảo mật thông tin sử dụng cơ sở hạ tầng khoá công khai (PKI) 10 vai trò thiết lập, quản lý và phát hành chứng thực điện tử cho các đối tượng truyền thông. Kỹ thuật mật mã Khi dữ liệu được truyền qua Internet, chúng có thể bị các tin tặc (hacker) phát hiện và bị lộ.
Cách tốt nhất để truyền dữ liệu là biến đổi chúng sang một dạng khác vô nghĩa theo một trật tự nào đó. Quá trình này gọi là mã hoá dữ liệu (encryption). Khi phía bên nhận thu được dữ liệu đã mã hoá này, họ có thể khôi phục chúng ngược trở lại dạng có nghĩa ban đầu. Quá trình này gọi là giải mã (decryption).
Rất nhiều các thuật toán đã được phát triển để diễn giải cách mã hoá dữ liệu. Hầu hết các kỹ thuật mật mã được sử dụng là “mật mã khoá bảo mật” và “mật mã khoá công khai”. Mật mã khoá bảo mật Trong mật mã khoá bảo mật (Secret Key Cryptography), một khoá duy nhất, được gọi là khoá đối xứng (symmetric key) hay khoá bí mật (secret key) được dùng cho cả hai quá trình mã hoá và giải mã. Điều này giải thích vì sao “mật mã khoá bảo mật” còn được gọi là “mật mã khoá đối xứng”.
Sự an toàn về dữ liệu được đảm bảo do đối tượng thứ ba không hiểu dữ liệu đã được mã hoá. Việc mã hoá và giải mã sử dụng một khoá bí mật thường nhanh và dễ dàng do thuật toán yêu cầu tính toán ít phức tạp hơn so với “mật mã khoá công khai”. “Mật mã khoá bảo mật” đã đóng một vai trò quan trọng để mã hoá và giải mã dữ liệu trong nhiều giao thức bảo mật trên Internet, chẳng hạn SSL. Một số thuật toán thường được sử dụng cho hệ thống mật mã khoá đối xứng gồm: DES, Triple-DES, IDEA, RC2, RC4, RC5, RC6, CAST−128, Rijndael.
DES ít được dùng vì bị nghi ngờ về khả năng an toàn. Bảo mật thông tin sử dụng cơ sở hạ tầng khoá công khai (PKI) 11 Hình 1.1 Mật mã khoá đối xứng 1. Mật mã khoá công khai Trong mật mã khóa công khai (Public Key Cryptography), một cặp khoá bất đối xứng (Asymmetric Key Pair) gồm một khoá công khai (public key) và một khoá bí mật (private key) được sử dụng. Đối tượng sở hữu khoá chỉ cần bảo vệ các khoá bí mật của họ trong khi các khoá công khai có thể được công bố trên mạng.
Thuật toán tính toán gắn liền với khoá công khai và khoá bí mật được thiết kế sao cho một bản tin được mã hoá với một khoá chỉ có thể được giải mã bằng khoá còn lại trong cặp khoá đó, đồng thời một bản tin được mã hoá không thể được giải mã bằng khoá đã được dùng để mã hoá. Đây là một nguyên tắc rất quan trọng trong thiết kế của kỹ thuật mật mã khoá công khai, bởi vì khi đó bản tin được mã hoá bởi khoá công khai của người sẽ nhận chúng. Trong kỹ thuật này, khoá bí mật của người gửi cũng có thể sử dụng để mã hoá bản tin, và sau đó người nhận có thể sử dụng khoá công khai của người gửi để giải mã và đọc thông tin nhận được. Khi đó, người nhận có thể chắc chắn rằng bản tin được thực sự gửi từ ai.
Trường hợp như vậy thường gắn liền nó với khái niệm “chữ ký số”.2 Mật mã khoá công khai Cặp khoá bất đối xứng được tạo ra bởi thuật toán tính toán phức tạp hơn nhiều so với khoá đối xứng. Mặc dù khoá công khai được phân tán rộng rãi trên mạng nhưng các máy tính cũng không thể tính toán để tạo ra được khoá bí mật tương ứng từ khoá công khai này. Điều này giúp tăng cường tính bảo mật, nhưng cũng có nghĩa là kỹ thuật này đòi hỏi thời gian mã hoá lâu hơn, đặc biệt là với dữ liệu số lượng lớn. Do vậy, đôi khi, mật mã khoá công khai không được sử dụng để mã hoá toàn bộ bản tin mà chỉ được dùng để mã Bảo mật thông tin sử dụng cơ sở hạ tầng khoá công khai (PKI) 12 hoá một phần nhỏ dữ liệu được tạo ra từ bản tin.
Vấn đề này sẽ được trình bày ở phần “chữ ký số”. Một số các hệ thống mật mã được dùng cho kỹ thuật khoá công khai gồm: RSA, ECC, DSA. Kết hợp kỹ thuật mã hoá đối xứng và bất đối xứng Mật mã khoá công khai có nhược điểm là quá trình mã hoá chậm do độ dài của khoá lớn (thường là 1024 tới 4096 bit). Mật mã khoá bảo mật thường nhanh hơn đáng kể trong quá trình mã hoá so với mật mã khoá công khai do sử dụng khoá có độ dài nhỏ hơn (40 tới 256 bit).
Mặt khác, kỹ thuật mật mã khoá bảo mật gặp phải vấn đề trao đổi khoá bí mật để sử dụng chung giữa hai đối tượng tham gia truyền thông. Hơn nữa, việc quản lý khoá cũng sẽ trở nên khá bất cập khi một đối tượng tham gia truyền thông với nhiều đối tượng khác. Chẳng hạn, nếu một người cần trao đổi thông tin bí mật với N người khác thì mỗi người sẽ phải giữ và quản lý N-1 khoá khác nhau. Tuy nhiên, nếu kết hợp cả hai kỹ thuật này với nhau có thể tạo ra một phương pháp mã hoá tối ưu hơn.
Theo cách này, chúng ta kết hợp các ưu điểm của cả hai kỹ thuật mật mã để khắc phục những nhược điểm của chúng theo các bước sau: • Mã hoá dữ liệu cần trao đổi bằng khoá đối xứng (khoá bí mật). Sử dụng mã hoá bất đối xứng (mã hoá khoá công khai) để mã hoá khoá đối xứng bằng khoá công khai của người nhận. Sau đó gửi khóa đối xứng đã được mã hoá cho người nhận để bên nhận sẽ giải mã bằng khoá bí mật của mình và thu được khoá đối xứng từ phía người gửi. • Tiếp theo, bên gửi sẽ gửi dữ liệu thực sự ở dạng được mã hoá.
Phía bên nhận sẽ giải mã chúng bằng khoá đối xứng đã nhận được trước đó để thu được thông tin mong muốn. Bảo mật thông tin sử dụng cơ sở hạ tầng khoá công khai (PKI) 13 Hình 1.3 Kết hợp hai kỹ thuật mật mã trong tuyền tin Kỹ thuật kết hợp hai kiểu mật mã đã được sử dụng rộng rãi, chẳng hạn trong giao thức SSH (Secure Shell) để gửi thông tin bảo mật giữa một máy chủ và máy khách hoặc dùng trong giao thức SSL (Secure Sockets Layer) để tạo kênh thông tin bảo mật giữa một trình duyệt Web và máy chủ Web. Các phần tử cơ bản của hệ thống PKI Ở phần trên, khi bàn về mật mã khoá công khai, chúng ta thấy còn một số vấn đề cần giải quyết. Chẳng hạn, khi người gửi tin sử dụng khoá công khai của người nhận để mã hoá và gửi thông tin, mặc dù người nhận có thể sử dụng khoá bí mật của họ để mở và đọc thông tin nhưng người nhận hoàn toàn không hề chắc chắn được người gửi là ai.
Một vấn đề khác là khi người gửi “ký” vào bản tin bằng khoá bí mật của mình, sau đó người nhận giải mã bản tin bằng khoá công khai của người gửi, khi đó người nhận có thể đọc thông tin nhưng người nhận lại không thể chắc chắn được rằng khoá công khai đang sử dụng thực sự là của người gửi vì không ai có thể xác nhận với người nhận rằng khoá công khai này là của đối tượng nào. Trong phần này, chúng ta sẽ Bảo mật thông tin sử dụng cơ sở hạ tầng khoá công khai (PKI) 14 bàn về cách sử dụng kỹ thuật mật mã khoá công khai trong các thiết kế an toàn bảo mật thông tin, chẳng hạn như “chữ ký số”, “chứng thực điện tử” để giải quyết các vấn đề trên. §¨ng t¶i thÎ x¸c nhËn HÖ thèng lu tr÷ §¨ng ký/x¸c thùc ban ®Çu Kh«i phôc cÆp kho¸ CËp nhËt cÆp kho¸ §èi tîng CËp nhËt thÎ x¸c nhËn sö dông Yªu cÇu huû bá Ph¸t hµnh thÎ x¸c nhËn Thu thËp th«ng tin CA1 Ph¸t hµnh th«ng "out-of-band" tin "out-of-band" RA Ph¸t hµnh thÎ x¸c nhËn Ph¸t hµnh danh s¸ch thÎ cÇn huû bá X¸c nhËn ngang hµng CËp nhËt thÎ x¸c nhËn ngang hµng CA2 Hình 1.4 Các phần tử trong hệ thống PKI 1. Khoá Thuật ngữ “khoá” dùng để chỉ thông tin (thường là một số nhị phân có độ dài nhất định) được sử dụng với một thuật toán mật mã cho mục đích mã hoá và giải mã.
Trong mã hoá, “khoá” có tác dụng xáo trộn làm mất đi ngữ nghĩa của thông tin. Trong quá trình giải mã, “khoá” dùng để khôi phục lại dữ liệu ban đầu trước khi mã hoá. Các thuật toán mã hoá thường được công bố rộng rãi và mọi đối tượng có thể nghiên cứu chúng. Do đó, không phải thuật toán mã hoá bảo vệ dữ liệu mà chính là “khóa” sẽ bảo vệ dữ liệu.