Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 05-01-2010, 10:19 AM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Dùng certificate để verify Webserver và mã hóa dữ liệu trao đổi trên Web HTTPS

Dùng certificate để verify Webserver và mã hóa dữ liệu trao đổi trên Web HTTPS


1. SSL là gì ?

Client vào trang web của www.amazon.com để mua sách và trả tiền bằng thẻ tín dụng. với protocol HTTP chạy ở port 80, mọi thông tin gửi và nhận trên đường truyền đều ở dạng clear text. Nhưng trên Internet có vô số kẻ xấu, luôn rình rập đẻ sniff các thông tin (capture hòng lấy được user name, password, số credit card…). Vì vậy, trong các giao dịch trên internet, cụng là web nhưng phải mã hóa dữ liệu. lúc đó sẽ sử dụng HTTPS chạy ở port 443, và phải có key để mã hóa.





Có ba cơ chế phát sinh key đã biết :

- Preshared key : không dùng được trong trường hợp này, vì client và Amazon là 2 người xa lạ.

- Kerberos : càng không được vì client và Amazon không ở cùng một domain.

- Certificate Authority (CA) : dường như là tốt, nhưng thật ra là dư. Dư vì nếu dùng certificate, hai bên có thể verify lẫn nhau. ở đây đang chỉ có nhu cầu verify một chiều – tức chỉ có client đang cần verify Webserver xem có đúng là Amazon không, trước khi dùng key nào đó mã hóa các thông tin nhạy cảm để gởi đi.





Công ty Netspace đã cung cấp một tiêu chuẩn mã hóa dữ liệu dùng trong trường hợp này. Đó là SSL (Secure Socket Layer). Trong SSL, giả định rằng chỉ cần server có certificate là đủ, client không cần.

Nhưng nếu client không có certificate, làm sao hai bên trao đổi key được ? Quá trình trao đổi key diễn ra trong 6 bước :

B1. Client chủ động phát sinh một “Key”.

B2. Client yêu cầu Webserver gửi certificate của Webserver.

B3. Nhận được certificate của Webserver, client kiểm tra tính toàn vẹn của public key “pa”.

B4. Nếu “pa” còn tốt, client đem “Key” mã với “pa”, ra được “Cipher”.

B5. Client gửi “Ciper” cho Webserver.

B6. Webserver dùng private key “qa” của mình để giải mã “Cipher” ra lại “Key”.

Nói cách khác, SSL (Secure Socket Layer) là loại CA đặc biệt, verify một chiều. Sáu bước vừa trình chỉ để hiểu bản chất vấn đề. Trong thực tế, để chạy được SSL, Webserver chủ cần đi xin sẵn một certificate là đủ. Còn đối với client, gần như là trong suốt, cứ việc gõ https thay vì http hoặc người Administrator có thể cấu hình redirect sẵn trên webserver, client chỉ việc gõ http là vào https .

2. Bài LAB

- Cài đặt IIS (Internet Information Services) và tạo trang web defauft, truy cập bằng http://localhost/ bình thường. Nhưng truy cập theo https://localhost/ sẽ không được.

- Đi xin certificate cho Webserver : chạy IIS Manager, vào Web Sites, chọn Default Web Site Properties – tab Directory Security – mục Secure Commnunications – Nút Server Certificate và làm theo wizzard.

- Sau khi xin certificate thì xem lại bằng nút View Certificate.

- Client truy cập lại trang web default bằng https://localhost/ sẽ có thông báo về security nhưng không quan trọng, chọn nút Yes sẽ truy cập tốt.

Trong thực tế, client có thể chọn nút View Certificate để xem certificate của Webserver, nhất là xem Root CA. Nếu Root CA của Webserver chưa nằm trong trusted list, client phải add certificate của Root Ca vào trusted list bằng tay. Lúc đó, nếu đúng là Webserver tin tưởng được thì chọn nút Yes để tiếp tục trao đổi thông tin.

(src: DaoDuyHieu's Blog)



  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 12:25 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.