“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ử
ĐẠ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 Trần Quang Thuận 1 Trần Quang Thuận 2 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ố .5 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 5 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 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. 1 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. - Mã hoá : 2 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. 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 3 [...]... • User : Hệ thống PKI cấp phát một khóa công khai cho user và khóa bí mật (Khóa riêng) do PKI client cấp phát và user phải giữ bí mật Tạo chữ ký số cho từng văn bản ngẫu nhiên 8 • Bên thứ 3 là bên thẩm định và đánh giá : Cấp phát và bảo mật Khóa riêng và khóa công khai của CA 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ử... hàm băm, mã hóa, tạo chữ ký số ) 1.6 Đặt vần đề ? - Để xây dựng một cơ sở hạ tầng chúng ta phải giải quyết sơ bộ những vấn đề sau đây : Làm sao để cấp phát khóa công khai và khóa bí mật cho từng người Vấn đề đăng ký khóa công khai với một CA Vấn đề thu hồi/cấp phát lại khóa công khai Vấn đề kiểm chứng khóa công khai Làm sao từ khóa công khai của 1 người hệ thống PKI phải xác định xem chữ ký... Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký [7] 2.3.2 Tạo và kiểm... học, chứng thực khóa công khai (còn gọi là chứng thực số / chứng thực điện tử) là một chứng thực sử dụng chữ ký số để gắn một khóa công khai với một thực thể (cá nhân, máy chủ hoặc công ty ) Một chứng thực khóa công khai tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, địa chỉ ) về thực thể sở hữu khóa đó Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa công khai nào đó thuộc... mỗi máy Mã hoá với khoá công khai (Public-key Encryption).[6] 2.3 Chữ ký số 2.3.1 Chữ ký số - Chữ ký số (Digital Signature) chỉ là tập con của chữ ký điện tử Chữ ký số là chữ ký điện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong đó, mỗi người có một cặp khóa (một khóa bí mật và một khóa công khai) Khóa bí mật không bao 13 - - giờ được công bố, trong khi đó, khóa công khai được tự do sử dụng... 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 5 - - 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... đề tài - Một vài năm trở lại đây PKI là 1 chủ đề nóng đối với các doanh nghiệp lớn Ở Việt Nam đây vấn là một đề tài khá mới mẻ Do vậy tìm hiểu và xây dựng hạ tầng cơ sở xác thực khóa công khai( PKI) là một cách tiếp cận cho một nền tảng mới Từ đó nêu rõ vai trò và ứng dụng của hạ tầng khóa công khai trong thương mại điện tử 7 - Tìm hiểu về các thuật toán(sinh số ngẫu nhiên trong việc tạo khóa, hàm băm,... chứng thực số, khóa công khai, và ID của chứng thực số.Việc cấp phát chứng thực số hoàn tất sau khi Client gửi thông tin đăng ký nên server Server sẽ kiểm tra các thông tin client gửi lên Bằng việc thẩm tra chữ ký số, và khóa công khai Nếu chữ ký số đúng đắn tương đương việc khóa công khai là đúng đắn Thông tin client gửi mẫu lên đăng ký server gồm những thông tin sau: 27 Khóa công khai (Khóa bí mật... 2.6.1.1 Sinh cặp khóa ngẫu nhiên (PKI client) - Tại Client hệ thống PKI sẽ cấp phát cặp khóa riêng và khóa công khai - Hệ thống PKI(cụ thể PKI client) sẽ sử dụng 1 thuật toán bất kỳ hợp lý được chọn lựa để sinh cặp khóa ngẫu nhiên - Chẳng hạn đây là thuật tóa RSA Cặp khóa ngẫu nhiên được sinh ra từ 2 số nguyên tố ngẫu nhiên lập đủ lớn Cặp khóa ngẫu nhiên ở đây là : Khóa công khai : (n,e) Khóa bí mật... 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