MỤC LỤC
GIỚI THIỆU - 4 -
CHƯƠNG 1: TỔNG QUAN VỀ VPN - 5 -
1.1. VPN là gì ? - 5 -
1.2. Các kiểu mạng VPN - 5 -
1.2.1. VPN truy cập từ xa: - 5 -
1.2.2. VPN điểm-nối-điểm (site-to-site hay Lan-to- Lan) - 6 -
1.3. VPN protocols - 8 -
1.3.1. L2TP - 8 -
1.3.2. IPSec - 8 -
1.3.3. Point to Point Tunneling Protocol (PPTP) - 8 -
1.4. Các vấn đề bảo mật trong VPN: - 8 -
1.4.1. Đánh lừa - 8 -
1.4.2. Ăn cắp phiên. - 8 -
1.4.3. Nghe trộm - 9 -
1.4.4. Tấn công ngay chính diện - 9 -
CHƯƠNG 2:MẬT MÃ ĐỐI XỨNGVÀ KHÔNG ĐỐI XỨNG - 10 -
2.1. Mật mã đối xứng: - 10 -
2.1.1. Lịch sử phát triển - 10 -
2.1.2. Thuật toán DES - 11 -
2.1.2.1. Mô tả thuật toán DES - 11 -
2.1.2.2. Độ bảo mật - 11 -
2.1.3. Các thuật toán được đề xuất để thay thế DES - 12 -
2.1.3.1. Thuật toán mã hóa Triple DES (TDES) - 12 -
2.1.3.2. Thuật toán mã hoá dữ liệu AES (Advanced Encryption Standard) - 12 -
2.1.3.3. Thuật toán IDEA - 15 -
2.2. Mật mã không đối xứng - 17 -
2.2.1. Sơ lược sự phát triển - 17 -
2.2.2.1. Khái niệm về hệ mật - 17 -
2.2.2.2. Mô tả hệ mật RSA - 18 -
2.2.2.3. Thực hiện hệ RSA - 18 -
2.2.2.4. Độ an toàn của RSA - 18 -
CHƯƠNG 3: CÁC HÀM BĂM - 19 -
3.1. Giới thiệu - 19 -
3.2. Tính chất hàm băm - 19 -
3.3. Các hàm băm thường dùng - 20 -
3.3.1. Mô tả MD5 - 20 -
3.3.2. Độ an toàn các hàm băm - 21 -
CHƯƠNG 4: GIAO THỨC IPSEC - 22 -
4.1 Giao thức AH và ESP – vấn đề bảo mật đường truyền IPSec - 22 -
4.1.1. Authentication Header(AH) - 22 -
4.2.2. Encapsulaton Secutity Payload (ESP) - 25 -
4.2. Internet Key Exchange – IKE - 28 -
4.2.1. Security Association - 28 -
4.2.2. Chuyển khoá - 29 -
4.2. Tóm tắt hoạt động của IPSec - 30 -
KẾT LUẬN - 31 -
TÀI LIỆU THAM KHẢO - 32 -
31 trang |
Chia sẻ: lynhelie | Lượt xem: 1613 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu tìm hiểu nguyên tắc, kỹ thuật xác thực và bảo mật thông tin trên mạng VPN, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ó là bị tấn công ngay chính giữa. Một người tấn công sử dụng phương pháp đánh lừa, ăn cắp phiên và nghe trộm có thể thu được một số trao đổi khoá như vậy. Người đó có thể nhanh chóng tạo ra khoá riêng cho mình trong tiến trình, vì thế trong khi người dùng tin rằng mình đang truyền thông với một khoá của một thành viên, thì trên thực tế người dùng đó đang dùng một khoá đã bị tấn công ngay chính giữa.
CHƯƠNG 2:MẬT MÃ ĐỐI XỨNG
VÀ KHÔNG ĐỐI XỨNG
Hiện nay có nhiều phương pháp để bảo mật thông tin, trong đó bảo mật bằng phần mềm (thực chất là sử dụng các chương trình phần mềm để mã hoá và giải mã thông tin) là phương pháp thường được sử dụng cho cả các thông tin trao đổi trên mạng và thông tin lưu trữ trong máy tính. Ngành mật mã ra đời để phục vụ cho công việc đó.
Người ta có thể phân loại mật mã theo hai cách:
- Mật mã cổ điển và mật mã hiện đại (dùng trong phạm vi hẹp)
- Mật mã đối xứng và không đối xứng (dùng phổ biến hơn)
Mật mã đối xứng: là các loại mật mã mà việc khoá mã hoá cũng chính là khoá giải mã hoặc từ khoá mã hoá có thể dễ dàng tìm ra khoá giải mã
Ví dụ: các thuật toán mã hoá DES, TDES, AES, GOST, IDEA,;
Mật mã không đối xứng (hay còn được gọi là mật mã khoá công khai): là loại mật mã sử dụng một cặp khoá cho việc mã hoá và giải mã.
- Một khoá dùng để mã hoá thông điệp được công bố công khai cho tất cả các thành viên của tổ chức biết; bất kỳ ai muốn gửi thông tin đến cho người nhận đều có thể dùng khoá này để mã hoá thông điệp. Khoá này gọi là khoá công khai - Public key
- Một khoá chỉ có người nhận thông tin biết dùng để giải mã các thông điệp khoá này được dùng để giải mã các thông điệp được mã hoá bằng khoá công khai tương ứng. Khoá này được gọi là khoá riêng hay khoá bí mật - Private key
Ví dụ các thuật toán RSA; ELGAMAL,;
2.1. Mật mã đối xứng:
2.1.1. Lịch sử phát triển
- Năm 1976 thuật toán mã hoá dữ liệu DES của công ty IBM được lựa chọn là tiêu chuẩn tại Mỹ và sau đó được sử dụng rộng rãi trên toàn thế giới.
Liên tục các nghiên cứu tấn công nhằm vào DES, đồng thời nó cũng như các nghiên cứu bảo chứng cho độ an toàn của DES. DES vẫn đứng vững và được gia hạn sử dụng theo định kỳ 5 năm một lần.
2.1.2. Thuật toán DES:
DES một sản phẩm của các chuyên gia IBM, ra đời vào năm 1974, đáp lại lời kêu gọi nghiên cứu của Cục tiêu chuẩn Liên bang Hoa Kỳ. Ngày 15/1/1977 DES được công bố làm tiêu chuẩn Liên bang Hoa Kỳ, sử dụng chính thức với thông tin mật và tiếp tục được khẳng định lại vào các năm 1983, 1988 , 1993, 1998
2.1.2.1. Mô tả thuật toán DES:
DES là thuật toán mã hóa khối với độ dài mỗi khối là 64 bit và sử dụng khoá mã hoá độ dài 64 bit (thực chất là 56 bit + 8 bít kiểm tra).
Thành phàn chính của DES là 16 chu kỳ xử lý giống nhau và 2 hoán vị đầu-cuối (IP và EP, chúng có vai trò hoán đổi nhau trong quá trình mã hoá và giải mã, không có giá trị về mặt mã hoá ).
Khối 64 bit được tách làm hai phần 32 bit và mỗi phần sẽ được xử lý tuần tự (lược đồ Feistel), để đảm bảo rằng quá trình mã hóa và giải mã diễn ra tương tự. Ký hiệu thể hiện phép toán XOR. Hàm F biến đổi một nửa của khối đang xử lý với một khóa con, đầu ra lại được kết hợp với nửa còn và được tráo đổi để xử lý trong chu trình kế tiếp. Sau chu trình cuối cùng thì 2 nửa không bị tráo đổi.
S-Box là thành phần quan trọng nhất của hàm F với đầu vào 6 bit và đầu ra 4 bit, nó là thành phần phi tuyến và đảm bảo cho độ an toàn của DES.
Hình2.1: Cấu trúc DES và thuật toán Feistel dùng trong DES
2.1.2.2. Độ bảo mật
Vì DES được công khai nên đã có rất nhiều nghiên cứu tấn công, phương pháp thực tế nhất vẫn là tấn công vét cạn. Thêm vào đó là các kiểu tấn công vi sai, tấn công tuyến tính với độ phức tạp thấp hơn, tuy nhiên cần số lượng bản rõ lựa chọn rất lớn nên không thực tế.
2.1.3. Các thuật toán được đề xuất để thay thế DES
2.1.3.1. Thuật toán mã hóa Triple DES (TDES):
a. Mô tả
TDES được lựa chọn bởi đơn giản để mở rộng không gian khoá mà không cần chuyển sang sử dụng thuật toán mới.
Các nghiên cứu cho thấy TDES là cần thiết để chống lại tấn công kiểu xen giữa man-in-the-middle, (tấn công xen giữa rất hiệu quả trong việc tấn công DES hai lần).
TDES được mô tả như sau DES(k3;DES(k2;DES(k1;M))), trong đó M là khối thông điệp được mã hoá k1, k2, và k3 là các khoá DES. Sự khác nhau này được biết tới như là EEE bởi vì cả 3 lần đều thực hiện phép mã hoá DES để mã hoá dữ liệu. Nhằm mục đích đơn giản hoá thao tác giữa các phần DES và TDES bước trung gian thường được thay thế bằng phép giải mã (EDE mode): DES (k3;DES − 1 (k2;DES (k1;M))) và cùng với một phép mã hoá DES với khoá k có thể được hình dung như là TDES-EDE với k1 = k2 = k3 = k.
b. Độ an toàn
Thông thườngTDES với ba khoá khác nhau và độ dài khoá khi đó là 168 bit (3 lần 56 bit khoá DES) cùng với các bit kiểm tra chẵn lẻ, độ dài khoá khi đó có tổng là 192 bit. Nhưng để tránh bị tấn công kiểu man-in-the-middle chỉ cần khoá có độ dài 112 bit là đủ.
c. Các ứng dụng
DES và TDES có khuynh hướng sử dụng trong các phần cứng (ví dụ như trong các ứng dụng VPN hay tế bào Nextel và dữ liệu trên mạng). Khi thực hiện bằng phần mềm chúng khá chậm. Về điểm này chúng không thể so với AES (có tốc độ thực hiện theo tính toán nhanh hơn khoảng 6 lần). AES đã thực sự xứng đáng để thay thế TDES.
2.1.3.2. Thuật toán mã hoá dữ liệu AES (Advanced Encryption Standard)
a. Mô tả
1. AddRoundKey
Tại bước này, khóa con được kết hợp với các khối. Khóa con trong mỗi chu trình được tạo ra từ khóa chính với quá trình tạo khóa con Rijndael; mỗi khóa con có độ dài giống như các khối. Quá trình kết hợp được thực hiện bằng cách XOR từng bít của khóa con với khối dữ liệu.
Mỗi byte được kết hợp với một byte trong khóa con của chu trình sử dụng phép toán XOR
2. SubBytes
Các byte được thế thông qua bảng tra S-box. Đây là quá trình phi tuyến của thuật toán. Hộp S-box này được tạo ra từ một phép nghịch đảo trong trường hữu hạn GF (28) có tính chất phi tuyến. Để chống lại các tấn công dựa trên các đặc tính đại số, hộp S-box này được tạo nên bằng cách kết hợp phép nghịch đảo với một phép biến đổi khả nghịch. Hộp S-box này cũng được chọn để tránh các điểm cố định.
Mỗi byte được thay thế bằng một byte theo bảng tra (Rijndael S-box), S; bij = S(aij).
3. ShiftRows
Các hàng được dịch vòng một số vị trí nhất định. Đối với AES, hàng đầu được giữ nguyên. Mỗi byte của hàng thứ 2 được dịch trái một vị trí. Tương tự, các hàng thứ 3 và 4 được dịch 2 và 3 vị trí. Do vậy, mỗi cột khối đầu ra của bước này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào. Đối với Rijndael với độ dài khối khác nhau thì số vị trí dịch chuyển cũng khác nhau.
Các byte trong mỗi hàng được dịch vòng trái. Số vị trí dịch chuyển tùy thuộc từng hàng.
4. MixColumns
Mỗi cột được kết hợp lại theo một phép biến đổi tuyến tính khả nghịch. Mỗi khối 4 byte đầu vào sẽ cho một khối 4 byte ở đầu ra với tính chất là mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra. Cùng với bước ShiftRows, Mix-Columns đã tạo ra tính chất khuếch tán cho thuật toán. Mỗi cột được xem như một đa thức trong trường hữu hạn và được nhân (modul x4 + 1) với đa thức c(x) = 3x3 + x2 + x + 2. Vì thế, bước này có thể được xem là phép nhân ma trận trong trường hữu hạn.
Mỗi cột được nhân với một hệ số cố định c(x).
Thuật toán AES làm việc với từng khối 4×4 byte dữ liệu và độ dài khoá là 128, 192 hoặc 256 bit. Hầu hết các phép toán trong thuật toán AES đều thực hiện trong trường hữu hạn, các khóa con sử dụng trong các chu trình được tạo ra bởi quy trình tạo khoá con riêng Rijndael.
Quá trình mã hoá gồm 4 bước:
AddRoundKey: mỗi byte của khối được kết hợp với khóa con, các khóa con này được tạo ra từ quá trình tạo khóa con Rijndael
SubBytes: phép thế phi tuyến, mỗi byte sẽ được thế bằng một byte khác theo bảng tra (Rijndael S-box).
ShiftRows: đổi chỗ, các hàng trong khối được dịch vòng.
MixColumns: làm việc theo các cột trong khối, theo một phép biến đổi tuyến tính.
b.Tối ưu
Thuật toán Rijndael sử dụng mạng thay thế hoán vị do vậy AES có thể dễ dàng thực hiện với tốc độ cao bằng phần mềm và phần cứng mà không đòi hỏi nhiều tài nguyên.
c. Độ an toàn
Cơ quan An ninh Quốc gia đã xem xét và kết luận AES đủ an toàn để áp dụng cho các thông tin mật của chính phủ Liên bang Hoa Kỳ. Từ tháng 6/2003, chính phủ Mỹ tuyên bố AES có thể được sử dụng cho thông tin mật. Tuy nhiên với các yêu cầu cao hơn như để bảo vệ hệ thống thông tin hay hệ thống an ninh quốc gia vẫn cần được NSA kiểm tra và chứng nhận trước khi sử dụng.
2.1.3.3. Thuật toán IDEA
a. Đặc điểm thuật toán:
IDEA sử dụng khoá 128 bit để mã hoá dữ liệu trong các khối 64 bit. Độ dài 128 bit khoá đủ dài để chống việc vét cạn khoá.
Độ khuyếch tán (Diffusion): Mỗi bit dữ liệu vào đều phải tác động đến tất cả bit dữ liệu ra và mỗi bit khoá cũng tác động đến tất cả các bit dữ liệu ra. Sự kết hợp của một bít rõ với nhiều bit mã làm phá vỡ cấu trúc thống kê của rõ.
Sự rối loạn (Confusion): Bản mã phụ thuộc vào bản rõ và khoá theo một cách thức phức tạp. Mục đích là để gây khó khăn cho việc tìm ra thống kê của mã phụ thuộc vào thống kê của rõ. IDEA đạt được mục tiêu này bằng cách sử dụng 3 phép toán khác nhau, mỗi phép toán được tiến hành trên hai đầu vào 16 bit để tạo ra một đầu ra đơn 16 bit.
- Phép XOR, ký hiệu là Å
- Phép cộng các số nguyên module 216 (modulo 65536) với dữ liệu vào và ra là các số nguyên không dấu 16 bit. Ký hiệu phép toán là ¨
- Phép nhân các số nguyên modulo 216+1 (modulo 65537) với dữ liệu vào và ra là các số nguyên 16 bit không dấu, ngoại trừ một khối gồm tất cả các bit 0 được coi như biểu diễn 216. Ký hiệu phép toán là Ä
- Phép toán thực hiện không có tính phân phối và kết hợp.
b. Mô tả thuật toán mã hoá IDEA
Theo cách thiết kế của thuật toán, mỗi bit đầu ra của vòng đầu tiên phụ thuộc vào mọi bít của 64bit đầu vào rõ và mọi bít của khoá con. Toàn bộ thuật toán có 8 khối lặp, mỗi khối lặp lại có 4 vòng lặp con theo cấu trúc cộng/nhân (Addition & Multiplication - MA).
Đầu vào rõ 64bit được chia thành 4 bộ 16 bit (X1,X2,X3,X4) làm đầu vào của khối lặp số 1 để thực hiện theo MA với 6 khối khóa con của khóa đầu vào (mỗi khối khóa con 16 bit). Các khối tiếp theo, lấy đầu ra của khối trước làm đầu vào và tiếp tục thực hiện theo MA với 6 khối khóa con kế tiếp. Cuối cùng là một hàm biến đổi đầu ra dùng 4 khoá con còn lại, tại đây 4 khối 16 bit được kết hợp tạo thành đầu ra mã 64 bít.
Hình 2. 3 Mô tả hoạt động của các vòng IDEA
Hình 2.3 mô tả hoạt động của vòng đầu tiên, cấu trúc các vòng sau đều giống vòng trước. Vòng lặp bắt đầu bằng một phép biến đổi kết hợp 4 khối con đầu vào với 4 khoá con theo MA. Bốn khối ra của phép biến đổi này được kết hợp bằng phép XOR để tạo thành hai khối 16 bit là đầu vào của cấu trúc MA. Cấu trúc MA lấy hai khoá con như đầu vào và kết hợp các đầu vào để cho hai khối 16 bit đầu ra. Cuối cùng 4 khối đầu ra từ phép biến đổi trên được kết hợp với hai khối đầu vào của cấu trúc MA dùng phép XOR để tạo ra bốn khối đầu vào cho vòng tiếp theo.
Hai đầu vào được sinh ra bởi các đầu vào thứ hai và thứ ba (x2 và x3) được tráo đổi để tạo ra các đầu ra thứ hai và thứ ba (w12 và w13). Điều này làm tăng khả năng trộn giữa các bit được xử lý và tạo cho thuật toán chịu được các phân tích mã khác nhau.
2.2. Mật mã không đối xứng:
trong i MẬT MÃ ĐỐI XỨNGG
2.2.1. Sơ lược sự phát triển
Ron Rivest, Adi Shamir và Len Adleman đề xuất hệ mật mã khoá công khai đầu tiên - hệ mật mã RSA - năm 1977. Kể từ đó đã có một số hệ mật mã khoá công khai được công bố, độ mật của chúng dựa trên các bài toán tính toán khác nhau. Trong đó, quan trọng nhất là các hệ mật sau:
- Hệ mật RSA
- Hệ mật McEliece
- Hệ mật Elgamal
- Hệ mật Chor - Rivest
- Hệ mật trên các đường cong Elliptic.
2.2.2. Hệ mật mã RSA
2.2.2.1. Khái niệm về hệ mật.
Một hệ mật là một bộ 5 (P, C, K, E, D ) thoả mãn các điều kiện sau:
1. P là một tập hữu hạn các bản rõ có thể.
2. C là tập hữu hạn các bản mã có thể.
3. K (không gian khoá) là tập hữu hạn các khoá có thể.
4. Đối với mỗi K Î K có một quy tắc mã eK: P ® C và một quy tắc giải mã tương ứng dK Î D. Mỗi eK: P ® C và dK: C ® P là những hàm mà dK(eK(x)) = x với mọi bản rõ x Î P.
2.2.2.2. Mô tả hệ mật RSA
Hệ mật mã RSA sử dụng các tính toán trong Zn, trong đó n là tích của hai số nguyên tố phân biệt p, q và f(n) = (p-1)(q-1). Mô tả hình thức của hệ mật này như sau:
Cho n = p.q trong đó p và q là các số nguyên tố khác nhau.
Không gian khoá K = {(n,p,q,a,b): ab º 1(modf(n))}
Với K = (n,p,q,a,b) ta xác định: eK(x) = xb mod n
và dK(y) = yn mod n
trong đó (x, y Î Zn).
Các giá trị n, b công khai còn các giá trị p, q, a giữ bí mật.
2.2.2.3. Thực hiện hệ RSA
Để thiết lập hệ thống, ta sẽ tuân theo các bước sau:
1. tạo hai số nguyên tố lớn p và q.
2. tính n = p.q và f(n) = (p-1)(q-1)
3. chọn một số ngẫu nhiên b (0 < b < f(n)) sao cho UCLN (b, f(n)) = 1
4. tính a = b-1 modf(n) bằng cách dùng thuật toán Euclide và giữ bí mật.
5. công bố n và b trong một thư mục và dùng chúng làm khoá công khai
2.2.2.4. Độ an toàn của RSA
Độ an toàn của hệ RSA được dựa trên giả thiết là hàm mã eK(x) = xb mod n là hàm một chiều. Bởi vậy thám mã sẽ không có khả năng về mặt tính toán để giải mã được một bản mã. Cửa sập cho phép giải mã được chính là thông tin về phép phân tích thừa số n (n=p.q). Vì biết phân tích này, người ta có thể tính f(n) = (p-1).(q-1) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Euclide mở rộng.
CHƯƠNG 3: CÁC HÀM BĂM
3.1. Giới thiệu
Các lược đồ chữ ký số được lựa chọn tùy theo từng ứng dụng nhưng việc ký lên từng bit dữ liệu để đảm bảo tính xác thực sẽ làm “mở rộng” nội dung các văn bản cần truyền tải. Một giải pháp hữu hiệu nhất cho các vấn đề này đó là việc sử dụng các hàm Hash (hàm băm) mã khoá công khai nhanh. Các hàm băm có nhiệm vụ: từ một văn bản có độ dài tùy ý tạo ra một bản tóm lược có độ dài cố định (theo yêu cầu của thuật toán ký), sau đó người ta sẽ ký lên bản tóm lược này.
3.2. Tính chất hàm băm
Quá trình ký văn bản điện tử X được thực hiện như sau:
- Đầu tiên xây dựng một bản tóm lược thông báo z, z = h(x) ở đây h là hàm băm công khai
- Tính y = sigk(z)
- Gửi cặp (x, y) tới phía người nhận
Việc kiểm tra có thể thực hiện bởi h là hàm băm công khai do đó ta có thể khôi phục được z = h(x), sau đó thực hiện các thủ tục kiểm tra tiếp theo.
Văn bản X
Bản tóm
lược
(Độ dài tùy ý)
Hàm Hash
Chữ ký số
Thuật toán ký
(Độ dài cố định)
Một trong những suy nghĩ đầu tiên, đơn giản nhất của người tấn công giả mạo đó là Với z = h(x) Tính toán x’ ≠ x để sao cho h(x’) = h(x).
Nếu thực hiện được điều này có nghĩa là kẻ giả mạo có thể gửi chèn thông điệp x’ giả mạo thay vì thông điệp việc phải gửi thông điệp x mà người nhận không thể xác định được.
Để tránh kiểu tấn công này các hàm Hash cần thoả mãn một số tính chất mà người ta gọi là tính không va chạm.
Tính chất không va chạm yếu
Hàm Hash là hàm không va chạm yếu nếu khi cho trước một bức điện x ta không thể tiến hành về mặt tính toán để tìm một bức điện x’ ≠ x sao cho h(x’) = h(x).
Tính chất không va chạm mạnh
Hàm Hash là hàm không va chạm mạnh nếu không có khả năng để tính toán tìm ra bức điện x và x’ sao cho x’ ≠ x và h(x’) = h(x).
Tính chất một chiều
Hàm Hash là một chiều nếu khi cho trước một bản tóm lược z không thể thực hiện về mặt tính toán để tìm bức điện x sao cho h(x) = z
3.3. Các hàm băm thường dùng :
Trong phần này, chúng ta sẽ đề cập đến một số hàm Hash thông dụng đó là MD4, MD5
- MD4 Tác giả Ronal Riverst - MIT đề xuất năm 1990.
- MD5 cùng tác giả với MD4
3.3.1. Mô tả MD5
Các bước tiến hành như sau:
Bước 1 Thêm các bits: Bản tin luôn được thêm vào để sao cho chiều dài của nó tính theo bits là length º 448 mod 512. Vì vậy chiều dài của bản tin cần thêm sẽ nhỏ bội của 512 bits là 64 bits. Các bits thêm vào gồm số đầu tiên là 1 và các số sau là 0.
Bước 2 Thêm chiều dài: Số 64 bits, thể hiện chiều dài của bản tin gốc (trước khi được thêm vào), sẽ được ghép thêm vào kết quả của bước 1. Nếu độ dài bản tin lớn hơn 264, thì chỉ 64 bits thấp của chiều dài được sử dụng, tức chiều dài của bản tin tính theo modulo 264
Kết quả là sau hai bước này, bản tin nhận được là bội của 512 bits, gồm các khối Y0, Yp,... YL-1, sao cho chiều dài tổng là L x 512 bits, bội của 16 từ 32 bits. Ký hiệu M[0,1, ...N-1] là các từ 32 bits của bản tin, thì N = L x 16.
Bước 3 Khởi động bộ đệm ABCD: Bộ đệm 128 bits dùng để lưu giá trị trung gian và kết quả cuối cùng của hàm băm, gồm bốn thanh ghi 32 bits (A, B, C, D). Các thanh ghi này được khởi động bằng các giá trị tính theo hệ cơ số 16 (byte thấp trước) như sau:
A
=
(0x)
0
1
2
3
4
5
6
7
B
=
(0x)
8
9
A
B
C
D
E
F
C
=
(0x)
F
E
D
C
B
A
9
8
D
=
(0x)
7
6
5
4
3
2
1
0
Mỗi vòng, đầu vào là một khối của bản tin (YP) và giá trị bộ đệm 128 bits đặt vào A, B, C, D để cập nhật nội dung của bộ đệm. Mỗi vòng sủ dụng 16 giá trị của bảng 64 phần tử T[1..64], trong đó mỗi phần tử T[i] = 232 * abs(sin(i)), vì vậy T[i] sẽ là một số nguyên 32 bits. Đầu ra của vòng thứ bốn, được cộng với MDP để tạo ra MD5. Phép cộng modulo 232, cộng riêng lẻ từng từ trong bộ đệm với các từ tương ứng trong MDP.
Bước 4 Xử lý bản tin trong các khối 512 bits: Bốn hàm logic nguyên thuỷ sử dụng cho bốn vòng. Mỗi hàm có 3 đầu vào 32bits và tạo ra 1 từ 32 bits. Mỗi hàm là tập hợp các phép toán logic theo bits. Toàn bộ quá trình xử lý một khối 512 bits gồm 4 vòng, mỗi vòng gồm 16 bước, tổng cộng là 64 bước. Chú ý mỗi bước, chỉ một trong 4 bytes của bộ đệm ABCD được cập nhật, vì vậy mỗi byte của bộ đệm được cập nhật 16 lần
Bước 5: Đầu ra: Sau khi L các khối 512 bits được xử lý, đầu ra của giai đoạn thứ L, chính là mã tóm lược bản tin 128 bits. Trong bốn vòng của quá trình xử lý khối 512 bits, mỗi vòng bao gồm lần lượt 16 bước, thực hiện trên bộ đệm ABCD.
a = b + CLSs(a + g(b, c, d) + X[k] + T[i])
3.3.2. Độ an toàn các hàm băm
MD4 là hàm băm “yếu” và được chính “cha đẻ” của nó nâng cấp 1 năm sau khi ra đời. MD5 có mặt trong nhiều ứng dụng mật mã và các nghiên cứu tấn công nó đã được thực hiện bởi các phòng thí nghiệm, tháng 8/2004 Xiaoyun, Dengguo Feng, Xueji Lai và Hongbo Yu đã công bố việc tấn công thành công MD5 với khoảng thời gian 1 giờ khi sử dụng công nghệ bó máy tính. Qua đó, các nhà nghiên cứu đề xuất việc thay thế MD5 bằng thuật toán SHA-1. Thuật toán của SHA-1 (một thành viên của họ hàm băm SHA - Secure Hash Algorithm) đã được chính phủ Hoa Kỳ công nhận là chuẩn chữ ký số
CHƯƠNG 4: GIAO THỨC IPSEC
Trong số 3 giao thức của VPN thì IPSec được sử dụng phổ biến hơn cả. Bởi bổ sung tính an toàn vào giao thức IP, IPSec kết hợp truyền dữ liệu an toàn với các kết nối TCP/IP. IPSec còn ứng dụng các kỹ thuật mã hoá và xác thực mới nhất. IPSec cung cấp giao thức truyền khoá (Internet Key Exchange – IKE), với việc xác thực người dùng và truyền khoá bắt tay.
4.1 Giao thức AH và ESP – vấn đề bảo mật đường truyền IPSec
IPSec thực hiện mã hoá và xác thực ở tầng mạng, như hình 4.1. Trước hết, nó cung cấp chế độ bảo vệ đầu cuối - đầu cuối (end – to – end) trong kiến trúc mạng, nên các hệ thống đầu cuối cũng như lớp ứng dụng không cần thay đổi. Thứ hai, các gói bảo vệ như là các gói IP thông thường nên chúng có thể dễ dàng được định tuyến qua các mạng IP, không đòi hỏi phải thay đổi gì trên các Các lớp ứng dụng (5-7)
Các lớp giao vận / mạng (3-4)
Các lớp Vật lý/ liên kế dữ liệu (1-2)
Mã hoá lớp ứng dụng
Mã hoá lớp mạng
Mã hoá lớp liên kết dữ liệu
Hình 4.1 Mã hoá lớp mạng IPSec
thiết bị mạng. Chỉ tại đầu cuối cần phải biết thuật toán mã hoá và khoá.
4.1.1. Authentication Header(AH):
AH là một trong những giao thức bảo mật, cung cấp tính năng đảm bảo toàn vẹn packet headers và data, xác thực nguồn gốc dữ liệu. Nó có thể tuỳ chọn cung cấp dịch vụ replay protection và access protection.
a. AH Mode:
AH có hai mode : Transport và Tunnel.
Trong Tunnel mode, AH tạo 1 IP Header mới cho mỗi gói tin . Trong Transport mode, AH không tạo IP Header mới.
b. AH xác thực và đảm bảo tính toàn vẹn dữ liệu :
B1: AH sẽ đem gói dữ liệu (packet ) bao gồm : Payload + IP Header + Key cho chạy qua giải thuật Hash 1 chiều và cho ra 1 chuỗi số. và chuỗi số này sẽ được gán vào AH Header
B2: AH Header này sẽ được chèn vào giữa Payload và IP Header và chuyển sang phía bên kia.
B3: Router đích sau khi nhận được gói tin này bao gồm : IP Header + AH Header + Payload sẽ được cho qua giải thuật Hash một lần nữa để cho ra một chuỗi số
B4: so sánh chuỗi số nó vừa tạo ra và chuỗi số của nó nếu giống nhau thì nó chấp nhận gói tin.
c. AH Header
Hình 4.2:AH Header
-Next Header : Trường này dài 8 bits , chứa chỉ số giao thức IP.
-Payload Length : Trường này chứa chiều dài của AH Header.
-Reserved : giá trị này được dành để sử dụng trong tương lai
-Security parameter Index (SPI) : mỗi đầu cuối của mỗi kết nối IPSec tuỳ ý chọn giá trị SPI. Hoạt động này chỉ được dùng để nhận dạng cho kết nối.
-Sequence Number : chỉ số này tăng lên 1 cho mỗi AH datagram khi một host gửi có liên quan đến chính sách SA. Giá trị bắt đầu của bộ đếm là 1. chuỗi số này không bao giờ cho phép ghi đè lên là 0.
-Authentication Data: Trường này chứa kết quả của giá trị Integrity Check Value (ICV). Trường này luôn là bội của 32-bit (từ) và phải được đệm vào nếu chiều dài của ICV trong các bytes chưa đầy.
d. Hoạt động của giao thức AH
- Hướng tốt nhất để hiểu AH làm việc như thế nào, ta sẽ xem và phân tích các gói tin AH.
H ình 4.3: Sample AH Transport Mode Packet
Hình trên cho thấy các thành phần của gói tin AH thật sự. Mỗi section của AH Packet gồm : Ethernet header , IP header , AH header và Payload. Dựa trên các trường của phần AH mode, ta thấy đây là gói tin ở Transport Mode vì nó chỉ chứa IP Header
Hình 4.4 : AH Header Fields from Sample Packet.
Các trường trong AH Header từ 4 gói tin đầu tiên trong AH session giữa host A và host B. Các trường trong header đầu tiên chỉ là nhãn, để đáp ứng trong việc nhận dạng AH mode.
e. AH version 3
Một chuẩn mới của AH là Version 3, phiên bản được phát triển dựa trên phiên bản phác thảo. Tính năng khác nhau giữa Version 2 và Version 3 là mối quan hệ thứ yếu để các quản trị viên IPSec và người dùng - một vài sự thay đổi đến SPI, và tuỳ chọn chỉ số dài hơn.
f. AHSummary:
- AH cung cấp dịch vụ đảm bảo toàn vẹn cho tất cả các header và data gói tin. Ngoại trừ một số trường IP Header mà định tuyến thay đổi trong chuyển tiếp
- AH bao gồm địa chỉ nguồn và địa chỉ đích trong dịch vụ đảm bảo toàn vẹn. AH thường không tương thích với NAT.
- Hiện nay, hầu hết IPSec bổ sung hỗ trợ phiên bản thứ hai của IPSec mà ESP có thể cung cấp dịch các vụ đảm bảo toàn vẹn dữ liệu qua sự xác thực.
- AH cung cấp một lợi ích mà ESP không có, đó là : đảm bảo toàn vẹn cho outermost IP Header
4.2.2. Encapsulaton Secutity Payload (ESP)
a. ESP Mode
ESP có hai mode : Transport Mode và Tunnel Mode.
Trong Tunnel Mode : ESP tạo một IP Header mới cho mỗi gói tin. IP Header mới liệt kêt các đầu cuối của ESP Tunnel ( như hai IPSec gateway) nguồn và đích của gói tin. Vì Tunnel mode có thể dùng với tất cả 3 mô hình cấu trúc VPN.
Hình 4.5: ESP Tunnel Mode Packet
ESP Tunnel Mode được sử dụng thường xuyên nhanh hơn ESP Transport Mode. Trong Tunnel Mode, ESP dùng IP header gốc thay vì tạo một IP header mới. Trong Transport Mode, ESP có thể chỉ mã hoá và/hoặc bảo đảm tính toàn vẹn nội dung gói tin và một số các thành phần ESP, nhưng không có với IP header.Giao thức AH, ESP trong Transport mode thường sử dụng trong cấu trúc host-to-host. Trong Transport mode không tương thích với NAT
b. ESP Packet Fields:
Hình 4.6: ESP Packet Fields
ESP thêm một header và Trailer vào xung quanh nội dung của mỗi gói tin. ESP Header được cấu thành bởi hai trường : SPI và Sequence Number.
- SPI (32 bits) : mỗi đầu cuỗi của mỗi kêt nối IPSec được tuỳ chọn giá trị SPI. Phía nhận sử dụng giá trị SPI với địa chỉ IP đích và giao thức IPSec để xác định chính sách SA duy nhất mà nó được áp cho gói tin.
- Sequence Number : thưòng được dùng để cung cấp dịch vụ anti-replay. Khi SA được thiết lập, chỉ số này được khởi đầu về 0. Trước khi mỗi gói tin được gửi, chỉ số này luôn tăng lên 1 và được đặt trong ESP header. Để chắc chắn rằng sẽ không có gói tin nào được công nhận, thì chỉ số này không được phép ghi lên bằng 0.
- Padding ( 0-255 bytes) : được thêm vào cho đủ kích thước của mỗi gói tin.
- Pad length: chiều dài của Padding
- Next header : Trong Tunnel mode, Payload là gói tin IP, giá trị Next Header được cài đặt là 4 cho IP-in-IP. Trong Transport mode, Payload luôn là giao thức lớp 4.
- Authentication data : trường này chứa giá trị Integrity Check Value (ICV) cho gói tin ESP. ICV được tính lên toàn bộ gói tin ESP công nhận cho trường dữ liệu xác thực của nó. ICV bắt đầu trên ranh giới 4-byte và phải là bội số của 32-bit (đơn vị từ).
c. Quá trình mã hoá và hoạt động của giao thức ESP:
ESP sử dụng mật mã đối xứng để cung cấp sự mật hoá dữ liệu cho các gói tin IPSec. Cho nên, để kết nối của cả hai đầu cuối đều được bảo vệ
Các file đính kèm theo tài liệu này:
- Nguyen Thị Hong Minh-CT801.doc
- Nguyen Thi Hong Minh-CT801.ppt