Karoly

New Member

Download miễn phí Đề tài Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ Web và Mail





Mục lục
Chương I. Giao thức Secure Socket Layer 1
1. Giới thiệu 1
2-Giao thức SSLv3 1
2.1-Tầng giao thức SSLv3 Record 2
2.2-SSLv3 Handshake protocol 5
2.3-Change cipher spec và Alert protocol 9
Chương II. Sử dụng chứng chỉ số với dịch vụ Web 12
1-Cài đặt chứng chỉ đ-ợc cấp cho trình duyệt 12
1.1-Cài đặt chứng chỉ cho trình duyệt Internet Explorer 12
1.1.1-B-ớc 1: Cài đặt tiện ích trợ giúp 12
1.1.2-B-ớc 2: Cài đặt chứng chỉ cho Internet Explorer 13
1.2-Cài đặt chứng chỉ cho trình duyệt Netscape 21
2-Cập nhật CTL và CRL từ Public Database Server 28
3-Cài đặt thiết lập cấu hình phần mềm E-shop có sử dụng chứng chỉ
đ-ợc cấp trên Apache server 29
3.1-Cài đặt phần mềm E-shop 29
3.2- Thiết lập cấu hình E-shop có sử dụng chứng chỉ trên Apache server 30
4-Sử dụng https truy nhập tới E-shop 30
4.1- Sử dụng trình duyệt Internet Explorer truy nhập tới E-Shop 30
4.1.1-Tr-ờng hợp chứng chỉ của client và server ch-a bị huỷ bỏ 31
4.1.2-Tr-ờng hợp một trong hai chứng chỉ bị huỷ bỏ 33
4.2- Sử dụng trình duyệt Netscape truy nhập tới E-Shop 33
4.2.1-Tr-ờng hợp chứng chỉ của client và server ch-a bị huỷ bỏ 33
4.2.2-Tr-ờng hợp một trong hai chứng chỉ bị huỷ bỏ 36
Chương III. Sử chứng chỉ số với dịch vụ Mail 38
1. Giới thiệu 38
2. Đ-a chứng chỉ số vào Outlook 38
3. Sử dụng chứng chỉ số để xác thực và mã hoá th-điện tử trên Outlook 48
4. Cập nhật danh sách các chứng chỉ đã huỷ bỏ 57



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

e Protocol, nó nằm ngay bên trên SSL Record Layer.
Khi SSL client và SSL server bắt đầu một phiên liên lạc chúng cần thống nhất về
phiên bản của giao thức sẽ đ−ợc dùng, lựa chọn thuật toán mã hoá cho phiên liên
lạc, có thể có hay không việc xác thực lẫn nhau, và sử dụng thuật toán mã hoá
khoá công khai để sinh khoá chung cho phiên liên lạc đó.
Có thể mô phỏng giai đoạn thực hiện thiết lập phiên liên lạc bởi sơ đồ d−ới đây:
ServerClient
Change CipherSuit và kết thúc giai
đoạn Handshake
Client gửi certificate nếu đ−ợc yêu
cầu
Server gửi certificate và yêu cầu
Client gửi lại certificate nếu đ−ợc
thiết lập xác thực client
Thiết lập protocol version, ID phiên,
thuật toán mã hoá, ph−ơng pháp
nén, trao đổi giá trị random
Finished
ChangeCipherSpec
Finished
ChangeCipherSpec
Certificate Verify
Certificate
ServerHelloDone
Certificate Request
Certificate
ServerHello
ClientHello
Tất cả các messages trao đổi qua lại giữa server và client phải đ−ợc biểu diễn
theo một cấu trúc định tr−ớc. Định dạng của cấu trúc dữ liệu trong giai đoạn
handshake nh− sau:
5
enum {
hello_request(0),client_hello(1),server_hello(2),certificate(11),
server_key_exchange(12),certificate_request(13),
server_hello_done(14),certificate_verify(15),
client_key_exchange(16),finished(20),(255)
}
struct {
HandshakeType mstype;
uint24 length;
select (HandshakeType) {
case hello_request: HelloRequest;
case client_hello: ClientHello;
case server_hello: ServerHello;
case certificate: Certificate;
case server_key_exchange: ServerKeyExchange;
case certificate_request: CertificateRequest;
case server_hello_done: ServerHelloDone;
case certificate_verify: CertificateVerify;
case client_key_exchange: ClientKeyExchange;
case finished: Finished;
}
Cụ thể quá trình thực hiện SSLv3 Handshake qua các b−ớc trao đổi dữ liệu
giữa client/server nh− sau:
• Hello Messages.
-Khi một client có nhu cầu kết nối tới server, server sẽ gửi một message gọi là
Hellorequest tới client đó. D−ới đây là định dạng của gói Hellorequest:
struct { } Hello;
-Nhận đ−ợc helllorequest, Client gửi clienthello gồm: protocol version, một giá
trị random, Session ID, danh sách các thuật toán mã hoá, danh sách các mode
nén dữ liệu. định dạng của gói clienthello:
struct {
uint32 gmt_unix_time;
opaque random_bytes[28];
}
opaque SesionID;
uint8 CipherSuite[2];
enum {null(0),(255)} CompressionMethod;
struct {
ProtocolVersion client_version;
Random random;
SessionID session_id;
CipherSuite cipher_suites;
CompressionMethod compression_methods;
} ClientHello;
Trong đó:
random_bytes: 28 byte sinh từ bộ sinh random.
6
gmt_unix_time: thời gian hiện hành.
client_version: phiên bản SSL clietn dùng.
session_id: số ID của phiên liên lạc
cipher_suites: danh sách các thuật toán mã hoá client có.
compression_methods: danh sách các thuật toán nén client có.
-Sau khi nhận đ−ợc clienthello, server sẽ gửi trả lời bằng gói dữ liệu gọi là
serverhello gồm protocol version, giá trị sinh ngẫu nhiên, Session ID, danh sách
các thuật toán mã hoá trong danh sách clienthello mà nó có và các chế độ nén.
Định dạng của gói ServerHello:
struct {
ProtocolVersion server_version;
Random random;
SesionID sesion_id;
CipherSuite cipher_suite;
CompressionMethod compression_method;
}ServerHello
Trong đó một số tham số cần chú ý sau:
cipher_suites: một thuật toán mã hoá đ−ợc chọn từ danh sách các thuật
toán của client gửi sang.
compression_methods: một thuật toán nén đ−ợc chọn trong các thuật toán
client gửi sang.
• Server Certificate
Server gửi tiếp server certificate (có cả danh sách các chain certificate, cũng có
thể là null trong tr−ờng hợp server không có certificate). Định dạng của gói
Certificate:
opaque ASN.1Cert
struct {
ASN1.Cert certificate_list;
}Certificate;
• Server Key Exchange message
Trong tr−ờng hợp không có certificate, hay có certificate nh−ng chỉ sử dụng để
ký (DSS certificate, signing-only RSA certificate) hay FORTEZZA KEA key
exchange đ−ợc dùng, server sẽ gửi ServerKeyExchange:
struct{
select(KeyExchangeAlgorithm){
case diffie_hellman:
ServerDHParams params;
Signature signature_params;
case rsa:
ServerRSAParams params;
Signature signature_params;
case fortezza_kea:
ServerFortezzaParams params;
};
7
}ServerKeyExchange;
Chú ý:
-Biến params là một kiểu cấu trúc trong đó l−u các tham số thực hiện thực hiện
một thuật toán trao đổi khoá công khai nào đó. Chẳng hạn với Diffie-Hellman
params gồm p, g, và tham số khoá công khai của server g^x mod p.
-Signature ở đây chỉ là một cấu trúc chỉ ra thuật toán băm và kết quả sử dụng
hàm băm các giá trị random của client, server và params của server. Chẳng hạn
với dsa:
Signature là SHA(ClientHello.random + ServerHello.random +
ServerParams).
• Certificate Request
Sau đó Server sẽ gửi tiếp CertificateRequest với định dạng nh− sau:
struct {
ClientCertificateType certificate_types ;
DistinguishedName certificate_authorities ;
} CertificateRequest;
Trong đó ClientCertificateType liệt kê các kiểu certificate (rsa_sign, dss_sign, ...)
mà server có thể chấp nhận. DistinguishedName là danh sách các DN của các
certificate đ−ợc server chấp nhận là certificate authority (CA certificate).
• Server hello done
Đây là message thông báo hết giai đoạn gửi serverhello, định dạng của goi này
nh− sau:
struct{ } ServerHelloDone;
• Client certificate
Client chỉ đ−ợc phép gửi gói dữ liệu này sau khi đã nhận đ−ợc gói
ServerHelloDone và nó cũng chỉ đ−ợc gửi nếu server có yêu cầu certificate. Nếu
không có một certificate nào t−ơng ứng với một trong các kiểu certificate, và do
một CA nào đó trong CertificateRequest server gửi cho thì client sẽ gửi thông
báo no_certificate, khi đó tuỳ từng trường hợp vào việc có yêu cầu hay không yêu cầu xác
thực client mà server đ−a ra khuyến cáo hay báo lỗi trong quá trình handshake.
Tr−ờng hợp nếu client có certificate nó sẽ đ−ợc gửi trong gói có định dạng
certificate chúng tui đã nêu ở trên.
• Client key exchange message
Gói này đ−ợc gửi từ client với định dạng nh− sau:
struct {
select (KeyExchangeAlgorithm) {
case rsa: EncryptedPreMasterSecret;
case difie_hellman: ClientDiffieHellmanPublic;
case fortezza_kea: FortezzaKeys;
}
}ClientKeyExchange;
Trong đó:
8
- Nếu rsa đ−ợc chọn EncryptedPreMasterSecret sẽ là kết quả mã hoá khoá công
khai RSA (với các tham số khoá của server) của đầu vào là 48 byte (46 byte
random sinh bởi client, 2 byte chỉ phiên bản cao nhất của giao thức mà client
đ−ợc support)
- Nếu DH đ−ợc chọn, ClientDiffieHellmanPublic là thành phần công khai của
client (g^y mod p).
- Nếu fortezza_kea đ−ợc chọn, FortezzaKey là một cấu trúc chỉ ra đầy đủ các
thành cần cho cho việc thiết lập khoá riêng của phiên liên lạc đó.
• Certificate verify
Đây là gói dữ liệu thông báo quá trình xác thực lẫn nhau giữa client và server.
• Finished
Kết thúc giai đoạn Handshake (gói dữ liệu này chỉ đ−ợc trao đổi ngay sau khi
quá trình thống nhất thuật toán mã hoá kết thúc).
2.3-Change cipher spec và Alert protocol
• Change cipher spec protocol
Giao thức này chỉ bao gồm một message trong đó thực hiện chức năng thông báo
việc thiết lập các thuộc tính mật mã cho phiên liên lạc đã hoàn thành. Message
này chỉ có một byte duy nhất với giá trị là 1.
struct{
enum{change_cipher_Spec(1),(255)} type;
}ChangeCipherSpec;
Change cipher spec message đ−ợc gửi từ cả máy client lẫn máy server để thông
báo cho bên nhận biết bắt đầu từ các frame dữ li
 

Các chủ đề có liên quan khác

Top