OpenCA hệ thống hạ tầng khóa công khai trong thực tế

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU VÀ TRIỂN KHAI HẠ TẦNG KĨ THUẬT KHOÁ CÔNG KHAI potx (Trang 35 - 53)

2.8.1. Định nghĩa :

‐ OpenCA là một hệ thống mã nguồn mở, được xây dựng và phát triển bởi rất nhiều nhà lập trình trên thế giới. OpenCA được xây dựng với mục đích tạo ra một hệ thống công cụ nhằm hỗ trợ cho các dự án về bảo mật.OpenCA hỗ trợ từ mức độ thấp như mã hoá dữ liệu,tạo chữ ký số cho đến các hệ thống an toàn dữ

28

liệu cao cấp. Mã nguồn của OpenCA được cung cấp rộng rãi trên

www.openca.org.Từ những đặc điểm như trên có thể thấy OpenCA chính là một

công cụ rất hiệu quả để xây dựng những ứng dụng theo mô hình hạ tầng khoá công khai PKI. OpenCA hỗ trợ xây dựng tất cả các thủ tục lõi cho một ứng dụng PKI từ việc sinh khoá mã hoá giải mã dữ liệu cho tới các thủ tục cấp phát,thu hồi chứng thư,tạo chữ ký số…Với tất cả những cái đó,ta có thể xây dựng một ứng dụng theo mô hình PKI cơ sở, phần mở rộng còn lại sẽ được xây dựng tiếp theo định hướng của nhà phát triển.

‐ Các thành phần chính của OpenCA bao gồm 3 thành phần là hệ thống thư viện OpenSSL, cơ sở dữ liệu và giao diện web. Trong đó giao diện web được xây dựng bằng ngôn ngữ Perl. Thư viện OpenSSL thực hiện các tiến trình về mã hoá. [10]

2.8.2. Đánh giá về hệ OpenCA

2.8.2.1. Ưu điểm của hệ thống

‐ OpenCA được thiết kế và xây dựng theo nguyên lý của mô hình PKI và nó đảm bảo đầy đủ những chức năng cơ sở của một hệ PKI cần phải có: Cấp phát, gia hạn, thu hồi chứng thư số, đảm bảo tính xác thực, an toàn tin cậy. ‐ Với các kịch bản đã thử nghiệm trong thời gian dài hệ thống đã hoạt động khá

ổn định và không xảy ra những lỗi nghiêm trọng dẫn đến từ chối dịch vụ. ‐ Hệ mã nguồn mở OpenCA hoàn toàn tương thích với môi trường Linux và

không hề gây xung đột với các hệ thống khác cùng cài đặt trên một hệ điều hành.

‐ Hệ thống OpenCA sử dụng rất nhiều chuẩn công nghiệp( như các chuẩn về chứng thư số X509). Vì vậy nó được chấp nhận và sử dụng rất rộng rãi trong thực tế.

2.8.2.2. Những điểm còn hạn chế của hệ thống

‐ Lỗi không xác định khi RA ký lên các yêu cầu gửi lên cho CA. ‐ Không làm việc được với các thiết bị sử dụng chuẩn USB 2.0 ‐ Khó khăn trong việc cài đặt và thay đổi.[11]

29

Chương 3: Đặc t mt Platform PKI

3.1.Ngôn ngữ lập trình

‐ Ngôn ngữ lập trình được chọn lựa và sử dụng ở đây là java và công cụ kết nối cơ sở dữ liệu là Mysql.

‐ Thuật toán sử dụng tạo cặp khóa, chữ ký số và xác thực chữ ký số là RSA. Hàm băm mã hóa sử dụng : SHA-1.

3.2.Thư viện số nguyên lớn

‐ Thư viện số nguyên lớn mang tất cả đặc điểm của số nguyên nguyên thủy trong java và tất cả các phương thức có trong java.lang.Math. Thêm vào đó thư viện số nguyên lớn còn cung cấp các phương thức như: tính modular toán học(tính toán số dư trong phép chia), tính GCD(ước số trung lớn nhất của 2 số), tạo số nguyên tố ngẫu nhiên, thao tác bit, và một vài phương thức khác.

3.3.Một Platform PKI phải cung cấp đầy đủ các chức năng sau:

- Cấp phát.

- Xác thực.

- Toàn vẹn dữ liệu.

- Thu hồi và cấp phát lại chứng thực số.

3.3.1. Cấp phát

- Cấp phát chứng thực số: Chứng thực số bao gồm các thông tin : tên, tuổi, địa chỉ, ngày tháng cấp phát 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:

ƒ Khóa công khai(Khóa bí mật chỉ mình client biết) ƒ Cặp khóa bí mật(n,d) cặp khóa công khai(n,e)

30 (adsbygoogle = window.adsbygoogle || []).push({});

ƒ Hàm tạo 2 số nguyên tố trong thư viện BigInteger :

¾ public BigInteger(int bitLength, int certainty,Random rnd) ¾ bitLength : độ dài bit của khóa(số random∈[1,2bitLength-1])

¾ certainty : xác xuất 1 số BigInteger không phải là số nguyên tố 1/2certainty

Hình 3.1 : Hàm tạo cặp khóa riêng và khóa công khai

¾ n=p.q

¾ Tạo khóa riêng (n,e): Theo thuật toán RSA ta có ) 1 )( 1 ( ) (n = pq− ϕ , gcd(e,ϕ(n))=1

¾ Tạo khóa công khai (n,d): d = e−1 mod ϕ(n). Trong thư viện số nguyên lớn : d= e.modInverse(ϕ(n)).

31

32

ƒ Tạo chữ ký số : S = H(m)^d mod n. Tin nhắn nhập vào được băm theo hàm băm mặc định cho trước

33 ƒ Form nhập thông tin đăng ký :

34

ƒ Các thông tin mà client nhập sẽ được gửi lên server. ¾ Tại client:

35 ¾ Tại server:

36

ƒ Tại server nhận thông tin gửi từ client. Nếu việc thẩm tra chữ ký số thành công. Việc đăng ký chứng thực số hoàn tất(Tại server sẽ thông báo Successful). Nếu việc thẩm tra thất bại tương ứng với việc chữ ký số và khóa công khai gửi lên không đúng đắn hay tương thích(Server sẽ báo Failed). Ngoài ra việc đã tồn tại user với địa chỉ thông báo và khóa công khai tồn tại trong chứng thực số(Server sẽ nhận biết được, server sẽ không cấp phát 1 chứng thực số khác. Mà chỉ đưa ra thông báo cho user đó)

ƒ Se mod n = H(m)

37

38

Hình 3.8 : Kiểm tra thông tin và cấp phát chứng thực số

Việc kiểm tra tại server hoàn tất, 1 bản chứng thực số được tạo ra và lưu tại server

39

3.3.2. Chứng thực

‐ Bên cạnh việc cấp phát 1 PKI cơ bản còn có vai trò xác thực 1 chứng thực số.

Hình 3.9 : Xác thực chứng thực số

‐ Một client khác hoặc một người thứ 3 có thể gửi ID chứng thực số của một client

để biết được client đó có tồn tại hay không. Bằng cách kích vào Menu

CheckUser. Thông tin server trả về có thể là Ok(nếu tồn tại client), failed user was expired(nếu client đó đã hết hạn), failed(nếu không tồn tại user đó.

3.3.3. Toàn vẹn dữ liệu

‐ Client gửi tin nhắn đến server để đăng ký chứng thực số. Nếu tin nhắn bị thay đổi đồng nghĩa với việc gia trị băm(H(m)) cũng bị thay đổi. Do vậy trong trường hợp thẩm tra chữ ký số là đúng đắn tương ứng với giá trị băm H(m) đúng và tin nhắn gửi đi và tin nhắn nhận được tại server là trùng nhau. Như vậy thông tin mà client gửi lên server hoàn toàn không bị thay đổi.Ngoài các chức năng trên Platform PKI còn bao gồm các chức năng như: Kiểm tra những client hết hạn sử dụng chức thực số, tìm kiếm,xóa, sửa 1 chứng thực số. (adsbygoogle = window.adsbygoogle || []).push({});

40

41

3.3.4. Thu hồi và cấp phát lại chứng thực số3.3.4.1. Thu hồi 3.3.4.1. Thu hồi

- Mỗi bản chứng thực số sẽ được gán thời gian bắt đầu cấp phát. Server sẽ kiểm tra và so sánh khoảng thời gian cấp phát chứng thực số đến thời gian hiện tại. Nếu thời gian đã hết hạn chứng thực số đó sẽ bị thu hồi và được lưu lại vào bảng cơ sở dữ liệu chứa “Chứng thực số hệt quyền hạn sử dụng”

42

43

3.3.4.2. Cấp phát lại

- Server nhận thấy 1 chứng thức số đã bị lộ, hoặc client cảm nhận thấy khóa bí mật của mình và các thông tin quan trọng khác bị rò rỉ. Client sẽ gửi thông báo đến server và yêu cầu đăng ký 1 bản chứng thực số khác. Về phía server, Khi phát hiện thấy 1 chứng thực số bị lộ hoặc rò rỉ thông tin sẽ gửi yêu cầu đến client yêu cầu client đăng ký 1 bản chứng thực số khác.

44

KT LUN

Đề tài “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ử” là một đề tài khó và rộng. Trong thời gian nghiên cứu, tìm hiểu, xây dựng ứng dụng đố án đã hoàn thành được các nhiệm vụ được đặt ra, cụ thể là:

Về mặt lý thuyết : Khóa luận trình bày những khái niệm, đặc điểm cơ bản của một hệ thống PKI. Ứng dụng của hạ tầng khóa công khai trong thương mại điện tự. Tư tưởng của thuật toán cấp phát khóa, sinh và kiểm tra chữ ký số(RSA,DSA,...) về ưu nhược điểm của từng thuật toán, định nghĩa về hàm băm(hàm băm MD5,SHA-1). Cấp phát và xác thực chứng thực số.

Về mô phỏng và kết quả thử nghiệm : Đã hoàn thành việc mô phỏng hoạt động cơ bản của một hệ thống PKI.

Mặc dù đã hết sức cố gắng nhưng trình độ chuyên môn và thời gian thực hiện khóa luận còn hạn hẹp, cũng như mức độ phức tạp của đề tài, nên kết quả đạt được còn gặp phải một số khiếm khuyết.

Hướng phát triển đề tài: Tiếp tục hoàn thiện các chức năng, nhằm tăng hiệu quả và độ an toàn. Cải thiện việc gửi dữ liệu từ client và xử lý tại server để thời gian hoạt động của cả hệ thống là nhanh nhất và hiệu quả của hệ thông là tốt nhất có thể.

45

CÁC TÀI LIU THAM KHO

[1] William Stallings. Cryptography and Network Security : Principles and Practice, Fourth Edition. Prentice Hall, 2005.

TS.Nguyễn Đại Thọ Bộ môn Mạng & Truyền thông Máy tính Khoa Công nghệ Thông tin Slide bài giảng AN TOÀN MẠNG - (Chương 3 – trang 96).

http://vi.wikipedia.org/wiki/M%E1%BA%ADt_m%C3%A3_h%C3%B3a_kh%C3%B3a_ c%C3%B4ng_khai

[2], [3] Đinh Mạnh Tường – Giáo trình “Cấu trúc dữ liệu và giải thuật” (Chương 1 trang 12-16).

[4] TS.Nguyễn Đại Thọ Bộ môn Mạng & Truyền thông Máy tính Khoa Công nghệ Thông tin. Slide bài giảng AN TOÀN MẠNG - (Chương 4 – trang 116).

http://vi.wikipedia.org/wiki/H%C3%A0m_b%C4%83m_m%E1%BA%ADt_m%C3%A3 _h%E1%BB%8Dc

[5],[8] Đặng Bình Phương Luận văn cao học – Đại học khoa học tự nhiên TP.Hồ Chí Minh - Nghiên cứu kiến trúc và xây dựng hệ thống chứng thực tập trung.(trang 8-11)

[6] http://ptic.com.vn/chuyende_chitiet.asp?stuff_id=7

[7] Chứng thực điện tử&Chữ ký điện tử(HÀ NỘI –IT Week 2004) – VASC CA

[9]Carlisle Adams, Steve Lloyd

Understanding PKI: Concepts, Standards, and Deployment Considerations, Second Edition November 06, 2002 (Chương 6 Certificates and Certification).

[10],[11] ĐỒ ÁN TỐT NGHIỆP Trần Hoàn Vũhệ Kỹ Sư Chất Lượng Cao – K49 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 Bách Khoa Hà Nội.

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU VÀ TRIỂN KHAI HẠ TẦNG KĨ THUẬT KHOÁ CÔNG KHAI potx (Trang 35 - 53)