Tải bản đầy đủ (.pdf) (84 trang)

Nghiên cứu hệ thống chứng thực số và triển khai ứng dụng

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 (3.57 MB, 84 trang )

Số hóa bởi Trung tâm Học liệu


ĐẠI HỌC THÁI NGUYÊN




ĐỖ VĂN CẢNH




NGHIÊN CỨU HỆ THỐNG CHỨNG THỰC SỐ
VÀ TRIỂN KHAI ỨNG DỤNG








Thái Nguyên - 2014
Số hóa bởi Trung tâm Học liệu

ĐẠI HỌC THÁI NGUYÊN



ĐỖ VĂN CẢNH





NGHIÊN CỨUHỆ THỐNG CHỨNG THỰC SỐ
VÀ TRIỂN KHAI ỨNG DỤNG


Mã số: 60 48 01




Ngƣời hƣớng dẫn khoa học: TS.Hồ Văn Hƣơng



Thái Nguyên- 2014

Số hóa bởi Trung tâm Học liệu

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, đây là công trình nghiên cứu của tôi trong đó có
sự giúp đỡ tận tình của thầy hướng dẫn Tiến Sĩ Hồ Văn Hương,và sự hỗ trợ của
các đồng nghiệp và một số bạn . Các nội dung nghiên cứu và kết quả
trong đề tài này là hoàn toàn trung thực.
Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả và
một số website đã được liệt kê tại phần Tài liệu tham khảo ở cuối luận văn.

Thái Nguyên, ngày tháng năm 2014

Tác giả

Đỗ Văn Cảnh









Số hóa bởi Trung tâm Học liệu

LỜI CẢM ƠN
Để hoàn thành chương trình cao học và viết luận văn này,chúng tôi đã
nhận được sự hướng dẫn, giúp đỡ và góp ý nhiệt tình của quý thầy cô trường Đại
học Công nghệ thông tin và truyền thông Thái Nguyên.
Trước hết, chúng tôi xin chân thành cảm ơn đến quý thầy cô giáo trường
Đại học Công nghệ thông tin và truyền thông Thái Nguyên, đặc biệt là những
thầy cô đã tận tình dạy bảo cho chúng tôi trong suốt thời gian học tập tại trường.
Tôi xin gửi lời biết ơn sâu sắc đến Tiến sĩ Hồ Văn Hương đã dành rất
nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp tôi hoàn thành luận
văn tốt nghiệp.
Nhân đây, tôi xin chân thành cảm ơn Ban Giám hiệu trường Đại học công
nghệ thông tin và truyền thông Thái Nguyên đã tạo rất nhiều điều kiện để chúng
tôi học tập và hoàn thành tốt khóa học.
Mặc dù tôi đã có nhiều cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt
tình và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót, tôi
rất mong nhận được những đóng góp quí báu của quý thầy cô và các bạn.

Lời cảm ơn sau cùng chúng tôi xin dành cho gia đình, đồng nghiệp và
những người bạn đã hết lòng quan tâm và tạo điều kiện tốt nhất để tôi hoàn thành
luận văn tốt nghiệp này!
Tôi xin chân thành cảm ơn!
Thái Nguyên,ngày tháng 1 năm 2014
Ngƣời thực hiện

Đỗ Văn Cảnh

Số hóa bởi Trung tâm Học liệu

i
MỤC LỤC
MỤC LỤC i
DANH MỤC HÌNH VẼ iii
DANH MỤC CÁC CHỮ VIẾT TẮT iv
LỜI NÓI ĐẦU 1
Chương 1:TÌM HIỂU VỀ LÝ THUYẾT MẬT MÃ 3
1.1. Mật mã khoá đối xứng 4
1.1.1. Khái niệm 4
1.1.2. Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng 4
1.1.3. Ưu nhược điểm của mật mã khoá đối xứng 4
1.2. Mật mã khoá công khai 5
1.2.1. Khái niệm 5
1.2.2. Bảo vệ thông tin với mật mã khoá công khai 5
1.2.3. Ưu nhược điểm của mật mã khoá công khai 7
1.2.4. Thuật toán RSA 8
1.3. Sử dụng kết hợp mật mã khoá đối xứng và khoá công khai 9
1.4. Chữ ký số 10
1.5. Hàm băm 12

Chương 2:HẠ TẦNG KHÓA CÔNG KHAI 14
2.1. Các khái niệm cơ bản 14
2.1.1. Khái niệm PKI 14
2.1.2. Các khái niệm liên quan 15
2.2. Các thành phần của PKI 20
2.2.1. Tổ chức chứng thực 20
2.2.2. Trung tâm đăng ký 21
2.2.3. Người dùng cuối 22
2.2.4. Hệ thống lưu trữ 22
2.3. Cách thức hoạt động và chức năng của PKI 22
2.3.1. Quá trình khởi tạo cặp khoá – Key Pair Generation 24
2.3.2. Quá trình tạo chữ ký số - Digital Signature Generation 25
2.3.3. Quá trình mã hoá thông điệp và gắn chữ ký số - Message Encrytion and
Digital Signature Application 25

Số hóa bởi Trung tâm Học liệu

ii
2.3.4. Quá trình nhận thông điệp và gửi sự kiểm chứng xác nhận 26
2.3.5. Quá trình giải mã thông điệp 26
2.3.6. Quá trình kiểm tra nội dung thông điệp 26
2.4. Các dịch vụ của PKI 26
2.4.1. Các dịch vụ cốt lõi của PKI 26
2.4.2. Các dịch vụ PKI hỗ trợ 30
2.5. Các mô hình kiến trúc của PKI 33
2.5.1. Mô hình kiến trúc đơn 33
2.5.2. Mô hình danh sách tin cậy 34
2.5.3. Mô hình phân cấp 35
2.5.4. Mô hình mạng lưới 37
2.5.5. Kiến trúc CA bắc cầu _ Bridge CA Architecture 40

2.6.Ứng dụng của PKI trong ký số và bảo mật dữ liệu 41
2.6.1. Mã hóa 41
2.6.2.Chống giả mạo 41
2.6.3. Xác thực 41
2.6.4.Chống chối bỏ nguồn gốc 42
2.6.5. Chữ ký số 42
2.6.6. Bảo mật website 42
2.6.7. Code Signing 42
2.6.8. Chứng thực số 43
2.7.Thực trạng PKI ở Việt Nam 44
2.7.1. Các văn bản của Đảng và Nhà nước quy định về chứng thực chữ ký số . 44
2.7.2. Một số nhà cung cấp dịch vụ chứng thực chữ ký số công cộng đầu tiên tại
Việt Nam 45
Chương 3:ỨNG DỤNG MÔ HÌNH PKI TRONG HỆ THỐNG MAIL AN TOÀN 47
VÀ WEB AN TOÀN 47
3.1. Ứng dụng mô hình PKI trong hệ thống mail an toàn. 47
3.1.1. Xây dựng mô hình và mô tả hoạt động của mô hình: 47
3.1.2. Hướng dẫn thực hiện 48
3.2 Ứng dụng mô hình PKI trong hệ thống Web an toàn. 65
3.2.1. Xây dựng mô hình và mô tả hoạt động : 65

Số hóa bởi Trung tâm Học liệu

iii
3.2.2. Hướng dẫn thực hiện: 65
TÀI LIỆU THAM KHẢO 74
DANH MỤC HÌNH VẼ
Hình 1.1. Mã hóa khóa bí mật 4
Hình 1.2. Mã hóa khóa công khai 6
Hình 1.3. Xác thực thông tin 6

Hình 1.4. Ký và mã hoá với khóa công khai 7
Hình 1.5. Kết hợp mật mã khóa đối xứng và công khai - Quá trình mã hoá 9
Hình 1.6. Kết hợp mật mã khóa đối xứng và công khai - Quá trình giải mã 10
Hình 1.7. Quy trình tạo chữ ký số và xác minh chữ ký số 12
Hình 2.1. Chứng thư số 15
Hình 2.2. Các thành phần PKI 20
Hình 2.3. Mô hình hoạt động của PKI 23
Hình 2.4. Mô hình khoá công khai dùng đảm bảo tính bí mật 24
Hình 2.5. Mô hình dùng khoá công khai để xác thực 25
Hình 2.6. Mô hình khoá công khai bí mật và xác thực 26
Hình 2.7. Xác thực từ xa sử dụng cặp ID/Mật khẩu 28
Hình 2.8. Xác thực từ xa dựa trên khoá công khai 29
Hình 2.9. Mô hình kiến trúc CA đơn 33
Hình 2.10. Mô hình kiến trúc danh sách tin cậy CA 34
Hình 2.11. Mô hình kiến trúc CA phân cấp 35
Hình 2.12. Mô hình kiến trúc CA lưới 37
Hình 2.13. Mô hình kiến trúc cầu CA 40
Hình 3.1. Mô hình PKI trong hệ thống mail an toàn 47
Hình 3.2. Request chứng thư 48
Hình 3.4. Mô hình PKI trong hệ thống web an toàn 65
Hình 3.5. Request chứng thư trong web 65


Số hóa bởi Trung tâm Học liệu

iv
DANH MỤC CÁC CHỮ VIẾT TẮT

STT
TÊNVIẾT

TẮT
TÊN ĐẦY ĐỦ
DỊCH RA TIẾNG VIỆT
1
CA
Certificate Authority
Thẩm quyền chứng thực
2
CRLs
Certificate Revocation Lists

3
DES
Data Encrytion Standard
Chuẩn mã hóa dữ liệu
4
HTTP
Hypertext Transfer Protocol
Giao thức truyền tải siêu văn
bản
5
HTTPS
Secure Hypertext Transfer
Protocol
Giao thức truyền tải siêu văn
bản an toàn
6
ITU
International
Telecommunication Union

Hiệp hội viễn thông quốc tế
7
LDAP
Lightweight Directory Access
Protocol
Giao thức truy cập thư mục
8
MAC
Message Authentication Code
Xác thực mã ti nhắn
9
OCSP
Online Certificate Status
Protocol
Trạng thái giao thức chứng
chỉ trực tuyến
10
PKCS
Public Key Cryptography
Standards
Chuẩn mật mã khóa công
khai
11
PKI
Public Key Infrastructure
Cơ sở hạ tầng khóa công
khai
12
RA
Registration Authority

Thẩm quyền đăng ký
13
RSA
Rivest Shamir Adleman
Thuật toán mã hóa RSA
14
SHA
Secure Hash Algorithm
Thuật toán băm
15
SSL
Secure Socket Layer
Giao thức bảo mật web


Số hóa bởi Trung tâm Học liệu

1
LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng vào hầu
hết những lĩnh vực trong cuộc sống. Vai trò của công nghệ thông tin ngày càng được
nâng cao, không chỉ dừng lại ở những ứng dụng văn phòng, công nghệ thông tin còn
được triển khai ở nhiều lĩnh vực. Bên cạnh những lợi thế trong việc áp dụng công nghệ
thông tin, việc sử dụng CNTT còn tiềm ẩn nhiều vấn đề còn tồn tại, trong đó có việc
đảm bảo an toàn thông tin ví dụ như bị đánh cắp dự liệu, được phép đọc các tài liệu mà
không đủ thẩm quyền, dữ liệu bị phá hủy … Do đó, bên cạnh việc triển khai và sử
dụng CNTT, chúng ta cũng phải đảm bảo ATTT. Đảm bảo ATTT chính là đảm bảo hệ
thống có được ba yếu tố:
• Tình toàn vẹn
• Tính bí mật

• Tính sẵn sàng
Trong lĩnh vực ATTT, sử dụng chứng thư số đã trở thành một trong các phương
pháp giúp chúng ta có thể bảo mật thông tin. Với chứng thư số, người sử dụng có thể
mã hóa thông tin một cách hiệu quả, chống giả mạo thông tin, xác thực người gửi.
Ngoài ra, chứng thư số còn là bằng chứng giúp chống chối cãi nguồn gốc, ngăn chặn
người gửi chối cãi nguồn gốc tài liệu mình đã gửi.
PKI là một cơ sở hạ tầng khóa công khai, phục vụ an toàn thông tin. PKI sẽ
giúp người dùng xác thực được chủ thể của chứng thư số, cũng như có thể an tâm về
tính xác thực của chứng thư số.
Ở Việt Nam hiện nay đã có một số đơn vị cung cấp và triển khai dịch vụ chứng
thực số như Ban Cơ yếu Chính phủ, Bộ Thông Tin Truyền Thông, VNPT, Viettel,
FPT, BKAV … Các ứng dụng sử dụng chứng thực số ở Việt Nam chủ yếu là ký, mã
hóa dữ liệu, email, web, xác thực quyền truy cập, thanh toán số, …
Bố cục đề tài luận văn gồm có 3 phần, với nội dung từng phần cụ thể như sau:
Chƣơng 1: Tìm hiểu về lý thuyết mật mã với các chủ đề chính: mật mã khoá
đối xứng, mật mã khoá công khai, hàm băm và chữ ký số làm cơ sở cho việc tìm hiểu
hạ tầng khoá công khai PKI.

Số hóa bởi Trung tâm Học liệu

2
Chƣơng 2: Hạ tầng khoá công khai đề tài luận văn trình bày về định nghĩa PKI,
chức năng chính, các thành phần của PKI, các mô hình kiến trúc, các dịch vụ của PKI
và các nhà cung cấp dịch vụ chữ ký số công cộng đầu tiên tại Việt Nam.
Chƣơng 3: Ứng dụng mô hình PKI trong hệ thống mail an toàn, và web an toàn.
Trước khi đi vào trình bày chi tiết nội dung đề tài, em xin gửi lời cảm ơn chân
thành tới các thầy cô Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái
Nguyên. Đặc biệt, em xin gửi lời cảm ơn chân thành tới TS. Hồ Văn Hương, Ban Cơ yếu
Chính phủ đã định hướng và giúp đỡ nhiệt tình để em hoàn thành đề tài luận văn này.
Do thời gian hoàn thành đề tài có hạn cũng như khả năng nghiên cứu còn hạn

chế cho nên em không tránh khỏi những khiếm khuyết, em rất mong có được những
góp ý và giúp đỡ của các thầy cô giáo để em có thể tiếp tục đề tài này ở mức ứng dụng
cao hơn trong tương lai.
Em xin chân thành cảm ơn.

Học Viên


Đỗ Văn Cảnh





Số hóa bởi Trung tâm Học liệu

3
Chƣơng 1
TÌM HIỂU VỀ LÝ THUYẾT MẬT MÃ
Mật mã học là một ngành có lịch sử từ hàng nghìn năm nay, lịch sử mật mã học
chính là lịch sử của những phương pháp mật mã học cổ điển - các phương pháp mật
mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản. Vào đầu
thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy Enigma,
đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật mã hóa. Sự ra đời và
phát triển mạnh mẽ của ngành số và máy tính trong những thập kỷ gần đây đã tạo điều
kiện để mật mã học phát triển nhảy vọt lên một tầm cao mới.
Sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹ
thuật thám mã. Các phát hiện và ứng dụng của các kỹ thuật thám mã trong một số
trường hợp đã có ảnh hưởng đáng kể đến các sự kiện lịch sử. Một vài sự kiện đáng ghi
nhớ bao gồm việc phát hiện ra bức điện Zimmermann khiến Hoa Kỳ tham gia Thế

chiến I và việc phá mã thành công hệ thống mật mã của Đức Quốc xã góp phần làm
đẩy nhanh thời điểm kết thúc thế chiến II.
Cho tới đầu thập kỷ 1970, các kỹ thuật liên quan tới mật mã học hầu như chỉ
nằm trong tay các chính phủ. Hai sự kiện đã khiến cho mật mã học trở nên thích hợp
cho mọi người, đó là: sự xuất hiện của tiêu chuẩn mật mã hóa DES và sự ra đời của
các kỹ thuật mật mã hóa khóa công khaiRSA. Kể từ đó, mật mã hóa đã trở thành công
cụ được sử dụng rộng rãi trong liên lạc và bảo mật máy tính.
Lý do mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên
lạc. Các thuộc tính được yêu cầu là:
1. Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông
tin chứa đựng trong dạng đã mã hóa. Nội dung của thông điệp chỉ được đọc khi người
nhận có khóa riêng.
2. Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay
đổi trong quá trình truyền thông hay không.
3. Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem
người gửi đó có thực sự gửi thông tin đi hay không.
4. Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông tin đi.

Số hóa bởi Trung tâm Học liệu

4
5. Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần
đến người nhận mà người gửi không hề hay biết.
Mật mã được chia làm hai loại chính là mật mã khóa đối xứng và mật mã khóa
công khai.
1.1. Mật mã khoá đối xứng
1.1.1. Khái niệm
Mật mã khóa đối xứng còn được gọi là Mật mã khóa bí mật. Đây là phương
pháp mã hóa sử dụng cặp khóa đối xứng. Với phương pháp này, người gửi và người
nhận sẽ dùng chung một khóa để mã hóa và giải mã thông điệp. Trước khi mã hóa

thông điệp gửi đi, hai bên gửi và nhận phải có khóa chung và phải thống nhất thuật
toán để mã hóa và giải mã. Để đảm bảo tính bí mật trong truyền thông thì hai bên tham
gia truyền thông phải giữ kín và không để lộ thông tin về khóa mật cho người khác.
1.1.2. Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng
Độ an toàn của thuật toán này phụ thuộc vào khoá, nếu để lộ khoá này nghĩa là
bất kỳ người nào cũng có thể mã hoá và giải mã thông báo trong hệ thống mã hoá.

Hình 1.1. Mã hóa khóa bí mật
Ứng dụng: Sử dụng trong môi trường mà khoá dễ dàng được chuyển đi, như
trong cùng một văn phòng. Cũng dùng để mã hoá thông tin khi lưu trữ trên đĩa nhớ.
1.1.3. Ƣu nhƣợc điểm của mật mã khoá đối xứng
a. Ưu điểm
- Tốc độ mã hóa rất nhanh

Số hóa bởi Trung tâm Học liệu

5
b. Nhược điểm
- Hai bên bắt buộc phải tiến hành thống nhất với nhau về khóa mật thì mới có
thể truyền thông an toàn.
- Việc phân phối khóa mật tới những người tham gia vào quá trình truyền tin
thông qua các kênh an toàn có thể dẫn đến việc bị lộ khóa.
- Nếu phải trao đổi thông tin với nhiều đối tác, mỗi đối tác sử dụng một khóa mật
thì việc quản lý số lượng lớn khoá mật là điều hoàn toàn không dễ dàng.
1.2. Mật mã khoá công khai
1.2.1. Khái niệm
Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng
trao đổi các thông tin mật mã mà không cần phải trao đổi các khóa chung bí mật trước
đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với
nhau là khóa công khai và khóa bí mật.

Trong mật mã hóa khóa công khai, khóa riêng phải được giữ bí mật trong khi
khóa công khai được phổ biến công khai. Trong hai khóa, một dùng để mã hóa và
khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra
khóa bí mật nếu chỉ biết khóa công khai.
1.2.2. Bảo vệ thông tin với mật mã khoá công khai
a. Bảo vệ tính bí mật thông tin
Giả sử A muốn gửi cho B một thông điệp M, A sẽ phải:
- Mã hóa thông điệp M bằng khóa công khai của B.
- Gửi bản mã thông điệp cho B.
Khi B nhận được thông điệp đã được mã hóa của A, B sẽ sử dụng khóa riêng
của mình để giải mã thông điệp đó.

Số hóa bởi Trung tâm Học liệu

6

Hình 1.2. Mã hóa khóa công khai
Phương pháp này cung cấp tính bí mật vì chỉ có B mới có khóa bí mật để giải
mã thành công bản mã mà A đã gửi. Tuy nhiên, phương pháp này lại không cung cấp
bất kỳ quá trình xác thực nào để khẳng định bản mã mà B nhận là do A gửi, vì khóa
công khai của B ai cũng biết.
b.Xác thực thông tin
A muốn mọi người biết được rằng tài liệu M là của chính A gửi, A có thể sử dụng
khóa riêng của mình để ký lên tài liệu M.
Khi ai đó nhận được tài liệu, ví dụ là B, B sẽ kiểm tra chữ ký có trong tài liệu M bằng
khóa công khai của A và có thể chắc chắn được rằng tài liệu này là do A ký vì chỉ có
A mới có khóa riêng dùng để ký lên tài liệu.

Hình 1.3. Xác thực thông tin


Số hóa bởi Trung tâm Học liệu

7
Phương pháp này giúp người sử dụng có thể xác thực được nguồn gốc của tài liệu,
nhưng lại không bảo vệ tính bí mật của tài liệu. Do đó, người không được quyền xem
tài liệu vẫn có thể xem được nó.
c.Bảo vệ bí mật và xác thực thông tin
Để đảm bảo thông tin vừa bí mật vừa xác thực, chúng ta phải thực hiện mã hóa
hai lần:
- Đầu tiên, A phải ký thông điệp bằng khóa riêng của mình (thao tác này để
đảm bảo tính xác thực).
- Sau đó, A sử dụng khóa công khai của B để mã hóa tiếp thông điệp vừa được
mã hóa (thao tác này để đảm bảo tính bí mật) .
Sau đó, A gửi bản mã cuối cùng đến B. B nhận được, sẽ làm giải mã theo thứ tự
ngược lại để lấy được bản tin rõ.

Hình 1.4. Ký và mã hoá với khóa công khai
1.2.3. Ƣu nhƣợc điểm của mật mã khoá công khai
a.Ƣu điểm
- Do công khai được dùng để mã hóa được công khai, khóa riêng dùng để giải
mã được giữ kín nên các bên không phải chia sẻ khóa mật nào khác trước khi truyền
thông với nhau, tạo ra sự đơn giản và tiện dụng.
- Số lượng khóa công khai cần phải phân phối bằng với số lượng người tham
gia truyền tin do đó giúp hệ thống có thể mở rộng được trong phạm vi lớn, đồng thời
tránh được những vấn đề phức tạp trong việc phân phối khóa cho các bên tham gia.

Số hóa bởi Trung tâm Học liệu

8
- Hỗ trợ công nghệ chữ kí số cùng với các kết quả trả về từ hàm băm đảm bảo

được tính xác thực nguồn, tính toàn vẹn dữ liệu và hỗ trợ chống chối bỏ trách nhiệm.
b. Nhƣợc điểm
- Do bản chất các hệ mật mã khóa công khai đều dựa vào các bài toán khó nên
tốc độ mã hóa chậm, đối với những dữ liệu lớn thời gian mã hóa công khai có thể
chậm hơn mã hóa đối xứng rất nhiều. Chính vì vậy mà hệ mật khóa công khai khó
được dùng một cách độc lập trong mật mã.
- Khi các bên công bố khóa công khai của mình cho người khác thì một vấn đề
nảy sinh là có thể có trường hợp công bố khóa công khai giả mạo, như vậy liên lạc sẽ
không được an toàn nữa. Do đó, vấn đề chứng thực khóa công khai trở nên cực kỳ
quan trọng trong mật mã khóa công khai. Để giải quyết vấn đề này cần phải có một
trung tâm tin cậy đứng ra chứng thực người dùng với khóa công khai tương ứng.


1.2.4. Thuật toán RSA
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai. Đây là thuật
toán phù hợp với việc tạo ra chữ ký số đồng thời với việc mã hóa. Nó đánh dấu một sự
tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa công khai. RSA đang
được sử dụng phổ biến trong thương mại số và được cho là đảm bảo an toàn với điều
kiện độ dài khóa đủ lớn.
RSA có tốc độ thực hiện chậm hơn đáng kể so với các thuật toán mã hóa đối
xứng. Trên thực tế, người ta thường sử dụng một thuật toán mã hóa đối xứng nào đó
để mã hóa văn bản cần gửi và sử dụng thuật toán mã hóa công khai để phân phối khóa
đối xứng.
Ngoài ra, thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản. Người
ký sẽ sử dụng khóa bí mật của mình để ký vào văn bản cần ký. Người nhận được văn
bản sau đó sẽ dùng khóa công khai của người ký để xác thực người gửi cũng như kiểm
tra tính toàn vẹn của văn bản.
Việc sử dụng RSA sẽ mang lại cho chúng ta một số ưu điểm:
- Quản lý khóa đơn giản: Trong mã hóa đối xứng, số khóa yêu cầu cho phép n
thực thể truyền thông với nhau là n

2
. Trong khi đó, đối với mã hóa công khai, mỗi

Số hóa bởi Trung tâm Học liệu

9
thực thể cần 1 cặp khóa, tổng số khóa yêu cầu để truyền thông chỉ là 2*n. Như vậy,
việc quản lý khóa rất là đơn giản.
- Nâng cao mức độ an toàn cho việc giao dịch khóa: Mọi người dùng phải có
một cặp khóa, trong đó khóa bí mật không được chia sẻ cho bất ký ai, tránh được vấn
đề đảm bảo an toàn trong truyền khóa ở mật mã khóa bí mật.
Tuy nhiên, RSA cũng có những nhược điểm và nó vẫn có thể bị tấn công:
- Phân tích khóa công khai: Hiện nay RSA được đánh giá là an toàn, nó đã và
đang được sử dụng rộng rãi trên toàn thế giới. Tấn công được xem xét thường xuyên
nhất là phân tích khóa công khai. Nếu tấn công này thành công thì mọi thông báo được
mã hóa bằng khóa công khai đều được giải mã.
- Tấn công vòng: Trong tấn công này, bản mã được giải mã nhiều lần cho đến
khi xuất hiện bản rõ. Phương pháp tấn công này rất chậm, đối với những khóa có độ
dài lớn, tấn công này là không thể.
- Tấn công dựa trên thời gian: kẻ tấn công sẽ dùng một siêu máy tình để tìm ra
một trong hai số thừa số nguyên tố.
1.3. Sử dụng kết hợp mật mã khoá đối xứng và khoá công khai
Xuất phát từ ưu và nhược điểm của cả mật mã khóa đối xứng và mật mã khóa
bất đối xứng, sử dụng chung mật mã khóa đối xứng và mật mã khóa bất đối xứng có
được rất nhiều thuận lợi từ việc trao đổi khóa bí mật tới tăng tốc độ mã hóa, đảm bảo
được tính bí mật và tính xác thực … Dưới đây là mô hình sử dụng kết hợp cả hai mật
mã trên trong truyền thông:

Hình 1.5. Kết hợp mật mã khóa đối xứng và công khai - Quá trình mã hoá


Số hóa bởi Trung tâm Học liệu

10
Giả sử A muốn gửi cho B một thông điệp X. Ban đầu A sẽ tạo ra một khóa bí
mật S, rồi dùng một thuật toán mật mã khóa đối xứng để mã hóa thông điệp X tạo ra
bản mã Y.
Tiếp theo A lấy khóa công khai mà B công bố về và sử dụng khóa công khai
của B để mã hóa khóa bí mật S tạo ra bản mã S1. Sau đó A gửi đồng thời Y và S1 tới
cho B.

Hình 1.6. Kết hợp mật mã khóa đối xứng và công khai - Quá trình giải mã
Khi nhận được, B sẽ dùng khóa riêng của mình giải mã S1 kết quả thu được là
khóa mật S. B dùng khóa mật S để giải mã bản mã Y và thu được bản rõ X mà A
muốn gửi cho B.
Như vậy với cách sử dụng kết hợp này, ta tận dụng được tốc độ mã hóa nhanh
của mật mã khóa đối xứng, tận dụng được độ mạnh về bảo mật và sự thuận tiện của
mật mã khóa công khai để truyền khóa mật. Mô hình sử dụng kết hợp này được dùng
rất phổ biến hiện nay.
1.4. Chữ ký số
Chữ ký số dựa trên nền tảng mật mã khóa bất đối xứng, mỗi chủ thể truyền
thông sẽ có một cặp khóa riêng/công khai, khóa riêng được chủ thể giữ bí mật và khóa
công khai được công bố công khai, nếu chỉ biết khóa công khai thì không thể tìm ra
khóa riêng tương ứng. Chữ ký số là thông tin được mã hóa bằng khóa riêng của người
gửi, được gửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh và xác thực
đúng nguồn gốc, tính toàn vẹn của dữ liệu nhận được. Chữ ký số thể hiện văn bản gửi đi

Số hóa bởi Trung tâm Học liệu

11
là đã được ký bởi chính người sở hữu một khóa riêng tương ứng với một khóa công khai

nào đó. Khi sử dụng chữ ký số trong truyền thông sẽ đảm bảo được các tính chất sau:
- Xác thực được định danh của người gửi và nguồn gốc của thông điệp bởi vì
chỉ có người gửi mới có thể tạo ra chữ ký có giá trị và được xác minh đúng đắn khi sử
dụng khóa công khai tương ứng để xác minh.
- Bất kỳ một sử đổi nào trên thông điệp trên đường truyền đều dẫn đến kết quả
quá trình xác minh chữ ký là không chính xác nên đảm bảo được tính toàn vẹn của dữ
liệu được gửi.
- Chỉ có người chủ khóa riêng mới có thể ký số, chính vì vậy mà người này sẽ
không thể chối bỏ trách nhiệm của mình khi đã ký gửi các bản tin.
- Không thể tạo ra một văn bản với một chữ ký có sẵn chính vì vậy mà không
thể dùng lại chữ ký.
Bản chất của quá trình ký lên bản tin chính là sử dụng khóa bí mật của mình để
mã hóa bản tin. Nếu áp dụng đúng nghĩa như vậy thì sẽ nảy sinh một số vấn đề khi bản
tin lớn, vấn đề này xuất phát từ chính bản thân chữ ký số là sử dụng mật mã khóa công
khai. Chính vì vậy mà kỹ thuật sử dụng chữ ký số với hàm băm được đề cập dưới đây
là giải pháp được sử dụng hiện nay.

Quy trình tạo và xác minh chữ ký:
a. Tạo chữ ký số:
- Bên gửi sẽ sử dụng một hàm băm để băm bản tin cần gửi đi, kết quả thu được
một giá trị băm. Một số hàm băm thường được dùng là MD5 ( cho giá trị băm dài 128
bits ), SHA (cho giá trị băm dài 160 bits).
- Bên gửi sẽ sử dụng khóa riêng của mình để ký (mã hóa) lên giá trị băm vừa thu
được từ việc băm bản tin, kết quả thu được là chữ ký của người gửi trên bản tin cần gửi.
- Bên gửi gộp bản tin cần gửi và chữ ký tương ứng tới cho bên nhận.

Số hóa bởi Trung tâm Học liệu

12


Hình 1.7. Quy trình tạo chữ ký số và xác minh chữ ký số
b. Xác minh chữ ký số:
- Bên nhận sẽ sử dụng hàm băm để băm bản tin, kết quả thu được giá trị băm
H1 trên bản tin
- Bên nhận sử dụng khóa công khai của bên gửi để giải mã chữ ký mà bên gửi
đã gửi. Kết quả thu được giá trị H2
- Bên gửi sẽ so sánh giá trị của H1 và H2, nếu như H1=H2 thì chữ ký trên thông
điệp được gửi là có giá trị tức là bản tin được gửi từ người có khóa riêng tương ứng với
khóa công khai dùng để xác minh và bản tin không bị thay đổi trong quá trình truyền,
ngược lại nếu H1 khác H2 thì chữ ký trên thông điệp được gửi là không có giá trị.
Hiện nay thì có hai sơ đồ chữ ký số thường được sử dụng để ký số đó là sơ đồ
chữ ký RSA và chuẩn chữ ký số DSA.
1.5.Hàm băm
Như đã biết thì chữ ký số dựa trên nền tảng là mật mã khóa bất đối xứng, quá
trình ký số cũng chính là quá trình mã hóa. Trong khi đó tốc độ mã hóa của mật mã
khóa bất đối xứng thì lại chậm. Do đó nếu như bản tin cần ký có độ dài lớn thì sẽ nảy
sinh một số vấn đề:
- Với một bản tin có độ dài là a thì chữ ký được sinh ra tương ứng với bản tin
đó cũng có độ dài a, và người gửi sẽ phải gửi một thông điệp dài 2a ( gồm cả bản tin
và chữ ký ) tới cho người nhận. Điều này rõ ràng là một bất cập.
- Tốc độ sinh ra chữ ký sẽ rất chậm nếu như độ dài của bản tin lớn, và nếu như
bản tin có kích thước rất lớn thì thực sự việc tạo ra chữ ký số sẽ mất rất nhiều thời gian
và có thể có các khó khăn về mặt tính toán số học.

Số hóa bởi Trung tâm Học liệu

13
Từ các vấn đề nảy sinh trên, ý tưởng đưa ra đó là thay vì ký lên toàn bộ bản tin
thì có thể thực hiện ký lên một mẫu dữ liệu nhỏ là đại diện cho bản tin cần ký (giá trị
băm cả bản tin). Sử dụng hàm băm để sinh ra giá trị băm cho các bản tin cần ký.

Hàm băm là hàm một chiều mà nếu đầu vào của nó là dữ liệu có độ dài bất kỳ
thì đầu ra sẽ là một chuỗi có độ dài cố định. Đầu ra này được gọi là giá trị băm hay bản
tóm lược thông điệp. Giá trị băm này có hai thuộc tính:
+ Tính duy nhất: Với mỗi bản tin đầu vào thì qua hàm băm sẽ thu được giá trị
băm z= h(X) là duy nhất. Trường hợp hai bản tin khác nhau cho ra cùng giá trị
băm xảy ra rất ít.
+ Tính một chiều: Từ giá trị băm không thể suy ngược ra được bản tin trước khi băm.
- Hàm băm một chiều có các tính chất sau:
+ Với mỗi bản tin đầu vào X thì thu được bản băm z = h(X) là duy nhất.
+ Nếu dữ liệu trong bản tin đầu X bị thay đổi thành một bản tin X’ thì h(X) sẽ
khác h(X’). Cho dù sự thay đổi thông tin giữa X và X’ là rất ít thì giá trị băm của
hai bản tin vẫn khác nhau. Tức là với hai bản tin khác nhau thì giá trị băm thu
được trên chúng cũng khác nhau.
- Nội dung của bản tin gốc không thể suy ngược ra được từ giá trị băm: Với một
bản tin X thì việc tính giá trị băm z = h(X) là rât dễ dàng, nhưng từ giá trị băm z không
thể suy ngược lại được bản tin X lúc đầu.
Hàm băm được sử dụng với mục đích đảm bảo sự toàn vẹn của thông tin được gửi
từ nguồn tới đích. Do tính chất “đại diện” của giá trị băm cho bản tin được băm cho nên
hàm băm được sử dụng trong quá trình ký số. Với bất kỳ một bản tin có cỡ lớn bao nhiêu
thì giá trị băm cũng cố định và tương đối nhỏ, thuận tiện cho việc sinh ra chữ ký. Các
bước sử dụng kết hợp hàm băm trong ký số đã được trình bày ở phần chữ ký số.
Kết luận chƣơng: Chương này tìm hiểu với các chủ đề chính: Mật mã khoá đối
xứng, mật mã khoá công khai, hàm băm và chữ ký số làm cơ sở cho việc tìm hiểu hạ
tầng khoá công khai PKI.

Số hóa bởi Trung tâm Học liệu

14
Chƣơng 2
HẠ TẦNG KHÓA CÔNG KHAI

Trong lịch sử mật mã học, khóa dùng trong các quá trình mã hóa và giải mã
phải được giữ bí mật và cần được trao đổi bằng một phương pháp an toàn khác (không
dùng mật mã) như gặp nhau trực tiếp hay thông qua một người đưa thư tin cậy. Vì vậy
quá trình phân phối khóa trong thực tế gặp rất nhiều khó khăn, đặc biệt là khi số lượng
người sử dụng rất lớn. PKI đã giải quyết được vấn đề này vì nó cho phép người dùng gửi
thông tin mật trên đường truyền không an toàn mà không cần thỏa thuận khóa từ trước.
Thuật toán PKI được thiết kế đầu tiên bởi James H. Ellis, Clifford Cocks, và
Malcolm Williamson tại GCHQ (Anh) vào đầu thập kỷ 1970. Thuật toán sau này được
phát triển và biết đến dưới tên Diffie-Hellman, và là một trường hợp đặc biệt của RSA.
Tuy nhiên những thông tin này chỉ được tiết lộ vào năm 1997.
2.1. Các khái niệm cơ bản
2.1.1. Khái niệm PKI
Nền tảng cho mọi phương thúc truyền thông là một cơ chế tin cậy nên dù
truyền thông dựa vào phương thức vật lý hay là số. Đối với việc truyền thông vật lý thì
việc xây dựng cơ chế tin cậy là dễ dàng hơn khi bạn có thể phân biệt mọi người với
nhau thông qua khuôn mặt hoặc các giấy tờ khác như là chữ ký, chứng minh thư. Tuy
nhiên, đối với việc truyền thông số,xây dựng cơ chế tin cậy là công việc khá khó khăn
khi phải định danh những thực thể không xác định. Do vậy các nhà khoa học đã xây
dựng một cơ chế tin cậy này có tên là hạ tầng khoá công khai - Public key
infrastructure (PKI) đồng thời thì cũng có nhiều định nghĩa về PKI.
Trong mật mã học, hạ tầng khóa công khai (PKI) là một cơ chế để cho một bên
thứ 3 (thường là nhà cung cấp chứng thư số) cung cấp và xác thực định danh các bên
tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi
người sử dụng trong hệ thống một cặp khoá công khai và khoá bí mật. Các quá trình
này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối
hợp khác tại các địa điểm của người dùng. Khóa công khai thường được phân phối
trong chứng thực khoá công khai.

Số hóa bởi Trung tâm Học liệu


15
Đồng thời khái niệm hạ tầng khoá công khai (PKI) cũng thường được dùng chỉ
toàn bộ hệ thống bao gồm cả nhà cung cấp chứng thư số (CA) cùng các cơ chế liên
quan đồng thời với toàn bộ việc sử dụng các thuật toán mã hoá công khai trong trao
đổi thông tin. Tuy nhiên phần sau được bao gồm không hoàn toàn chính xác bởi vì các
cơ chế trong PKI không nhất thiết sử dụng các thuật toán mã hoá công khai.
2.1.2. Các khái niệm liên quan
2.1.2.1. Chứng thƣ số
Chứng thư số là một tài liệu sử dụng chữ ký số kết hợp với khóa công khai với một
định danh thực thể (cá nhân, tổ chức, máy chủ, dịch vụ, … )
Chứng thư số không chứa bất kỳ một thông tin bí mật nào. Về cơ bản, chứng thư số
chứa những thông tin cần thiết như khóa công khai, chủ thể (người sở hữu), bên cấp
chứng thư số và một số thông tin khác. Tính hợp lệ của các thông tin được đảm bảo
bằng chữ ký số của bên cấp chứng thư số. Người dùng muốn sử dụng chứng thư số
trước hết sẽ kiểm tra chữ ký số trong chứng thư số. Nếu chữ ký đó hợp lệ thì có thể sử
dụng chứng thư số đó.Có nhiều lọai chứng thư số, một trong số đó là:
• Chứng thư số khóa công khai X.509
• Chứng thư số khóa công khai đơn giản (Simple Public Key Certificate – SPKC)
• Chứng thư số PGP
• Chứng thư số thuộc tính (Attribute Certificate – AC)

Hình 2.1. Chứng thư số

Số hóa bởi Trung tâm Học liệu

16
Tất cả các loại chứng thư số này đều có cấu trúc dạng riêng biệt. Hiện nay
chứng thư số khóa công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống
PKI. Chứng thư số X.509 version 3 được Hiệp hội viễn thông quốc tế (ITU) đưa ra lần
đầu tiên năm 1998. Chứng thư số này gồm 2 phần: phần đầu là những trường cơ bản

cần thiết phải có trong chứng thư số, phần thứ hai là phần chứa một số các trường phụ,
hay còn gọi là trường mở rộng. Các trường mở rộng thường được dùng để xác định và
đáp ứng những yêu cầu bổ sung của hệ thống.
Hình minh hoạ cấu trúc chứng thư số X.509

- Version : phiên bản của chứng thư số
- Serial Number: số serial của chứng thư số, là định danh duy nhất của chứng
thư số, có giá trị nguyên.
- Certificate-Signature Algorithm: thuật toán CA sử dụng để ký chứng thư số
- Issuer: Tên chủ thể phát hành chứng thư số
- Validity: Thời hạn của chứng thư số
- Subject: Tên chủ thể của chứng thư số
- Subject Public Key Info
+ Subject Public Key Algorithm: Thuật toán sinh khóa công khai
+ Subject's Public Key: Khóa công khai
* Extensions: Phần mở rộng.
2.1.2.2. Kho chứng thƣ số

Số hóa bởi Trung tâm Học liệu

17
Chứng thư số được cấp bởi CA kết hợp với khóa công khai với nhận dạng của
thực thể B. Tuy nhiên nếu thực thể A không có khả năng xác định vị trí chứng thư số
này một cách dễ dàng thì anh ta cũng không có hiệu quả gì hơn so với việc chứng thư
số này chưa được tạo ra.
Do đó, phải có một kho chứng thư số trực tuyến (online repositories), quy mô
lớn và mềm dẻo và phải được đặt ở vị trí mà A có thể xác định vị trí chứng thư số mà
anh ta cần để truyền thông an toàn.
2.1.2.3. Thu hồi chứng thƣ số
Trong một số trường hợp như khóa bị xâm hại, hoặc người sở hữu chứng thư số

thay đổi vị trí, cơ quan … thì chứng thư số đã được cấp không có hiệu lực. Do đó, cần
phải có một cơ chế cho phép người sử dụng chứng thư số kiểm tra được trạng thái thu
hồi chứng thư số. X.509 cho phép kiểm tra chứng thư số trong các trường hợp sau:
- Chứng thư số không bị thu hồi
- Chứng thư số đã bị CA cấp thu hồi
- Chứng thư số do một tổ chức có thẩm quyền mà CA ủy thác có trách nhiệm
thu hồi chứng thư số.
2.1.2.4. Công bố và gửi thông báo thu hồi chứng thƣ số
Danh sách huỷ bỏ chứng thực số bao gồm các chứng thực đã hết hạn hoặc đã bị
thu hồi. Tất cả các xác thực đều có thời hạn. Đây là một quy định mang tính thiết kế,
tuy nhiên trước đây, rất khó thực hiện quy định này bởi việc gia hạn chứng thực
thường phải được thông báo tới tất cả người dùng sử dụng chứng thực đó. Tính năng
này bảo đảm rằng các chứng thực hết hạn sẽ được gia hạn tự động khi đến thời hạn.
Với một số lý do nhất định cần thiết phải huỷ bỏ chứng thực chứ không chỉ đơn
thuần là làm cho nó hết hạn. Công việc này có thể được thực hiện thông qua cơ chế
danh sách huỷ bỏ chứng thực tự động. Các chủ thể có thẩm quyền cấp phép chứng
thực (CA) thông thường sẽ làm công việc gửi các danh sách này tới người dùng, tuy
nhiên họ cũng có thể uỷ nhiệm cho một bộ phận khác.Thông thường chứng thư số sẽ
hợp lệ trong khoảng thời gian có hiệu lực. Nhưng trong một số trường hợp chứng thư
số lại không hợp lệ trước thời gian hết hạn, ví dụ như:
- Khóa riêng của chủ thể bị xâm phạm
- Thông tin chứa trong chứng thư số bị thay đổi

×