MỤC LỤC
Li, Ri Bít bên trái và bên phải tại vòng thứ i của thuật toán mã hóa DES.
Tuy nhiên để có thể triển khai được một cách hoàn chỉnh thì còn có rất nhiều khó khăn phải giải quyết, đồ án chỉ dừng lại ở mức độ nghiên cứu lý thuyết và có những phân tích cơ bản. Mặc dù nhận được rất nhiều sự giúp đỡ của thầy hướng dẫn, các thầy cô giáo và sự cố gắng của bản thân nhưng đồ án không tránh khỏi sai sót vì vậy tôi mong nhận được sự đóng góp nhiều hơn nữa ý kiến từ phía các thầy cô và ban bè cùng những người quan tâm đến lĩnh vực này.
Lớp vận chuyển (Transport layer): Chịu trách nhiệm truyền thông điệp (message) từ một số tiến trình (một chương trình đang chạy) tới một tiến trình khác. Lớp Internet (Internet layer): Cung cấp chức năng đánh địa chỉ, độc lập phần cứng mà nhờ đó dữ liệu có thể di chuyển giữa các mạng con có kiến trúc vật lý khác nhau.
* Flags (cờ): chứa 3 bit được sử dụng cho quá trình điều khiển phân đoạn, bít đầu tiên chỉ thị tới các bộ định tuyến cho phép hoặc không cho phép phân đoạn gói tin, 2 bit giá trị thấp được sử dụng điều khiển phân đoạn, kết hợp với trường nhận dạng để xác định được gói tin nhận sau quá trình phân đoạn.Fragment offset: mạng thông tin về số lần chỉa một gói tin, kích thước của gói tin phụ thuộc vào mạng cơ sở truyền tin, tức là đọ dài gói tin không thể vượt quá MTU của môi trường truyền. Thủ tục đóng kết nối TCP được thực hiện theo từng chiều, (giả thiết kết nối TCP là song công). Một khi kết nối đóng lại theo chiều nào đó, TCP sẽ từ chối nhận thêm dữ liệu trong kết nối của chiều đó, trong lúc dữ liệu vẫn di chuyển theo chiều ngược lại cho đến khi nơi gửi thực hiện đóng kết nối. Như vây, lời đáp của kết nối vẫn được chuyển về nơi gửi ngay cả khi kết nối đã đóng lại, khi cả hai chiều đều đóng, phần mềm TCP tại mỗi bên xóa bỏ những ghi nhận về kết nối này. Nhận SYN +ACK ACK y+1 Đầu cuối máy. tính gửi Mạng Đầu cuối máy. tính nhận Gửi SYN. Hình 1.11: Thủ tục đóng kết nối TCP c) TCP là giao thức truyền tin cậy.
Khung PPP sau đó được đóng gói với phần tiêu đề của phiên bản sửa đổi giao thức GRE (Generic Routing Encapsulation: giao thức đóng gói định tuyến chung), giao thức này cung cấp cơ chế chung cho phép đóng gói dữ liệu để gửi qua mạng IP. Đối với PPTP, phần Header của GRE được sửa đổi một số điểm sau:. - Một bit xác nhận được sử dụng để khẳng định sự có mặt của trường xác nhận 32 bit. - Trường Key được thay thế bằng trường độ dài Payload 16 bit và trường chỉ số cuộc gọi 16 bit. Trường chỉ số cuộc gọi được thiết lập bởi PPTP client trong quá trình khởi tạo đường ngầm PPTP. - Một trường xác nhận dài 32 bit được thêm vào. b) Đóng gói các GRE: Phẩn tải PPP (đã được mật mã) và các GRE Header sau đó được đóng gói với một tiêu đề IP chứa các thông tin địa chỉ nguồn và đích thích hợp cho PPTP client và PPTP server. c) Đóng gói lớp liên kết dữ liệu: để có thể truyền qua mạng LAN hoặc WAN, IP datagram cuối cùng sẽ được đóng gói với một Header và Trailer của lớp liên kết dữ liệu ở giao diện vật lý đầu ra. Trong bản tin điều khiển L2TP và phần tiêu đề L2TP của dữ liệu đường ngầm có một mã số đường ngầm (Tunnel ID) để xác định đường ngầm, và một mã số cuộc gọi (Call ID)để xác định cuộc gọi trong đường ngầm đó. Đường ngầm dữ liệu L2TP được thực hiện thông qua nhiều mức đóng gói. Hình 2.11 chỉ ra cấu trúc cuối cùng của dữ liệu đường ngầm L2TP trên nên IPSec. a) Đóng gói L2TP: phần tải PPP ban đầu được đóng gói với một PPP Header và một L2TP Trailer. b) Đóng gói UDP: gói L2TP sau đó được đóng gói với một UDP Header, các địa chỉ cổng nguồn và đích được đặt bằng 1701. c)Đóng gói IPSec: tuỳ thuộc vào chính sách IPSec, gói UDP được mật mã và đóng gói với IPSec ESP Header, IPSec ESP Trailer, IPSec Authentication Trailer. d) Đóng gói IP: gói IPSec được đóng gói với IP Header chứa địa chỉ IP nguồn và đích của IP-VPN client và IP-VPN server. e)Đóng gói lớp đường truyền dữ liệu: để truyền đi được trên đường truyền LAN hoặc WAN, IP datagram cuối cùng sẽ được đóng gói với phần Header và Trailer tương ứng với kỹ thuật lớp đường truyển dữ liệu của giao diện vật lý đầu ra.
IPSec sử dụng các thuật toán: Mã nhận thực bản tin trên cơ sở băm (HMAC), thuật toán MD5 (Message Digest 5), thuật toán SHA-1 để thực hiện chức năng toàn vẹn bản tin; Thuật toán DES, 3DES để mật mã dữ liệu; Thuật toán khóa chia sẻ trước, RSA chữ ký số và RSA mật mã giá trị ngẫu nhiên (Nonces) để nhận thực các bên. IPSec có thể sử dụng giao thức IKE (Internet Key Exchange) để xác thực hai phía và làm giao thức thương lượng các chính sách bảo mật và nhận thực thông qua việc xác định thuật toán được dùng để thiết lập kênh truyền, trao đổi khóa cho mỗi phiên kết nối, dùng trong mỗi phiên truy cập.
+ Chèn dữ liệu: có hai dạng chèn dữ liệu trong AH, đó là chèn dữ liệu xác thực (Authentication Data Padding) và chèn gói ngầm định (Implicit Packet Padding). Đối với chèn dữ liệu xác thực, nếu đầu ra của thuật toán xác thực là bội số của 96 bit thì không được chèn. Tuy nhiên nếu ICV có kích thước khác thì việc chèn thêm dữ liệu là cần thiết. Nội dung của phần dữ liệu chèn là tùy ý, cũng có mặt trong phép tính ICV và được truyền đi. Chèn gói ngầm định được sử dụng khi thuật toán xác thực yêu cầu tính ICV là số nguyên của một khối b byte nào đó và nếu độ dài gói IP không thỏa mãn điều kiện đó thì chèn gói ngầm định được thực hiện ở phía cuối của gói trước khi tính ICV. Các byte chèn này có giá trị là 0 và không được truyền đi cùng với gói. + Phân mảnh: khi cần thiết, phân mảnh sẽ được thực hiện sau khi đã xử lý AH. Vì vậy AH trong kiểu transport chỉ được thực hiện trên toàn bộ gói IP, không thực hiện trên từng mảnh. Nếu bản thân gói IP đã qua xử lý AH bị phân mảnh trên đường truyền thì ở phía thu phải được ghép lại trước khi xử lý AH. Ở kiểu Tunnel, AH có thể thực hiện trên gói IP mà phần tải tin là một gói IP phân mảnh. d) Xử lý gói đầu vào. Thứ tự xử lý này cho phép nhanh chóng xác định và loại bỏ các gói lỗi hoặc lặp lại mà không cần phải thực hiện giải mã, qua đó làm ảnh hưởng của các tấn công kiểu từ chối dịch vụ (denial of service attacks), đồng thời cho phép phía thu xử lý song song: giải mã và xác thực tiến hành song song. - Tính toán ICV: nếu dịch vụ xác thực được lựa chọn cho SA thì phía phát sẽ tính toán giá trị ICV trên dữ liệu gói ESP trừ trường Authentication Data. Lưu ý là các trường mật mã được thực hiện trước xác thực. Chi tiết về tính toán ICV cũng tương tự như ở AH. - Phân mảnh: Khi cần thiết, phân mảnh được thực hiện sau khi đã xử lý ESP. Vì vậy ESP trong kiểu Transport chỉ được thực hiện trên toàn bộ gói IP, không thực hiện trên từng mảnh. Nếu bản thân gói IP đã qua xử lý ESP bị phân mảnh bởi các router trên đường truyền thì các mảnh phải được ghép lại trước khi xử lý ESP ở phía thu. Trong kiểu Tunnel, ESP có thể thực hiện trên gói IP mà phần Payload là một gói IP phân mảnh. d) Xử lý gói đầu vào.
Bên thu sẽ lấy SPI, địa chỉ đích và giao thức IPSec (AH hay ESP) và tìm SA trong cơ sở dữ liệu phù hợp để xử lý gói tin đó. Lưu ý rằng một đầu cuối IP-VPN có thể đồng thời tồn tại nhiều kết nối IPSec, vì vậy cũng có nghĩa là tồn tại nhiều SA. Các gói IP truyền qua một SA riêng biệt được cung cấp sự bảo vệ một cách chính xác bởi giao thức an ninh có thể là AH hoặc ESP nhưng không phải là cả hai. Đôi khi một chính sách an toàn có thể được gọi cho một sự kết hợp của các dịch vụ cho một luồng giao thông đặc biệt mà không thể thực hiện được với một SA đơn lẻ. Trong trường hợp đó cần thiết để giao cho nhiều SA thực hiện chính sách an toàn được yêu cầu. Thuật ngữ cụm SA được sử dụng để một chuỗi các SA xuyên qua lưu lượng cần được xử lý để thỏa mãn một tập chính sách an toàn. Đối với kiểu Tunnel, có 3 trường hợp cơ bản của kết hợp an ninh như sau:. 1) Cả hai điểm cuối SA đều trùng nhau: mỗi đường ngầm bên trong hay bên ngoài là AH hay ESP, mặc dự host 1 cú thể định rừ cả hai đường ngầm là như nhau, tức là AH bên trong AH và ESP bên trong ESP. Hình 3.13: Kết hợp SA kiểu Tunnel khi 2 điểm cuối trùng nhau. 2) Một điểm cuối SA trùng nhau: đường hầm bên trong hay bên ngoài có thể là AH hay ESP. Hình 3.14: Kết hợp SA kiểu Tunnel khi một điểm cuối trùng nhau. 3) Không có điểm cuối nào trùng nhau: Mỗi đường hầm bên trong và bên ngoài là AH hay ESP. Trước khi thực hiện được điều đó, mỗi cặp điểm cuối lần lượt thỏa thuận mức độ an toàn cần thiết (ví dụ các thuật toán xác thực và mật mã dùng trong phiên đó). Thay vì phải thỏa thuận riêng từng giao thức đơn lẻ, các giao thức được nhóm thành các tập, chính là các tập chuyển đổi IPSec. Các tập chuyển đổi này được trao đổi giữa hai phía trong chế độ nhanh. Nếu tìm thấy một tập chuyển đổi tương đương ở hai phía thì quá trình thiết lập phiên tiếp tục, ngược lại thì phiên đó sẽ bị loại bỏ. Ví dụ router A gửi tập chuyển đổi 30 và 40 tới router B, router B kiểm tra thấy tập chuyển đổi 50 phù hợp với tập chuyển đổi 30 của router A, các thuật toán xác thực va mật mã trong các tập chuyển đổi này hình thành một kết hợp an ninh. b) Thiết lập kết hợp an ninh. Khi một tập chuyển đổi đã được thống nhất giữa hai bên, mỗi thiết bị IP-VPN sẽ đưa thông tin này vào một cơ sở dữ liệu. Thông tin này được biết đên như là một kết hơp an ninh. Thiết bị IP-VPN sau đó sẽ đanh số mỗi SA bằng một chỉ số SPI. Khi có yêu cầu gửi gói tin giữa hai đầu VPN, các thiết bị sẽ dựa vào địa chỉ đối tác, các chỉ số SPI, thuật toán IPSec được dùng để xử lý gói tin trước khi truyền trong đường ngầm. c) Thời gian sống của một kêt hợp an ninh.
Một phương pháp khác để nắm giữ khóa mà không nắm giữ nhiều công việc hỗ trợ quản lí là sử dụng CA (Certificate Authorities) như là một thực thể tin cậy để đưa ra và thu hồi chứng nhận số và cho việc cung cấp một ý nghĩa giúp kiểm tra về nhận thực những chứng thực. CA thường có 3 phần tác nhân như VeriSign hoặc Entrust, nhưng để tiết kiệm, bạn có thể thiết lập thiết lập CA cho riêng mình trên cơ sở sử dụng dịch vụ giấy chứng nhận Windows 2000. Dưới đây trình bày quá trình làm việc của CA:. 1) Một client muốn sử dụng chứng thực số tạo ra một cặp khóa, một khóa công cộng và một khóa riêng. Tiếp theo, chient chuẩn bị chứng nhận không đánh dấu (X.509) nó chứa, giữ nhiều thứ: ID nhận dạng client và khóa công cộng mà nó vừa tạo thành. Chứng nhận không đánh dấu này sau đó được gửi tới phía CA nhờ sử dụng một vài phương pháp an toàn. 2) Phía CA tính toán mã băm của chứng nhận không đánh dấu. Sau đó CA giữ mã băm và đóng gói nó sử dụng khóa công khai của CA. Hàm mật mã băm này là một chữ ký số, và CA tấn công vào nó để chứng nhận và quay lại đánh dấu chứng nhận client. Chứng nhận này được gọi là nhận dạng chứng nhận và được lưu trong thiết bị client cho đến khi nó kết thúc hoặc bị xóa. CA cũng gửi cho client chứng nhận số của nó, các mà trở thành chứng nhận gốc cho client. 3) Bây giờ client có một chứng nhận số đánh dấu mà nó có thể gửi tới bất kì bên thành viên nào.
Tới đây, router người sử dụng sẽ đóng gói dữ liệu theo các yêu cầu đã thương lượng trong IPSec SA (thuật toán mật mã, nhận thực, giao thức đóng gói là AH hay ESP…), thêm các thông tin thích hợp để đưa gói tin được mã hóa này về dạng IP datagram ban đầu và chuyển tới router mạng trung tâm. Khi nhận được gói tin từ router người dùng gửi đến, router mạng trung tâm tìm kiếm IPSec SA, xử lý gói theo yêu cầu, đưa về dạng gói tin ban đầu và chuyển nó tới mạng trung tâm.
Trung tâm của mỗi vòng lặp xử lý DES là mạng Fiestel (được đặt theo tên của một nhà khoa hoc tại IBM). Hoạt động của mạng Fiestel được diễn tả như sau:. Ở vòng lặp cuối cùng các nhánh trái và phải không đổi chỗ chi nhau, vì vậy input của IP-1 là R16L16. Trong đó hàm F được thể hiện là khối hộp đen. Hình 4.5: Mạng Fiestel a) Hoạt động của khối hộp đen. Khá phức tạp, trong đó nó gồm có các khối chức năng và nhiệm vụ như sau:. Hoạt động mở rộng này dựa vào một bảng định trước để lựa chọn các bít đầu ra. Sau đó các bít sau hoán vị mở rộng được XOR với khóa Ki. Mỗi khối Bj sau đó được đưa vào một hàm Sj. Hàm Sj này sẽ trả lại các khối 6 bit thành khối 4 bit theo bảng định trước. - P-Box: Các khối 4 bit sau khi được trả lại sẽ kết hợp với nhau thành khối 32 bít đầu ra của hộp đen. b) Hoạt động tính khóa:. Khóa input ban đầu là một khối 64 bít, sau khi bỏ đi 8 bít parity và hoán vị 56 bít còn lại theo một trật tự nhất định. Sau đó các bit của hai thành phần Ci-1 và Di-1 được hoán vị dịch để tạo thành Ci và Di. Ghép nữa trái và nữa phải tạo ra khóa Ki 48 bít. c) Giải mã: Quá trình giải mã thực hiện các bước này theo thứ tự ngược lại. Thực tế, để thực hiện được các thuật toán với kích thước khóa lớn đòi hỏi một lượng tính toán rất lớn liên quan đến vấn đề lý thuyết số như thuật toán Euclide để tìm USCLN của hai số nguyên hay thuật toán Miller-Rabin để kiểm tra tính nguyên tố của các số tự nhiên này.
Mặc dù việc cắt ngắn này làm giảm đáng kể số các tổ hợp cần thử đối với một tấn công kiểu brute fore, nhưng nó có tác dụng che dấu trạng thái bên trong của thuật toán băm và sẽ khó khăn hơn rất nhiều cho kẻ tấn công để có thể đi từ đầu ra của vòng băm thứ hai tới kết quả trung gian của vòng băm thứ nhất. Vì vậy, khi một máy chủ xác thực một người sử dụng bằng cách kiểm tra chữ ký trên cơ sở khóa công khai của người sử dụng đó thì vấn đề đặt ra là liệu cặpkhóa công khai/ bí mật sử dụng trong quá trình xác thực có thực sự thuộc về người sử dụng này hay không.
Trong mô hình này, tổ chức và nhà cung cấp dịch vụ chia sẻ các công việc tương đối ngang bằng, ISP cung cấp thiết bị VPN, đảm bảo QoS với mức băng tần thỏa thuận, còn phía nhà quản trị mạng quản trị các ứng dụng và cấu hình, cung cấp các dịch vụ trợ giúp và an toàn dữ liệu. Trong trường hợp này, người sử dụng từ xa cần kết nối vào mạng trung tâm để truy nhập thư điện tử, các file cơ sở dữ liệu, trình diễn… Để thực hiện kết nối này, một phương án là sử dụng thiết bị VPN 3000 Concentrator ở mạng trung tâm của tổ chức, và phần mềm VPN 3000 Concentrantor Client tại máy tính của người sử dụng.