Home » NETWORKING

Category Archives: NETWORKING

Implementing Cisco Enterprise Wireless Networks (ENWLSI)

CCNA-Implementing and Administering Cisco Solutions

CCNAv7

Networking 101 – Fundamentals

[TCP/IP] HTTPS Session

Hình trên và các bước giải thích dưới đây sẽ cung cấp một ví dụ dễ hiểu, không đi sâu vào kỹ thuật, nhưng vẫn đảm bảo chi tiết và chính xác về thiết lập phiên HTTPS.

Các bước từ A đến I mô tả hoạt động giữa ngân hàng Blue Bank và nhà cung cấp dịch vụ chữ ký số VeriSign.

Các bước từ 1 đến 11 mô tả giao dịch giữa người dùng (HTTPS client) và ngân hàng (Blue Bank server).

  • Bước A: Với vai trò là một CA gốc (root CA), máy chủ VeriSign đã tạo một cặp khóa (VS Pub Key – khóa công khai, VS Priv Key – khóa riêng). VeriSign sử dụng VS Priv Key để ký vào VS Pub Key của mình và tạo ra chứng thư số gốc (Root certificate, CA certificate) – đây được gọi là chứng thư số tự ký (self-signed certificate). (Việc ký chứng thư số sẽ được đề cập trong Bước E.) Lưu ý, các tổ chức lớn và quan trọng như VeriSign không dùng chứng thư gốc cao nhất của họ để ký chứng thư khách hàng mà sẽ sử dụng hệ thống phân cấp của các CA.
  • Bước B: Để bắt đầu cung cấp dịch vụ ngân hàng trực tuyến, Blue Bank chọn VeriSign làm máy chủ CA công khai (public CA server). Máy chủ của Blue Bank cần thu được chứng thư số gốc của VeriSign. (Việc tạo chứng thư số sẽ được đề cập trong bước D). Rất có thể máy chủ của Blue Bank đã cài đặt chứng thư này trên đó. Máy tính để bàn và các hệ điều hành máy chủ phổ biến, chẳng hạn như của Microsoft, đã được cài đặt chứng thư CA này trên hệ thống. Các bạn có thể xem nội dung của các chứng thư gốc đáng tin cậy đã được cài đặt, bằng cách mở Control pannel/Manage user certificates sau đó chọn các mục bên trong để xem.

  • Bước C: Blue Bank tạo một cặp khóa (BB Pub Key – khóa công khai, BB Priv Key – khóa riêng).
  • Bước D: Blue Bank gửi khóa công khai (BB Pub Key) cho VeriSign để yêu cầu xác nhận và tạo chứng thư số cho mình.
  • Bước E: VeriSign tiến hành tạo chứng thư số cho Blue Bank bằng cách thêm vào BB Pub Key các trường thông tin như phiên bản định dạng, số nhận diện, loại thuật toán băm, nhà phát hành, thời hạn, đối tượng phát hành, v.v.
  • Bước F: VeriSign tiến hành băm (hash) một số trường (X509v, Cert Serial#, Hash, Issuer, Validity, Subject Name, Blue Bank Pub Key) của chứng thư số Blue Bank và tạo ra một mã băm (digest, hash value, message digest). Lưu ý: giá trị này không phải chữ ký số.
  • Bước G: VeriSign mã hóa mã băm (digest) ở bước F bằng khóa riêng (VS Priv Key) và tạo ra một chữ ký số (digital signature); như vậy định nghĩa về chữ ký số là: một mã băm được mã hóa bằng một khóa riêng.
  • Bước H: Chứng thư số Blue Bank đã được tạo ra. Nó là khóa công khai (BB Pub Key) được xác nhận và ký bởi CA. Như vậy, khóa công khai là dữ liệu trong chứng thư số.

  • Bước I: Blue Bank cài đặt chứng thư số của mình, đó là BB Pub Key, đã được ký bởi CA VeriSign.

Bây giờ, là một khách hàng của Blue Bank, bạn sử dụng laptop để mở một phiên giao dịch trực tuyến.

  • Bước 1: Laptop của bạn đã được cài chứng thư số gốc của CA VeriSign. Nếu máy chủ mà bạn muốn mở một phiên SSL có chứng thư số được cấp bởi một CA không quen thuộc, bạn cần tải và cài đặt chứng thư gốc vào máy tính của mình. Trong ví dụ đang xem xét, laptop chạy một hệ điều hành phổ biến và đã có một bản sao của chứng thư số gốc VeriSign trong kho chứng thư của mình.
  • Bước 2: Bạn dùng trình duyệt truy vấn máy chủ của Blue Bank để xem nó có chấp nhận các phiên HTTPS hay không.
  • Bước 3: Vì Blue Bank chấp nhận các phiên SSL, máy chủ sẽ gửi một bản sao chứng thư số của nó tới laptop của bạn. Trên thực tế, việc gửi bản sao chứng thư số của Blue Bank chỉ xảy ra lần đầu tiên khi bạn kết nối với máy chủ của ngân hàng. Sau đó, máy chủ và máy khách sẽ chỉ kiểm tra xem có đang sử dụng đúng số nhận diện (serial number) của chứng thư số hay không (đây là một trong các trường ở Bước E). Khi Blue Bank đưa chứng thư mới vào sử dụng, có thể vì chứng thư trước đó đã hết hạn hoặc vì khóa đã bị xâm phạm, nó sẽ yêu cầu laptop cung cấp số chứng thư (certificate number) mà laptop chưa biết đến. Trong trường hợp đó, máy chủ của Blue Bank sẽ gửi chứng thư mới cho laptop mà bạn đang sử dụng.
  • Bước 4: Máy khách tiến hành xác thực chứng thư số của Blue Bank. Nó kiểm tra thời hạn và tên của tổ chức phát hành. Bởi vì khách hàng đã biết về bên phát hành chứng thư, trong trường hợp này là VeriSign, nên sẽ tiến hành xác thực chữ ký số. Để thực hiện, trước tiên máy khách băm các trường có trong chứng thư số của Blue Bank để nhận một mã băm (digest).
  • Bước 5: Tiếp tục với việc xác thực chứng thư số của Blue Bank, khách hàng sẽ giải mã chữ ký gốc được tạo bởi khóa riêng (VS Priv Key) của VeriSign (bước G). Để thực hiện, khách hàng sử dụng khóa công khai (VS Pub Key) của VeriSign có được ở Bước 1. Nếu mã băm tính toán ở Bước 4 khớp với kết quả giải mã chữ ký số ở Bước 5, thì khách hàng biết chắc chắn hai điều: tổ chức phát hành (bên cung cấp chữ ký số) thực sự là VeriSign và không ai làm giả nội dung của chứng thư. Tính xác thực của chứng thư được chứng minh bằng việc khách hàng đã giải mã thành công chữ ký bằng VS Pub Key, có nghĩa là chữ ký được tạo ngay từ đầu bằng VS Priv Key. Và ai có khóa riêng của VeriSign? Chỉ VeriSign – và VS Priv Key được bảo vệ nghiêm ngặt.
  • Bước 6: Mục tiêu cuối cùng của máy khách là có một phiên HTTPS với máy chủ, như được hiển thị trong Bước 12. Phiên HTTPS này sẽ sử dụng thuật toán mã hóa đối xứng vì nó nhanh hơn nhiều so với bất đối xứng. Ở giai đoạn này, máy khách và máy chủ phải đồng ý về thuật toán mã hóa sẽ sử dụng cho phiên được mã hóa trong Bước 12. Giả sử, máy khách và máy chủ đồng ý sử dụng thuật toán mã hóa RC4-128 (Rivest Cipher , 128-bit) và sẽ tiếp tục trao đổi thông tin cần thiết khác.
  • Bước 7: Là một phần của quá trình tạo ra khóa mã hóa đối xứng sẽ sử dụng trong Bước 12, máy khách tạo ra một giá trị tại phiên giao dịch này (sesion value). Đây là giá trị tạo ra trước và có vai trò chính (pre-master value) trong việc hoàn thiện tính toán khóa đối xứng được sử dụng bởi máy chủ và máy khách.
  • Bước 8: Giá trị phiên (session value, pre-master value) cần được chia sẻ bí mật với máy chủ, vì vậy máy khách mã hóa nó bằng khóa công khai (BB Pub Key) của máy chủ Blue Bank, chính là khóa được tìm thấy cùng với chứng thư số Blue Bank đã nhận ở Bước 3.
  • Bước 9: Giá trị phiên (session value, pre-master value) đã mã hóa và được gửi đến máy chủ của Blue Bank.
  • Bước 10: Sử dụng khóa riêng của mình (BB Priv Key), máy chủ của Blue Bank có thể giải mã dữ liệu mà nó vừa nhận được từ máy khách và thu được giá trị phiên (session value). Đây là giá trị sẽ được sử dụng để chế tạo khóa mã hóa đối xứng.
  • Bước 11: Lúc này, cả máy khách và máy chủ có cùng một giá trị phiên (session value) và tất cả các giá trị cần thiết khác để tạo ra khóa phiên (session key) giống nhau. Giá trị khóa này được tính toán độc lập ở hai phía và chính là khóa đối xứng sẽ được sử dụng cho phiên giao dịch SSL giữa khách hàng và ngân hàng.
  • Bước 12: Đường hầm (tunnel) SSL xuất hiện. Chỉ khi đó, một số trình duyệt sẽ hiển thị ổ khóa gần thanh địa chỉ (URL bar), và chỉ khi đó Blue Bank sẽ hiển thị trang đăng nhập để yêu cầu bạn cung cấp số thẻ ngân hàng và mật khẩu của mình.

Khi máy khách đăng xuất khỏi phiên giao dịch theo đúng cách hoặc khi phiên hết thời gian chờ (time out), máy khách và máy chủ sẽ đều loại bỏ khóa phiên đã tạo ở Bước 11.

Nguồn: Implementing Cisco IOS Network Security (IINS) Foundation Learning Guide, Second Edition