Chương 7. Thanh toán trực tuyến dùng thẻ tín dụng
7.4. Giao dịch an toàn SSL
First Virtual đã sử dụng m t bi n pháp bán b o m t mà không sử dụộ ệ ả ậ ng các thu t toán mã ậ hoá. Một phương án tiếp cận khác là tạo ra một kết nối an toàn, để các thông tin về thẻ tín dụng có thể được chuyển trực tiếp trên mạng. Để có th thể ực hiện được, có 2 yêu cầu cơ bản v dịch ề vụ bảo mật được đặt ra. Th nh t, c n ph i có phương ti n mã hoá truyền thông giữa khách hàng ứ ấ ầ ả ệ tới người bán để các thông tin về thẻ tín dụng không bị chặn lấy. Những người bán phải được xác thực theo một cách nào đó để nh ng kẻ ấữ t n công không thể mạo danh là người bán để lấy các thông tin về thẻ đ ó.
Các dịch vụ bảo m t k trên có th được cung c p b ng vi c s dụậ ể ể ấ ằ ệ ử ng l p mã hoá bảo mật ớ SSL (secure socket layer). SSL là một giao thức được thiết kế để bảo m t gi a các ứng d ng sậ ữ ụ ử dụng cơ chế bảo m t “socket”. Giao thức này ậ được phát triển bởi Netscape Corporation năm 1994, và dù có bản quyền nhưng Netscape lại quy t định vi c s dụế ệ ử ng SSL là mi n phí. SSL ã ễ đ trở thành một chuẩn mới cho bảo mật tầng giao vận (TLS).
Các thành phần tham gia trao đổi SSL bằng cách sử dụng các ch ng ch (certificate), ứ ỉ những chứng chỉ này gắn tên (định danh) với một khoá công khai. Không có một phân cấp lược đồ tin cậy nào, các ph n mềầ m tham gia h i tho i SSL ph i được kh i t o v i m t ch ng ch của ộ ạ ả ở ạ ớ ộ ứ ỉ tổ chức cấp chứng chỉ tin cậy. Hầu h t các Web server và trình duyệt web ngày nay đều hỗ trợ để ế thực thi các hội thoại SSL.
Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 93 Người bán muốn sử dụng SSL trước h t ph i xin gi y chứng nhậế ả ấ n t tổừ ch c c p phát ứ ấ chứng chỉ để được cấp một chứng chỉ X.509 cho định danh của h cũọ ng nh quy n s hữu tên ư ề ở miền Internet. Chứng chỉ này đi kèm với khoá riêng (private key) được cấu hình trên web server trước khi thực hiện các giao dịch SSL. Các phần mềm trình duyệt web thường được cấu hình trước để chấp nh n (tin c y) m t s ch ng ch t mộ ốậ ậ ộ ố ứ ỉ ừ t s nhà cung c p. Danh sách các thành viên ấ thứ 3 này có thể được thay đổi nếu cần thiết. Các chứng chỉ này là cơ ở s tin cậy để các giao dịch SSL được thực hiện, cho phép một trang Web của người bán tự xác nhận định danh của mình với khách hàng.
Giao thức SSL là trong suốt đối vớ ứi ng dụng. Khi cả hai bên đều được triển khai SSL thì dữ liệu c a ng d ng ủ ứ ụ được chuy n qua m t “socket bảo mật” cũng gi ng nhể ộ ố ư khi chuyển qua một socket thông thường. Các ứng dụng về bảo mật hoàn toàn có thể chạy song song với các ứng dụng không bảo mật. Ví dụ, tại cổng 80 máy chạy ứng dụng Web server không bảo mật, cùng lúc tại cổng 443 một chương trình tương tự ẻ ụ s d ng k t n i qua SSL. ế ố
Hình 7-4. mô tả các thành phần cơ ả b n của giao thức SSL. Khi kết nối socket cho giao thức SSL được thiết lập, thủ tục b t tay Hanshake th c hi n các bước đầắ ự ệ u tiên thi t l p định danh để ế ậ của các bên và trao đổi các tham số mã hoá cho phiên kế tiếp. Sau đó dữ liệu ứng dụng được tính toán cùng với các tham số và chuyể ởn dạng các gói Application_Data thông qua các k t n i ế ố socket bên dưới. Nếu có nhu cầu thay đổi các tham số mã hoá trong phiên làm việc thì khối Change_Cipher tham gia thực hiện. Tương t n u có b t k v n đề tr c tr c nào x y ra giao thức ự ế ấ ỳ ấ ụ ặ ả cảnh báo Alert sẽ đảm nhiệm.
Hình 7-4: Các thành phần chính trong SSL
Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 94 Trong thủ tục b t tay có r t nhi u tu ch n ph thu c vào ch khách hàng, máy ch hay là ắ ấ ề ỳ ọ ụ ộ ỉ ủ cả hai cần phải xác thực cũng như phụ thuộc vào cả việc thuật toán mã hoá nào sẽ được sử dụng.
Hình 7-5 mô tả một quá trình b t tay i n hình: ắ đ ể
Hình 7-5: Các trao đổi chính trong thủ ụ t c bắt tay
Sau khi thủ ụ t c bắt tay kết thúc, các tiến trình trên máy chủ và máy khách hàng được thông báo kết nối socket đã hoàn tất, quá trình chuyển dữ liệu bắt đầu. Dữ liệu được óng gói trong các đ đơn vị Application_Data (các đơn vị ữ ệ d li u thay khác nhau tuỳ thuộc mã hoá sử ụ d ng).
Hình 7-6 mô tả cách thức dữ liệu của người sử ụ d ng được phân mảnh ra các đ ạo n 214 bytes (16 KB). Nếu như cả 2 bên tham gia đồng ý s dụử ng nén thì các o n được nén theo thu t toán đ ạ ậ thoả thuận trước khi xử lý. Tuỳ thuộc vào thuật toán mã hoá sử dụng, người g i có 2 l a ch n. ử ự ọ Một là tạo ra một đơn vị dữ ệ li u GenericStreamCipher g i d li u dạử ữ ệ ở ng hi n kèm v i MAC ệ ớ hoặc là GenericBlockCipher trong đó dữ liệu được mã hoá toàn bộ cùng với MAC đính kèm. Độ dài của trường MAC phụ thuộc thuật toán sử dụng. M t cách tương tự trường PAD được thêm ộ vào để kích thước của GenericBlockCipher có độ lớn phù hợp thuật toán.
Luận Văn Cao học Ngành Công Nghệ Thông Tin - ĐH Bách Khoa Hà Nội 95 Hình 7-6: Đóng gói d liệu ữ