LỜI CẢM ƠN
Sau ba tháng nỗ lực thực hiện, đồ án “ Nghiên cứu xây dựng hệ thống PKI
dựa trên bộ phần mềm mã nguồn mở OpenCA” đã phần nào hoàn thành.
Ngoài sự cố gắng hết mình của bản thân, em đã nhận được sự khích lệ rất
nhiều từ phía nhà trường, thầy cô, gia đình, bạn bè
Em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới Ths Hoàng Đức
Thọ, người thầy đã cho em những định hướng và những ý kiến rất quý báu về
PKI và OpenCA
Em cũng xin tỏ lòng biết ơn sâu sắc tới thầy cô trong khoa và bạn bè cùng
khoá đã giúp đỡ em tiến bộ trong suốt những năm học tại Học Viện Kỹ Thuật
Mật Mã.
Xin cảm ơn gia đình và những người thân yêu đã luôn động viên, khuyến
khích giúp đỡ con trong mọi hoàn cảnh khó khăn
Xin cảm ơn bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học
tập và hoàn thành đồ án tốt nghiệp này
Đồ án tốt nghiệp của em được hoàn thành trong một thời gian cũng tương
đối ngắn. Vì vậy đồ án này chắc chắn sẽ còn nhiều khiếm khuyết. Em xin cảm
ơn những thầy cô, bạn bè và người thân sẽ có những góp ý chân thành cho nội
dung của đồ án này, để em có thể tiếp tục tìm hiểu, đi sâu nghiên cứu và áp
dụng trong thực tiễn
Ngô Thu Hằng
1
MỤC LỤC
MỤC LỤC .................................................................................................................................. 2
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................................ 5
DANH MỤC HÌNH VẼ ............................................................................................................. 9
LỜI NÓI ĐẦU .......................................................................................................................... 10
CHƯƠNG I: CƠ SỞ MẬT MÃ HỌC ...................................................................................... 12
1.1.Mật mã khoá bí mật ........................................................................................................ 13
1.1.1.Giới thiệu về mật mã khoá bí mật và các khái niệm có liên quan .......................... 13
1.1.2.Một vài các thuật toán sử dụng trong mật mã khoá đối xứng ............................... 13
1.1.2.1.DES .................................................................................................................. 13
1.1.2.2.IDEA ................................................................................................................. 13
1.1.2.3. Triple DES ....................................................................................................... 14
1.1.2.4.CAST-128 ......................................................................................................... 14
1.1.2.5.AES ................................................................................................................... 14
1.2.Mật mã khoá công khai .................................................................................................. 15
1.2.1.Khái niệm ................................................................................................................ 15
1.2.2. Các thuật toán sử dụng trong mật mã khoá công khai ........................................... 16
1.2.2.1. RSA ................................................................................................................. 16
1.2.2.2.Phương thức trao đổi khoá Diffie Hellman ..................................................... 17
1.3. Chữ ký số ....................................................................................................................... 17
1.3.1.Quá trình ký ............................................................................................................. 17
1.3.2.Quá trình kiểm tra chữ ký số ................................................................................... 18
1.4. Hàm hash ....................................................................................................................... 19
1.4.1.Khái niệm hàm hash ................................................................................................ 19
2
1.4.2. Tóm lược thông báo .............................................................................................. 19
CHƯƠNG II: TỔNG QUAN VỀ PKI VÀ CA ....................................................................... 20
2.1. Lịch sử phát triển PKI ................................................................................................... 20
2.2.Tình hình PKI tại Việt Nam ........................................................................................... 22
2.3. Các định nghĩa về PKI và các khái niệm có liên quan ................................................. 24
2.3.1. Các định nghĩa về PKI ........................................................................................... 24
2.3.2. Các khái niệm liên quan trong PKI ........................................................................ 25
2.3.2.1.Chứng chỉ ......................................................................................................... 25
2.3.2.2.Kho chứng chỉ .................................................................................................. 27
2.3.2.3.Hủy bỏ chứng chỉ ............................................................................................. 27
2.3.2.4. Sao lưu và dự phòng khóa ............................................................................... 28
2.3.2.5.Cập nhật khóa tự động ................................................................................. 28
2.3.2.6.Lịch sử khóa ..................................................................................................... 29
2.3.2.7.Chứng thực chéo .............................................................................................. 29
2.3.2.8.Hỗ trợ chống chối bỏ ........................................................................................ 30
2.3.2.9.Tem thời gian ................................................................................................... 30
2.3.2.10.Phần mềm phía Client .................................................................................... 31
2.4. Mục tiêu, chức năng ..................................................................................................... 32
2.4.1. Xác thực .................................................................................................................. 32
2.4.1.1.Định danh thực thể ........................................................................................... 32
2.4.1.1.1.Xác thực cục bộ ......................................................................................... 33
2.4.1.1.2.Xác thực từ xa ........................................................................................... 33
2.4.1.2. Định danh nguồn gốc dữ liệu .......................................................................... 33
2.4.2. Bí mật ...................................................................................................................... 33
2.4.3.Toàn vẹn dữ liệu ...................................................................................................... 34
2.4.3.1.Chữ ký số .......................................................................................................... 34
2.4.3.2. Mã xác thực thông báo ................................................................................... 34
2.4.4.Chống chối bỏ .......................................................................................................... 34
2.5. Các khía cạnh an toàn cơ bản mà PKI cung cấp ........................................................... 35
2.5.1. Đăng nhập an toàn ................................................................................................. 35
2.5.2. Đăng nhập một lần an toàn ................................................................................... 35
2.5.3. Trong suốt với người dùng cuối ............................................................................. 36
2.5.4. An ninh toàn diện ................................................................................................... 37
CHƯƠNG IIII: CÁC THÀNH PHẦN, CƠ CHẾ LÀM VIỆC CỦA PKI. CÁC MÔ HÌNH
VÀ CÁC KIỂU KIẾN TRÚC CỦA PKI ................................................................................. 37
3.1. Mô hình PKI và các thành phần của PKI ...................................................................... 37
3.1.1. CA ........................................................................................................................... 38
3.1.2.RA ............................................................................................................................ 38
3.1.2.1.Chức năng, nhiệm vụ của RA .......................................................................... 38
3.1.2.2.Thành phần của RA .......................................................................................... 39
3.1.2.2.1.RA Console ............................................................................................... 39
3.1.2.2.2.RA Officer ................................................................................................. 39
3.1.2.2.3.RA Manager .............................................................................................. 39
3.1.3. Certificate-Enabled Client: Bên được cấp phát chứng chỉ .................................... 40
3.1.4. Data Recipient : Bên nhận dữ liệu ......................................................................... 40
3.1.5. Kho lưu trữ/thu hồi chứng chỉ ................................................................................ 40
3.1.6.Chuỗi chứng chỉ hoạt động như thế nào ................................................................ 41
3.2. Cách thức làm việc của PKI .......................................................................................... 42
3.2.1. Khởi tạo thực thể cuối ............................................................................................ 42
3.2.2. Tạo cặp khoá công khai/khoá riêng ....................................................................... 43
3
3.2.3. Áp dụng chữ ký số để định danh người gửi. ......................................................... 44
3.2.4. Mã hóa thông báo ................................................................................................... 44
3.2.5. Truyền khóa đối xứng. ........................................................................................... 44
3.2.6. Kiểm tra danh tính người gửi thông qua một CA .................................................. 44
3.2.7. Giải mã thông báo và kiểm tra nội dung thông báo. .............................................. 45
3.3. Các tiến trình trong PKI ................................................................................................ 46
3.3.1. Yêu cầu chứng chỉ .................................................................................................. 46
3.3.1.1. Gửi yêu cầu ..................................................................................................... 46
3.3.1.2. Các chính sách ................................................................................................. 47
3.3.2. Huỷ bỏ chứng chỉ ................................................................................................... 47
3.4. Các mô hình PKI ........................................................................................................... 48
3.4.1. Mô hình phân cấp CA chặt chẽ (strict hierarchy of CAs) ..................................... 48
3.4.2.Mô hình phân cấp CA không chặt chẽ (loose hierarchy of CAs) ........................... 49
3.4.3.Mô hình kiến trúc tin cậy phân tán (distributed trust architecture) ........................ 49
3.4.4. Mô hình 4 bên (four-corner model) ....................................................................... 50
3.4.5. Mô hình Web (web model) .................................................................................... 51
3.4.6.Mô hình tin cậy lấy người dùng làm trung tâm (user-centric trust) ....................... 53
3.5.Các kiểu kiến trúc PKI ................................................................................................... 54
3.5.1. Kiến trúc kiểu Web of Trust ................................................................................... 55
3.5.2.Kiến trúc kiểu CA đơn (Single CA) ........................................................................ 56
3.5.3. Kiến trúc CA phân cấp ........................................................................................... 58
3.5.4. Kiến trúc kiểu chứng thực chéo (Cross-certificate) ............................................... 59
3.5.5. Kiến trúc Bridge CA(BCA) .................................................................................... 60
CHƯƠNG IV: XÂY DỰNG MÔ HÌNH PKI DỰA TRÊN MÃ NGUỒN MỞ OPENCA .... 60
4.1.Lịch sử phát triển OpenCA ............................................................................................. 61
4.2. CA ................................................................................................................................. 62
4.2.1.Chức năng của CA .................................................................................................. 62
4.2.1.1. Cấp phát chứng chỉ .......................................................................................... 62
4.2.1.2.Huỷ bỏ chứng chỉ ............................................................................................. 62
4.2.1.3.Tạo lập chính sách chứng chỉ ........................................................................... 63
4.2.1.4.Hướng dẫn thực hiện chứng chỉ số (Certification Practice Statement) .......... 63
4.2.2.Nhiệm vụ của CA .................................................................................................... 63
4.2.3. Các loại CA ............................................................................................................ 64
4.2.3.1.Enterprise CA: ................................................................................................. 64
4.2.3.2.Standalone CA .................................................................................................. 64
4.2.4.Các cấp CA .............................................................................................................. 64
4.2.4.1.Root CA(CA gốc) ............................................................................................. 64
4.2.4.2.Subordinate CA(CA phụ thuộc): .................................................................... 65
4.3. Thiết kế chung của CA .................................................................................................. 66
4.3.1.Phân cấp cơ bản ....................................................................................................... 67
4.3.2.Các giao diện ........................................................................................................... 69
4.3.2.1.Node .................................................................................................................. 70
4.3.2.2.CA ..................................................................................................................... 71
4.3.2.3.RA ..................................................................................................................... 71
4.3.2.4. LDAP ............................................................................................................... 71
4.3.2.5.Pub .................................................................................................................... 72
4.4. Vòng đời của các đối tượng .......................................................................................... 72
4.5. Các lưu ý khi thiết kế PKI ............................................................................................. 73
4.5.1. Các vấn đề phần cứng ............................................................................................ 73
4.5.1.1.Thời gian ........................................................................................................... 73
4
4.5.1.2.Đĩa lỗi ............................................................................................................... 74
4.5.1.3.Theo dõi phần cứng .......................................................................................... 74
4.5.2.An toàn vật lý .......................................................................................................... 74
4.5.3.Các vấn đề về mạng ................................................................................................ 75
4.5.4.Vấn đề về chứng chỉ ................................................................................................ 76
4.5.5.CDPs (Các điểm phân phối danh sách huỷ bỏ chứng chỉ (CDP)) .......................... 76
4.5.6.Các vấn đề cụ thể về ứng dụng ............................................................................... 76
4.5.6.1.Mail Server ....................................................................................................... 76
4.5.6.2. Client Netscape ................................................................................................ 77
4.5.6.3.OpenLDAP ....................................................................................................... 77
PHỤ LỤC .................................................................................................................................. 78
1.Môi trường phát triển.........................................................................................................78
1.1.Apache........................................................................................................................79
1.2. OpenSSL....................................................................................................................79
1.2.1.Công cụ dòng lệnh trong openssl ........................................................................ 80
1.2.1.1.Các dòng lệnh chuẩn .................................................................................... 80
1.2.1.2.Các dòng lệnh tóm lược thông báo .............................................................. 82
1.2.1.3. Các dòng lệnh về mã hoá ............................................................................ 82
1.2.2.Thư viện SSL/TLS trong OpenSL ...................................................................... 83
1.2.2.1.Miêu tả .......................................................................................................... 83
1.2.2.2. Cấu trúc dữ liệu ........................................................................................... 83
1.2.2.3. Các file header ............................................................................................. 84
1.2.3. Thư viện mật mã trong OpenSSL ...................................................................... 85
1.2.3.1. Miêu tả ........................................................................................................ 85
1.2.3.2.Tổng quan ..................................................................................................... 85
1.2.4. Bộ công cụ OpenSSL ......................................................................................... 85
1.3.1.Các điểm nổi bật .................................................................................................. 87
1.3.2.Kiến trúc gói mod_ssl ......................................................................................... 88
1.3.3.Giao thức SSL .................................................................................................... 88
1.4. OpenLDAP ................................................................................................................ 90
1.5. Các module perl ......................................................................................................... 94
2.Các chuẩn mật mã .............................................................................................................. 95
DANH MỤC CÁC TỪ VIẾT TẮT
AES Advanced Encryption Standard
Tiêu chuẩn mã hóa tiên tiến
API Application Programming Interface
5
Giao diện lập trình ứng dụng
APXS Apache Extention (tool)
Công cụ mở rộng Apache
CA Certificate Authority
Thẩm quyền chứng thực
CDP: CRL Distribution Point
Điểm phân phối CRL
CRL Certificate Revocation List
Danh sách huỷ bỏ chứng chỉ
CRR Certificate Revocation Request
Yêu cầu huỷ bỏ chứng chỉ
CPS Certification Pratice Statement
Hướng dẫn thực hành chứng chỉ
CSR Certificate Signing Request
Yêu cầu ký chứng chỉ
DES Data Encryption Standard
Tiêu chuẩn Mã hóa Dữ liệu
DN Distingished Name
Tên phân biệt
DSO Dynamic Shared Object
6
Đối tượng chia sẻ động
Email Electronice mail
Thư điện tử
FTP File Transfer Protocol
Giao thức truyền tập tin
HTTP Hypertext Transfer Protocol
Giao thức truyền siêu văn bản
HTTPS: Secure Hypertext Transfer Protocol
Giao thức truyền siêu văn bản an toàn
IDEA: International Data Encryption Algorithm-
Thuật toán mã hoá dữ liệu quốc tế
IKE: Internet Key Exchange
Trao đổi khoá Internet
IMAP Internet Message Access Protocol
Giao thức truy cập thông báo Internet
ITU: Internet Telecommunication Union
Liên minh viễn thông quốc tế
LDAP: Lightweight Directory Access Protocol
Giao thức truy cập nhanh các thư mục
MAC Message Authentication Code
7
Mã xác thực thông báo
MD: Message Degist
Tóm lược thông báo
NCSA
OCSP Online Certificate Status Protocol
Giao thức trạng thái chứng chỉ
OSI Open System Interconnection
Mô hình kết nối các hệ thống mở
PEM: Privacy Enhanced Mail
Thư riêng tư tăng cường
PGP: Pretty Good Privacy
PKCS: Public Key CryptoGraphy Standards
Chuẩn mật mã khoá công khai
PKI: Pulic Key Infracstructure
Cơ sở hạ tầng khóa công khai
POP: Post Office Protocol
RSA: Rivest Shamir Adleman
SCEP: Simple Certificate Enrollment Protocol
Giao thức đăng ký chứng chỉ đơn giản
SHA: Secure Hash Algorithm
8
Thuật toán băm
S/MIME Secure Multipurpose Internet Mail Extensions
SMTP Simple Mail Transfer Protocol
Giao thức truyền thư đơn giản
SPKC Simple Public Key Certificate
Chứng chỉ khoá công khai đơn giản
SSH Secure Shell
TCP/IP Transmission Control Protocol /Internet Protocol
Giao thức điều khiển truyền thông/giao thức Internet
TLS Transport layer Security
Giao thức đảm bảo an toàn lớp vận chuyển
DANH MỤC HÌNH VẼ
Hình 1: Mật mã khoá bí mật.....................................................................................................15
Hình 2: Mật mã khoá công khai...............................................................................................16
Hình 3: Quá trình ký số............................................................................................................18
Hình 4: Quá trình kiểm tra chữ ký số.......................................................................................19
Hình 5:Mô hình PKI Việt Nam hiện nay.................................................................................23
Hình 6: Khuôn dạng chứng chỉ X.509v3.................................................................................27
Hình 7: Tiến trình đăng nhập an toàn.......................................................................................35
Hình 8: Tiến trình đăng nhập an toàn một lần.........................................................................36
Hình 9: Mô hình các thành phần PKI.......................................................................................38
Hình 10: Chuỗi chứng chỉ.........................................................................................................42
Hình 11: Mô hình phân cấp CA chặt chẽ.................................................................................48
9
Hình 12: Mô hình kiến trúc tin cậy phân tán............................................................................50
Hình 13: Mô hình bốn bên........................................................................................................51
Hình 14: Mô hình Web.............................................................................................................52
Hình 15: Mô hình tin cậy lấy người dùng làm trung tâm........................................................53
Hình 16: Chuỗi tin cậy..............................................................................................................55
Hình 17: Kiến trúc kiểu Web of Trust......................................................................................56
Hình 18: Kiến trúc CA đơn......................................................................................................57
Hình 19: Kiến trúc CA phân cấp..............................................................................................58
Hình 20: Kiến trúc kiểu chứng thực chéo................................................................................59
Hình 21: Kiến trúc Bridge CA..................................................................................................60
Hình 22: Sơ đồ minh họa rootCA và SubCA...........................................................................66
LỜI NÓI ĐẦU
Trong một vài năm lại đây, hạ tầng truyền thông công nghệ thông tin càng
ngày càng được mở rộng khi mà người sử dụng dựa trên nền tảng này để
truyền thông và giao dịch với các đồng nghiệp, các đối tác kinh doanh cũng
như việc khách hàng dùng email trên các mạng công cộng. Hầu hết các thông
tin kinh doanh nhạy cảm và quan trọng được lưu trữ và trao đổi dưới hình
thức điện tử. Sự thay đổi trong các hoạt động truyền thông doanh nghiệp này
đồng nghĩa với việc chúng ta phải có biện pháp bảo vệ tổ chức, doanh nghiệp
của mình trước các nguy cơ lừa đảo, can thiệp, tấn công, phá hoại hoặc vô
tình tiết lộ các thông tin đó.
Cấu trúc cơ sở hạ tầng mã hóa khoá công khai cùng các tiêu chuẩn và các
công nghệ ứng dụng của nó có thể được coi là một giải pháp tổng hợp và độc
lập có thể được sử dụng để giải quyết vấn đề này.
PKI đang trở thành một phần trung tâm của các kiến trúc an toàn dành cho
các tổ chức kinh doanh. PKI được xem là một điểm trọng tâm trong nhiều
khía cạnh quản lý an toàn. Hầu hết các giao thức chuẩn đảm bảo an toàn mail,
truy cập Web, mạng riêng ảo và hệ thống xác thực người dùng đăng nhập đơn
đều sử dụng chứng chỉ khóa công khai
PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừa
mang tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các chứng
thực điện tử cũng như các mã khoá công khai và cá nhân. Sáng kiến PKI ra
10
đời năm 1995, khi mà các tổ chức công nghiệp và các chính phủ xây dựng các
tiêu chuẩn chung dựa trên phương pháp mã hoá để hỗ trợ một hạ tầng bảo mật
trên mạng Internet. Tại thời điểm đó, mục tiêu được đặt ra là xây dựng một bộ
tiêu chuẩn bảo mật tổng hợp cùng các công cụ và lý thuyết cho phép người sử
dụng cũng như các tổ chức (doanh nghiệp hoặc phi lợi nhuận) có thể tạo lập,
lưu trữ và trao đổi các thông tin một cách an toàn trong phạm vi cá nhân và
công cộng.
PKI ngày càng thể hiện rõ vai trò của mình trong lĩnh vực an toàn thông
tin. Hiện nay, có rất nhiều cách thức xây dựng PKI . Một trong những cách
thức xây dựng PKI đó là dựa trên mã nguồn mở OpenCA
Đề tài “Nghiên cứu xây dựng hệ thống PKI dựa trên mã nguồn mở
OpenCA” được thực hiện với mục đích tìm hiểu, nghiên cứu và xây dựng PKI
dựa trên mã nguồn mở OpenCA. Nội dung đề tài bao gồm các khái niệm tổng
quan về mật mã, các khái niệm liên quan tới PKI , các mô hình và các kiểu
kiến trúc của PKI. Về phần OpenCA, đề tài nêu lên được đặc điểm, chức năng
của các phần mềm mã mở để xây dựng nên OpenCA như Apache, OpenSSL,
mod_ssl , perl và các module perl
Với giới hạn về các vấn đề tìm hiểu và nghiên cứu, nội dung tìm hiểu đề
tài của em bao gồm ..phần
Chương I: Cơ sở mật mã khoá công khai và khoá bí mật
Chương I trình bày về mật mã khoá bí mật và mật mã khoá công khai
cùng các thuật toán được sử dụng trong mật mã. Chương I cũng nêu ra khái
niệm về chữ ký số, hàm băm và bản tóm lược thông báo
Chương II: Tổng quan về PKI
Chương này trình bày về các khái niệm của PKI và các khái niệm có liên
quan tới PKI. Chương này nêu lên mục tiêu, chức năng cơ bản của PKI,
11
những khía cạnh an toàn mà PKI cung cấp. Mục đích của chương này là thể
hiện cái nhìn tổng quan nhất về PKI
Chương III: Các thành phần và cách thức làm việc của PKI, các mô hình
và các kiểu kiến trúc của PKI. Chương II đã nêu lên những cái nhìn tổng quan
nhất về PKI, còn chương III khai thác sâu hơn về các khía cạnh kỹ thuật được
sử dụng trong PKI, cách thức làm việc của PKI và các kiểu kiến trúc, các mô
hình của PKI
Chương IV: Xây dựng mô hình PKI dựa trên mã nguồn mở OpenCA
Chương này trình bày chi tiết về CA: Bao gồm chức năng, nhiệm vụ, các
loại CA . Chương này trình bày thiết kế chung CA và lưu ý khi xây dựng PKI
dựa trên nguồn mở OpenCA
CHƯƠNG I: CƠ SỞ MẬT MÃ HỌC
Mật mã đã được sử dụng từ rất lâu đời. Các hình thức mật mã sơ khai đã
được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ
đại. Mật mã đã và đang tồn tại hàng nghìn năm lịch sử và hiện vẫn đang được
sử dụng rất rộng rãi để giữ bí mật trong truyền tin đặc biệt trong các lĩnh vực
quân sự, chính trị, an ninh và quốc phòng. Mật mã về cơ bản được chia thành
hai loại chính là mật mã khóa bí mật (hay còn gọi là mật mã đối xứng) và mật
mã khóa công khai (hay còn gọi là mật mã phi đối xứng).
Để có thể truyền tin sử dụng mật mã thì hai bên truyền tin phải có khóa
Một khóa mã hóa là một mẫu thông tin đặc biệt được kết hợp với một
thuật toán để thi hành mã hóa và giải mã. Mỗi khóa khác nhau có thể tạo ra
các văn bản mã hóa khác nhau, và nếu ta không chọn đúng khóa thì không thể
12
nào mở được dữ liệu đã mã hóa , cho dù biết được mã hóa văn bản dùng thuật
toán gì. Sử dụng khóa càng phức tạp, mã hóa càng mạnh.
Việc chuyển đổi từ bản tin ban đầu thành bản tin mã hoá được gọi là sự
mã hoá, sự chuyển đổi ngược lại từ bản tin mã hoá thành bản tin ban đầu
được gọi là giải mã.
Bản tin ban đầu được gọi là bản rõ, bản tin ban đầu được mã hoá sẽ trở
thành bản mã. Toàn bộ cơ chế bí mật đó được gọi là mật mã.
1.1.Mật mã khoá bí mật
1.1.1.Giới thiệu về mật mã khoá bí mật và các khái niệm có liên quan
Trong mật mã đối xứng các bên tham gia liên lạc sử dụng cùng một khóa
để mã hóa và giải mã. Trước khi truyền tin, hai thực thể A và B cùng thỏa
thuận với nhau một khóa dùng chung (K). Thực thể A dùng khóa đó để mã
hóa bản tin (e
K
) sau đó gửi cho thực thể B. Thực thể B dùng khóa K, thực hiện
phép giải mã (d
K
) để giải mã mã nhận được
Khóa bí mật phải được dữ bí mật
1.1.2.Một vài các thuật toán sử dụng trong mật mã khoá đối xứng
1.1.2.1.DES
Hệ mật DES được xây dựng tại Mỹ trong những năm 70 theo yêu cầu của
Văn phòng Quốc Gia về chuẩn và được sự thẩm định của an ninh quốc gia.
DES kết hợp cả hai phương pháp thay thế và chuyển dịch
DES là một mật mã khối. Độ dài của mỗi khối là 64 bit
Khoá dùng trong DES có độ dài tổng thể là 64 bit, tuy nhiên chỉ có 56 bit
thực sự được dùng, 8 bit còn lại dùng cho việc kiểm tra
Đây đã từng là thuật toán mật mã được sử dụng rộng rãi nhất .
1.1.2.2.IDEA
IDEA là một thuật toán mã hoá khối
13
IDEA tao thác trên từng khối 64 bit, mã khối 64bit plaintext thành khối
64bit ciphertext
Độ dài khoá khoá dùng trong thuật toán IDEA là 128 bit
1.1.2.3. Triple DES
3DES (Triple DES), là thuật toán mã hóa khối trong đó khối thông tin 64
bit sẽ được lần lượt mã hóa 3 lần bằng thuật toán mã hóa DES với 3 khoá
khác nhau. Do đó, chiều dài khóa mã sẽ lớn hơn và độ an toàn sẽ cao hơn so
với DES do 3DES 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.
1.1.2.4.CAST-128
Là một thuật toán mật mã được đặt tên theo tên người phát triển là Carlisle
Adams và Stafford Tavares
Chiều dài khoá là 128 bit
1.1.2.5.AES
AES là một thuật toán mã hoá khối
AES làm việc với khối dữ liệu 128 bít và khóa có độ dài 128, 192 hoặc
256 bít
14
Hình 1: Mật mã khoá bí mật
1.2.Mật mã khoá công khai
1.2.1.Khái niệm
Mật mã khóa công khai là một dạng mật mã cho phép người sử dụng trao
đổi các thông tin mật mà không cần phải trao đổi các khóa bí mật trước đó.
Trong mật mã khóa công khai sử dụng một cặp khóa là khóa công khai/khóa
riêng. Khóa công khai dùng để mã hóa còn khóa riêng 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
15
Hình 2: Mật mã khoá công khai
1.2.2. Các thuật toán sử dụng trong mật mã khoá công khai
1.2.2.1. RSA
Thuật toán RSA đượ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).
RSA là một thuật toán mã hóa khóa công khai.
Thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồ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 điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn.
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán
phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán
mã hóa đối xứng khác. Trên thực tế, người ta sử dụng một thuật toán mã hóa
16
đối xứng nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa
khóa để giải mã (thông thường khóa ngắn hơn nhiều so với văn bản).
1.2.2.2.Phương thức trao đổi khoá Diffie Hellman
Phương thức này được phát minh bởi Whitfield Diffie và Matty Hellman
ở Standford.
Đây là sơ đồ khoá công khai đầu tiên. Tuy nhiên, đó không phải là một sơ
đồ mã hoá khoá công khai thực sự, mà chỉ dùng cho trao đổi khóa.
Các khoá bí mật được trao đổi bằng cách sử dụng các trạm trung gian
riêng tin cậy. Phương pháp này cho phép các khoá bí mật được truyền an toàn
thông qua các môi trường không bảo mật.
Trao đổi khoá Diffie-Hemall dựa trên tính hiệu quả của bài toán logarit rời
rạc
Tính bảo mật của trao đổi khoá Diffie-Hellman nằm ở chỗ: tính hàm mũ
modulo của một số nguyên tố là khá dễ dàng nhưng tính logarit rời rạc là rất
khó
1.3. Chữ ký số
Một trong những ứng dụng của mật mã khóa công khai là chữ ký số.
Chữ ký số là một phần dữ liệu được đính kèm với bản tin, dùng để nhận
dạng và xác thực người gửi và dữ liệu của bản tin, sử dụng mã hoá khoá công
khai. Người gửi sử dụng hàm hash một chiều để tạo ra một bản mã hash có độ
dài 32 bit từ dữ liệu của bản tin. Sau đó, người gửi sẽ mã hoá bản mã hash
đó(hash-code) bằng khoá riêng của người gửi. Người nhận sẽ tính toán lại mã
hash đó từ dữ liệu đó và giải mã bản mã hash đó bằng khoá công khai của
người gửi. Nếu hai mã hash đó giống nhau, thì người nhận có thể chắc chắn
rằng dữ liệu đó không bị sửa đổi và dữ liệu đó đúng là của người gửi
1.3.1.Quá trình ký
Đầu tiên, thông báo được tính toán bởi hàm băm một chiều , hàm này sẽ
tính toán thông báo và trả về một bản tóm lược thông báo (message digest),
17
hàm băm một chiều đảm bảo rằng bản tóm lược thông báo này là duy nhất và
bất kỳ một sửa đổi dù nhỏ nhất trên thông báo cũng sẽ gây ra thay đổi cho bản
tóm tắt này. Sau đó người gửi sẽ dùng khoá riêng của mình mã hoá bản tóm
tắt này. Nội dùng sau khi được mã hoá chính là chữ ký số (digital signature)
của thông báo đó được ký bởi người gửi. Chữ ký số này sẽ được gửi tới cho
người nhận kèm với thông báo
.
Hình 3: Quá trình ký số
1.3.2.Quá trình kiểm tra chữ ký số
Khi người nhận nhận được thông báo, để kiểm tra tính hợp lệ của nó, đầu
tiên người nhận sẽ dùng khoá công khai của người gửi để giải mã chữ ký số.
Kết quả của quá trình giải mã chữ ký số là bản tóm lược thông báo của người
gửi tạo ra. Sau đó, người nhận dùng hàm băm một chiều để tính toán bản tóm
tắt qua nội dung của thông báo một lần nữa rồi lấy kết quả đem so sánh với
bản tóm lược thông báo vừa được giải mã ở trên, nếu kết quả giống nhau thì
quá trình kiểm tra thành công. Ngược lại có thể kết luận đây là một thông báo
đã bị giả mạo hoặc thông tin đã bị thay đổi trên quá trình gửi đi.
18
Hình 4: Quá trình kiểm tra chữ ký số
1.4. Hàm hash
1.4.1.Khái niệm hàm hash
Hàm hash (hash function) là hàm một chiều mà khi ta đưa một khối dữ
liệu có độ dài bất kỳ qua hàm này thì sẽ tạo ra một chuỗi bít có độ dài cố định
ở đầu ra. Kết quả ở đầu ra gọi là bản tóm lược thông báo (message digest)
Hash có thể đảm bảo tính toàn vẹn và xác thực
Thuật toán hash không thể được dịch ngược trở lại dữ liệu ban đầu vì vậy
được gọi là thuật toán mã hoá một chiều
1.4.2. Tóm lược thông báo
Bản tóm lược thông báo được coi là một “dấu vân tay” số của bản tin. Bản
tóm lược thông báo được tạo ra từ hàm hash trên dữ liệu của bản tin.
Thuật toán tóm lược thông báo có hai đặc điểm quan trọng
Đầu vào như nhau thì luôn luôn tạo ra đầu ra như nhau nhưng đầu vào
khác nhau thì có thể không bao giờ tạo ra đầu ra như nhau
Không thể xác định được bản tin thật sự từ bản tóm lược thông báo
19
Bản tóm lược thông báo được sử dụng để đảm bảo rằng dữ liệu bản tin
không bị thay đổi trong suốt quá trình truyền
Bản tóm lược thông báo được mã hoá bằng khoá riêng của người gửi để
tạo nên chữ ký số
CHƯƠNG II: TỔNG QUAN VỀ PKI VÀ CA
2.1. Lịch sử phát triển PKI
Việc Diffie, Hellman, Rivest, Shamir, và Adleman công bố công trình
nghiên cứu về trao đổi khóa an toàn và thuật toán mật mã hóa khóa công khai
vào năm 1976 đã làm thay đổi hoàn toàn cách thức trao đổi thông tin mật.
Cùng với sự phát triển của các hệ thống truyền thông điện tử tốc độ cao
(Internet và các hệ thống trước nó), nhu cầu về trao đổi thông tin bí mật trở
nên cấp thiết. Thêm vào đó một yêu cầu nữa phát sinh là việc xác định định
dạng của những người tham gia vào quá trình thông tin. Vì vậy ý tưởng về
việc gắn định dạng người dùng với chứng thực được bảo vệ bằng các kỹ thuật
mật mã đã được phát triển một cách mạnh mẽ.
Nhiều giao thức sử dụng các kỹ thuật mật mã mới đã được phát triển và
phân tích. Cùng với sự ra đời và phổ biến của World Wide Web, những nhu
cầu về thông tin an toàn và xác thực người sử dụng càng trở nên cấp thiết. Chỉ
tính riêng các nhu cầu ứng dụng cho thương mại (như giao dịch điện tử hay
truy cập những cơ sở dữ liệu bằng trình duyệt web) cũng đã đủ hấp dẫn các
nhà phát triển lĩnh vực này. Taher ElGamal và các cộng sự tại Netscape đã
phát triển giao thức SSL trong đó bao gồm thiết lập khóa, xác thực máy chủ.
Sau đó, các thiết chế PKI được tạo ra để phục vụ nhu cầu truyền thông an
toàn.
Các nhà doanh nghiệp kỳ vọng vào một thị trường hứa hẹn mới đã thành
lập những công ty hoặc dự án mới về PKI và bắt đầu vận động các chính phủ
để hình thành nên khung pháp lý về lĩnh vực này. Một dự án của American
Bar Association đã xuất bản một nghiên cứu tổng quát về những vấn đề pháp
lý có thể nảy sinh khi vận hành PKI .Không lâu sau đó, một vài tiểu bang của
20
Hoa kỳ mà đi đầu là Utah (năm 1995) đã thông qua những dự luật và quy
định đầu tiên. Các nhóm bảo vệ quyền lợi người tiêu dùng thì đặt ra các vấn
đề về bảo vệ quyền riêng tư và các trách nhiệm pháp lý.
Tuy nhiên, các luật và quy định đã được thông qua lại không thống nhất
trên thế giới. Thêm vào đó là những khó khăn về kỹ thuật và vận hành khiến
cho việc thực hiện PKI khó khăn hơn rất nhiều so với kỳ vọng ban đầu.
Tại thời điểm đầu thế kỷ 21, người ta nhận ra rằng các kỹ thuật mật mã
cũng như các quy trình/giao thức rất khó được thực hiện chính xác và các tiêu
chuẩn hiện tại chưa đáp ứng được các yêu cầu đề ra.
Thị trường PKI thực sự đã tồn tại và phát triển nhưng không phải với quy
mô đã được kỳ vọng từ những năm giữa của thập kỷ 1990. PKI chưa giải
quyết được một số vấn đề mà nó được kỳ vọng. Những PKI thành công nhất
tới nay là các phiên bản do các chính phủ thực hiện
Tới nay, những nỗ lực hoàn thiện PKI vẫn đang được đầu tư và thúc đẩy.
Và để hiện thực hoá ý tưởng tuyệt vời này, các tiêu chuẩn cần phải được
nghiên cứu phát triển ở các mức độ khác nhau bao gồm: mã hoá, truyền thông
và liên kết, xác thực, cấp phép và quản lý. Tuy nhiên, hầu hết các công nghệ
hình thành từ ý tưởng này đã trở nên chín muồi và một số đã bước vào giai
đoạn "lão hoá". Nhiều chuẩn bảo mật trên mạng Internet, chẳng hạn Secure
Sockets Layer/Transport Layer Security (SSL/TLS) và Virtual Private
Network (VPN), chính là kết quả của sáng kiến PKI
Quá trình nghiên cứu và phát triển PKI là một quá trình lâu dài và cùng
với nó, mức độ chấp nhận của người dùng cũng tăng lên một cách khá chậm
chạp. Cũng giống như với nhiều tiêu chuẩn công cộng khác, tỷ lệ người dùng
chấp nhận sẽ tăng lên chỉ khi các chuẩn đó trở nên hoàn thiện, chứng minh
được khả năng thực sự của nó, và khả năng ứng dụng và hiện thực hoá của nó
là khả thi (cả về khía cạnh chi phí lẫn thực hiện).
21
2.2.Tình hình PKI tại Việt Nam
Trước nhu cầu sử dụng PKI, ở Việt nam, có một số tổ chức đã triển khai
hoạt động cung cấp dịch vụ chứng thực trong lĩnh vực này. Trong khu vực
Nhà nước Ban Cơ Yếu chính phủ đã xây dựng và thử nghiệm tại hạ tầng
Trung Tâm của một số Bộ, ngành ở quy mô nhỏ , đồng thời sử dụng trong
một số dịch vụ bảo mật và an toàn . Ngân hàng Nhà nước, Bộ Công Thương
cũng đã tổ chức thử nghiệm các CA chuyên dùng đáp ứng hoạt động nghiệp
vụ nội bộ
Khu vự ngoài nhà nước như các tổ chức VASC, VDC đã cung cấp chứng
thực điện tử cho một số tổ chức và cá nhân. Nhìn chung, nhu cầu sử dụng PKI
ở Việt Nam ngày càng tăng , tuy nhiên việc triển khai thực tế hiện tại chưa
nhiều
Ở Việt Nam, năm 2007 Ban Cơ Yếu Chính phủ thành lập Trung tâm
Chứng thực điện tử chuyên dùng với các chức năng cung cấp , quản lý chứng
thư số và các dịch vụ chứng thực chữ ký số cho các cơ quan thuộc hệ thống
Chính trị
Năm 2008, Bộ Thông tin- Truyền thông đã thành lập Trung tâm chứng
thực chữ ký số quốc gia và giao Cục ứng dụng Công nghệ thông tin tổ chức,
quản lý, cấp phép và cung cấp dịch vụ chứng thực số cho khu vực công cộng
22
Hình 5:Mô hình PKI Việt Nam hiện nay
Nhìn chung việc triển khai dịch vụ chứng thực chữ ký số ở nước ta còn
chậm, chưa theo kịp tốc độ phát triển mạng CNTT và các dịch vụ giao dịch
điện tử trên thế giới
Cơ sở hạ tầng khoá công khai (PKI) là một trong những nhu cầu thiết yếu
của tương lai. Nhưng vấn đề là hầu hết các ứng dụng có thể được đảm bảo an
toàn bằng chứng chỉ và khoá nhưng lại rất khó và đắt đề cài đặt PKI, lý dó là
phần mềm trung tâm tin cậy có tính linh hoạt thì lại rất đắt. Đây là điểm khởi
đầu của OpenCA. Mục đích là sản phẩm của hệ thống trung tâm tin cậy
nguồn mở để hỗ trợ cộng đồng với các giải pháp tốt, rẻ (chi phí hợp lý) và
mang tính xu hướng trong tương lai
Dự án OpenCA được bắt đầu vào năm 1998. Ý tưởng OpenCA ban đầu
được phát triển bởi Massimiliano Pala. Mã nguồn ban đầu của dự án được
viết với đoạn script rất dài. Khi phiên bản đầu tiên của phần mềm được xây
dựng, thì dự án OpenSSL vẫn có tên là SSLeay . Rất nhiều chức năng vẫn còn
lỗi và nhiều thứ khác nữa đều đang bị bỏ qua
23
Việc cài đặt phần mềm ban đầu rất đơn giản và chỉ có một vài đoạn script
khởi tạo CA. Để cài đặt nhanh chóng phần mềm, bạn chỉ cần giải nén gói đó,
dùng lệnh cd để chuyển vào gói vừa giải nén đó và sử dụng lệnh “make
install”, đoạn script sau đó sẽ chạy và tiến hành cài đặt phần mềm CA đơn
giản và tạo ra chứng chỉ CA
Một loạt các đoạn script được cung cấp sẽ giúp cho việc cài đặt và cấu
hình cho hầu hết các phần của dự án. Mặc dù đơn giản như vậy, nhưng giải
pháp này gây ra rất nhiều vấn đề với cộng đồng người dùng bởi vì các vấn đề
nảy sinh từ việc nhu cầu cần phải tạo ra một gói đầy đủ và tốt hơn. Phiên bản
đầu tiên của OpenCA rất đơn giản, nhiều chức năng được xây dựng chủ yếu
chỉ được dùng để cấp phát chứng chỉ, CRL và các phương thức cài đặt thì khá
đơn sơ, không có tính tiện dụng cho bất kỳ tiện ích cấu hình nào , đoạn script
chỉ có thể tương thích với bash
Các phiên bản tiếp theo được bổ sung thêm nhiều tính năng hơn cho dự án
và do đó phiên bản 0.109 đã bao gồm giao diện cho server của CA, RA và
Pub. Từ lúc bắt đầu dự án và từ phát hành phiên bản đầu tiên, đã có một
lượng lớn sự tham gia của cộng đồng Internet đóng góp vào sự phát triển của
dự án
2.3. Các định nghĩa về PKI và các khái niệm có liên quan
2.3.1. Các định nghĩa về PKI
PKI có rất nhiều định nghĩa. Để hiểu sâu và rõ về PKI, em xin phép được
đưa ra các định nghĩa về PKI
Định nghĩa 1:
PKI là cơ sở của một hạ tầng an ninh rộng khắp, các dịch vụ của PKI được
cài đặt và thực hiện bằng cách sử dụng các khái niệm và kỹ thuật của mật mã
khoá công khai
Định nghĩa 2
24
PKI là một tập hợp phần cứng, phần mềm, con người, các chính sách và
các thủ tục cần thiết để tạo, quản lý, lưu trữ , phân phối và thu hồi các chứng
chỉ khoá công khai dựa trên mật mã khoá công khai
Định nghĩa 3
Trong mật mã khoá công khai, cơ sở hạ tầng khóa công khai là một cơ chế
để cho một bên thứ 3 (CA) 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 khóa công khai/khóa riêng. 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
pân phối trong chứng chỉ khoá công khai
Khái niệm hạ tầng khóa công khai thường được dùng để chỉ toàn bộ hệ
thống bao gồm thẩm quyền chứng thực 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ật mã hóa khóa công khai trong trao
đổi thông tin
2.3.2. Các khái niệm liên quan trong PKI
2.3.2.1.Chứng chỉ
Chứng chỉ là một tài liệu sử dụng chữ ký số kết hợp khoá công khai với
một định danh thực thể (như người, một tổ chức hoặc một máy chủ)
Chứng chỉ không chứa bất kỳ một thông tin bí mật nào. Về cơ bản, nó bao
gồm các thành phần sau
Chứng chỉ chứa những thông tin cần thiết như khoá công khai, chủ thể
(người sở hữu) , bên cấp chứng chỉ 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 chỉ. Người
dùng muốn sử dụng chứng chỉ trước hết sẽ kiểm tra chữ ký số trong chứng
chỉ. Nếu chữ ký đó hợp lệ thì có thể sử dụng chứng chỉ đó
Một vài loại chứng chỉ
Chứng chỉ khoá công khai X.509
25