3. Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀI
3.2. AN NINH LỚP TRUYỀN TẢI VÔ TUYẾN (WTLS)
3.2.1. Tổng quan.
Giao thức an ninh lớp truyền tải trên vô tuyến WTLS là phiên bản “di động và không dây” của giao thức TLS, sử dụng giao thức UDP như là một môi trường truyền thông. WTLS được thiết kế và tối ưu cho các băng thông thấp hơn, các tiến trình nhỏ hơn với các thiết bị di động cho phép dùng WAP. Đây là cải tiến của giao thức TLS (Tiêu chuẩn IETF cho an ninh trên Internet). TLS không thể sử dụng trực tiếp vì nó không hiệu qủa cho môi trường vô tuyến. WTLS tăng thêm hiệu quả của giao thức và bổ sung thêm nhiều khả năng cho những người sử dụng vô tuyến. WTLS được đưa ra cùng giao thức WAP 1.1 bởi WAP Forum. Tuy nhiên, sau khi giao thức WAP 2.0 được giới thiệu, WTLS bị thay thế bởi một phiên bản nguyên trạng của TLS với mức an toàn cao hơn. Nó không cần phải giải mã hay mã hoá lại lưu lượng tại cổng vào của WAP (WAP gateway).
Trước tiên, ta sẽ tìm hiểu về SSL/TLS được áp dụng cho các giao dịch internet thông thường để thấy được sự giống nhau và khác nhau giữa chúng với WTLS.
3.2.2. SSL
SSL (Secure Sockets Layer - Lớp các khe cắm bảo mật) là một giao thức được phát triển bởi Netcape cho quá trình truyền các văn bản nội bộ qua Internet. SSL sử dụng một hệ thống mật mã với hai phần khác nhau để mã hoá dữ liệu, một là Public Key được cung cấp cho mọi người và một là Private Key được bảo mật và chỉ cung cấp cho người nhận dữ liệu. Hiện nay cả Netcape và Internet Explore đều hỗ trợ cơ chế bảo mật SSL, và rất nhiều trang Web cũng sử dụng giao thức này để bảo mật thông tin quan trọng cho các cá nhân, hay các thông tin về thẻ tín dụng được truyền trên Internet. Bằng việc truy cập thông qua các địa chỉ URLs cần một kết nối SSL bắt đầu với https: thay vì http:
SSL là một giao thức được mở, không chỉ là giao thức chỉ được thiết kế bởi Netcape, là một giao thức phổ biến nhất trong việc cung cấp mã hoá dữ liệu được truyền giữa các Web Browers và các Web Server với HTTP-S được chạy. Được xây dựng với Private Key với công nghệ mã hoá, SSL cung cấp khả năng mã hoá dữ liệu, xây dựng các máy chủ xác thực, bảo toàn các gói tin trên mạng, và các Client được xác thực thông qua kết nối TCP/IP.
Với các ứng dụng to lớn, SSL cung cấp các dịch vụ cho phép tạo một kênh an toàn giữa các Web Brower và Web Server. Thật may mắn, hiện nay cả Netscape và Microsoft đều triển khai SSL, và các nhà phát triển Web có thể sử dụng SSL để bảo mật các ứng dụng cũng như thông tin được truyền trên Internet.
SSL là giao thức được biết đến nhiều nhất về khả năng bảo mật và độ tin cậy trong giao dịch khách - chủ (client-server) trên mạng Internet. Bản thân SSL được dựa trên các khái niệm khá đơn giản. Nó sắp xếp các thuật toán mã hoá và khoá giữa 2 lần gửi - nhận của một giao dịch. Sau đó thiết lập một đường dẫn ảo đã được mã hoá thông qua các giao thức khác (như HTTP). SSL cũng có thể thẩm định cả hai chiều của giao dịch thông qua việc dùng các “chứng chỉ” (certificate).
SSL là giao thức theo tầng (layered protocol), bao gồm 4 giao thức con sau:
• Giao thức SSL Handshake
• Giao thức SSL Change Cipher Spec
• Giao thức SSL Alert
Hình 3.7. Các giao thức con của SSL trong mô hình TCP/IP
Theo hình 3.7, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security Protocol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT (Network Address Translation Bộ phiên dịch địa chỉ mạng) mà không cần bất cứ sự hỗ trợ thêm nào.
Giao thức bản ghi SSL (SSL Record Protocol)
SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu. Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tọa một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte.
Các bước khác nhau của SSL Record Protocol vốn đi từ một đoạn dữ liệu thô đến một bản ghi SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSL Ciphertext (bước mã hóa). Sau cùng, mỗi bản ghi SSL chứa các trường thông tin sau đây:
- Loại nội dung;
- Số phiên bản của giao thức; - Chiều dài;
- Tải trọng dữ liệu (được nén và được mã hóa tùy ý); - MAC.
Loại nội dung xác định giao thức lớp cao hơn vốn phải được sử dụng để sau đó xử lý tải trọng dữ liệu bản ghi SSL (sau khi giải nén và giải mã hóa thích hợp)
Số phiên bản của giao thức xác định phiên bản SSL đang sử dụng (thường là v3.0).
Mỗi tải trọng dữ liệu bản ghi SSL được nén và được mã hóa theo phương thức nén hiện hành và thông số mật mã được xác định cho session SSL
Lúc bắt đầu mỗi session SSL, phương pháp nén và thông số mật mã thường được xác định là rỗng. Cả hai được xác lập trong suốt quá trình thực thi ban đầu SSL Handshake Protocol. Sau cùng, MAC được thêm vào mỗi bản ghi SSL. Nó cung cấp các dịch vụ xác thực nguồn gốc thông báo và tính toàn vẹn dữ liệu.
Giao thức bắt tay SSL (SSL Handshake Protocol)
SSL Handshake Protocol là giao thức con SSL chính được xếp lớp trên SSL Record Protocol. Do đó, các thông báo thiết lập kết nối SSL được cung cấp cho lớp bản ghi SSL. Tại đây, chúng được chứa trong một hoặc nhiều bản ghi SSL. Mục đích của SSL Handshake Protocol là yêu cầu một client và server thiết lập và duy trì thông tin trạng thái vốn được sử dụng để bảo vệ các cuộc liên lạc. Cụ thể hơn, giao thức phải yêu cầu client và server chấp thuận một phiên bản giao thức SSL chung, chọn phương thức nén và thông số mật mã, tùy ý xác thực nhau và tạo một khóa mật mã chính.
Sau khi sự thiết lập SSL hoàn tất, một nối kết an toàn được thiết lập giữa client và server. Nối kết này bây giờ có thể được sử dụng để gởi dữ liệu ứng dụng. Dữ liệu ứng dụng có thể được phân đoạn, được nén, hoặc được mã hóa và đước xác thực theo SSL Record Protocol cũng như thông tin trạng thái session và vừa được thiết lập.
SSL Handshake Protocol có thể được rút ngắn nếu client và server quyết định tiếp tục lại một session SSL được thiết lập trước đó (và vẫn được lưu trữ) hoặc lặp lại một session SSL hiện có. Trong trường hợp này, Server và Client chỉ cần dùng giao thức Giao thức thay đổi mật mã SSL (SSL ChangeCipherSpec Protocol) dể thay đổi mật mã của phiên SSL mới.
Giao thức cảnh báo SSL (SSL Alert Protocol)
Được sử dụng để chuyển các cảnh báo thông qua SSL Record Protocol. Mỗi cảnh báo gồm 2 phần, một mức cảnh báo và một mô tả cảnh báo.
Giao thức thay đổi mật mã SSL (SSL ChangeCipherSpec Protocol)
Được sử dụng để thay đổi giữa một thông số mật mã này và một thông số mật mã khác. Mặc dù thông số mật mã thường được thay đổi ở cuối một sự thiết lập quan hệ SSL, nhưng nó cũng có thể được thay đổi vào bất kỳ thời điểm sau đó.
Máy Khách chào
Tôi muốn thiết lập một kết nối an toàn Tôi hỗ trợ SSL version [này] và mật mã [này]
Máy Chủ chào
Tôi đồng ý yêu cầu. Tôi chọn SSL version [này] và các mật mã [này]
Các chứng nhận của máy chủ (tùy chọn) Trao đổi khóa máy chủ (tùy chọn)
Đây là khóa công khai của tôi (nếu tôi không có chứng nhận)
Yêu cầu chứng nhận máy khách (tùy chọn). Tôi cần nhận thực bạn, gửi cho tôi chứng nhận của bạn qua CA [này]
Máy chủ hoàn thành chào Chứng nhận của Máy Khách (tùy chọn)
Trao đổi khóa máy khách
Tôi sẽ gửi cho bạn các tham số, tôi mã hóa chúng bằng khóa công cộng của bạn. Xác minh chứng nhận (tùy chọn)
Thay đổi đặc tả mật mã
Các thông điệp tiếp theo sẽ mã hóa bằng mật mã này Máy khách hoàn thành (được mã hóa)
Thay đổi đặc tả mật mã
Các thông điệp tiếp theo sẽ mã hóa bằng mật mã này Máy chủ hoàn thành (được mã hóa)
Dữ liệu ứng dụng (được mã hóa) Dữ liệu ứng dụng (được mã hóa)
Hình 3.8.Từng bước thành lập một kết nối SSL
Hình 3.8 trình bày từng bước quá trình thiết lập kết nối SSL giữa máy khách (client – dùng một đường dẫn web browser) và máy chủ (server – dùng một SSL web server)
Giao thức con SSL quan trọng nhất là SSL Handshake Protocol. Tiếp theo giao thức này là một giao thức xác thực và trao đổi khóa vốn có thể được sử
dụng để thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một trong hai điểm cuối của một session hoặc nối kết SSL.
Quá trình thiết lập kết nối SSL bắt đầu bằng việc trao đổi các tham số mã hoá và sau đó xác nhận các server một cách tuỳ ý (dùng giao thức SSL Handshake). Nếu “bắt tay” (Handshake) thành công, cả hai chiều đều chấp nhận bộ mã hoá chung và các khoá mã hoá, thì dữ liệu ở tầng ứng dụng (thông thường dùng HTTP, nhưng cũng có thể là một giao thức khác) có thể được gửi thông qua đường hầm (tunnel) mã hoá (dùng SSL Record Layer).
Trong thực tế, tiến trình trên còn phức tạp hơn một chút. Để tránh những cái “bắt tay” không cần thiết, một số tham số mã hoá được giữ lại. Các thông báo được gửi đi. Bộ mã hoá cũng có thể được thay đổi. Tuy nhiên, bất chấp các đặc điểm kĩ thuật đó, cách thức phổ biến nhất của tiến trình này làm việc thực sự như trên.
Mặc dù SSL là giao thức được biết đến nhiều nhất và phổ biến nhất, nhưng nó không phải là giao thức duy nhất dùng cho mục đích an toàn và giao vận trong web. Cũng khá quan trọng để biết rằng, từ sau phát minh SSL v1.0 ra đời , có nhiều giao thức khác ra đời đóng vai trò quan trọng trong cải thiện và nâng cao khả năng an ninh truy cập World Wide Web.
- SSL v2.0
Phiên bản này được tạo ra bởi Netscape Communications năm 1994. Mục đích chính của giao thức này là cung cấp an toàn cho các giao dịch trên World Wide Web. Tuy nhiên, nhanh chóng sau đó người ta thấy một số yếu kém về an toàn trong phiên bản giao thức SSL này. Do đó làm cho nó kém tin cậy hơn khi dùng trong thương mại.
- Cấu trúc của MAC (Message Authentication Code ) yếu. - Không bảo vệ quá trình “bắt tay”
- Có khả năng những kẻ tấn công dùng kiểu cắt xén (truncation attack)
- PCT v1.0
Được phát triển bởi Microsoft vào năm 1995. PCT (Privacy Communication Technology ) v1.0 địa chỉ hoá một số điểm yếu của SSL 2.0 và đặt ra mục tiêu là thay thế SSL. Tuy nhiên giao thức này đã không thu được kết quả phổ biến như là SSL v3.0.
Được phát hành vào năm 1996 bởi Netscape Communications. SSL v3.0 giải quyết hầu hết các vấn đề của SSL v2.0 và kết hợp rất nhiều thành phần của PCT. Nhanh chóng sau đó nó trở thành giao thức phổ biến nhất cho an toàn truyền thông trên World Wide Web cho tới ngày nay.
3.2.3. TLS
TLS v1.0 (được biết đến như là SSL v3.1) được đưa ra bởi IETF vào năm 1999 (RFC 2246). Giao thức này dựa trên SSL v3.0 và PCT. Cấu trúc của TLS cũng bao gồm các thành phần với cách hoạt động giống như trong SSL.
TLSv1.0 cân bằng cả hai cách thức của Netscape và Microsoft. Cũng cần chú ý rằng, mặc dù TLS dựa trên SSL, nhưng nó không phải là phiên bản sau tương thích 100% với các bản trước nó. IETF đã thực hiện môt số cải tiến về an toàn. Chẳng hạn như dùng HMAC thay vì MAC, dùng phép tính toán khác trong bảo mật của máy chủ và khoá (key), thêm các bộ chỉnh sửa, không hỗ trợ bộ mã hoá Fortezza , v.v… Kết quả của những nâng cấp này là các giao thức không hoạt động được một cách đầy đủ. Cuối cùng TLSv1.0 cũng rơi vào lãng quên so với SSL v3.0.
3.2.3. WTLS
Các ứng dụng trên Web yêu cầu một sự kết nối an toàn giữa máy Client và máy Server ứng dụng. WTLS là giao thức bảo mật để bảo đảm các giao dịch an toàn trên máy trạm WAP, WTLS được dựa trên các chuẩn giao thức bảo mật lớp truyền tải (Transport Layer Security –TLSv1.0), trước đây được biết là Secure Socket Layer (SSLv3.0).
WTLS được đánh giá cao cho việc sử dụng qua các kênh truyền thông băng hẹp. Nó bảo đảm tính toàn vẹn dữ liệu, sự riêng tư, tính xác thực và cơ chế bảo vệ sự phủ nhận dịch vụ. WTLS tận dụng các kỹ thuật thích nghi dành cho môi trường không dây. Ví dụ: các thủ tục bắt tay dành cho mạng không dây, tính tin cậy dữ liệu dành cho hoạt động qua các kênh mang tin datagram (datagram bearer).
Đối với các ứng dụng Web, các kỹ thuật bảo mật Internet tiêu chuẩn sử dụng SSL/TLS, WAP Gateway quản lý một cách tự động và trong suốt việc bảo mật không dây với một chi phí không đáng kể, nó cung cấp cơ chế bảo mật giữa các điểm cuối với nhau và bảo mật mức ứng dụng, bao gồm các facility (điều kiện) bảo mật dành cho khả năng mã hóa hay giải mã, việc xác thực, tính riêng tư (integrity) và quản trị khóa.
Hình 3.9 sau đây chỉ ra vị trí của WTLS trong mô hình kiến trúc WAP và bên trong kiến trúc WTLS với các giao thức WTLS khác nhau của nó.
Hình 3.9. WTLS trong kiến trúc WAP và các thành phần WTLS
Dưới đây là một số tính năng chính được bổ sung cho WTLS so với SSL/TLS:
Hỗ trợ các giải thuật mật mã khác: SSL/TLS chủ yếu sử dụng mật mã hóa RSA. WTLS hỗ trợ RSA, DH (Diffi-Hellman) và ECC (Elliptic curve Crytography), mã hóa đối xứng.
- Định nghĩa chứng nhận khóa công khai nén: Các chứng nhận WTLS. Đây là các phiên bản hiệu quả hơn của các chứng nhận X.509 định nghĩa bởi ITU-T.
- Hỗ trợ gói tin UDP: Tính năng này ảnh hưởng rất nhiều lĩnh vực của giao thức này (từ cách mật mã số liệu đến hỗ trợ thêm cho xử lý bản tin) để đảm bảo rằng các bản tin này không bị mất hoặc bị chuyển không theo thứ tự.
- Tùy chọn làm tươi khóa: Tùy chọn này được định kỳ đàm phán lại dựa trên số liệu bản tin được phát.
- Tập các cảnh báo mở rộng: tính năng này làm tăng thêm sự rõ ràng của xử lý lỗi.
- Toàn vẹn: dùng các mã nhận thực thông điệp MAC.
- Các bắt tay tối ưu: tính năng này giảm số lần truyền vòng cần thiết trong các mạng có thời gian trễ cao.
Ngoài các thay đổi trên, WTLS cũng đưa ra 3 mức nhận thực giữa client và cổng như:
- WTLS loại 1: Tương tác dấu tên giữa client và cổng WAP, không có nhận thực;
- WTLS loại 2: Server tự nhận thực với client sử dụng các chứng nhận WTLS ;
- WTLS loại 3: Client và cổng WAP nhận thực lẫn nhau. Đây là dạng nhận thực bằng các thẻ thông minh. SIM chẳng hạn có thể lưu các chi tiết nhận thực trên thiết bị để nhận thực hai chiều.
3.2.3.1. Các mục tiêu tầng WTLS
Mục tiêu chính là để cung cấp cơ chế bảo mật giữa Client và Server về:
- Tính riêng tư (Privacy): Dữ liệu gửi đi không được xuất hiện trong văn bản rõ ràng (clear text) để không dễ dàng gì với người sử dụng mạng khác khi xem dữ liệu. Việc này được hoàn thành thông qua việc mã hóa dòng dữ liệu.
- Tính toàn vẹn dữ liệu (Data integrity): Nếu người sử dụng mạng có khả năng thay đổi dữ liệu đã gửi, việc này phải được biết bởi Client hay Server đã gửi dữ liệu. Nó được hoàn thành thông qua các luật của thông điệp.
- Sự nhận thực (Authentication): Người cộng sự mạng có thể chắc chắn rằng anh ta hay cô ta được kết nối với người cộng sự mong muốn và không với những người khác mà giả bộ là người cộng sự. Việc này được hoàn thành thông qua các chứng nhận số.
- Phủ nhận dịch vụ (Denial of service): Việc loại bỏ và dò tìm dữ liệu