Khóa luận “Hạtầng khóa công khai (PKI), vấn đềcấp phát chứng thực sốvà ứng
dụng trong thương mại điện tử”. Hạtầng khóa công khai là một bộkhung cơbản đểxây
dựng mô hình an ninh, bảo mật trong thương mại điện tử. Tìm hiểu vai trò của chứng thực
sốtrong hạtầng khóa công khai. Vai trò của chứng thực sốtrong các giao dịch trực tuyến.
Người sửdụng, ngoài hình thức bảo mật thông thường nhưmật khẩu, cũng phải dùng một
chứng thực sốcá nhân đểkhẳng định danh tính của mình, xác nhận các hoạt động giao
dịch của mình với dịch vụngân hàng, thương mại điện tử, dao dịch chứng khoán. Chứng
thực sốsẽgiúp nhà quản lý đảm bảo rằng khách hàng không thểchối cãi các giao dịch
của mình, khi họ đã dùng chứng thực số. Từ đó đặt ra các vấn đềquản lý (cấp phát,xác
thực) thu hồi và cấp phát lại chứng thực số.
Trong khóa luận tôi sẽtrình bày vềcác vấn đềchính xoay quanh vấn đềhạtầng
khóa công khai (PKI). Phần đầu của khóa luận (chương 1) giới thiệu vấn đềvà cách tiếp
cận giải quyết vấn đềsẽtrình bày khái quát vềmột vài khái niệm cơbản vềmật mã học
khóa công khai, hạtầng khóa công khai ; các khái niệm cơbản vềthuật toán và lý thuyết
độphức tạp; một vài công cụnền tảng của mật mã học khóa công khai (mã hóa thông tin,
hàm băm, chữký số). Chương 2 của khóa luận sẽlàm rõ hơn các khái niệm, các vấn đềcơ
bản bên trong một hạtầng khóa công khai (chứng thực số, các dịch vụ đăng ký, cấp phát,
xác thực, thu hồi, khóa công khai); ứng dụng của hạtầng khóa công khai trong giao
dịch điện tửngày nay ; và một vài hệthống hạtầng khóa công khai trong thực tế. Chương
3 đặc tảmột hạtầng khóa công khai đơn giản và Kết Luận.
53 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 2526 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và xây dựng hạ tầng khóa công khai, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trần Quang Thuận
NGHIÊN CỨU VÀ XÂY DỰNG HẠ TẦNG KHÓA
CÔNG KHAI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công nghệ thông tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trần Quang Thuận
NGHIÊN CỨU VÀ XÂY DỰNG HẠ TẦNG KHÓA
CÔNG KHAI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công nghệ thông tin
Cán bộ hướng dẫn: PGS – TS.Hồ Sỹ Đàm
Cán bộ đồng hướng dẫn: TS.Lê Đức Phong
HÀ NỘI - 2010
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Hồ Sĩ Đàm, TS. Lê Đức Phong.
Những người thầy đã cho tôi những định hướng và những ý kiến rất quý báu để tôi hoàn
thành được khóa luận tốt nghiệp này. Tôi xin tỏ lòng biết ơn sâu sắc tới các thầy cô, bạn
bè đã dìu dắt, giúp đỡ tôi tiến bộ trong suốt quá trình làm khóa luận tốt nghiệp. Xin cảm
ơn gia đình và bè bạn, những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn
cảnh khó khăn. Tôi xin cảm ơn bộ môn Truyền Thông và Mạng Máy Tính, khoa Công
Nghệ Thông Tin trường Đại Học Công Nghệ-Đại Học Quốc Gia Hà Nội đã hết sức tạo
điều kiện cho tôi trong quá trình học, làm và hoàn thành khóa luận này.
M ỤC L ỤC
Mở Đầu................................................................................................................................ 1
Chương 1 : Giới Thiệu......................................................................................................... 2
1.1. Tìm hiểu Mật mã học khoá công khai...................................................................... 2
1.1.1. Mật mã học khoá công khai ................................................................................ 2
1.1.2. Ứng dụng ............................................................................................................ 4
1.2. Thuật toán và độ phức tạp thuật toán ....................................................................... 4
1.2.1. Thuật toán ........................................................................................................... 4
1.2.2. Phân tích thuật toán............................................................................................. 5
1.3. Hạ tầng khóa công khai (PKI).................................................................................. 5
1.3.1. PKI là gì .............................................................................................................. 5
1.3.2. Cở sở hạ tầng khóa công khai............................................................................. 6
1.4. Một vài kiến trúc và công nghệ PKI hiện hành........................................................ 7
1.4.1.Một số ứng dụng ..................................................................................................... 7
1.5. Mục đích của đề tài .................................................................................................. 8
1.6. Đặt vần đề ? .............................................................................................................. 9
1.7. Các vấn đề sẽ giải quyết trong khóa luận................................................................. 9
Chương 2 : Xây dựng hạ tầng khóa công khai(PKI), vấn đề cấp phát chứng thực số và
ứng dụng trong thương mại điện tử ................................................................................... 11
2.1. Hàm băm mật mã học............................................................................................. 11
2.1.1. Hàm băm........................................................................................................... 11
2.1.2. Hàm băm mật mã học ....................................................................................... 11
2.1.3. Đảm bảo tính toàn vẹn dữ liệu.......................................................................... 11
2.1.4. Một số hàm băm thông dụng ............................................................................ 12
2.2. Mã hóa thông tin..................................................................................................... 14
2.3. Chữ ký số................................................................................................................ 15
2.3.1. Chữ ký số .......................................................................................................... 15
2.3.2. Tạo và kiểm tra chữ ký số................................................................................. 16
2.4. Chứng thực số......................................................................................................... 22
2.5. Cấu trúc phân tầng của hệ thống PKI..................................................................... 22
2.6. Cấp phát và xác thực chứng thực số....................................................................... 23
2.6.1. Cấp phát chứng thực số..................................................................................... 23
2.6.2. Xác thực chứng thực số .................................................................................... 25
2.7. Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực............................. 25
2.7.1. Mã hóa .............................................................................................................. 25
2.7.2. Chống giả mạo .................................................................................................. 25
2.7.3. Xác thực ............................................................................................................ 26
2.7.4. Chống chối bỏ nguồn gốc ................................................................................. 26
2.7.5. Chữ ký điện tử................................................................................................... 26
2.7.6. Bảo mật website................................................................................................ 27
2.7.7. Đảm bảo phần mềm .......................................................................................... 27
2.8. OpenCA hệ thống hạ tầng khóa công khai trong thực tế ....................................... 27
2.8.1. Định nghĩa :....................................................................................................... 27
2.8.2. Đánh giá về hệ OpenCA ................................................................................... 28
Chương 3: Đặc tả một Platform PKI ................................................................................. 29
3.1. Ngôn ngữ lập trình.................................................................................................. 29
3.2. Thư viện số nguyên lớn.......................................................................................... 29
3.3. Một Platform PKI phải cung cấp đầy đủ các chức năng sau: ................................ 29
3.3.1. Cấp phát ............................................................................................................ 29
3.3.2. Chứng thực........................................................................................................ 39
3.3.3. Toàn vẹn dữ liệu ............................................................................................... 39
3.3.4. Thu hồi và cấp phát lại chứng thực số .............................................................. 41
KẾT LUẬN ....................................................................................................................... 44
CÁC TÀI LIỆU THAM KHẢO........................................................................................ 45
TÓM TẮT KHÓA LUẬN
Khóa luận “Hạ tầng khóa công khai (PKI), vấn đề cấp phát chứng thực số và ứng
dụng trong thương mại điện tử”. Hạ tầng khóa công khai là một bộ khung cơ bản để xây
dựng mô hình an ninh, bảo mật trong thương mại điện tử. Tìm hiểu vai trò của chứng thực
số trong hạ tầng khóa công khai. Vai trò của chứng thực số trong các giao dịch trực tuyến.
Người sử dụng, ngoài hình thức bảo mật thông thường như mật khẩu, cũng phải dùng một
chứng thực số cá nhân để khẳng định danh tính của mình, xác nhận các hoạt động giao
dịch của mình với dịch vụ ngân hàng, thương mại điện tử, dao dịch chứng khoán... Chứng
thực số sẽ giúp nhà quản lý đảm bảo rằng khách hàng không thể chối cãi các giao dịch
của mình, khi họ đã dùng chứng thực số. Từ đó đặt ra các vấn đề quản lý (cấp phát,xác
thực) thu hồi và cấp phát lại chứng thực số.
Trong khóa luận tôi sẽ trình bày về các vấn đề chính xoay quanh vấn đề hạ tầng
khóa công khai (PKI). Phần đầu của khóa luận (chương 1) giới thiệu vấn đề và cách tiếp
cận giải quyết vấn đề sẽ trình bày khái quát về một vài khái niệm cơ bản về mật mã học
khóa công khai, hạ tầng khóa công khai ; các khái niệm cơ bản về thuật toán và lý thuyết
độ phức tạp; một vài công cụ nền tảng của mật mã học khóa công khai (mã hóa thông tin,
hàm băm, chữ ký số). Chương 2 của khóa luận sẽ làm rõ hơn các khái niệm, các vấn đề cơ
bản bên trong một hạ tầng khóa công khai (chứng thực số, các dịch vụ đăng ký, cấp phát,
xác thực, thu hồi, … khóa công khai); ứng dụng của hạ tầng khóa công khai trong giao
dịch điện tử ngày nay ; và một vài hệ thống hạ tầng khóa công khai trong thực tế. Chương
3 đặc tả một hạ tầng khóa công khai đơn giản và Kết Luận.
DANH MỤC TỪ VIẾT TẮT
PKI Public Key Infrastructure
CA Certificate Authority
RSA Rivest Shamir Adleman
DSA Digital Signature Algorithm
MD5 Message Digest 5
RA Registration Authority
SHA Secure Hash Algorithm
SHS Secure Hash Standard
H Hash function
RFC Request For Comments
DANH MỤC HÌNH VẼ VÀ BẢNG
Hình 1.1: Cấp phát khóa riêng khóa công khai
Hình 1.2: Mã hóa thông tin
Hình 1.3: Tạo và xác thực chữ ký số
Hình 1.4 : Mô hình xây dựng PKI cơ bản
Bảng 1.5 : mô hình xử dụng xác thực
Hình 2.1 : Đặc điểm của các thuật toán băm SHA
Bảng 2.2 :So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA với
DSA
Hình 2.3 : Thời gian xác nhận chữ ký của RSA và DSA
Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA
Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA
Hình 2.6 : Mô hình phân cấp
Hình 3.1 : Hàm tạo cặp khóa riêng và khóa công khai
Hình 3.2 : Mô phỏng tạo khóa
Hình 3.3 : Tạo chữ ký số
Hình 3.4 : Form nhập thông tin của client
Hình 3.5 : Thông báo trả về khi kết quả gửi thông tin thành công
Hình 3.6 : Xác thực khóa công khai và chữ ký số
Hình 3.7 : cấp phát chứng thực số
Hình 3.8 : Kiểm tra thông tin và cấp phát chứng thực số
Hình 3.9 : Xác thực chứng thực số
Hình 3.10 : Form tìm kiếm, sửa, xóa thông tin chứng thực số
Hình 3.11 : Kiểm tra và thu hồi chứng thực số hết hạn sử dụng
1
Mở Đầu
Trong kỷ nguyên của công nghệ thông tin, tính phổ biến rộng rãi của Internet một
mặt đem lại nhiều ứng dụng tiện lợi, thú vị và dần thay thế các hoạt động truyền thống
trong thế giớ thực; mặt khác nó đặt ra các vấn đề về sự an toàn, tính tin cậy của những
giao dịch trên Internet. Cơ sở hạ tầng khóa công khai (PKI) có thể đáp ứng, giải quyết
những vấn đề cơ bản nhất cho những yêu cầu trên. Dựa trên các dịch vụ cơ bản về chứng
thực số và chữ ký số, một PKI chính là bộ khung của các chính sách, dịch vụ và phần
mềm mã hóa, đáp ứng nhu cầu bảo mật của người sử dụng.
Không chỉ nằm trong lĩnh vực thương mại điện tử, chứng thực số hiện còn được sử
dụng như một dạng chứng minh thư cá nhân. Tại các nước công nghệ phát triển, chứng
thực số CA được tích hợp vào các chip nhớ nằm trong thẻ căn cước, thẻ tín dụng để tăng
cường khả năng bảo mật, chống giả mạo, cho phép chủ thẻ xác thực danh tính của mình
trên nhiều hệ thống khác nhau, chẳng hạn như xe bus, thẻ rút tiền ATM, kiểm soát hải
quan, ra vào chung cư .v.v.
Với các đặc điểm nổi bật như không thể giả mạo, chứng thực nguồn gốc xuất xứ,
các quốc gia phát triển đều đã sử dụng chứng thực số như một bằng chứng pháp lý từ rất
sớm. Đây là yếu tố rất quan trọng để có thể phát triển thương mại điện tử, vì không ai
dám mạo hiểm với tiền của mình, khi họ chưa chắc chắn được rằng các hoạt động đó có
được đảm bảo, và có được pháp luật công nhận hay không.
Trong bản khóa luận tốt nghiệp này, tác giả xin trình bày tổng quát về cơ sở hạ tầng
khóa công khai và ứng dụng của nó trong thương mại điện tử. Qua đó trình bày một bản
platform mô phỏng hoạt động của một hạ tầng khóa công khai (PKI) cơ bản.
2
Chương 1 : Giới Thiệu
1.1. Tìm hiểu Mật mã học khoá công khai
1.1.1. Mật mã học khoá công khai
1.1.1.1. Mật mã học khóa công khai (Phi đối xứng) là gì
‐ là một chuyên ngành của mật mã học 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 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 cá nhân (hay khóa bí mật).
‐ Trong mật mã học khóa công khai, khóa cá nhân phải được giữ bí mật trong
khi khóa công khai được phổ biến công khai. Trong 2 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]
1.1.1.2. Mục đích của hệ thống mã hoá công khai :
‐ Cấp phát khoá riêng và khoá công khai :
Hình 1.1: Cấp phát khóa riêng khóa công khai
Việc cấp phát khoá công khai và khoá bí mật thông qua thuật toán
RSA (phổ biến). Thuật toán RSA tạo ra cặp khoá bằng các phương
thức toán học từ 2 số nguyên tố bất kỳ đủ lớn.
3
- Mã hoá :
Hình 1.2: Mã hóa thông tin
Bob mã hóa thông tin gửi cho Alice bằng khóa công khai của
Alice. Alice nhận được tin nhắn từ Bob kiểm tra tin nhắn và giải
mã bằng khóa bí mật của Alice.
- Tạo và xác thực chữ ký số :
Hình 1.3: Tạo và xác thực chữ ký số
S = H(m)^d mod n (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 khóa
bí mật nào đó hay không.
Tạo chữ kí số bằng khóa bí mật của Alice.
4
Và ký vào tin nhắn Alive gửi cho Bob
Bob kiểm tra chữ ký số bằng khóa công khai của Alice:
S^e mod n =H(m) với H(m) là giá trị sau khi băm tin nhắn Alice
gửi cho Bob. Chữ ký số đúng đắn đồng nghĩa với việc các thông tin
Alice gửi bob là đúng đắn.
1.1.2. Ứng dụng
- Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là trong lĩnh vực bảo mật,
an toàn thông tin: Một văn bản được mã hóa bằng khóa công khai của một
người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó.Các thuật toán
tạo chữ ký số khóa công khai cho phép định danh một tin nhắn hay 1 tài liệu .
Một người sử dụng có thể mã hóa văn bản với khóa bí mật của mình. Nếu một
người khác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng
văn bản thực sự xuất phát từ người gắn với khóa công khai đó (Đây là nguyên lý
sinh & xác thực chữ ký số, người gửi sử dụng khóa bí mật của mình để sinh ra 1
chữ ký số cho 1 tin nhắn, tài liệu. Bên nhận có thể xác thực tính đúng đắn của
chữ ký số đó nhờ vào khóa công khai của người gửi).Các đặc điểm trên còn có
ích cho nhiều ứng dụng khác như: tiền điện tử, thỏa thuận khóa... Các vấn đề và
mục đích của đề tài.
1.2. Thuật toán và độ phức tạp thuật toán
1.2.1. Thuật toán
- Thuật toán được hiểu là sự đặc tả chính xác của một dãy các bước có thể được
thực hiện một cách máy móc để giải quyết một vấn đề. Cần nhấn mạnh rằng, mỗi
thuật toán có một dữ liệu vào (Input) và dữ liệu ra (Output); khi thực hiện thuật
toán (thực hiện các bước đã mô tả) , thuật toán cần cho ra các kiểu dữ liệu ra
tương ứng với các dữ liệu vào.[2]
5
1.2.2. Phân tích thuật toán
1.2.2.1. Tính hiệu quả của thuật toán
- Khi giải một vấn đề, chúng ta cần chọn trong số các thuật toán, một thuật toán
mà chúng ta cho là “tốt” nhất. Cơ sở đánh chọn lựa thuật toán :
Thuật toán đơn giản, dễ hiểu, dễ cài đặt(dễ viết chương trình)
Thuật toán sử dụng tiết kiệm nhất các nguồn tài nguyên của máy tính và
đặc biệt chạy nhanh nhất có thể được.
‐ Tính hiệu quả của thuật toán bao gồm 2 nhân tố cơ bản :
Dung lượng không gian nhớ cần thiết để lưu giữ các dữ liệu vào, các kết
quả tính toán trung gian và các kết quả của thuật toán
Thời gian cần thiết để thực hiện thuật toán(hay thời gian chạy) [3]
1.2.2.2. Đánh giá thời gian thực hiện thuật toán
- Thời gian chạy chương trình phụ thuộc vào các nhân tố chính sau:
Các dữ liệu vào
Chương trình dịch để chuyển chương trình nguồn thành mã máy.
Tốc độ thực hiện của các phép toán của máy tính được sử dụng để chạy
chương trình.
‐ Giả sử T(n) là thời gian thực hiện thuật toán và f(n) là hàm xác định
dương.T(n)=O(f(n)) nếu ∃ các hằng số dương c và n0 sao cho T(n) ≤ c.g(n)
với mọi n>= n 0 .
1.3. Hạ tầng khóa công khai (PKI)
1.3.1. PKI là gì
‐ Để hiểu rõ về việc xây dựng cơ PKI và vần đề cấp phát chứng thực số có vai trò
và ứng dụng như thế nào trong thương mại điên tử. Chúng ta sẽ đi phân tích từng
khía cạnh xung quanh PKI.
‐ Trước tiên chúng hiểu thế nào là PKI và tính cấp thiết của PKI hiện nay :
6
PKI : viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa công
khai. Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng
thực 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 khóa công khai/khóa bí mật.
Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa có
thể thông qua internet. Tuy nhiên, mặt khác khó mà bảo đảm rằng những
giao dịch trên Internet luôn an toàn. Cơ sở hạ tầng khóa công khai (PKI) đã
đáp ứng những yêu cầu cấp thiết đó. Dựa trên cách sử dụng của chìa khóa
mật mã công cộng và chữ ký điện tử, một PKI chính là bộ khung của các
chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu bảo mật của
người sử dụng.
1.3.2. Cở sở hạ tầng khóa công khai
Hình 1.4 : Mô hình xây dựng PKI cơ bản
‐ PKI cung cấp một cặp chìa khóa, trong đó có một chìa là chìa khóa công khai
(Public key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Private
key) mà người sử dụng phải giữ bí mật. Hai chìa khóa này có liên quan mật thiết
đến nhau, sao cho một thông điệp được mã hóa bởi một chìa khóa mật mã công
khai thì chỉ giải mã được bởi một chìa khóa bí mật tương ứng.
7
‐ Ví dụ về mô hình xử dụng xác thực :
Giả sử có 2 người dùng Bob và Alice muốn chuyển thư điện tử cho nhau để đảm
bảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI
Hành động Trạng thái của hệ thống PKI
Bob muốn chuyển một thư điện tử đến
cho Alice, với yêu cầu rằng giao dịch
phải chứng minh được chính anh đã gởi
nó đi và nội dung bức thư không bị thay
đổi.
Phần mềm PKI dùng chìa khóa cá nhân
của Bob tạo ra một chữ ký điện tử cho
bức thư
Bob muốn chắc chắn rằng không ai ngoài
Alice đọc được bức thư này
Phần mềm PKI của Bob dùng chìa khóa
công cộng của Alice để mã hóa thông
điệp của Bob.
Alice muốn đọc thư do Bob gởi Phần mềm PKI dùng chìa khóa cá nhân
của Alice để để giải mã thông điệp.
Alice muốn kiểm chứng rằng chính Bob
đã gởi đi thông điệp đó và nội dung
thông điệp không bị chỉnh sửa.
Phần mềm PKI của Alice dùng chìa khóa
công cộng của Bob để kiểm chứng chữ
ký điện tử của anh ta.
Bảng 1.5 : Mô hình sử dụng xác thực
1.4. Một vài kiến trúc và công nghệ PKI hiện hành
1.4.1. Một số ứng dụng
- Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa
khóa 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 (OpenPGP hay S/MIME).
8
Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc mã
hoá XML* khi văn bản được thể hiện dưới dạng XML).
Xác thực người dùng ứng dụng (Đăng nhập bằng thẻ thông minh -
smartcard, nhận thực người dùng trong SSL).
Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE,
SSL): trao đổi khóa bằng khóa bất đối xứng, còn