Tải bản đầy đủ (.docx) (42 trang)

Đề tài kỹ thuật mã hóa PKI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.61 MB, 42 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG

BÁO CÁO MÔN HỌC
AN TOÀN THÔNG TIN MẠNG
Đề tài:
KỸ THUẬT MÃ HÓA PKI
(PUBLIC KEY INFRASTRUCTURE)
Sinh viên thực hiện : NGUYỄN HUỲNH THÚY HIỀN
LÊ LONG BẢO
Lớp : 12TLT.CNTT
Cán bộ hướng dẫn : TS NGUYỄN TẤN KHÔI
Kỹ Thuật Mã Hóa PKI (Public Key Infrastructure)
Đà Nẵng 2014
SVTH: Nguyễn Huỳnh Thúy Hiền – Lê Long Bảo - Lớp 12TLT.CNTT Trang 2
Kỹ Thuật Mã Hóa PKI (Public Key Infrastructure)
MỤC LỤC
SVTH: Nguyễn Huỳnh Thúy Hiền – Lê Long Bảo - Lớp 12TLT.CNTT Trang 3
DANH MỤC HÌNH ẢNH
LỜI MỞ ĐẦU
Hiện nay bảo mật thông tin là một trong những vấn đề được đặt lên hàng đầu.
Tất cả các hoạt động trực tuyến đều tiềm ẩn nguy cơ về bảo mật thông tin. Việc áp
dụng mật mã hóa công khai để đảm bảo an toàn thông tin trong các hoạt động giao
dịch là giải pháp an toàn và được sử dụng nhiều nhất. Một trong những giải pháp quan
trọng nhất là mã hóa dữ liệu.
Việc áp dụng các kỹ thuật mã hóa, thuật toán mã hóa có thể giúp bảo vệ dữ liệu
cá nhân một cách an toàn và thuật tiện trong quá trình giao dịch trực tuyến. Với lý do
đó nhóm chúng em chọn đề tài sử dụng kỹ thuật mã hóa PKI, để tìm hiểu về cách thức
mã hóa cũng như thuật toán để mã hóa.
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT


I.1. TỔNG QUAN
I.1.1. Tổng quan về mã hóa:
Mã hóa là một tiến trình biến đổi thông tin, sử dụng các thuật toán nhằm mục
đích không cho người khác có thể năm được nếu thiếu một vốn thông số nhất định
(key) để dịch ngược. Mã hóa thông tin phải đảm bảo yêu cầu bảo mật của thông tin.
Lịch sử của mật mã xuất hiện đồng thời với sự xuất hiện của chữ viết (khoảng
4000 năm trước). Thuật ngữ “Cryptography – mật mã” dịch từ tiếng Hi Lạp có nghĩa
là “chữ bí mật”. Ý nghĩa của thuật ngữ này thể hiện chức năng cơ bản ban đầu của mật
mã là “bảo vệ hay lưu giữ các thông tin thiết yếu trong bí mật”.
Thời cổ xưa tồn tại 3 phương pháp bảo vệ thông tin:
• Sức mạnh thuần túy: bảo vệ tài liệu (thông tin truyền) bởi con người thực
(thông tin được truyền bởi các liên lạc viên đặc biệt).
• Steganography: che dấu sự hiện hữu của thông tin truyền. Để thực hiện có
thể sử dụng các kỹ thuật như mực viết bí ẩn, chỗ giấu bí mật …
• Cryptography: thực hiện việc biến đổi nội dung của bản tin cần truyền
thành một tập hợp hỗn độn các ký tự.
Bên nhận sẽ có khả năng biến đổi bản tin nhận được thành dạng gốc (bản tin khi
chưa biến đổi) nếu họ có khóa mã (key) dùng để biến đổi bản tin. Cryptography (mã
hóa) trong mật mã không che giấu sự kiện truyền tin mà che giấu chỉ nội dung (ý
nghĩa) của bản tin.
Steganography (giấu tin) để truyền các bản tin quan trọng sẽ có độ rủi ro rất cao.
Các phương pháp steganography chỉ đảm bảo việc truyền tin có độ an toàn cao trong
trường hợp chúng được bổ sung thêm thủ tục biến đổi thông tin ban đầu (mật mã).
Trong steganography không bao gồm đầy đủ các khả năng bảo vệ thông tin, mà các
khả năng này chính là các đặc trưng của mật mã và nó đã xác định vai trò quan trọng
của mật mã trong việc phát triển các hạ tầng thông tin.
Đối với các phương pháp mật mã trong thời cổ xưa việc đảm bảo an toàn thông
tin chủ yếu dựa vào việc giữ bí mật của thuật toán và chúng là các thuật toán khá đơn
giản. Các phương pháp mật mã trong thời cổ xưa thường dựa trên các thủ thuật hơn là
dựa trên các nguyên tắc khoa học.

Trước đây mật mã hầu như chỉ được sử dụng để đảm bảo an toàn thông tin trong
chiến tranh và trong các hoạt động ngoại giao. Vào đầu những năm 80 với sự phát
triển mạnh mẽ của CNTT và sự ứng dụng các hệ thống tự động xử lý thông tin trong
tất cả các lĩnh vực hoạt động của xã hội đã dẫn đến sự cần thiết phải sử dụng rộng rãi
hơn các phương pháp mật mã để bảo vệ thông tin. Ngày nay các phương pháp mật mã
được sử dụng rộng rãi không chỉ để bảo vệ thông tin chống lại các truy cập không cho
phép (bảo vệ tính bí mật) mà chúng còn được sử dụng để bảo vệ trong nhiều hình thức
công nghệ thông tin mới như thư điện tử, bầu cử điện tử …
Các phương pháp mật mã cần đảm bảo độ tin cậy đối với bất kỳ hành động nào
của kẻ phá hoại. Tại thời điểm xây dựng các hệ thống mật mã không thể xem xét hết
tất cả các phương án tấn công, các phương án này có thể xuất hiện trong tương lai trên
cơ sở của các ý tưởng đạt được trên sự tiến bộ về lý thuyết và công nghệ. Xác định độ
tin cậy của các phương pháp mật mã là rất quan trọng. Liên quan trực tiếp đến việc
đánh giá sự hao phí lao động của mỗi dạng tấn công cụ thể trên các hệ thống bảo mật
=> thám mã (cryptanalysis).
Mật mã và thám mã tạo lên một lĩnh vực khoa học gọi là mật mã học
(cryptanalysis) là một phần của toán học và có vai trò quan trọng trong công nghê
thông tin hiện đại. Trên thực tế mật mã và thám mã luôn được phát triển song song với
nhau và chúng sẽ thúc đẩy nhau cùng phát triển.
Các chức năng cơ bản của mật mã hiện đại:
• Đảm bảo tính bí mật (confidentiality).
• Đảm bảo tính toàn vẹn dữ liệu (data integrity).
• Đảm bảo tính xác thực (authentication).
• Đảm bảo chống sự từ chối (non - repudiation).
I.1.2. Nguyên lý mã hóa dữ liệu:
Mã hóa hoặc mật mã hóa dữ liệu là cơ chế chuyển đổi dữ liệu sang một định
dạng khác không thể đọc được để có thể ngăn cản những truy cập bấp hợp pháp khi dữ
liệu trao đổi trong môi trường mạng không an toàn.
Mã hóa dữ liệu ngăn chặn được các việc sau:
• Nghe trộm và xem lẽn dữ liệu.

• Chỉnh sửa và đánh cắp lén dữ liệu.
• Giả mạo thông tin.
• Data non – repudiation.
• Sự gián đoạn các dịch vụ mạng.
Khi nhận được gói tin, người nhận sẽ giải mã dữ liệu lại dạng cơ bản ban đầu.
cho dù dữ liệu có bị chặn trong suốt quá trình trao đổi dữ liệu.
Hình . Quá trình mã hóa
Người gởi và người nhận phụ thuộc và quá trình mã hóa dưới hình thức là một hệ
thống mã hóa .
Hệ thống mã hóa (Cryptosystems) có hai loại sau:
 Đối xứng (Symmetric).
 Bất đối xứng (Asymmetric).
Một hệ thống mã hóa được phân loại dựa vào con số của khóa mà nó dùng. Một
khóa có thể là một con số, một từ hoặc hột cụm từ được dùng vào mục đích mã hóa và
giải mã dữ liệu.
a. Hệ thống mã hóa đối xứng (Sysmmetric Cryptosystems)
Sysmmetric Cryptosystems dựa trên một khóa đơn đó là một chuỗi ngắn với
chiều dài không thau đổi. Do đó phương pháp mã hóa này được xem như là single –
key encryption. Khóa thường là khóa riêng (hoặc bảo mật) và được dùng để mã hóa
cũng như giải mã.
Trước khi hai bên trao đổi dữ liệu, khóa phải được chia sẻ dùng chung cho cả 2
bên. Người gửi sẽ mã hóa thông tin bằng khóa riêng và gửi thông tin đến người nhận.
Trong quá trình nhận thông tin người nhận sử dụng cùng một khóa để giải mã thông
điệp.
Hình . Quá trình mã hóa từ người gửi tới người nhận
Phụ thuộc vào chiều dài của khóa mà có rất nhiều thuật giải mã hóa đối xứng
được phát triển cho đến nay. Sau đây là một số thuật giải mã thường được sử dụng:
Tiêu chuẩn mã hóa dữ liệu (Data Encryption Standard (DES): Cũng giống như
DES, 3DES cũng sử dụng khóa 56 bit. Tuy nhiên, nó an toàn hơn nhiều do dùng 3
khóa khác nhau để mã hóa dử liệu. Bộ xử lý thực hiện các bước sau : khóa đầu tiên

dùng để mã hóa dữ liệu. Sau đó, khóa thứ hai sẽ dùng để giải mã dữ liệu vừa được mã
hóa. Cuối cùng, khóa thứ ba sẽ mã hóa lần thứ hai. Toàn bộ quá trình xử lý của 3DES
tạo thành một thuật giải có độ an toàn cao. Nhưng bởi vì đây là một thuật giải phức tạp
nên thời gian thực hiện sẽ lâu hơn, gấp 3 lần so với phương pháp DES.
Ron's Code 4 (RC): Được phát triển bởi Ron Rivest, thuật giải này sử dụng
những từ khóa với chiều dài có thể biến đổi lên đến 256 bytes. Bởi vì chiều dài của
khóa, RC4 được phân loại là một cơ chế mã hóa mạnh. Nó cũng tương đối khá nhanh.
RC4 tạo một dòng bytes ngẩu nhiên và XORs chúng với văn bản nguyên mẩu. Bởi vì
các bytes được phát sinh ngẩu nhiên, RC4 đòi hỏi một khóa mới cho mổi lần gởi thông
tin ra ngoài.
Hệ thống mã hóa đồng bộ đưa ra 2 vấn đề chính. Đầu tiên vì một khóa vừa được
dùng để mã hóa vừa được dùng để giải mã, nếu nó bắt đầu trở thành kẻ xâm nhập thì
tất cả những tin tin sử dụng khóa này sẽ bị hủy vì thế khóa nên được thay đổi thường
xuyên theo định kỳ.
Mọi vấn đề khác là khi hệ thống mã hóa đồng bộ xử lý một lượng thông tin lớn ,
việc quả lý các khóa sẽ trở thành một công việc vô cùng khó khăn. Kết hợp với việc
thiết lặp các cặp khóa, phân phối, và thay đổi theo định kỳ đều đòi hỏi thời gian và tiền
bạc.
Hệ hống mã hóa đối xứng đã giải quyết vấn đề đó bằng việc đưa ra hệ thống mã
hóa đối xứng. Đồng thời, họ cũng tăng tính năng bảo mật trong suốt quá trình chuyển
vận.
b. Hệ Thống Mã Hóa Bất Đối Xứng (Asymmetric Cryptosystems)
Thay vì sử dụng một khóa đơn trong hệ thống mã hóa đối xứng, hệ thống mã hóa
bất đối xứng sử dụng một cặp khóa có quan hệ toán học. Một khóa là riêng tư, chỉ
được chính chủ nhân. Khóa thứ hai thì được phổ biến, công cộng và phân phối tự do.
Khóa công cộng thì được dùng để mã hóa và ngược lại khóa riêng thì được dùng để
giải thông tin.
Trong VPN, 2 hệ thống mã hóa bất đối xứng được dùng phổ biến là thuật toán
Diffie-Hellman (DH) và thuật toán Rivest Shamir Adleman (RSA).
Thuật toán Diffie-Hellman: Trong thuật toán DH, mổi thực thể giao tiếp nhận

được một cặp khóa, một được phân phối tới những thực thể thông tin khác và một
được giữ lại riêng. Thuật toán DH làm việc theo những vấn đề chính sau :
- Người gửi nhận khóa công cộng của người nhận, do khóa này là khóa
công cộng nên đều được mọi người biết.
- Người gửi thực hiện một thao tác gộp khóa riêng và khóa công công
của người nhận, kết quả cho ra một khóa chung bảo mật (shared
secret key).
- Thông điệp sẽ được mã hóa bằng khóa vừa nhận được.
- Sau đó thông điệp mã hóa sẽ được gửi đến người nhận.
- Trong qua trình nhận thông điệp mã hóa, bên nhận sẽ phát sinh một
khóa chung mật khác cũng bằng thao tác tương tự gộp chính khóa
riêng của mình với khóa chung của bên gửi.
Giả định cơ bản của thuật toán này là nếu bất kỳ một ai bắt được thông điệp mã
hóa, người đó cũng không thể nào giải mã được bởi vì anh hoặc cô ta không xữ lý
khóa riêng của bên nhận được (khóa riêng của anh hoặc cô ta).
Hình . Mô hình dữ liệu trao đổi dựa trên thuật toán Diffie-Hellman
Mô hình : dữ liệu được trao đổi dựa trên thuật toán Diffie-Hellman.
Mặc dù thuật toán DH có một độ an toàn cao hơn so với hệ thống mã hóa đối
xứng, nhưng cũng gặp một số vấn đề khó khăn. Phải đảm bảo chắc chắn rằng
khóa công cộng phải được trao đổi trước khi quá trình trao đổi dữ liệu thực sự
được xác định.
Thuật toán Rivest Shamir Adleman (RSA): Thuật toán RSA triển khai quá
trình xác nhận bằng cách sử dụng chữ ký điện tử theo các bước sau :
- Khóa công cộng của người gửi được yêu cầu và được dùng cho người
nhận và sau đó còn được chuyển hướng về phía trước (forward).
- Người gửi sử dụng hàm băm để làm giảm kích thước mẩu tin gốc.
Thông điệp tổng hợp thì được hiểu như là một thông điệp phân loại
(message digest (MD)).
- Người gửi mã hóa thông điệp phân loại bằng khóa riêng của nó được
rút ra từ sự phát sinh chữ ký điện tử độc nhất.

- Thông điệp và chữ ký điện tử được kết hợp và chuyễn hướng đến
người nhận.
- Trong lúc nhận thông điệp mã hóa, người nhận phục hồi lại thông
điệp phân loại bằng cách sử dụng cùng một hàm băm như người gửi.
- Người nhận sau đó giải mã chữ ký điện tử bằng cách sử dụng khóa
công cộng của người gửi.
- Người nhận sau đó sẽ so sánh thông điệp phân loại vừa được phục
hồi (bước 5) và thông điệp phân loại nhận được từ chữ ký điện tử
(bước 6). Nếu cả hai đồng nhất, tức là dữ liệu không bị chặn đứng,
giả mạo hoặc chỉnh sửa trong suốt quá trình trao đổi. Ngược lại, dữ
liệu sẽ không được chấp nhận, bị từ chối.
Hình . Quá trình trao đổi dữ liệu mã hóa
RSA bảo đảm an toàn và bảo mật trong chuyến đi của dữ liệu bởi vì người nhận
kiểm tra sự đúng đắn của dữ liệu qua 3 lần (bước 5, 6 và 7). RSA cũng làm đơn giản
hóa công việc quản lý khóa. Trong cách mã hóa đối xứng, n2 khóa được yêu cầu nếu
trong quá trình trao đổi có n thực thể. Bằng cách so sánh, cách mã hóa bất đối xứng
chỉ đòi hỏi 2*n khóa.
I.2. GIỚI THIỆU VỀ PUBLIC KEY INFRASTRUCTURE - PKI:
1. Giới thiệu:
Trong ngành mật mã học, PKI là sự sắp xếp kết hợp Khóa Công Khai với các yếu
tố định danh (Identities) của đối tượng tạo thành một Chứng Nhận (Certificate) bởi
một thành phần thứ ba gọi là Nhà Cung Cấp Dịch Vụ Chứng Nhận (Certification
Authority – CA) thông qua các thuật toán. Cơ chế này gán cho mỗi đối tượng tham gia
giao dịch một cặp mã khóa gồm Khóa Công Khai (Public Key) và Khóa Cá Nhân
(Private Key), một khóa dùng để mã hóa (thường là Khóa Công Khai) và khóa còn lại
dùng để giải mã (thường là Khóa Cá Nhân).
Một PKI cho phép người sử dụng của một mạng công cộng không bảo mật chẳng
hạng như Internet có thể trao đổi dữ liệu và tiền một cách an toàn thông qua việc sử
dụng nột cặp mã hóa công khai và cá nhân được cấp phát và sử dụng thông qua một
nhà cung cấp chứng thực được tín nhiệm. Nền tảng mã hóa công khai cung cấp một

chứng chỉ số dùng để xác minh một cá nhân hoặc một tổ chức và các dịch vụ danh
mục có thể lưu trữ và khi cần có thể thu hồi các chứng chỉ số. Mặc dù các thành phần
cơ bản của PKI đều được phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra
những chuẩn PKI riêng khác biệt. Một tiêu chuẩn chung về PKI trên Internet cũng
đang trong quá trình xây dựng.
Để chứng nhận tính xác thực về giá trị Khóa Công Khai, CA sẽ sử dụng Chữ Ký
Số (Digital Signature - DS) của mình để chứng thực thông tin kết hợp gồm các Thông
Tin Định Danh và Khóa Công Khai của đối tượng để tạo Chứng Nhận cho đối tượng
đó. Quá trình này được thực hiện bởi phần mềm tại CA và các phần mềm phối hợp mà
đối tượng sử dụng.
Khái niệm PKI ngày nay thường được dùng để chỉ toàn bộ các hệ thống sử dụng
phương pháp mã hóa thông tin trong giao dịch dựa trên cơ sở kết hợp cặp Khóa Công
Khai, Khóa Cá Nhân cùng tất cả các yếu tố liên quan, thành phần liên quan như các
Thuật Toán Mã Hóa được sử dụng. Trong phần lớn các trường hợp để đảm bảo tính
xác thực, giá trị khóa công khai cần được chứng thực bởi một CA và được công bố
trong CA của đối tượng, tuy nhiên một số hệ thống vẫn sử dụng cặp mã hóa này mà
không hề có CA.
2. Cơ sở hạ tầng:
Cơ sở hạ tầng khóa công cộng (PKI) là một tập hợp bao gồm phần cứng, phần
mềm, con người, chính sách và các thủ tục cần thiết để tạo, quản lý, phân phối, sử
dụng, lưu trữ và thu hồi các chứng nhận điện tử.
Chức năng chính của một PKI là cho phép phân phối và sử dụng khóa công cộng
và giấy chứng nhận với tính bảo mật và toàn vẹn. PKI là một nền tảng cho các thành
phần bảo mật mạng và ứng dụng khác dựa vào đó để thiết lập. Hệ thống thường đòi
hỏi các cơ chế bảo mật dựa trên PKI bao gồm email, các loại ứng dụng thẻ chip, trao
đổi giá trị hối đoái trong thương mại điện tử (ví dụ, ghi nợ và thẻ tín dụng), nghiệp vụ
ngân hàng tại nhà, và hệ thống bưu chính điện tử.
Một PKI có nhiều trình sử dụng và ứng dụng. PKI cho phép các dịch vụ bảo mật
cơ bản cho những hệ thống khác nhau như:
- SSL, IPsec và HTTPS dùng để liên lạc và bảo mật giao dịch

- S/MIME và PGP dùng để bảo mật email
- SET dùng cho trao đổi giá trị hối đoái
- Identrus cho B2B
Các thành phần của PKI gồm :
Certificate Authority (CA): là một bên thứ được tin cậy có trách nhiệm tạo, quản
lý, phân phối, lưu trữ và thu hồi các chứng chỉ số. CA sẽ nhận các yêu cầu cấp chứng
chỉ số và chỉ cấp cho những ai đã xác minh được nhận dạng của họ. CA dùng để cấp
phát chứng nhận, xác thực PKI clients, và khi cần thiết thu hồi lại chứng nhận. CA đại
diện cho nguồn tin cậy chính của PKI. Vì CA là yếu tố duy nhất trong PKI mà có thể
phát Public Key Certificates đến các mật mã đầu cuối. CA cũng luôn đáp ứng cho việc
duy trì CRL và phục vụ các loại như: CRL Issuer. PKI không phải chỉ có 1 CA mà PKI
có thể thiết lập nhiều CAs.
CAs giúp thiết lập cho việc nhận dạng của các thực thể giao tiếp với nhau được
đúng đắn. CAs không chỉ chứng cho PKI client mà còn cho nhứng CAs khác bằng
cách cấp phát những chứng nhận số đến chúng. Những CAs đã chứng nhận lần lượt có
thể chứng nhận cho những CAs khác cho đến khi mỗi thực thể có thể uỷ nhiệm cho
những thực thể khác có liên quan trong quá trình giao dịch.
Public Keys Certificates : Mục tiêu của việc trao đổi khoá bất đối xứng là phát
một cách an toàn khoá công khai từ người gửi (mã hoá) đến người nhận (giải mã). PKI
hỗ trợ tạo điều kiện cho việc trao đổi khoá an toàn để đảm bảo xác thực các bên trao
đổi với nhau. Public key Certificate được phát bởi Certificate Authority(CA ). Để CA
phát public key certificate cho đáp ứng mật mã đầu cuối thì đầu cuối đầu tiên phải
đăng ký với CA. Quá trình đăng ký gồm: sự đăng ký, sự kích hoạt, và sự chứng nhận
của mật mã đầu cuối với PKI (CAs và RAs). Quá trình đăng ký như sau:
 Mật mã đầu cuối đăng ký với CA hoặc RA. Trong quá trình đăng ký,
mật mã đầu cuối đưa ra cách nhận biết đến CA. CA sẽ xác thực đầu
cuối, phát public key đến đầu cuối .
 Các đầu cuối bắt đầu khởi tạo phase bằng cách tạo ra một
public/private keypair và public key của keypair được chuyến đến
CA.

 CA viết mật hiệu lên public key certificate cùng với private key để tạo
một public key certificate cho mật mã đầu cuối.
 Lúc này các mật mã đầu cuối có thể yêu cầu public key certificate từ
mật mã đầu cuối khác. Chúng có thể sử dụng CAs public key để giải
mã public key certificate để thu được khoá thích hợp.
Registration Authority (RA): đóng vai trò trung gian giữa CA và người dùng. Khi
người dùng cần chứng chỉ số mới, họ gửi yêu cầu tới RA và RA sẽ xác nhận tất cả các
thông tin nhận dạng cần thiết trước khi chuyển tiếp yêu cầu đó tới CA để CA thực hiện
tạo và ký số lên chứng chỉ rồi gửi về cho RA hoặc gửi trực tiếp cho người dùng.
Registration Authorities: Trong nhiều trường hợp, CA sẽ cung cấp tất cả các dịch
vụ cần thiết của PKI để quản lý các public key bên trong mạng. Tuy nhiên có nhiều
trường hợp CA có thể uỷ nhiệm làm công việc của RA. một số chức năng mà CA có
thể uỷ nhiệm thay thế cho RA như:
 Kiểm tra mật mã đầu cuối thử đã đăng ký public key với CA để có
private key mà được dùng để kết hợp với public key.
 Phát public/private keypairs được dùng để khởi tạo phase của quá
trình đăng ký.
 Xác nhận các thông số của public key.
 Phát gián tiếp các certificate Revocation List (CRL).
Certificate Repository và Archive: có 2 kho chứa quan trọng trong kiến trúc của
PKI. Đầu tiên là kho công khai lưu trữ và phân phối các chứng chỉ và CRL (chứa danh
sách các chứng chỉ không còn hiệu lực). Cái thứ 2 là một cơ sở dữ liệu được CA dùng
để sao lưu các khóa hiện đang sử dụng và lưu trữ các khóa hết hạn, kho này cần được
bảo vệ an toàn như chính CA.
Security Server: là một máy chủ cung cấp các dịch vụ quản lý tập trung tất cả các
tài khoản người dùng, các chính sách bảo mật chứng chỉ số, các mối quan hệ tin cậy
(trusted relationship) giữa các CA trong PKI, lập báo cáo và nhiều dịch vụ khác.
PKI-enabled applications và PKI users: bao gồm các người dùng sử dụng các
dịch vụ của PKI và các phần mềm có hỗ trợ cài đặt và sử dụng các chứng chỉ số như
các trình duyệt web, các ứng dụng email chạy phía máy khách.

PKIs dựa vào một thiết bị mật mã để bảo đảm các khoá công khai được quản lý
an toàn. Các thiết bị này không hoạt động cùng lúc được thực hiện ở các hàm mảng
rộng có liên quan đến việc quản lý phân phối khoá, bao gồm các thành phần sau:
• Chứng thực và đăng ký mật mã đầu cuối.
• Kiểm tra tính toàn vẹn của khoá công khai.
• Chứng thực yêu cầu trong quá trình bảo quản các khoá công khai.
• Bí mật cấp phát khoá công cộng.
• Huỷ bỏ khoá công khai khi nó không có đủ giá trị độ dài.
• Duy trì việc thu hồi các thông tin về khoá công cộng (CRL) và phân bổ
thông tin (thông qua CRL cấp phát hoặc đáp ứng đến Online Certificate
Status Protocol [OCSP] messages).
• Dảm bảo an toàn về độ lớn của khoá.
3. Mục tiêu và các chức năng của PKI:
PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng các thông tin
từ các chứng thực khoá công khai để mật mã hoá và giải mã thông tin trong quá trình
trao đổi.
PKI cho phép các giao dịch điện tử được diễn ra đảm bảo tính bí mật, toàn vẹn và
xác thực lẫn nhau mà không cần trao đổi các thông tin bảo mật từ trước.
Mục tiêu chính của PKI là cung cấp khoá công khai và xác định mối liên hệ giữa
khoá và định dạng người dùng. Nhờ vậy, người dùng có thể sử dụng trong một số ứng
dụng như :
 Mã hoá Email hoặc xác thực người gửi Email
 Mã hoá hoặc chứng thực văn bản
 Xác thực người dùng ứng dụng
 Các giao thức truyền thông an toàn : trao đổi bằng khoá bất đối xứng,
mã hoá bằng khoá đối xứng.
Chức năng của PKI bao gồm các thành phần sau đây:
 Phát sinh một cặp khoá riêng và khoá chung cho PKI client
 Tạo và xác nhận chữ ký điện tử
 Cấp phát chứng nhậo người dùng

 Đánh dấu những khoá đã cấp phát và bảo trì quá trình sử dụng của
mỗi khoá.
 Hủy bỏ những đăng ký sai và hết hạn.
 Xác nhận PKI client.
4. Mục đích của PKI:
PKI được sử dụng với các mục đích :
 Mã hoá: giữ bí mật thông tin và chỉ có người có khoá bí mật mới giải
mã được.
 Tạo chữ ký số : cho phép kiểm tra một văn bản có phải đã được tạo
với một khoá bí mật nào đó hay không.
 Thoả thuận khoá: cho phép thiết lập khoá dùng để trao đổi thông tin
bảo mật giữa 2 bên.
I.3. CÁCH THỨC HOẠT ĐỘNG CỦA PKI
1. Các bước mã hóa:
Bước 1: Dùng giải thuật băm để thay đổi thông điệp cần truyền đi. kết quả ta
được một message digest. Dùng giải thuật MD5 (message digest 5) ta được digest có
chiều dài 128 bit, dùng giải thuật SHA (Secure Hash Algorithm) ta có chiều dài 160
bit.
Bước 2: Sử dụng khóa private key của người gửi để mã hóa message digest thu
được ở bước 1. Thông thường ở bước này dùng giải thuật RSA ( hay DSA, RC2,
3DES, …). Kết quả thu được gọi là digital signature của thông điệp ban đầu
Bước 3: Sử dụng public key của người nhận để mã hoá những thông tin cần gửi
đi.
Bước 4: Gộp digital signature vào message đã được mã hoá và gửi đi. Như vậy
sau khi đã kí nhận digital signature vào message đã được mã hoá, mọi sự thay đổi trên
message sẽ bị phát hiện trong giai đoạn kiểm tra. Ngoài ra, việc kí nhận này đảm bảo
người nhận tin tưởng message này xuất phát từ người gửi chứ không phải là ai khác.
2. Các bước kiểm tra:
Bước 1: Người nhận dùng private key của mình để giải mã thông tin nhận được
gồm 2 phần: phần message và phần chữ ký người gửi.

Bước 2: Dùng public key của người gửi (khoá này được thông báo đến mọi
người ) để giải mã chữ ký số của message, ta được message digest.
Bước 3: Dùng giải thuật MD5 ( hoặc SHA) băm message đính kèm ta có
message digest.
Bước 4: So sánh kết quả thu được ở bước 2 và 3 nếu trùng nhau, ta kết luận
message này không bị thay đổi trong quá trình truyền và message này là của người
gửi.
I.4. THUẬT TOÁN RSA
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào
năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3
chữ cái đầu của tên 3 tác giả.
1. Mô tả sơ lược:
Thuật toán RSA có hai khóa : khóa công khai (hay khóa công cộng) và khóa bí
mật (hay khá cá nhân).
Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa.
Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa
bí mật tương ứng. Mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân
mới có thể giải mã được.
Thứ tự sử dụng khóa công khai và khóa bí mật không ảnh hưởng đến kết quả của
việc mã hóa hay giải mã.
2. Các bước tạo khóa:
Bước 1: Chọn 2 số nguyên tố p và q với p ≠ q sao cho p&q là lớn nhất.
Bước 2: Tính n = p*q
Bước 3: Tính Ω(n) = (p – 1)*(q – 1)
Bước 4: Chọn một số tự nhiên e thỏa mãn 1 < e < Ω(n)
sao cho ƯCLN(e, Ω(n)) = 1.
Bước 5: Chọn d sao cho d*e mod Ω(n) = 1.
Bước 6: Kết quả thu được
• Khóa công khai : (e,n)
• Khóa bí mật : (d,n)

3. Ví dụ
Bước 1: Chọn 2 số nguyên tố p=7, q = 17
Bước 2: Tính n = 7*17 = 119
Bước 3: Tính (n) = (7-1)*(17-1) = 96
Bước 4: Chọn e thỏa 1<e<96, thỏa USCLN(e,96) = 1
e = 5,7,11,13,17,19,23,25…=>Chọn e = 5
Bước 5: Tìm d: e*d mod 96 = 1
5*d mod 96 = 1
5*d = k*96 + 1  k = 4,14,24… Chọn k = 4
5*d = 385  d = 77
Bước 6: Khóa công khai:
K
c
= (5,119)
K
r
= (77,119)
Sử dụng khóa công khai và khóa riêng vừa tìm được ta áp dụng như sau:
Chọn văn bản gốc M = 45
Quá trình mã hóa C= Me mod n = 455 mod 119 = 61
Văn bản mã hóa (61) được truyền đi
Quá trình giải mã M=Cd mod n = 6177 mod 119 = 45
CHƯƠNG 2. DEMO ỨNG DỤNG KỸ THUẬT MÃ HÓA
PKI TRONG GỬI EMAIL CÓ CHỮ KÝ SỐ
VÀ MÃ HÓA NỘI DUNG
II.1. YÊU CẦU
Yêu cầu cần có:
- Windows Server 2003 – CA Server
- Máy Windows XP - Client
- Mail Server

Các bước chuẩn bị cài đặt:
- Cài đặt dịch vụ IIS
- Cài đặt ASP.NET
- Cài đặt dịch vụ Certificate Services
- Tạo 2 email trên mail server.
Cấu hình ip:
- Windows Server 2003 – CA Server:
o 192.168.1.10
o Name: LONGBAOTHUYHIEN-CA
- Mail Server: 192.168.1.2
o Email 1:
o Email 2:
II.2. CÁC BƯỚC THỰC HIỆN
II.2.1. Cài đặt các dịch vụ
Bước 1: Cài đặt dịch vụ ASP.NET và IIS
Vào Start Control PanelAdd/Remove ProgramAdd Windows
Components, và check vào Application Server, tiếp đến bấm nút Detail và tick vào 2
dịch vụ IIS và ASP.NET
Hình . Cài đặt Application Server
Hình . Cài đặt ASP và IIS trong Application Server
Hình . Quá trình cài đặt ASP và IIS đang diễn ra
Hình . Quá trình cài đặt kết thúc
Bước 2: Cài đặt dịch vụ Certificate Services
Tương tự như cài đặt 2 dịch vụ IIS và ASP.NET, ta cũng vào Start Control
PanelAdd/Remove ProgramAdd Windows Components, và check vào Certificates
Services.
Hình . Cài đặt dịch vụ Certificates Services
Hình . Thông báo trong quá trình cài đặt dịch vụ Certificates Services
Trong quá trình cài đặt dịch vụ Certificates Services sẽ xuất hiện thông báo
nhắc bạn rằng, sau khi cài đặt dịch vụ Certificates Services, hệ thống sẽ không thể thay

đổi tên máy cũng như AD, mọi việc thay đổi sẽ ảnh hưởng đến việc cấp CA chứng
thực không hợp lệ. Nhấn Yes để tiếp tục.
Hình . Chọn Stand-alone root CA
Hình . Đặt tên cho CA Server
Hình . Quá trình generate key đang diễn ra
Ở quá trình này, dịch vụ Certificate Services sẽ tiến hành generate để tạo ra cặp
khóa public key và private key.
Hình . Chọn nơi lưu giữ Certificates database

×