GRE (Generic Routing Encapsulation)

Một phần của tài liệu Nghiên cứu các kỹ thuật mạng riêng ảo lớp 2, lớp 3 ứng dụng trong nhà cung cấp dịch vụ (Trang 52)

2.5.1 Giới thiệu GRE

GRE Generic Routing Encapsulation là giao thức được phát triển đầu tiên bởi Cisco, với mục đích chính tạo ra kênh truyền ảo (tunnel) để mang các giao thức lớp 3 thông qua mạng IP.

Đây là giao thức truyền thông đóng gói IP và tất cả các gói dữ liệu bên trong đường hầm IP (IP tunnel).

Với GRE Tunnel, Cisco router sẽ đóng gói cho mỗi vị trí một giao thức đặc trưng chỉ định trong gói IP header, tạo một đường kết nối ảo (virtual point-to-point) tới Cisco router cần đến. Và khi gói dữ liệu đến đích IP header sẽ được mở ra.

Bằng việc kết nối nhiều mạng con với các giao thức khác nhau trong môi trường có một giao thức chính. GRE tunneling cho phép các giao thức khác có thể thuận lợi trong việc định tuyến cho gói IP.

Ngoài ra, khi bạn muốn chạy các giao thức định tuyến động như OSPF/EIGRP xtrên các kênh VPN thì ta cũng phải dùng GRE tunnels.

Một số đặc điểm chung của GRE tunnel:

• GRE tunnel giống IPsec Tunnel vì gói tin gốc được bọc bên ngoài 1 lớp "vỏ"

40

• GRE thêm ít nhất và header 24byte, trong đó IP header mới 20 byte.

• GRE hỗ trợ đa giao thức nên hỗ trợ bất kỳ giao thức lớp 3 nào chạy qua đường hầm(IP, IPX, Apple Talk...)

• GRE cần thiết cho IP Multicast/ broadcast

Nhược điểm:

• Không có cơ chế mã hóa

• Không có cơ chế hash

• Không có cơ chế xác thực nguồn gốc peer.

2.5.2 Cơ chế hoạt động của GRE

Để tạo ra các kênh truyền, GRE cũng thực hiện việc đóng gói gói tin tương tự như giao thức IPSec hoạt động ở Tunnel mode. Trong quá trình đóng gói, GRE sẽ thêm các header mới vào gói tin, và header mới này cung cấp các thông số cần thiết dùng để truyền các gói tin thông qua môi trường trung gian.

GRE chèn ít nhất 24 byte vào đầu gói tin, trong đó 20 byte là IP header mới dùng để định tuyến, còn 4 byte là GRE header. Ngoài ra GRE còn có thể tùy chọn thêm 12 byte mở rộng để cung cấp tính năng tin cậy như: checksum, key chứng thực, sequence number.

Hình 2. 14: Cấu trúc gói tin được đóng thêm GRE header

Hai byte đầu tiên trong phần GRE header là GRE flag 2-byte. Phần bày chứa các cờ dùng để chỉ định những tính năng tùy chọn của GRE

Bit 0 (checksum): Nếu bit này được bật lên (giá trị bằng 1) thỉ phần checksum được thêm vào sau trường Protocol type của GRE header.

Bit 2 (key): Nếu bit này được bật lên thì phần Key tính năng chứng thực sẽ được áp dụng, đây như dạng password ở dạng clear text. Khi một thiết bị tạo nhiều tunnel đến nhiều thiết bị đích thì key này được dùng để xác định các thiết bị đích.

41

Bit 3 (Sequence number): Khi bit này được bật thì phần sequence number được thêm vào GRE header.

Hai byte tiếp theo là phần Protocol Type chỉ ra giao thức lớp 3 của gói tin ban đầu được GRE đóng gói và truyền qua kênh truyền.

Khi gói tin đi qua tunnel nó sẽ được thêm GRE header như trên và sau khi tới đầu bên kia của kênh truyền, gói tin sẽ được loại bỏ GRE header để trả lại gói tin ban đầu.

2.5.3 GRE over IPSec

GRE là giao thức không bảo mật, việc kết hợp với IPSec sẽ giúp tăng cường tính năng bảo mật cho kênh truyền.

Khi IPSec kết hợp với GRE sẽ cung cấp khả năng định tuyến động trên kênh truyền, do đó tạo ra khả năng mở rộng hệ thống mạng rất lớn.

Cơ chế hoạt động của GRE over IPSec

GRE over IPSec là sự kết hợp giữa GRE và IPSec. Lúc này các gói tin GRE sẽ được truyền thông qua kênh truyền bảo mật do IPSec thiết lập. Điều này được thực hiện thông qua việc IPSec sẽ đóng gói gói tin GRE bởi các thông tin bảo mật của mình.

GRE over IPSec cũng có hai mode hoạt động; Tunnel mode và Transport mode:

Hình 2. 15: Tunnel mode và Transport mode của GRE

Như hình trên phần IP packet ban đầu sẽ được bao bọc bởi GRE header, sau đó IPSec sẽ thêm thông tin IPSec header để cung cấp những tính năng bảo mật cho

42

gói tin GRE rồi truyền đi. Khi gói tin đến đầu bên kia của kênh truyền, nó sẽ được thao tác ngược lại để phục hồi gói tin ban đầu.

2.6 Giao thức bảo mật IP (IP Security Protocol) 2.6.1 Khái niệm, tổng quan về IPSec 2.6.1 Khái niệm, tổng quan về IPSec

IPSec (Internet Protocol Security) là một giao thức được IETF phát triển. IPSec được định nghĩa là một giao thức trong tầng mạng cung cấp các dịch vụ bảo mật, nhận thực, toàn vẹn dữ liệu và điều khiển truy cập. Nó là một tập hợp các tiêu chuẩn mở làm việc cùng nhau giữa các phần thiết bị.

Một cách chung nhất, IPSec cho phép một đường hầm bảo mật thiết lập giữa 2 mạng riêng và nhận thực hai đầu của đường hầm này. Các thiết bị giữa hai đầu đường hầm có thể là một cặp host, hoặc một cặp cổng bảo mật (có thể là router, firewall, bộ tập trung VPN) hoặc một cặp thiết bị gồm một host và một cổng bảo mật. Đường hầm đóng vai trò là một kênh truyền bảo mật giữa hai đầu và các gói dữ liệu yêu cầu an toàn được truyền trên đó. IPSec cũng thực hiện đóng gói dữ liệu các thông tin để thiết lập, duy trì và hủy bỏ kênh truyền khi không dùng đến nữa. Các gói tin truyền trong đường hầm có khuôn dạng giống như các gói tin bình thường khác và không làm thay đổi các thiết bị, kiến trúc cũng như những ứng dụng hiện có trên mạng trung gian, qua đó cho phép giảm đáng kể chi phí để triển khai và quản lý.

IPSec có hai cơ chế cơ bản để đảm bảo an toàn dữ liệu đó là AH (Authentication Header) và ESP (Encapsulating Security Payload), trong đó IPSec phải hỗ trợ ESP và có thể hỗ trợ AH:

• AH cho phép xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu và dịch vụ tùy chọn chống phát lại của các gói IP truyền giữa hai hệ thống. AH không cung cấp tính bảo mật, điều này có nghĩa là nó gửi đi thông tin dưới dạng bản rõ.

• ESP là một giao thức cung cấp tính an toàn của các gói tin được truyền bao gồm: Mật mã dữ liệu, xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn phi kết nối của dữ liệu. ESP đảm bảo tính bí mật của thông tin thông qua việc mật mã gói tin IP. Tất cả lưu lương ESP đều được mật mã giữa hai hệ thống. Với

43

đặc điểm này thì xu hướng sẽ sử dụng ESP nhiều hơn AH để tăng tính an toàn cho dữ liệu.

• Cả AH và ESP là các phương tiện cho điều khiển truy nhập, dựa vào sự phân phối của các khóa mật mã và quản lý các luồng giao thông có liên quan đến những giao thức an toàn này.

Những giao thức này có thể được áp dụng một mình hay kết hợp với nhau để cung cấp tập các giao thức an toàn mong muốn trong IPv4 và IPv6, nhưng cách chúng cung cấp các dịch vụ là khác nhau. Đối với cả hai giao thức AH và ESP này, IPSec không định các thuật toán an toàn cụ thể được sử dụng, mà thay vào đó là một khung chuẩn để sử dụng các thuật toán theo tiêu chuẩn công nghiệp. 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. Ngoài ra các chuẩn còn định nghĩa việc sử dụng các thuật toán khác như IDEA, Blowfish và RC4.

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. Mạng dùng IPSec để bảo mật các dòng dữ liệu có thể tự động kiểm tra tính xác thực của thiết bị bằng giấy chứng nhận số của hai người dùng trao đổi thông tin qua lại. Việc thương lượng này cuối cùng dẫn đến thiết lập kết hợp an ninh (SAs) giữa các cặp bảo mật, kết hợp an ninh này có tính chất hai chiều trực tiếp. Thông tin kết hợp an ninh được lưu trong cơ sử dữ liệu liên kế an ninh, và mỗi SA được ấn định một số tham số an ninh trong bảng mục lục sao cho khi kết hợp một địa chỉ đích với giao thức an ninh (ESP hoặc AH) thì có duy nhất một SA.

IPSec hỗ trợ hai chế độ mã hóa: transport và tunnel

Chế độ transport chỉ mã hóa phần payload của mỗi gói tin, nhưng bỏ đi phần header không sờ đến. Ở bên nhận, thiết bị IPSec_compliant sẽ giải mã từng gói tin.

44

Internet

Sử dụng chế độ Transport giữa 2 Host

IP Header TCP Header Data IP Header gốc TCP Header gốc Data IPSec Header

IP header bên ngoài Mã hóa

Transport mode

Hình 2. 16: Chế độ Transport

Chế độ transport bảo vệ phần tải tin của gói dữ liệu, các giao thức ở lớp cao hơn, nhưng vận chuyển địa chỉ IP nguồn ở dạng “clear”. Địa chỉ IP nguồn được sử dụng để định tuyến các gói dữ liệu qua mạng Internet. Mode transport ESP được sử dụng giữa hai máy, khi địa chỉ đích cuối cùng là địa chỉ máy của chính bản thân nó. Mode transport cung cấp tính bảo mật chỉ cho các giao thức lớp cao hơn.

Nhược điểm của chế độ này là nó cho phép các thiết bị trong mạng nhìn thấy địa chỉ nguồn và đích của gói tin và có thể thực hiện một số xử lý (như phân tích lưu lượng) dựa trên các thông tin của tiêu đề IP. Tuy nhiên, nếu dữ liệu được mã hóa bởi ESP thì sẽ không biết được thông tin cụ thể bên trong gói tin IP là gì. Theo IETF thì chế độ truyền tải chỉ có thể được sử dụng khi hai hệ thống đầu cuối IP-VPN có thực hiện IPSec.

Chế độ tunnel mã hóa cả phần header và payload để cung cấp sự thay đổi bảo mật nhiều hơn của gói tin. Ở bên nhận, thiết bị IPSec_compliant sẽ giải mã từng gói tin. Một trong nhiều giao thức phổ biến được sử dụng để xây dựng VPN là chế độ đường hầm IPSec.

45

Internet

Chỉ sử dụng chế độ Tunnel giữa 2 Gateway Ẩn đi địa chỉ IP của mạng an toàn

IP Header TCP Header Data IP Header gốc TCP Header gốc Data IPSec Header IP header bên ngoài

Mã hóa Tunnel mode IPSec Gateway IPSec Gateway New IP Header

IP header bên trong

Hình 2. 17: Chế độ Tunnel

Chế độ này cho phép các thiết bị mạng như bộ định tuyến thực hiện xử lý IPSec thay cho các trạm cuối (host). Bộ định tuyến A xử lý các gói từ trạm A, gửi chúng vào đường hầm. Bộ định tuyến B xử lý các gói nhận được trong đường hầm, đưa về dạng ban đầu và chuyển chúng tới trạm B. Như vậy, các trạm cuối không cần thay đổi mà vẫn có được tính an ninh dữ liệu của IPSec. Ngoài ra, nếu sử dụng chế độ đường hầm, các thiết bị trung gian trong mạng sẽ chỉ nhìn thấy được các địa chỉ hai điểm cuối của đường hầm (ở đây là các bộ định tuyến A và B). Khi sử dụng chế độ đường hầm, các đầu cuối của IPSec-VPN không cần phải thay đổi ứng dụng hay hệ điều hành.

Khung giao thức IPSec:

IPSec không phải là một giao thức. Nó là một khung của các tập giao thức chuẩn mở được thiết kế để cung cấp sự xác thực dữ liệu, tính toàn vẹn dữ liệu, và sự tin cậy dữ liệu.

46

Hình 2. 18: Khung giao thức được sử dụng trong IPSec

Một số giao thức chính được khuyến khích sử dụng khi làm việc với IPSec: - Giao thức bảo mật IP (IPSec):

+ AH (Authentication Header)

+ ESP (Encapsulation Security Payload) - Mã hoá bản tin

+ DES (Data Encryption Standard) + 3 DES (Triple DES)

- Các chức năng toàn vẹn bản tin

+ HMAC (Hash – ased Message Authentication Code) + MD5 (Message Digest 5)

+ SHA-1 (Secure Hash Algorithm -1) - Nhận thực đối tác (peer Authentication)

+ Rivest, Shamir, and Adelman (RSA) Digital Signatures + RSA Encrypted Nonces

- Quản lý khoá

+ DH (Diffie- Hellman) + CA (Certificate Authority)

47

- Kết hợp an ninh

+ IKE (Internet Key Exchange)

+ ISAKMP (Internet Security Association and Key Management Protocol) IPSec là tập hợp những tiêu chuẩn mở làm việc cùng nhau để thiết lập tính bảo mật, toàn vẹn dữ liệu và nhận thực giữa các thiết bị ngang hàng. Những điểm ngang hàng có thể là những cặp Host hay những cặp cổng nối bảo mật (những bộ định tuyến, những tường lửa, những bộ tập trung VPN …) hay có thể giữa một host và một cổng nối bảo mật, như trong VPN truy cập từ xa.

2.6.2 Giao thức xác thực tiêu đề AH

Authentication Header (AH) là một giao thức khóa trong kiến trúc IPSec. Nó cung cấp tính xác thực và tính toàn vẹn cho IP datagram.

Nó có thể hoàn thành việc này bằng cách áp dụng “Hàm băm khóa một chiều” cho datagram để tạo tin nhắn giản lược. Khi người nhận thực hiện giống chức năng băm một chiều trên datagram và thực hiện so sánh với giá trị của bản tin giản lược mà người gửi đã cung cấp, anh ấy sẽ phát hiện ra một phần của datagram bị thay đổi trong suốt quá trình quá độ nếu bất kỳ trường gốc nào bị thay đổi. Theo cách này, tính xác thực và toàn vẹn của tin nhắn có thể được đảm bảo khi sử dụng một mã bí mật giữa hai hệ thống bởi hàm băm một chiều.

AH cũng có thể ép buộc bảo vệ anti_replay (chống phát lại) bằng cách yêu cầu host nhận đặt bit replay trong header để chỉ ra rằng gói tin đã được nhìn thấy. Mặc dù không có bảo vệ này, kẻ tấn công có thể gửi lại gói tin tương tự nhiều hơn một lần.

Chức năng AH được áp dụng cho toàn bộ datagram trừ bất kỳ trường IP header nào thay đổi từ trạng thái này sang trạng thái khác. AH không cung cấp mã hóa và bởi vậy không cung cấp tính bảo mật và tính riêng tư.

48

Hình 2. 19: Cấu trúc tiêu đề AH

Ý nghĩa của các trường trong tiêu đề AH như sau:

Next Header (tiêu đề tiếp theo). Có độ dài 8 bit để nhận dạng loại dữ liệu của phần tải tin theo sau AH.

Payload Length (độ dài tải tin). Có độ dài 8 bit và chứa độ dài của tiêu đề AH được biểu diễn trong các từ 32 bit, trừ đi 2. Ví dụ, trong trường hợp của thuật toán toàn vẹn mang lại một giá trị xác minh 96 bit (3 x 32 bit), cộng với 3 từ 32 bit cố định thì trường độ dài này có giá trị là 4. Với Ipv6, tổng độ dài của tiêu đề phải là bội của các khối 8 bit.

Reserved (dự trữ). Trường 16 bit này dự trữ cho ứng dụng trong tương lai. Giá trị của trường này có thể đặt bằng 0 và có tham gia trong việc tính dữ liệu xác thực.

Security Parameters Index (SPI-chỉ số thông số an ninh). Trường này có độ dài 32 bit, cùng với địa chỉ IP đích và giao thức an ninh ESP cho phép nhận dạng duy nhất SA cho gói dữ liệu. Các giá trị SPI từ 1 đến 255 được dành riêng để sử dụng trong tương lai. SPI là trường bắt buộc và thường được lựa chọn bởi phía thu khi thiết lập SA. Giá trị SPI bằng 0 được sử dụng cục bộ và có thể dùng để chỉ ra rằng chưa có SA nào tồn tại.

Sequence Number (số thứ tự). Đây là trường 32 bit không dấu chứa một giá trị mà khi mỗi gói được gửi đi thì tăng một đơn vị. Trường này là bắt buộc và luôn được đưa vào bởi bên gửi ngay cả khi bên nhận không sử dụng dịch

49

vụ chống phát lại. Bộ đếm bên gửi và bên nhận được khởi tạo ban đầu là 0, gói đầu tiên có số thứ tự là 1. Nếu dịch vụ chống phát lại được sử dụng thì chỉ số này không thể lặp lại. Khi đó, đẻ tránh trường hợp bộ đếm bị tràn và lặp lại các số thứ tự, sẽ có yêu cầu kết thúc phiên truyền thông và một SA mới được thiết lập trước khi truyền gói thứ 2 của SA hiện hành.

Một phần của tài liệu Nghiên cứu các kỹ thuật mạng riêng ảo lớp 2, lớp 3 ứng dụng trong nhà cung cấp dịch vụ (Trang 52)

Tải bản đầy đủ (PDF)

(94 trang)