và đúng đắn.Nếu thông tin xác thực là đúng đắn(khóa công khai, chữ ký số, giá trị băm của văn bản, tin nhắn) server sẽ cấp phát cho client 1 chứng thực số bao gồm các thông tin sau : tên, tuổi, địa chỉ.. các thông tin cá nhân khác, khóa công khai, ngày tạo, ngày hết hạn, và ID của chứng thực số. ID của chứng thực số có tính duy nhất với mỗi client.
2.6.1.4. Thu hồi và cấp phát lại chứng thực số
- Một chứng thực số bị thu hồi khi nào :
Khi mà chứng thực số đã hết hạn sử dụng, chứng thực sẽ bị thu hồi để ra hạn hoặc cấp một chứng thực số mới
Khi client phát hiện khóa bí mật của người này bị lộ hoặc server phát hiện thấy hằm băm mật mã của mình bị lộ hoặc các thông tin bảo mật khác của 1 client đã bị rò rỉ
- Cấp phát lại chứng thực số :
Client sẽ gửi yêu cầu đến server yêu cầu và 1 bản thông tin(địa chỉ, khóa công khai,khóa riêng…) của client đăng ký một bản chứng thực số mới.
2.6.2. Xác thực chứng thực số
- Khi bạn gửi một thông tin kèm chứng chỉ số, người nhận - có thể là đối tác kinh doanh, tổ chức hoặc cơ quan chính quyền - sẽ xác định rõ được danh tính của bạn. Có nghĩa là dù không nhìn thấy bạn, nhưng qua hệ thống chứng chỉ số mà bạn và người nhận cùng sử dụng, người nhận sẽ biết chắc chắn đó là bạn chứ không phải là một người khác. Xác thực là một tính năng rất quan trọng trong việc thực hiện các giao dịch điện tử qua mạng, cũng như các thủ tục hành chính với cơ quan pháp quyền. Các hoạt động này cần phải xác minh rõ người gửi thông tin để sử dụng tư cách pháp nhân. Đây chính là nền tảng của một Chính phủ điện tử, môi trường cho phép công dân có thể giao tiếp, thực hiện các công việc hành chính với cơ quan nhà nước hoàn toàn qua mạng. Có thể nói, chứng chỉ số là một phần không thể thiếu, là phần cốt lõi của Chính phủ điện tử.
- Một người thứ 3 bất kỳ(Có thể là 1 client khác, khách chưa đăng ký chứng thực số) đều có thể kiểm tra được tính đúng đắn của 1 chứng thực số. Bằng cách PKI client sẽ cung cấp 1 dịch vụ xác thực. Người dùng có thể nhập vào ID của 1 chứng thực số bất kỳ cần kiểm tra và gửi thông tin đó lên server. Nếu chứng thực số tồn tại server sẽ trả lại thông báo cho client vừa kiểm tra.
2.7. Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực2.7.1. Mã hóa 2.7.1. Mã hóa
- Lợi ích đầu tiên của chứng chỉ số là tính bảo mật thông tin. Khi người gửi đã mã hóa thông tin bằng khóa công khai của bạn, chắc chắn chỉ có bạn mới giải mã dược thông tin để đọc. Trong qúa trình truyền thông tin qua Internet, dù có đọc được các gói tin đã mã hóa này, kẻ xấu cũng không thể biết được trong gói tin có thông tin gì. Đây là một tính năng rất quan trọng, giúp người sử dụng hoàn toàn tin cậy về khả năng bảo mật thông tin. Những trao đổi thông tin cần bảo mật cao, chẳng hạn giao dịch liên ngân hàng, ngân hàng điện tử, thanh toán bằng thẻ tín dụng, đều cần phải có chứng chỉ số để đảm bảo an toàn.
2.7.2. Chống giả mạo
- Khi bạn gửi đi một thông tin, có thể là một dữ liệu hoặc một Email, có sử dụng chứng chỉ số, người nhận sẽ kiểm tra được thông tin của bạn có bị thay đổi hay không. Bất kỳ một sự sửa đổi hay thay thế nội dung của thông điệp gốc đều sẽ bị phát hiện. Địa chỉ mail, tên domain... đều có thể bị kẻ xấu làm giả để đánh lừa người nhận lây lan virus, ăn cắp thông tin quan trọng. Tuy nhiên , chứng chỉ số thì không thể làm giả, nên việc trao đổi thông tin có kèm chứng chỉ số luôn đảm bảo an toàn.
2.7.3. Xác thực
- Khi sử dụng một chứng chỉ số, người nhận – có thể là đối tác kinh doanh, tổ chức hoặc cơ quan chính quyền- sẽ xác định rõ được danh tính của bạn. Có nghĩa là dù không nhìn thấy bạn, nhưng qua hệ thống chứng chỉ số mà bạn và người nhận cùng sử dụng, người nhận sẽ biết chắc chắn đó là bạn chứ không phải ai khác. Xác thực là một tính năng rất quan trọng trong việc giao dịch điện tử qua mạng, cũng như các thủ tục hành chính với cơ quan với cơ quan pháp quyền. Các hoạt động này cần phải xác minh rõ người gửi thông tin để sử dụng tư cách pháp nhân. Đây chính là nền tảng của một chính phủ điện tử, môi trường cho phép công dân có thể
giao tiếp. Có thể nói, chứng chỉ số là một phần không thể thiếu, là phần cốt lõi của chính phủ điện tử.
2.7.4. Chống chối bỏ nguồn gốc
- Khi sử dụng một chứng chỉ số, bạn phải chịu trách nhiệm hoàn toàn về những thông tin mà chứng chỉ số đi kèm. Trong trường hợp người gửi chối cãi, phủ nhận một thông tin nào đó không phải do mình gửi(chẳng hạn qua mạng) chứng chỉ số mà người nhận có được sẽ là bằng chứng khẳng định người gửi là tác giả của thông tin đó. Trong trường hợp chối bỏ, CA cung cấp chứng chỉ số cho hai bên sẽ chịu trách nhiệm xác minh nguồn gốc thông tin, chứng tỏ nguồn gốc thông tin được gửi.
2.7.5. Chữ ký điện tử
- Email đóng vai trò khá quan trọng trong trao đổi thông tin hàng ngày của chúng ta vì ưu điểm nhanh, rẻ và dễ sử dụng. Những thông điệp có thể gửi đi nhanh chóng qua internet đến khách hàng đồng nghiệp, nhà cung cấp và đối tác. Tuy nhiên, email rất dễ bị đọc bởi các Hacker. Những thông điệp có thể bị đọc hay bị giả mạo trước khi đến người nhận.
- Bằng việc sử dụng chứng chỉ cá nhân, bạn sẽ ngăn ngừa được các nguy cơ này mà vẫn không làm giảm những lợi thể của Email. Với chứng chỉ số cá nhân, bạn có thể tạo thêm một chữ ký điện tử vào email như một bằng chứng xác nhận của mình. Chữ ký điện tử cũng có tính năng xác thực thông tin, toàn vẹn dữ liệu và chống chối bỏ nguồn gốc.
- Ngoài ra, chứng chỉ số cá nhân còn cho phép người dùng có thể chứng thực mình với một web server thông qua giao thức bảo mật SSL. Phương pháp chứng thực dựa trên chứng chỉ số được đánh giá là tốt, an toàn bảo mật hơn phương pháp chứng thực truyền thống dựa trên mật khẩu.
2.7.6. Bảo mật website
- Khi website của bạn sử dụng cho mục đích thương mại điện tử hay cho những mục đích quan trọng khác, những thông tin trao đổi giữa bạn và khách hàng có thể bị lộ. Để tránh nguy cơ này, bạn có thể dùng chứng chỉ số SSL server để bảo mật cho Website của mình.
- Chứng chỉ số SSL server sẽ cho phép bạn lập cấu hình website của mình theo giao thức bảo mật SSL(Secure Sockets Layer). Các tính năng nổi bật:
Thực hiện mua bán bằng thẻ tín dụng.
2.7.7. Đảm bảo phần mềm
- Chứng chỉ số nhà phát triển phần mềm sẽ cho phép bạn ký vào các applet, script, Java software, ActiveX control, các file định dạng EXE, CAB, DLL... Như vậy, thông qua chứng chỉ số bạn sẽ đảm bảo tính hợp pháp cũng như nguồn gốc xuất xứ của sản phẩm. Hơn nữa người dùng có thể xác thực được bạn là nhà cung cấp, phát hiện được sự thay đổi của chương trình(virus, crack, bản lậu...).
2.8. OpenCA hệ thống hạ tầng khóa công khai trong thực tế 2.8.1. Định nghĩa : 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ữ 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 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]
Chương 3: Đặc tả một 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.