Giáo trình An toàn mạng (Bản mới nhất)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình An toàn mạng (Bản mới nhất)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
giao_trinh_an_toan_mang_ban_moi_nhat.pdf
Nội dung text: Giáo trình An toàn mạng (Bản mới nhất)
- CHƯƠNG 1 – TỔNG QUAN VỀ AN NINH MẠNG 1.1. Đối tượng và phương pháp nghiên cứu Bảo mật hệ thống thông tin Thông tin cho có giá trị cao khi đảm bảo tính chính xác và kịp thời, hệ thống chỉ có thể cung cấp các thông tin có giá trị thực sự khi các chức năng của hệ thống đảm bảo hoạt động đúng đắn. Mục tiêu của việc đảm bảo an toàn an ninh cho hệ thống thông tin là đưa ra các giải pháp và ứng dụng các giải pháp này vào hệ thống để loại trừ hoặc giảm bớt các nguy hiểm. Hiện nay các cuộc tấn công ngày càng tinh vi, gây ra mối đe dọa tới sự an toàn thông tin. Các cuộc tấn công có thể đến từ nhiều hướng theo các cách khác nhau, do đó cần phải đưa ra các chính sách và biện pháp đề phòng cần thiết. Các nguy cơ đe dọa Có rất nhiều nguy cơ ảnh hưởng đến sự an toàn của một hệ thống thông tin. Các nguy cơ này có thể xuất phát từ các hành vi tấn công trái phép bên ngoài hoặc từ bản thân các lỗ hổng bên trong hệ thống. Tất cả các hệ thống đều mang trong mình lỗ hổng hay điểm yếu. Nhìn một cách khái quát, ta có thể phân ra thành các loại điểm yếu chính sau: Phần mềm: Việc lập trình phần mềm đã ẩn chứa sẵn các lỗ hổng. Theo ước tính cứ 1000 dòng mã sẽ có trung bình từ 5-15 lỗi, trong khi các Hệ điều hành được xấy dựng từ hàng triệu dòng mã(Windows: 50 triệu dòng mã). Phần cứng: Lỗi thiết bị phần cứng như Firewall, Router, . . . Chính sách: Đề ra các quy định không phù hợp, không đảm bảo an ninh, ví dụ như chính sách về xác thực, qui định về nghĩa vụ và trách nhiệm người dùng trong hệ thống. Sử dụng: Cho dù hệ thống được trang bị hiện đại đến đâu do những do con người sử dụng và quản lý, sự sai sót và bất cẩn của người dùng có thể gây ra những lỗ hổng nghiêm trọng. Một số ví dụ về bảo vệ an toàn thông tin Truyền file: A và B trao đổi thông tin riêng tư A B C giữ chặn thông tin trao đổi giữa A và B C 1
- Trao đổi thông điệp Danh sách Danh sách NSD NSD đã sửa đổi A B C giữ chặn danh C gửi danh sách NSD và sách được sửa đổi danh sửa đổi cho sách B C Giả mạo A không thông tin Danh sách cho B giả mạo A B C giả mạo A, gửi danh sách mới đến B C Qua thực tế người ta nhận thấy rằng, vấn đề bảo mật trong hệ thống mạng hay liên mạng là một bài toán rất phức tạp, vì: - Không tồn tại phương pháp thích hợp cho mọi trường hợp - Các cơ chế bảo mật luôn đi đôi với các biện pháp đối phó - Lựa chọn những giải pháp cụ thể đối với từng ngữ cảnh cụ thể. 1.2. Các dịch vụ, cơ chế an toàn an ninh thông tin và các dạng tấn công vào hệ thống mạng. Phân loại các dịch vụ an toàn an ninh, bao gồm: - Bảo mật riêng tư - Xác thực - Toàn vẹn thông tin - Tính không thể từ chối - Kiểm soát truy cập - Tính sẵn sàng Các cơ chế an toàn an ninh - Trên thực tế không tồn tại một cơ chế duy nhất nào có thể đảm bảo an toàn thông tin cho mọi hệ thống. - Để đảm bao an toàn an ninh cho hệ thống thông tin người ta sử các kỹ thuật mã hóa: Mã đối xứng, mã công khai 2
- - Sử dụng Firewall, hệ thống phát hiện xâm nhập - IDS , và các biện pháp phối hợp khác. Các dạng tấn công, được chia làm 2 loại: - Tấn công chủ động - Tấn công thụ động 1.3. Các dạng tấn công Đối với các hành vi tấn công từ bên ngoài, ta có thể chia thành hai loại là: tấn công thụ động và tấn công chủ động. “Thụ động” và “chủ động” ở đây được hiểu theo nghĩa có can thiệp vào nội dung và vào luồng thông tin trao đổi hay không. Tấn công “thụ động” chỉ nhằm đạt mục tiêu cuối cùng là nắm bắt được thông tin, không biết được nội dung nhưng cũng có thể dò ra được người gửi, người nhận nhờ vào thông tin điều khiển giao thức chứa trong phần đầu của các gói tin. Hơn thế nữa, kẻ xấu còn có thể kiểm tra được số lượng, độ dài và tần số trao đổi để biết được đặc tính trao đổi của dữ liệu. Một số hình thức tấn công điển hình: a) Các hành vi dò quét: Bất cứ sự xâm nhập vào một môi trường mạng nào đều bắt đầu bằng cách thăm dò để tập hợp thông tin người dùng, cấu trúc hệ thống bên trong và điểm yếu bảo mật. Việc thăm dò được thăm dò theo các bước thăm dò thụ động(thu thập các thông tin được công khai) và thăm dò chủ động(sử dụng các công cụ để tìm kiếm thông tin trên máy tính của nạn nhân). Các công cụ dò quét được hacker chuyên nghiệp thiết kế và công bố rộng rãi trên Internet. Các công cụ thường hày dùng: Nmap, Essential Network tools thực hiện các hành động Ping Sweep, Packet Sniffer, DNS Zone Transfer b) Tấn công từ chối dịch vụ( Denial Service Attacks): Đây là kiểu tấn công khó phòng chống nhất và trên thế giới vẫn chưa có cách phòng chống triệt để. Nguyên tắc chung của cách tấn công này là hacker sẽ gửi liên tục nhiều yêu cầu phục vụ đến máy nạn nhân. Máy bị tấn công sẽ phải trả lời tất cả các yêu cầu này. Khi yêu cầu gửi đến quá nhiều, máy bị tấn công sẽ không phục vụ kịp thời dẫn đến việc đáp ứng các yêu cầu của các máy hợp lệ sẽ bị chậm trễ, thậm chí ngừng hẳn hoặc có thể cho phép hacker nắm quyền điều khiển. 3
- c) Các hành vi khai thác lỗ hổng bảo mật: Các hệ điều hành, cơ sở dữ liệu, các ứng dụng luôn luôn có những điểm yếu xuất hiện hàng tuần thậm chí hàng ngày. Những điểm yếu này thường xuyên được công bố rộng rãi trên nhiều website về bảo mật. Do vậy các yếu điểm của hệ thống là nguyên nhân chính của các tấn công, một thống kê cho thấy hơn 90% các tấn công đều dựa trên các lỗ hổng bảo mật đã được công bố. Đối với một hệ thống mạng có nhiều máy chủ máy trạm, việc cập nhật các bản vá lỗ hổng bảo mật là một công việc đòi hỏi tốn nhiều thời gian và khó có thể làm triệt để. Và do đó, việc tồn tại các lỗ hổng bảo mật tại một số điểm trên mạng là một điều chắc chắn. Người ta định nghĩa Tấn công Zero-Day là các cuộc tấn công diễn ra ngay khi lỗi được công bố và chưa xuất hiện bản vá lỗi. Như vậy kiểu tấn công này rất nguy hiểm vì các hệ thống bảo mật thông thường không thể phát hiện ra. d) Các tấn công vào ứng dụng(Application-Level Attacks): Đây là các tấn công nhằm vào các phần mềm ứng dụng mức dịch vụ. Thông thường các tấn công này, nếu thành công, sẽ cho phép kẻ xâm nhập nắm được quyền điều khiển các dịch vụ và thậm chí cả quyền điều khiển máy chủ bị tấn công. Số lượng các vụ tấn công liên tục tăng trong khi hình thức tấn công theo kiểu dựa trên điểm yếu của con người (tấn công kiểu Sophistication) lại giảm. Rõ ràng các hình thức tấn công vào hệ thống máy tính hiện nay ngày càng đa dạng và phức tạp với trình độ kỹ thuật rất cao. Ngoài ra quá trình tấn công ngày càng được tự động hóa với những công cụ nhỏ được phát tán khắp nơi trên mạng 4
- Các dạng tấn công thụ động: - Giải phóng nội dung của thông điệp: ngăn chặn đối phương thu và tìm hiểu nội dung của thông tin truyền tải. - Phân tích tải: Khi phân tích tải đối phương có thể xác định được vị trí của các máy tham gia vào quá trình truyền tin; tần suất và kích thước bản tin. Dạng tấn công thụ động rất khó phát hiện vì không làm thay đổi dữ liệu, với dạng tấn công này người ta quan tâm đến vấn để ngăn chặn hơn là vấn đề phát hiện. Các dạng tấn công chủ động: - Giả danh - Phát lại - Thay đổi nội dung thông điệp - Từ chối dịch vụ Dạng tấn công chủ động rất khó có thể ngăn chặn tuyệt đối. Vì vậy yêu cầu phải bảo vệ vật lý mọi đường truyền thông tại mọi thời điểm. Mục tiêu an toàn của dạng tấn công này là có thể phát hiện và phục hồi lại thông tin từ mọi trường hợp bị phá hủy và làm trễ. 1.4. Các dịch vụ an toàn an ninh. Các dịch vụ an toàn an ninh của hệ thống thông tin phải đảm bảo các yêu cầu sau: 5
- Đảm bảo tính tin cậy: Thông tin không thể bị truy nhập trái phép bởi những người không có thẩm quyền. Đảm bảo tính nguyên vẹn: Thông tin không thể bị sửa đổi, bị làm giả bởi những người không có thẩm quyền. Đảm bảo tính sẵn sàng: Thông tin luôn sẵn sàng để đáp ứng sử dụng cho người có thẩm quyền. Đảm bảo tính không thể từ chối: Thông tin được cam kết về mặt pháp luật của người cung cấp. Đảm bảo tính riêng tư: Bảo vệ dữ liệu được truyền tải khỏi các tân công thụ động. Kiểm soát truy cập: Cung cấp khả năng giới hạn và kiểm soát các truy cập tới các máy chủ hoặc tới các ứng dụng thông qua đường truyền tin. 1.5. Các mô hình an toàn an ninh mạng. Mô hình an toàn mạng: bài toán an toàn an ninh thông tin mạng nảy sinh khi: Cần thiết phải bạo vệ quá trình truyền tin khỏi các hành động truy cập trái phép Đảm bảo tính riêng tư và tính toàn vẹn Đảm bảo tính xác thực, . . . Mô hình an toàn mạng yêu cầu: - Thiết kế một giải thuật thích hợp cho việc chuyển đổi liên quan đến an toàn - Tạo ra thông tin bí mật (khóa) đi kèm với giải thuật - Phát triển các phương pháp phân bổ và chia sẻ thông tin bí mật - Đặc tả một giao thức sử dụng bởi hai bên gửi và nhận dựa trên giải thuật an toàn và thông tin bí mật, làm cơ sở cho một dịch vụ an toàn 6
- Mô hình an toàn truy cập mạng: Mô hình này yêu cầu: - Lựa chọn các chức năng gác cổng thích hợp để định danh người dùng - Cài đặt các điều khiển an toàn để đảm bảo chỉ những người dùng được phép mới có thể truy nhập được vào các thông tin và tài nguyên tương ứng. Các hệ thống máy tính đáng tin cậy có thể dùng để cài đặt mô hinh này Cần nhấn mạnh một thực tế rằng không có một hệ thống nào an toàn tuyệt đối cả. Bởi vì bất kỳ một hệ thống bảo vệ nào dù hiện đại và chắc chắn đến đâu đi nữa thì cũng có lúc bị vô hiệu hóa bởi những kẻ phá hoại có trình độ cao và có đủ thời gian. Chưa kể rằng tính an toàn của một hệ thống thông tin còn phụ thuộc rất nhiều vào việc sử dụng của con người. Từ đó có thể thấy rằng vấn đề an toàn mạng thực tế là cuộc chạy tiếp sức không ngừng và không ai dám khẳng định là có đích cuối cùng hay không. 7
- CHƯƠNG 2 – MỘT SỐ PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THÔNG TIN 2.1 Nguyên lý các phương pháp mã hoá đối xứng 2.1.1.Sơ đồ chung của phương pháp mã hóa đối xứng. Sơ đồ mã hóa đối xứng Mô hình hệ mã hóa đối xứng Mô hình này gồm có 5 thành phần: - Văn bản thô - Giải thuật mã hóa - Khóa bí mật - Văn bản mã hóa - Giải thuật giải mã Giả thiết rằng : - Thuật toán mã hóa phải đủ mạnh để không thể giải mã được thông điệp nếu chỉ dựa trên duy nhất nội dung của văn bản được mã hóa. - Sự an toàn của phương pháp mã hóa đối xứng chỉ phụ thuộc vào độ bí mật của khóa mà không phụ thuộc vào độ bí mật của thuật toán. 8
- Mô hình hệ thống mã hóa đối xứng Nguồn thông tin: - Tập hợp thông điệp của nguồn: Các xâu ký tự X={X1, X2, . . , XM} - Thông điệp: xâu ký tự độ dài m Xi=[xi1, xi2, . . , xim] xik A, A- bảng ký tự nguồn, thông thường A={0,1} - Mỗi một thông điệp Xi có một xác suất xuất hiện P(X=Xi) Khóa mật mã: - Tập hợp khóa K= {K1, K2, . ., KL} - Khóa độ dài l: Ki=[ki1, . . ., kil] kij C, C- bảng ký tự khóa, thông thường C={0,1} Mã mật: - Tập hợp thông điệp mã mật Y=[Y1, . . , YN] - Thông điệp mã mật: Yj=[yj1, . ., yjn] yjp B, B- bảng ký tự mã mật, thông thường B={0,1} Quá trình mã hóa và giải mã: - Quá trình mã hóa: Y=Ek(X) - Quá trình giải mã: . Bên nhận giải mã thông điệp bằng khóa được phân phối: X=DK(Y)=DK(EK,R(X)) . Phía tấn công: đối phương nhận được thông điệp Y, nhưng không có được khóa K. Dựa vào thông điệp Y, đối phương phải khôi phục lại hoặc K hoặc X hoặc cả hai. Mật mã: phân loại các hệ thống mật mã - Dạng của phép toán tham gia vào mã hóa văn bản từ dạng thông thường sang dạng được mật mã hóa. 9
- - Số lượng khóa được dùng trong thuật toán: Hệ thống mã hóa đối xứng; Hệ thống mã hóa không đối xứng. - Phương thức mà văn bản đầu được xử lý: mã hóa khối; mã hóa dòng. Thám mã( phá mã): Là nỗ lực giải mã văn bản đã được mã hóa không biết trước khóa bí mật. Có hai phương pháp phá mã - Vét cạn : Thử tất cả các khóa có thể . Về lý thuyết có thể thử tất cả các giá trị khóa cho đến khi tìm thấy văn bản thô từ văn bản mã hóa . Dựa trên giả thiết có thể nhận biết được văn bản thô cần tìm . Tính trung bình cần thử một nửa tổng số các trường hợp có thể . Thực tế không khả khi nếu độ dài khóa lớn - Dùng kỹ thuật : . Khai thác những nhược điểm của giải thuật . Dựa trên những đặc trưng chung của văn bản thô hoặc một số cặp văn bản thô - văn bản mã hóa mẫu Các kỹ thuật phá mã: - Chỉ biết văn bản được mã hóa: Chỉ biết giải thuật mã hóa và văn bản mã hóa ; - Biết một số văn bản gốc và mật mã tương ứng: Biết thêm một số cặp văn bản thô - văn bản mã hóa ; - Tấn công bằng văn bản rõ được lựa chọn trước: Chọn 1 văn bản thô, biết văn bản mã hóa tương ứng ; - Tấn công bằng mật mã cho trước: Chọn 1 văn bản mã hóa, biết văn bản thô tương ứng ; - Tấn công bằng bản rõ tùy chọn: Kết hợp chọn văn bản thô và chọn văn bản mã hóa. An toàn hệ mã hóa: - Sơ đồ mã hóa được coi là an toàn vô điều kiện: Văn bản mã hóa không chứa đủ thông tin để xác định duy nhất văn bản thô tương ứng, bất kể với số lượng bao nhiêu và tốc độ máy tính thế nào - Sơ đồ mã hóa được coi là an toàn theo tính toán: . Chi phí phá mã vượt quá giá trị thông tin . Thời gian phá mã vượt quá tuổi thọ thông tin 2.1.2.Một số phương pháp mã hóa đối xứng kinh điển 2.1.2.1.Mã Caesar. Là hệ mã hóa thay thế sớm nhất và đơn giản nhất. Được sử dụng đầu tiên bởi Julius Caesar vào mục đích quân sự. Nội dung: Các ký tự chữ cái được gán giá trị(a=1, b=2, . . .) 10
- C=E(p)=(p+k) mod 26, k=1, 2, . ., 25 k là khóa mật mã Quá trình giải mã: p=D(C)=(C-K) mod 26 Các vấn đề của mã Caesar: Thuật tóan mã hóa và giải mã đã biết trước Thám mã: - Không gian khóa nhỏ: chỉ có 25 khóa; - Khi thám mã bằng phương pháp vét cạn: chỉ cần thử với 25 khóa. Ngôn ngữ trong bản gốc đã biết trước và dễ dàng nhận biết. 2.1.2.2.Mã mật Hill. Thuật toán mã hóa: Mỗi ký tự được gán giá trị số: a=0, b=1, . ., z=25 Lựa chọn m ký tự liên tiếp của văn bản gốc Thay thế các ký tự đã lựa chọn bằng m ký tự mã mật, được tính bằng m phương trình tuyến tính Hệ phương trình mã hóa: C=KP mod 26; K – là ma trận khóa Thuật toán giải mã: P=K-1C mod 26 Ví dụ: với m=3 hệ phương trình truyến tính có dạng sau: c1 = (k11P1 + k12P2 + k13P3) mod 26 c2 = (k21P1 + k22P2 + k23P3) mod 26 c3 = (k31P1 + k32P2 + k33P3) mod 26 Hệ phương trình này có thể biểu diễn theo vecto cột và ma trận sau: hoặc C=KP mod 26 Ma trận K là ma trận khóa mật mã, giả sử 11
- Giả sử mã hóa xâu ký tự: “paymoremoney” Ba ký tự đầu tiên của văn bản được biểu diễn bằng vector Tiếp tục tính toán ta thu được sâu ký tự mã hóa là: LNSHDLEWMTRW Giải mã: giải mã thông điệp bằng ma trận K-1 2.1.2.3.Hệ thống Vernam. • Để chống lại quá trình thám mã, cần lựa chọn khoá thoả mãn: . Khoá có độ dài bằng văn bản rõ. . Khóa được chọn sao cho khoá và văn bản gốc độc lập thống kê. • Hệ mã mật Vernam: . Dùng cho mã nhị phân . Ci= piki . pi: bit thứ i của văn bản gốc; . ki: bit thứ i của khoá; . Ci: bit thứ i của văn bản được mã hoá; . : phép toán XOR. • Giải mã bằng phép toán ngược: pi= Ciki • Tạokhoá: tạo vòng lặp với một khoá. Như vậy thực tế, hệ thống làm việc với một khóa rất dài nhưng lặp lại. • Hệ thống Vernam có thể bị phá nếu đối phương biết một văn bản mã có độ dài đủ lớn, sử dụng một số văn bản gốc đã biết. • Với khoá được sinh ngẫu nhiên, có độ dài bằng độ dài văn bản gốc, không lặp lại: sơ đồ mã sử dụng mộtlần: không thể phá khoá. Đầu ra độc lập thống kê với văn bản gốc. • Vấn đề nảy sinh: đảm bảo bảo mật cho quá trình gửi và nhận khoá ngẫu nhiên. 2.1.2.4.Mã hóa khối. Định nghĩa mã hóa khối: • Mã khối là mật mã khóa đối xứng thực hiện trên nhóm bit có độ dài cố định. Nhóm bit này được gọi là một khối.Quá trình chuyển đổi không thay đổi. 12
- • Khi mã hóa, mã khối có thể thực hiện trên từng khối độ dài 128 bit của bản rõ tại đầu vào thứ nhất và cho ra khối của mã mật. . Quá trình biến đổi được kiểm soát bằng đầu vào thứ hai: khóa mật Quá trình giải mã thực hiện tương tự: nhận tại đầu vào thứ nhất khối 128 bit của mật mã, khóa mật và tại đầu ra ta nhận được khối 128 bit của bản rõ. • Để mã hóa bản tin có độ dài lớn hơn kích thước khối, (ví dụ 128 bit ), các chế độ xử lý( mode of operation )được sử dụng. • Mã hóa khối tương phản với mãhóa dòng (stream cipher ), trong đó mỗi ký tự được thao tác một lần và quá trình chuyển đổi thay đổi trong suốt quá trình mã hóa. • Ví dụ mã hóa khối: . Thuật toán DES do công ty IBM xây dựng và công bố năm 1977. . Hậu duệ của DES, Advanced Encryption Standard (AES), ra đời năm 2001. • Mật mã khối gồm một cặp thuật toán: . Thuật toán mã hóa, E,và . Thuật toán giải mã, E-1. • Cả hai thuật toán đều có hai đầu vào: . Khối dữ liệu đầu vào kích thước n bit và . Khóa độ dài k bit. • Đầu ra là khối dữ liệu kích thước n-bit. 2.1.2.5.Mật mã dòng. • Mật mã dòng là mật mã khóa đối xứng, trong đó các ký tự của bản rõ được mã hóa lần lượt và quá trình biến đổi các ký tự tiếp theo thay đổi trong quátrình mã hóa. Một tên khác của mật mã dòng là mật mã trạng thái vì quá trình mã hóa từng ký tự phụ thuộc vào trạng thái hiện thời. Trong thực c tiễn, ký tự có thể là từng bít hoặc byte. Mật mã dòng biểu diễn cách tiếp cận khác của kỹ thuật mã hóa đối xứng dựa trên kỹ thuật mã hóa khối. Thuật toán mật mã dòng thường được thực hiện ở tốc độ cao thuật toán mã hóa khối và có phần cứng thấp hơn. Tuy nhiên mật mã dòng dễ bị các vấn đề an ninh nghiêm trọng nếu sử dụng không đúng. 2.1.3.Phương pháp DES. • DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin (1 khối = 64bit) của bản rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có độ dài không thay đổi. 13
- • DES cũng sử dụng khóa để cá biệt hóa quá trình chuyển đổi. Do vậy, chỉ khi biết khóa mới có thể giải mã được văn bản mã • Khóa dùng trong DES có độ dài toàn bộ là 64 bit. Tuy nhiên chỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra. Vì thế, độ dài thực tế của khóa chỉ là 56 bit. 2.1.3.1.Sơ đồ mã hóa. • Mã hóa DES được thực hiện qua 16 vòng • Trước khi đi vào 16 chu trình chính, khối thông tin 64bit được tách làm 2 phần 32 bit và mỗi phần sẽ được xử lý tuần tự (quá trình này còn gọi là mạng Feistel). • Cấu trúc của thuật toán (mạng Feistel) đảm bảo rằng quá trình mã hóa và giải mã diễn ra tương tự. Điểm khác nhau chỉ ở chỗ các khóa con được sử dụng theo trình tự ngược nhau. 14
- Quá trình mã hóa được chia làm 3 giai đoạn: • Giai đoạn 1: với bản rõ cho trước x, một xâu x’ sẽ được tạo ra bằng cách hoán vị các các bit của x theo hoán vị ban đầu IP(Initial permutation) x’= IP(x)= L0 R0; L0: 32 bit đầu; R0: 32 bit cuối • Giai đoạn 2: Tính toán 16 lần lập theo 1 hàm xác định. Ta sẽ tính LiRi (1≤ i ≤ 16) theo quy tắc Li=Ri-1 Ri = Li-1⊕ f (Ri-1, Ki) ⊕ là toán tử Xor k1, k2, k3. . . k16 là xâu bit độ dài 48 bit được tính qua hàm khoá K (ki là 1 phép hoán vị bit trong K) -1 • Giai đoạn 3: áp dụng hoán vị ngược IP cho xâu R16L16 ta thu được bản mã. 2.1.3.2.Giải mã. Do là 1 thuật toán đối xứng nên quá trình giải mã và mã hóa cũng gần giống nhau chỉ khác ở: Li=Ri-1 15
- Ri = Li-1⊕ f (Ri-1, K16-i) Khóa K của hàm F sẽ đi từ 16 ->0 . 2.1.3.3.Tính Hàm f(Ri , Ki ). • R là xâu bit có độ dài 32 bit • K là xâu bit có độ dài 48 bit • Đầu ra của F là xâu có đọ dài 32 bit • E là hàm mở rộng cố định: được mở rộng từ R với 16 bit của R xuất hiện 2 lần. • Thực hiện phép Xor E(R) với K • Chia xâu kết quả nhận được từ phép Xor thành các xâu 6 bit • Đưa các xâu này vào các S-Box • Hoán vị xâu nhận được theo 1 một hàm hoán vị cố định P ta thu được F(R,K) 16
- S – Box (Phép thay thế) P – Hàm hoán vị 2.1.3.4. Phá mã DES • Khóa 56 bit có 256 = 7,2 x 1016 giá trị có thể • Phương pháp vét cạn tỏ ra không thực tế • Tốc độ tính toán cao có thể phá được khóa • 1997 : 70000 máy tính phá mã DES trong 96 ngày • 1998 : Electronic Frontier Foundation (EFF) phá mã DES bằng máy chuyên dụng (250000$) trong < 3 ngày • 1999 : 100000 máy tính phá mã trong 22 giờ • Vấn đề còn phải nhận biết được văn bản thô • Thực tế DES vẫn được sử dụng không có vấn đề • Nếu cần an toàn hơn : 3DES hay chuẩn mới AES 2.1.4.Quản trị và phân phối khóa trong mã hóa đối xứng. 17
- 2.1.4.1.Đặt vấn đề. • Trong kỹ thuật mật mã truyền thống, hai phía tham gia vào truyền tin phải chia sẻ khoá mật ⇒ khoá phải được đảm bảo bí mật: phải duy trì được kênh mật phân phối khóa. • Khóa phải được sử dụng một lần: Khoáphải được thường xuyên thay đổi. • Mức độ an toàn của bất kỳ hệ mật sẽ phụt huộc vào kỹ thuật phân phối khoá. 2.1.4.2.Một số kỹ thuật phân phối khóa. • Phân phối khóa không tập trung: Khoá được A lựa chọn và phân phối vật lý tới B. • Phân phối khóa tập trung: Người thứ ba C lựa chọn khoá và phân phối vật lý tới A và B. • Nhận xét: . Hai kỹ thuật này khá cồng kềnh khi các bên tham gia vào trao đổi thông tin với số lượng lớn. . Nếu A và B trước đây và hiện nay đã dùng khoá, một phía có thể gửi khoá mới dùng khoá cũ để mã hoá. . Nếu A và B có kết nối mã mật với phía thứ ba C, C có thể phân phối khoá theo đường mã mật tới A và B. 2.1.4.3. Phân cấp khóa. • Việc sử dụng trung tâm phân phối khoá dựa trên cơ sở của việc phân cấp các khoá. • Trên cấp độ tối thiểu, sẽ có hai cấp khoá được sử dụng: . Việc giao tiếp giữa hai trạm đầu cuối sẽ được mã hoá bằng một khoá tạm thời gọi là khoá phiên. - Khoá phiên sẽ được sử dụng trong thời gian một kết nối lôgic như trong mạng ảo hoặc liên kết vận chuyển, sau đó sẽ được loại bỏ. . Mỗi khoá phiên sẽ được nhận từ trung tâm phân phối khoá KDC trên cùng một hạ tầng mạng với kết nối đầu cuối. - Khoá phiên được truyền dưới dạng mã hoá bằng mã chính (masterkey). Khoá chính này được chia sẻ giữa KDC và trạm đầu cuối hoặc người sử dụng. - Mỗi trạm đầu cuối sẽ có một khoá chính được chia sẻ với KDC. - Các khoá chính này phải được chia sẻ theo một cách nào đó giữa KDC và máy trạm. Số lượng các khoá chính có thể kiểm soát được: 18
- Nếu có N đối tượng cần tương tác với nhau theo cặp, như vậy cần có nhiều nhất N(N-1)/2 khoá phiên sẽ được sử dụng một lúc. Nhưng khi đó chỉ cần N khoá chính cho mỗi đối tượng. Như vậy các khoá chính có thể được phân phối theo đường không phải mật mã như phân phối vật lý. 2.1.4.4. Phân phối khóa. Kịch bản quá trình phân phối khóa. • Giả thiết: mội người sử dụng cùng chia sẻ một khóa mật chính với trung tâm phân phối khóa( KDC). • Tiền đề: . Người sử dụng A muốn thiết lập kết nối lôgic với người sử dụng B. . Hai phía trao đổi thông tin yêu cầu khóa phiên sử dụng một lần để bảo mật dữ liệu truyền qua kết nối. . Phía A có khóa mật KA, khóa này chỉ có A và KDC biết. . Phía B có khóa mật KB, khóa này chỉ có B và KDC biết. • A yêu cầu KDC khóa phiên để bảo mật liên kết lôgic với B. . Trong thông điệp này chứa định danh của A và B cùng với dấu hiệu nhận diện N1. . Dấu hiệu nhận diện N1 này chỉ được sử dụng một lần trong trường hợp này. . Dấu hiệu nhận diện N1 có thể là dấu thời gian, bộ đếm, hoặc là một số ngẫu nhiên. . Yêu cầu tối thiểu đối với dấu nhận diện: dấu hiệu này phải khác nhau đối với từng yêu cầu. 19
- . Để ngăn chặ sự giả mạo, dấu hiệu nhận diện phải khó bị đối phương dự đoán. Như vậy, số ngẫu nhiện là lựa chọn tốt. • Trung tâm phân phối khóa KDC trả lời A bằng thông điệp được mã hóa bằng khóa KA. Như vậy chỉ có A là người duy nhất có thể giải mã thành công thông điệp và A cũng xác định được nguồn gốc của thông điệp( A xác định được thông điệp là do KDC gửi tới do khóa KA chỉ có duy nhất A và KDC biết). Trong thông điệp chứa những thông tin dành cho A . Khóa phiên sử dụng một lần KS; . Thông điệp gốc cùng với dấu hiệu nhận dạng N1. Các thông tin này cho phép Aso sánh câu trả lời từ KDC với yêu cầu ban đầu. Như vậy, A có thể kiểm tra rằng yêu cầu ban đầu không bị thay đổi trước khi KDC nhận được và do có dấu hiệu nhận dạng N1nên thông điệp này không phải là phiên bản phát lại của một yêu cầu nào đó trước đó. Trong thông điệp cũng có những thông tin dành cho B: . Khóa phiên sử dụng một lần KS; . Định danh của A – IDA. Hai thông tin này được mã hóa với khóa mật KB chia sẻ giữa B và KDC. Những thông tin này được gửi cho B để thiết lập liên kết và chứng minh định danh của A. • A lưu lại khóa phiên KS để sử dụng cho liên kết sắp thiết lập và . gửi cho B những thông tin của KDC dành cho B–Ekb[KS|| IDA]. Vì những thông tin này được mã hóa bằng KB nên chúng được bảo vệ khỏi hình thức nghe trộm. Sau khi nhận được thông điệp từ A, B biết được khóa phiên KS, và biết được phía bên kia là A từ định danh của A. Thêm vào đó, B biết được những thông tin này là do KD cung cấp vì được mã hóa bằng KB–Ekb. . Như vậy từ thời điểm này, khó phiên đã được phân phối mật tới A và B. A và B có thể sử dụng khóa phiên để trao đổi thông tin. Tuy nhiên để tăng độ tin cậy cho quá trình trao đổi thông tin và ngăn chặn các khả năng tấn công, hai bước sau có thể được áp dụng: 1. B gửi tới cho Adấu hiệu nhận dạng N2 bằng cách mã hóa sử dụng khóa phiên. 2. Bằng cách sử dụng khóa phiên KS, A trả lời B bằng thông điệp f(N2), trong đó f là hàm biến đổi N2. 20
- o Hai bước này giúp cho B biết được rằng thông điệp nhận được trong bước trước không bị phát lại. o Ta thấy các bước phân phối khóa bao gồm các bước từ 1 đến 3. Các bước 4, 5 cũng như bước 3 dùng vào mục đích xác thực. 21
- 2.1.4.5.Kiểm soát khóa theo phân cấp và tính trong suốt của sơ đồ kiểm soát khóa. Kiểm soát khóa theo phân cấp. • Hàm phân phối khóa không giới hạn bởi 1 KDC. • Một trật tự phân cấp các KDC được thiết lập: . Trong hệ thống có các KDC cục bộ: nằm trong các mạng cục bộ, trong các phân mạng nhỏ. KDC cục bộ có trách nhiệm phân phối khoá trong những giao dịch giữa những thành phần của một vùng. . Nếu hai thực thể thuộc hai phân vùng mạng khác nhau muốn chia sẻ khoá phiên, các KDC cục bộ phụ trách hai phân vùng đó sẽ tương tác với nhau thông qua KDC cấp cao hơn. Trong trường hợp này bất kỳ một trong ba KDC sẽ có thể sử dụng để lựa chọn khoá. . Sơ đồ phân cấp làm giảm thiểu các nỗ lực trong việc phân phối khóa chính (masterkeydistribution), bởi vì phần lớn các khoá chính là những khoá được chia sẻ giữa những KDC cục bộ với các thực thể thuộc vùng quản lý của chúng. . Sơ đồ này làm giảm khả năng tổn hại tới khoá hoặc phá hoại khoá chỉ trong miền cục bộ của KDC. • Vòng đời của khoá phiên( sessionkeylifetime). . Nếu khoá phiên càng được trao đổi với tần suất càng cao thì các khóa đó càng được bảo mật vì đối phương sẽ có ít văn bản mật tương ứng với từng khoá để phá mã. . Mặt khác quá trình phân phối khoá trước mỗi phiên làm việc sẽ làm chậm quá trình trao đổi thông tin và làm gảm hiệu năng của mạng. . Nhà quản trị an ninh phải lựa chọn giải pháp cân bằng hai vấn đề trên. . Đối với các giao thức hướng liên kết: o Sử dụng một khoá phiên cho một phiên làm việc khi liên kết đang hoạt động. o Sử dụng khoá phiên mới cho phiên làm việc mới. o Nếu liên kết vật lý tồn tại trong thời gian dài: để tăng tính cẩn mật, cần thay đổi khoá phiên một cách liên tục. Có thể lựa chọn thời gian theo một chuỗi các PDU. . Đối với các giao thức hướng không liên kết: o Không có các chu trình khởi tạo và ngắt liên kết ⇒ số lần thay đổi khoá không hiển nhiên ⇒ sử dụng một khoá phiên mới cho mỗi lần trao đổi thông tin ⇒ làm giảm ưu thế của giao tiếp không liên kết: tăng thời gian trễ của mỗi giao dịch. 22
- Tính trong suốt của sơ đồ kiểm soát khoá: • Cung cấp khả năng mã hoá đầu cuối trên tầng mạng hoặc tâng giao vận sao cho quá trình trao đổi khoá và mã hoá trong suốt với người sử dụng. • Quá trình truyền thông sử dụng các giao thức hướng liên kết đầu cuối như TCP, X25. • Phần tử quan trọng: bộ xử lý ngoại vi( Front-endprocessor–FEP) cung cấp chức năng mã hoá đầu cuối và nhận các khoá phiên thay cho các trạm làm việc. • Ưu điểm : làm giảm nhẹ ảnh hưởng của quá trình mã hoá, trao đổi khoá đối với các trạm đầu cuối. • Từ khía cạnh máy trạm, FEP có thể coi là một phần của nút chuyển mạch gói ⇒ giao tiếp giữa trạm và mạng không đổi. • Từ hướng mạng, FEP có thể coi là một trạm ⇒ giao tiếp chuyển mạch gói từ mạng tới trạm không đổi. • Kịch bản: . Khi một trạm A mong muốn thiết lập liên kết với trạm khác, trạm A gửi một gói tin yêu cầu liên kết( bước1 ). . Bộ xử lý ngoại vi FEP nhận gói tin và gửi tới KDC để nhận quyền khởi tạo kết nối (bước2 ). . Liên kết và trao đổi thông tin giữa FEP và KDC được mã hoá bằng khoá chính được chia sẻ giữa FEP và KDC 23
- . Nếu KDC phê chuẩn yêu cầu liên kết, KDC sẽ tạo khoá phiên và phân phối tới hai FEP tương ứng sử dụng khoá duy nhất cố định cho mỗi giao tiếp( bước3 ). . Bộ xử lý ngoại vi FEP đã đưa ra yêu cầu có thể gửi gói tin yêu cầu thiết lập liên kết và liên kết sẽ được thiết lập giữa hai trạm đầu cuối (bước4). . Tất cả các dữ liệu được truyền giữa hai trạm đầu cuối sẽ được mã hoá do hai bộ xử lý ngoại vi tương ứng sử dụng khoá phiên sử dụng một lần. 2.1.4.6. Kiểm soát khóa không tập trung. • Sử dụng trung tâm phân phối khoá KDC đưa ra yêu cầu đối với KDC: KDC phải được uỷ nhiệm và phải được bảo vệ khỏi các tấn công. • Các yêu cầu này có thể loại bỏ nếu sử dụng sơ đồ phân phối khoá không tập trung. • Các yêu cầu của phân phối khoá không tập trung: . Mỗi hệ thống giao tiếp theo liên kết mật với tất cả các hệ thống trạm khác với mục đích phân phối khoá phiên. . Số lượng khoá phiên cực đại có thể có sẽ bằng: n( n–1 ) / 2. • Kịch bản phân phối khoá không tập trung. . A gửi yêu cầu khoá phiên tới cho B cùng với dấu hiệu nhận dạng N1; . B trả lời bằng thông điệp được mã hoá bằng khoá chính chung ( sharedmasterkey). Trong câu trả lời chứa khoá phiên do B lựa chọn Ks, định danh của B, giá trị f( N1), và đấu hiệu nhận dạng N2. . Sử dụng khoá phiên mới, A gửi trả f( N2) cho B. • Phân tích: . Mỗi nút cần phải có ít nhất (n–1) khoá chính (masterkey) và một số lượng khoá phiên tuỳ ý có thể được tạo ra và sử dụng. 24
- . Do thông điệp được truyền sử dụng khoá chính khá ngắn ⇒ việc thám mã là khó khăn. . Giống như trường hợp quản lý khoá tập trung, khoá phiên chỉ được sử dụng trong một khoảng thời gian ngắn để bảo vệ khoá. 2.1.4.7. Kiểm soát việc sử dụng khóa. • Kiểm soát việc sử dụng khoá. . Khái niệm phân cấp khóa và kỹ thuật phân phối khóa tự động làm giảm mạnh số lượng khóa cần xử lý bằng tay và phân phối bằng tay. . Đặt vấn đề: thiết lập sự kiểm soát những phương pháp phân phối khóa tự động. o Vídụ: để phân tách khóa chính và khóa phiên, chúng ta có thể cần một số các khóa phiên khác nhau tùy theo cách sử dụng: - Khóa để mã hóa dữ liệu dùng cho truyền dữ liệu qua mạng; - Khóa PIN ( personalidentificationnumber) sử dụng trong việc truyền các quỹ điện tử, các ứng dụng bán lẻ; - Khóa để mã hóa file đối với những file được lưu trữ tại những thư mục public. • Kỹ thuật kiểm soát khoá bằng vectơ kiểm soát(controlvector): . Mỗi khoá phiên được đặt tương ứng với một vectơ kiểm soát bao gồm: o Số lượng các trường để đặc trưng cho việc sử dụng khoávà o Các giới hạn đối với khoá phiên đang xét. • Vectơ kiểm soát được mã hoá mật gắn kết với khoá vào thời điểm khoá được sinh ra tại KDC. • Sơ đồ hoạ tđộng: . Vectơ kiểm soát được đưa vào hàm băm, hàmb ăm này sinh ra một giá trị có độ dài bằng độ dài của khoá mã mật. Hàm băm sẽ ánh xạ một giá trị từ một khoảng lớn vào một khoảng có độ dài nhỏ hơn. . Giá trị băm được thực hiện XOR với khoá chính và kết quả sẽ đi vào khối mã hoá khoá phiên. Giá trị băm= H= h( CV); Key input= Km⊕H; Mã mật=EKm⊕H[Ks]. Km: khoá chính và Ks: khoáphiên. • Khoá phiên sẽ được khôi phục từ mã mật bằng sơ đồ giải mã: Ks=DKmH[EKmH[Ks]]. 25
- • Khi khoá phiên được phân phối tới người sử dụng, khoá sẽ được kết hợp với vectơ kiểm soát. Khoá phiên chỉ có thể khôi phục được nếu có cả khoá chính (được chia sẻ) lẫn vec tơ kiểm soát. • Ưu điểm của việc sử dụng vectơ kiểm soát khoá đối với việc sử dụng các thẻ 8-bit: . Không có giới hạn về độ dài của vectơ kiểm soát; . Vectơ kiểm soát tồn tại dưới dạng tường minh tại mọi bước thao tác. 2.2. Nguyên lý các phương pháp mã hoá công khai 2.2.1. Đặc điểm và xuất xứ Đặc điểm: • Mật mã công khai dựa trên cơ sở của các hàm toán học chứ không phải dựa trên phép thay thế và đổi chỗ như trong phương pháp mã hoá đối xứng. • Mã mật công khai là bất đối xứng. Trong cơ chế mã mật khoá công khai sử dụng hai khoá: khoá mật và khoá công khai. Việc sử dụng hai khoá không đối xứng đưa đến những hệ quả sâu sắc trong lĩnh vực an toàn thông tin: tính toàn vẹn, tính xác thực, phân phối khoá. Xuất xứ: • Hệ mã mật khoá công khai được phát triển nhằm giải quyết hai vấn đề phức tạp nảy sinh từ phương pháp mã hoá đối xứng: • Vấn đề thứ nhất: bài toán phân phối khoá; 26
- • Vấn đề thứ hai: chữ ký điện tử. 2.2.2. Hệ mật khóa công khai. Vấn đề phân phối khóa: • Trong sơ đồ mã hoá truyền thống, quá trình phân phối khoá đưa ra yêu cầu hai phía tham gia vào trao đổi thông tin: . Phải chia sẻ trước khoá, khoá này phải được phân phối bằng một cách nào đó ho họ. . Phải sử dụng trung tâm phân phối khoá KDC. Vấn đề chữ ký điện tử: • Chữ ký điện tử phải được sử dụng trong các thông điệp điện tử và phải có hiệu lực tương đương với chữ ký trên giấy. Hệ mật khóa công khai: • Mỗi hệ thống đầu cuối tạo một cặp khoá để mã hoá và giải mã các thông điệp. • Mỗi hệ thống đầu cuối công bố một khoá trong cặp khoá ,khoá còn lại được giữ mật. • Nếu A muốn gửi thông điệp cho B, A sẽ mã hoá văn bản bằng khoá công khai của B. • Khi B nhận được thông điệp, B sẽ giải mã bằng khoá mật. Không một bên thứ ba có thể giải mã được thông điệp vì chỉ có B biết khoá mật của B. 2.2.3. Sơ đồ mã hóa công khai. • Sơ đồ mã mật khoá công khai sử dụng một khoá để mã hoá và một khoá khác có liên quan để giải mã. Các thuật toán mã hoá và giải mã có một số đặc điểm quan trọng sau: . Không thể xác định được khoá giải mã nếu chỉ biết thuật toán mã hoá và khoá mã hoá. 27
- . Một số hệ mã mật khoá công khai (như RSA) còn cung cấp khả năng sử dụng bất kỳ một khoá trong cặp khoá làm khoá mã hoá, khoá còn lại sẽ được dùng làm khoá giải mã. Sơ đồ mã hóa: Sơ đồ chứng thực: Các bước tiến hành: 1. Mỗi người sử dụng tạo một cặp khoá được sử dụng để mã hóa và giải mã thông điệp. 28
- 2. Mỗi người dùng sẽ giao một trong hai khóa cho người đăng ký khóa công cộng hoặc một file có khả năng truy cập. Khóa đó là khóa công khai. Cái còn lại là sẽ được giữ bí mật. Như trong hình trên đã giả thiết, mỗi người dùng sẽ duy trì một tập các khóa công khai thu được từ các người dùng khác 3. Nếu Bob muốn gửi một thông điệp bí mật cho Alice, Bob mã hóa thông điệp bằng cách sử dụng khóa công khai của Alice. 4. Khi Alice nhận được thông điệp, cô giải mã nó bằng khóa riêng của mình. Không có người nhận khác có thể giải mã thông điệp vì chỉ Alice biết khóa riêng của Alice. Mô hình đảm bảo bí mật: • Kẻ phá mã, quan sát Y và có quyền truy cập vào KUb nhưng không có quyền truy cập vào KRb hoặc X, để xem được thông tin kẻ phá mã phải phục hồi X và / hoặc KRb. Mô hình chứng thực: • Trong trường hợp này, A soạn một tin nhắn đến B và mã hóa bằng khóa riêng của A trước khi truyền nó. B có thể giải mã thông điệp bằng cách sử dụng khóa công khai của A. Bởi vì thông điệp đã được mã hóa bằng khóa riêng của A, chỉ A có thể soạn thông báo này. Vì vậy, thông điệp được mã hóa toàn bộ phục vụ như một chữ ký số. Ngoài ra, không thể thay đổi thông điệp mà không cần truy cập vào các khóa riêng của A, do đó, thông điệp này là xác thực cả về nguồn và về tính toàn vẹn dữ liệu. 29
- Mô hình kết hợp: • Trong trường hợp này, chúng ta bắt đầu như trước bằng cách mã hóa các tin nhắn, sử dụng khóa riêng của người gửi. Công việc này để cung cấp các chữ ký số. Tiếp theo, chúng ta mã hóa một lần nữa, bằng cách sử dụng khóa công khai của người nhận. Các bản mã cuối cùng chỉ có thể được giải mã chỉ bởi người nhận đã được xác định, người có chìa khóa. Vì vậy, tính bảo mật được cung cấp. Các điều kiện cần thiết: • Bên B dễ dàng tạo ra được cặp (KUb, KRb) • Bên A dễ dàng tạo ra được C = EKUb(M) • Bên B dễ dàng giải mã M = DKRb (C) • Đối thủ không thể xác định được KRb khi biết KUb 30
- • Đối thủ không thể xác định được M khi biết KUb và C • Một trong hai khóa có thể dùng mã hóa trong khi khóa kia có thể dùng giải mã • M = DKRb(EKUb(M)) = DKUb(EKRb(M)) 2.2.4. So sánh mã hóa đối xứng và mã hóa công khai. 2.2.5.Thuật toán RSA. 2.2.5.1. Cơ sở lý thuyết. • Đề xuất bởi Ron Rivest, Adi Shamir và Len Adleman (MIT) vào năm 1977 • Hệ mã hóa khóa công khai phổ dụng nhất • Mã hóa khối với mỗi khối là một số nguyên < n Thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân • Đăng ký bản quyền năm 1983, hết hạn năm 2000 • An toàn vì chi phí phân tích thừa số của một số nguyên lớn là rất lớn 2.2.5.2. Tạo khóa RSA. Tạo khóa: • Mỗi bên tự tạo ra một cặp khóa công khai - khóa riêng theo các bước sau : . Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p q . Tính n = pq . Tính (n) = (p-1)(q-1) . Chọn ngẫu nhiên khóa mã hóa e sao cho 1 < e < (n) và gcd(e, (n)) = 1 . Tìm khóa giải mã d ≤ n thỏa mãn e.d ≡ 1 mod (n) 31
- • Công bố khóa mã hóa công khai KU = {e, n} • Giữ bí mật khóa giải mã riêng KR = {d, n} . Các giá trị bí mật p và q bị hủy bỏ Tính khả thi của RSA: • Theo định lý Euler . a, n : gcd(a, n) = 1 a(n) mod n = 1 . (n) là số các số nguyên dương nhỏ hơn n và nguyên tố cùng nhau với n • Đối với RSA có . n = pq với p và q là các số nguyên tố . (n) = (p - 1)(q - 1) . ed ≡ 1 mod (n) số nguyên k : ed = k(n) + 1 . M < n • Có thể suy ra . Cd mod n = Med mod n = Mk(n) + 1 mod n = M mod n = M Ví dụ tạo khóa RSA: . Chọn 2 số nguyên tố p = 17 và q = 11 . Tính n = pq = 17 11 = 187 . Tính (n) = (p - 1)(q - 1) = 16 10 = 160 . Chọn e : gcd(e, 160) = 1 và 1 < e < 160; lấy e = 7 . Xác định d : de ≡ 1 mod 160 và d ≤ 187 Giá trị d = 23 vì 23 7 = 161 = 1 160 + 1 . Công bố khóa công khai KU = {7, 187} . Giữ bí mật khóa riêng KR = {23, 187} Hủy bỏ các giá trị bí mật p = 17 và q = 11 Chọn tham số RSA: • Cần chọn p và q đủ lớn • Thường chọn e nhỏ • Thường có thể chọn cùng giá trị của e cho tất cả người dùng 32
- • Trước đây khuyến nghị giá trị của e là 3, nhưng hiện nay được coi là quá nhỏ • Thường chọn e = 216 - 1 = 65535 • Giá trị của d sẽ lớn và khó đoán 2.2.5.3. Vấn đề an toàn của RSA. • Khóa 128 bit là một số giữa 1 và một số rất lớn 340.282.366.920.938.000.000.000.000.000.000.000.000 • Có bao nhiêu số nguyên tố giữa 1 và số này ≈ n / ln(n) = 2128 / ln(2128) ≈ 3.835.341.275.459.350.000.000.000.000.000.000.000 • Cần bao nhiêu thời gian nếu mỗi giây có thể tính được 1012 số Hơn 121,617,874,031,562,000 năm (khoảng 10 triệu lần tuổi của vũ trụ) • An toàn nhưng cần đề phòng những điểm yếu 2.2.5.4. Phá mã RSA. • Phương pháp vét cạn . Thử tất cả các khóa riêng có thể: phụ thuộc vào độ dài khóa • Phương pháp phân tích toán học . Phân n thành tích 2 số nguyên tố p và q . Xác định trực tiếp (n) không thông qua p và q . Xác định trực tiếp d không thông qua (n) • Phương pháp phân tích thời gian . Dựa trên việc đo thời gian giải mã . Có thể ngăn ngừa bằng cách làm nhiễu 2.2.6. Sơ đồ trao đổi khóa Diffie – Hellman. • Giải thuật mật mã khóa công khai đầu tiên • Đề xuất bởi Whitfield Diffie và Martin Hellman vào năm 1976 . Malcolm Williamson (GCHQ - Anh) phát hiện trước mấy năm nhưng đến năm 1997 mới công bố • Chỉ dùng để trao đổi khóa bí mật một cách an toàn trên các kêch thông tin không an toàn • Khóa bí mật được tính toán bởi cả hai bên • An toàn phụ thuộc vào độ phức tạp của việc tính log rời rạc Thiết lập Diffie-Hellman: • Các bên thống nhất với nhau các tham số chung . q là một số nguyên tố đủ lớn 33
- . là một nguyên căn của q : mod q, 2 mod q, , p-1 mod q là các số nguyên giao hoán của các số từ 1 đến q - 1 • Bên A . Chọn ngẫu nhiên làm khóa riêng XA < q XA . Tính khóa chung YA = mod q • Bên B . Chọn ngẫu nhiên làm khóa riêng XB < q XB . Tính khóa chung YB = mod q Trao đổi khóa Diffie-Hellman: • Tính toán khóa bí mật . Bên A biết khóa riêng XA và khóa công khai YB XA K = YB mod q . Bên B biết khóa riêng XB và khóa công khai YA XB K = YA mod q • Chứng minh XB XA XB . YA mod q = ( mod q) mod q = XAXB mod q = XBXA mod q = ( XB mod q)XA mod q XA = YB mod q Hạn chế của khóa công khai: • Tốc độ xử lý . Các giải thuật khóa công khai chủ yếu dùng các phép nhân chậm hơn nhiều so với các giải thuật đối xứng . Không thích hợp cho mã hóa thông thường . Thường dùng trao đổi khóa bí mật đầu phiên truyền tin • Tính xác thực của khóa công khai . Bất cứ ai cũng có thể tạo ra một khóa công bố đó là của một người khác . Chừng nào việc giả mạo chưa bị phát hiện có thể đọc được nội dung các thông báo gửi cho người kia . Cần đảm bảo những người đăng ký khóa là đáng tin 2.3 Các giao thức xác thực và chữ kí điện tử 2.3.1.Các hành động tấn công? 34
- • Giải phòng nội dung thông điệp: Phát hành nội dung thông điệp tới một người hoặc một tiến trình nào đó mà không sở hữu khóa mật thích hợp. • Phân tích tải: để xác định tần suất, thời gian kết nối, số lượng và chiều dài của thông điệp giữa 2 bên. • Giả mạo: chèn tin nhắn vào mạng từ một nguồn gian lận, chẳng hạn như tạo ra các thông điệp có mục đích xấu bởi người có thẩm quyền. • Thay đổi nội dung: Thay đổi các nội dung của tin nhắn có, bao gồm chèn, xóa, hoán vị, và sửa đổi • Thay đổi thứ tự: là bất ky một sự sửa đổi nào cho một chuỗi các thông điệp giữa các bên, bao gồm chèn, xóa, và sắp xếp lại. • Thay đổi thời gian: làm trễ hoặc phát lại các tin nhắn. • Sự từ chối dịch vụ: từ chối gửi các thông điệp từ nguồn gửi hoặc từ chối nhận các thông điệp ở đích. 2.3.2. Các vấn đề xác thực • Các tiêu chuẩn cần xác minh . Thông báo có nguồn gốc rõ ràng chính xác . Nội dung thông báo toàn vẹn, không bị thay đổi . Thông báo được gửi đúng trình tự và thời điểm • Mục đích chống lại tấn công chủ động (xuyên tạc dữ liệu ) • Các phương pháp xác thực thông báo . Mã hoá thông báo(1) . Sử dụng mã xác thực thông báo(2) . Sử dụng hàm băm(3) 2.3.1.1. Xác thực bằng cách mã hóa. • Sử dụng mã hóa đối xứng . Thông báo gửi từ đúng nguồn vì chỉ có người gửi đó mới biết khóa bí mật dùng chung . Nội dung không thể bị thay đổi vì văn bản thô có cấu trúc nhất định . Các gói tin được đánh số thứ tự và mã hóa nên không thể thay đổi trình tự và thời điểm nhận được • Sử dụng mã hóa khóa công khai . Không chỉ xác thực thông báo mà còn tạo chữ ký số . Phức tạp và mất thời gian hơn mã hóa đối xứng 2.3.1.2. Xác thực dùng mã CheckSum • Dùng mã xác thực thông báo(MAC Message Authentication Code) 35
- • Là khối có kích thước nhỏ cố định gắn vào thông báo tạo ra từ thông báo đó và khóa bí mật chung • Bên nhận thực hiện cùng giải thuật trên thông báo và khoá để so xem MAC có chính xác không • Giải thuật tạo MAC giống giải thuật mã hoá nhưng không cần giải ngược. • Có thể có nhiều thông báo có cùng chung MAC . Nhưng nếu biết 1 thông báo và MAC, rất khó tìm ra một thông báo khác cùng MAC . Các thông báo có cùng xác suất tạo ra MAC • Đáp ứng 3 tiêu chuẩn xác thực 36
- . M: Thông điệp . C: Hàm MAC . K: Khóa bảo mật được chia sẻ . MAC: Mã xác thực thông điệp (báo) Tại sao dùng MAC: • Nhiều trường hợp chỉ cần xác thực, không cần mã hóa tốn thời gian và tài nguyên . Thông báo hệ thống . Chương trình máy tính • Tách riêng các chức năng bảo mật và xác thực sẽ khiến việc tổ chức linh hoạt hơn . Chẳng hạn mỗi chức năng thực hiện ở một tầng riêng • Cần đảm bảo tính toàn vẹn của thông báo trong suốt thời gian tồn tại không chỉ khi lưu chuyển, vì thông báo có thể bị thay đổi sau khi giải mã. 2.3.1.3. Xác thực dùng hàm băm • Một hàm băm nhận đầu vào là một thông báo có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông báo hoặc chữ ký số. • Tạo ra một giá trị băm có kích thước cố định từ thông báo đầu vào (không dùng khóa) h = H(M) • Hàm băm không cần giữ bí mật • Giá trị băm gắn kèm với thông báo dùng để kiểm tra tính toàn vẹn của thông báo 37
- • Bất kỳ sự thay đổi M nào dù nhỏ cũng tạo ra một giá trị h khác Xác thực dùng hàm băm: 38
- Yêu cầu đối với hàm băm: • Có thể áp dụng với thông báo M có độ dài bất kỳ • Tạo ra giá trị băm h có độ dài cố định • H(M) dễ dàng tính được với bất kỳ M nào • Từ h rất khó tìm được M sao cho H(M) = h . Tính một chiều • Từ M1 rất khó tìm được M2 sao cho H(M2) = H(M1) . Tính chống xung đột yếu • Rất khó tìm được (M1, M2) sao cho H(M1) = H(M2) . Tính chống xung đột mạnh Vấn đề an toàn của hàm băm và MAC • Kiểu tấn công vét cạn . Với hàm băm, nỗ lực phụ thuộc độ dài m của mã băm - Độ phức tạp của tính một chiều và tính chống xung đột yếu là 2m; của tính chống xung đột mạnh là 2m/2 39
- - 128 bit có thể phá được, thường dùng 160 bit . Với MAC, nỗ lực phụ thuộc vào độ dài k của khóa và độ dài n của MAC - Độ phức tạp là min(2k, 2n) - Ít nhất phải là 128 bit • Kiểu tấn công dùng kỹ thuật . Hàm băm thường gồm nhiều vòng như mã hóa khối nên có thể tập trung khai thác điểm yếu hàm vòng 2.3.2. Chữ ký điện tử. Chữ ký số (Digital Signature) hay chữ ký điện tử (Electronic Signature) là thông tin đi kèm theo dữ liệu nhằm mục đích xác nhận người chủ của dữ liệu đó. 2.3.2.1. Yêu cầu với chữ ký số - Phụ thuộc vào thông báo được ký - Có sử dụng thông tin riêng/đặc biệt của người gửi: để tránh giả mảo và chối bỏ - Chữ ký phải tương đối dễ tạo ra, tương đối dễ nhận biết và kiếm tra. - Rất khó giả mạo - Thuận tiện trong việc lưa trữ 2.3.2.2. Phân loại. Được chia làm 2 loại • Chữ ký số trực tiếp: Loại chữ ký này chỉ liên quan tới bên gửi và bên nhận. Ví dụ như người gửi biết khóa công khai của người nhận. Một chữ ký số có thể được tạo ra bằng cách mã hóa toàn bộ thông điệp với khóa riêng của người gửi hoặc bằng cách mã hóa giá trị băm của thông điệp với khóa riêng của của người gửi. Với mật mã công khai . Dùng khóa riêng ký toàn bộ thông báo hoặc giá trị băm . Có thể mã hóa sử dụng khóa công khai của bên nhận . Thực hiện ký trước mã hóa sau Chỉ có tác dụng khi khóa riêng của bên gửi được đảm bảo an toàn . Bên gửi có thể giả vờ mất khóa riêng : cần bổ xung thông tin thời gian và báo mất khóa kịp thời . Khóa riêng có thể bị mất thật :Kẻ cắp có thể gửi thông báo với thông tin thời gian sai lệch • Chữ ký gián tiếp: 40
- Có sự tham gia của một bên trọng tài . Nhận thông báo có chữ ký số từ bên gửi, kiểm tra tính hợp lệ của nó . Bổ xung thông tin thời gian và gửi đến bên nhận An toàn phụ thuộc chủ yếu vào bên trọng tài . Cần được bên gửi và bên nhận tin tưởng Có thể cài đặt với mã hóa đối xứng hoặc mã hóa khóa công khai Bên trọng tài có thể được phép nhìn thấy hoặc không nội dung thông báo Các kỹ thuật chữ ký số gián tiếp: (a) Mã hóa đối xứng, trọng tài thấy thông báo (1) X A : M ║ EKXA[IDX ║ H(M)] (2) A Y : EKAY[IDX ║ M ║ EKXA[IDX ║ H(M)] ║ T] (b) Mã hóa đối xứng, trọng tài không thấy thông báo (1) X A : IDX ║ EKXY[M] ║ EKXA[IDX ║ H(EKXY[M])] (2) A Y : EKAY[IDX ║ EKXY[M] ║ EKXA[IDX ║ H(EKXY[M])] ║ T (c) Mã hóa khóa công khai, trọng tài không thấy thông báo (1) X A : IDX ║ EKRX[IDX ║ EKUY[EKRX[M])] (2) A Y : EKRA[IDX ║ EKUY[EKRX[M]] ║ T] Ký hiệu : X = Bên gửi M = Thông báo Y = Bên nhận T = Nhãn thời gian A = Trọng tài 2.3.2.3. Tạo và chứng thực chữ kí. Tạo chữ kí - Từ file cần gửi ban đầu, chương trình sẽ sử dụng hàm băm MD5 để mã hóa thành chuỗi ký tự dài 128 bit, hash value (gọi là bản tóm lược). - Chương trình sử dụng thuật toán RSA để mã hóa khóa riêng (private key) của người gửi và bản tóm lược hash value thành một dạng khác (giá trị băm ở dạng mật mã) gọi là chữ ký điện tử. - Kết hợp file ban đầu với chữ ký điện tử thành một thông điệp đã ký và gửi đi cho người nhận 41
- Chứng thực chữ kí Với quá trình chứng thực, hệ thống sẽ tách thông điệp đã ký thành ra file và chữ ký điện tử. Đến giai đoạn này sẽ có 2 quá trình kiểm tra : 1. Kiểm tra file có đúng người gửi hay không? - Sử dụng thuật toán RSA để giải mã chữ ký điện tử bằng khóa công khai (username) của người gửi. - Nếu giải mã không được thì file nhận được không đúng người gửi. - Nếu giải mã thành công thì file nhận được đúng người gửi và có được Bản tóm lược 1. 2. Kiểm tra file có bị thay đổi hay không? - Từ file được tách ra ta sử dụng hàm băm MD5 mã hóa thành Bản tóm lược 2. - Kiểm tra Bản tóm lược 1 và Bản tóm lược 2 có giống nhau hay không? Nếu giống nhau thì file nhận được là vẹn toàn (không bị thay đổi hay tác động), ngược lại là file đã bị thay đổi 42
- 2.3.2.4. Digital Certtificate Certtificate là gì? Để chứng thực được chữ ký điện tử bắt buộc người nhận phải có khoá chung của người gửi. Bản chất cặp khoá này không liên hệ với thuộc tính của người sử dụng vì vậy cần có cơ chế để liên kết chúng với người dùng > các certificate Các Certificate được cung cấp bởi CA Các thông tin trong Certtificate. - Phiên bản - Số serial - Nhà cung cấp Certifficate - Người giữ Certificate - Thời gian hợp pháp của Certificate - Các thuộc tính - Chữ ký diện tử của nhà cung cấp - Khoá công khai của người sở hứu Certificate - Thuật toán băm dùng để tạo chữ ký. Tạo Certtificate. - Các Certificate được tạo ra còn để chứng thực cho bản thân nó - Các CA có cấu trúc phân cấp 43
- Cấu trúc phân cấp của CA. Xác thực chuỗi Certtificate. 45
- 2.3.3. Các giao thức xác thực. Có 3 phương thức xác thực: Xác thực lẫn nhau: Trong phương pháp xác thực lẫn nhau ta xét vấn đề phân phối khoá với 2 yếu tố: Tính tin cậy và tính hợp thời. Tính tin cậy là khả năng ngăn chặn hiện tượng giả mạo và thoả hiệp khoá phiên. Tính hợp thời là khả năng chống lại kiểu tấn công replay. Với mục đích chống lại tấn công replay chúng ta sử dụng hai biện pháp: - Timestamp: gắn1 timestampvào bản tin > yêu cầu đồng bộ - Challenge/Response: A sẽ gửi đến B 1 nonce và đợi trả lời của B.Nếu có chứa giá trị nonce chính xác thì mới bắt đầu gửi bảntin Timestamp Challenge/Response - không áp dụng cho các ứng - không áp dụng cho các ứng dụng hướng kết nối dụng không hướng kết nối - Yêu cầu đồng bộ giữa các tiến - Yêu cầu bắt tay trước khi trình đồng hồ truyền thông không kết nối - Cơ hội tấn công thành công sẽ - Phương pháp tốt nhất: tạo sự tăng lên nếu có 1 khoảng thời đồng bộ giữa đồng hồở mỗi gian không đồng bộ bên - Tính luôn thay đổi và không dự đoán trước được của các độ trễ trong mạng Các phương pháp mã hoá cổ điển Đặc điểm của phương pháp mã hoá cổ điển: - Sử dụng 1 trung tâm phân phối khoá tin cậy(KDC) - Mỗi bên chia sẻ 1khoá mật với KDC:khoá chính - KDC sẽ sinh ra các khoá phiên: sử dụng1 trên kết nối giữa 2 bên - KDC còn chịu trách nhiệm phân phối các khoá phiên sử dụng khoá chính để bảo vệ quá trình phân phối khoá Phương pháp mã hoá khoá chung Phương pháp này đảm bảo là mỗi bên đều lưu trữ khoá chung hiện thời của bên còn lại. Tuy nhiên, tất cả các phương pháp trên vẫn tồn tại những điểm thiếu sót. Có nhiều phương pháp: - Denny - Woo và Law 46
- 2.4 Virus máy tính 2.4.1. Định nghĩa Virus. Trong khoa học máy tính, virus máy tính (thường được người sử dụng gọi tắt là virus) là những chương trình hay đoạn mã được thiết kế để tự nhân bản và sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa, máy tính ). Trước đây, virus thường được viết bởi một số người am hiểu về lập trình muốn chứng tỏ khả năng của mình nên thường virus có các hành động như: cho một chương trình không hoạt động đúng, xóa dữ liệu, làm hỏng ổ cứng, hoặc gây ra những trò đùa khó chịu. Những virus mới được viết trong thời gian gần đây không còn thực hiện các trò đùa hay sự phá hoại đối máy tính của nạn nhân bị lây nhiễm nữa, mà đa phần hướng đến việc lấy cắp các thông tin cá nhân nhạy cảm (các mã số thẻ tín dụng) mở cửa sau cho tin tặc đột nhập chiếm quyền điều khiển hoặc các hành động khác nhằm có lợi cho người phát tán virus. Chiếm trên 90% số virus đã được phát hiện là nhắm vào hệ thống sử dụng hệ điều hành họ Windows chỉ đơn giản bởi hệ điều hành này được sử dụng nhiều nhất trên thến giới. Do tính thông dụng của Windows nên các tin tặc thường tập trung hướng vào chúng nhiều hơn là các hệ điều hành khác. (Cũng có quan điểm cho rằng Windows có tính bảo mật không tốt bằng các hệ điều hành khác (như Linux) nên có nhiều virus hơn, tuy nhiên nếu các hệ điều hành khác cũng thông dụng như Windows hoặc thị phần các hệ điều hành ngang bằng nhau thì cũng lượng virus xuất hiện có lẽ cũng tương đương nhau). 2.4.2. Phân loại Virus. Một trong những phương pháp thường thấy để phân loại virus là theo cách lây nhiễm của chúng. Phương pháp này chia virus ra làm 3 loại: Virus lây nhiễm boot-sector, virus lây nhiễm các file thực thi, và virus lây nhiễm các file dữ liệu. Virus lây nhiễm boot-sector Quá trình lây nhiễm boot cơ bản qua các bước: Bước 1: Khởi động. Bước 2: Chạy các tập lệnh trong ROM, thực hiện quá trình self-test, nhận dạng thiết bị và khởi tạo. Thiết bị khởi động được xác định, và khối khởi động được đọc từ thiết bị này, thông thường khối khởi động là tập hợp các khối đầu tiên của thiết bị khởi động. Một khi khối khởi động được đọc, quyền điều khiển được trao cho lại cho khối này. Bước này gọi là primary 47
- boot Bước 3: Trong bước này, tập hợp các chương trình kiểm soát file hệ thống thiết bị khởi động được trao quyền và thực thi. Bước này gọi là secondary boot Bước 4: Hệ điều hành được tải lên bởi các chương trình trên. Năm 1986: Virus "the Brain", virus cho máy tính cá nhân (PC) đầu tiên, được tạo ra tại Pakistan bởi Basit và Amjad. Chương trình này nằm trong phần khởi động (boot sector) của một dĩa mềm 360Kb và nó sẽ lây nhiễm tất cả các ổ dĩa mềm. Đây là loại "stealth virus" đầu tiên. Virus lây nhiễm file thực thi Nguyên tắc của F-virus là gắn lén vào file thực thi (dạng .COM và .EXE) một đoạn mã ở phần đầu hoặc cuối của cấu trúc file để mỗi lần file thực hiện, đoạn mã này sẽ được kích hoạt, thường trú trong vùng nhớ, khống chế các tác vụ truy xuất file, dò tìm các file thực thi sạch khác để tự gắn chúng vào. Ưu điểm của F- virus là dễ dàng được kích hoạt (do tần suất chạy chương trình COM, EXE của hệ thống rất cao). Nhược điểm của chúng là chỉ lây trên một hệ điều hành xác định. Tháng 12 năm 1986, virus cho DOS được khám phá ra là virus "VirDem". Nó có khả năng tự chép mã của mình vào các tệp tự thi hành (executable file) và phá hoại các máy tính VAX/VMS. Năm 1987: Virus đầu tiên tấn công vào command.com là virus "Lehigh". Năm 1988: Virus Jerusalem tấn công đồng loạt các đại học và các công ty trong các quốc gia vào ngày thứ Sáu 13. Đây là loại virus hoạt động theo đồng hồ của máy tính (giống bom nổ chậm cài hàng loạt cho cùng một thời điểm). Tháng 11 cùng năm, Robert Morris, 22 tuổi, chế ra worm chiếm cứ các máy tính của ARPANET, làm liệt khoảng 6.000 máy. Morris bị phạt tù 3 năm và 10.000 dollar. 48
- Virus lây nhiễm file dữ liệu Lợi dụng như cầu trao đổi văn bản, thư từ, công văn, hợp đồng trong thời đại bùng nổ thông tin, kẻ thiết kế nên virus Concept (thủy tổ của họ virus macro) chọn ngôn ngữ macro của Microsoft Word làm phương tiện lây lan trên môi trường Winword. Khi bạn mở một tài liệu *.DOC bị nhiễm virus thì từ văn bản nhiễm macro virus sẽ được đưa vào file NORMAL.DOT, rồi từ đây, chúng tự chèn vào các văn bản sạch khác. Dạng thứ hai của virus macro là lây vào bảng tính của Microsoft Excel, ít phổ biến hơn dạng thứ nhất. Virus macro độc ở chỗ nó làm mọi người nghi ngờ lẫn nhau. Hãy tưởng tượng bạn nhận được file *.DOC từ người bạn thân, chắc chắn bạn sẽ không ngần ngại mở ra xem. Mặc dù người gởi không cố tình hại bạn, nhưng biết đâu có ẩn chứa virus, và đúng lúc bạn chờ Word in ra màn hình nội dung bức thư thì toàn bộ đĩa cứng của bạn đã bị xóa trắng. Đó là độc chiêu mà macro virus NTTHNTA sẽ xóa đĩa cứng khi số lần mở các file nhiễm là 20. Năm 1995: Virus văn bản (macro virus) đầu tiên xuất hiện trong các mã macro trong các tệp của Word và lan truyền qua rất nhiều máy. Loại virus này có thể làm hư hệ điều hành chủ. Macro virus là loại virus viết ra bằng ngôn ngữ lập trình Visual Basic cho các ứng dụng (VBA) và tùy theo khả năng, có thể lan nhiễm trong các ứng dụng văn phòng của Microsoft như Word, Excel, PowerPoint, OutLook, Loại macro này, nổi tiếng có virus Baza và virus Laroux, xuất hiện năm 1996, có thể nằm trong cả Word hay Excel. Sau này, virus Melissa, năm 1997, tấn công hơn 1 triệu máy, lan truyền bởi một tệp đính kèm kiểu Word bằng cách đọc và gửi đến các địa chỉ của Outlook trong các máy đã bị nhiễm virus. Virus Tristate, năm 1999, có thể nằm trong các tệp Word, Excel và Power Point. Năm 2000: Virus Love Bug, còn có tên ILOVEYOU, đánh lừa tính hiếu kì của mọi người. Đây là một loại macro virus. Đặc điểm là nó dùng đuôi tập tin dạng "ILOVEYOU.txt.exe". Lợi dụng điểm yếu của Outlook thời bấy giờ: theo mặc định sẵn, đuôi dạng .exe sẽ tự động bị dấu đi. Ngoài ra, virus này còn có một đặc tính mới của spyware: nó tìm cách đọc tên và mã nhập của máy chủ và gửi về kẻ tạo ra virus. Tác giả của loại virus này là một sinh viên người Philippines. 2.4.3. Giới thiệu kỹ thuật Anti – Virus và Anti – Anti –Virus. Anti – Virus Các phần mềm phòng chống virus thực hiện 3 tác vụ chính: Sự nhận biết virus: Là phát hiện có hoặc không mã của một loại virus hay không mà, cách thức cơ bản nhất để phát hiện virus, giá trị trả lại ở dạng Boolean: YES –có nghĩa là trong mã này có virus; NO - mã này không bị nhiễm bệnh. Cuối cùng, phát hiện là một mất. Tuy vậy đây cũng không phải là một cách thức thực sự hiệu quả để phát hiện được virus bởi suy cho cùng cách xuất hiện hoặc hành vi của virus là khó có thể dự đoán được. Một người với kĩ thuật có thể viết nên một virus mà các chương trình diệt virus không thể phát hiện được. (Lưu ý rằng: virus này sau đó có thể được phát hiện bởi các chương trình chống virus với quá trình cập nhật 49
- các virus mới. Tuy nhiên tác giả của virus cũng có thể tạo ra một phiên bản mới của virus . Quá trình phát hiện và phát triển virus này diễn ra một cách liên tục). Một câu hỏi được đặt ra là : Có nên một virus luôn được phát hiện, ngay cả khi nó không thể chạy? Câu trả lời là :Có. Bởi ngay cả khi một virus là không hoạt động trên một hệ thống, nó vẫn còn hữu ích để phát hiện nó để vi rút không ảnh hưởng đến hệ thống khác. Trong các trường hợp dù virus không chạy trên bất kỳ hệ thống nào thì việc tìm một virus có thể giúp chỉ ra một số lỗ hổng bảo mật tiềm ẩn, và do đó nó là hữu ích để phát hiện những virus trên. Sự xác định virus: Một khi virus được phát hiện, nó cần được xác định xem đó là loại virus gì? Quá trình xác định có thể là riêng biệt với phát hiện, hoặc nó có thể được thực hiện như một phần của phương pháp phát hiện virus được sử dụng. Sự ngăn nhiễm hoặc loại bỏ virus: Là quá trình loại bỏ virus được phát hiện, đôi khi quá trình này được gọi làm sạch. Thông thường một virus sẽ cần phải được xác định chính xác trước khi thực hiện làm sạch nhằm có biện pháp hiệu quả nhất. Quá trình phát hiện và loại bỏ có thể được thực hiện bằng việc sử dụng các phương pháp chung có khả năng nhận biết cả các virus đã biết và chưa biết. Với các virus đã biết thường sử dụng các phương pháp cụ thể để nâng cao hiệu quả phát hiện và loại bỏ (Lưu ý: Các phương pháp cụ thể dành cho các loạivirus đã biết cũng có thể phát hiện được các các biến thể chưa biết của loại virus đó.) Trong 3 quá trình trên thì quá trình phát hiện được cho là quan trọng nhất, bởi vì quá trình xác định và loại bỏ cần quá trình phát hiện như là một điều kiện tiên quyết. Ngoài ra, phát hiện sớm (tức là, trước khi lây nhiễm xảy ra) hoàn toàn làm giảm bớt sự cần thiết cho các nhiệm vụ khác. Có năm kết quả có thể phát hiện. Hình trên cho thấy bốn trong số đó. Phát hiện virus một cách chính xác trong hai trường hợp: không có virus tồn tại quá trình phát hiện đưa ra kết quả là không tồn tại virus 50
- và ngược lại đưa ra kết quả là tồn tại virus khi thực sự có virus tồn tại. Phát hiện được coi là false positive khi không phần mềm antivirus báo có virus nhưng trên thực tế virus lại không tồn tại. Và phát hiện được coi là false nagative khi quá trình phát hiện không thể phát hiện ra virus mặc dù trên thực tế là có tồn tại. Kết quả thứ năm là ghost positives khi virus thực chất đã không còn xong quá trình phát hiện vẫn báo tồn tại virus bởi do quá trình loại bỏ trước đó chưa triệt để và vẫn còn tồn tại tàn dư của virus đủ để quá trình phát hiện báo rằng vẫn còn tồn tại virus.Có hai phương pháp phát hiện là phát hiện tĩnh và phát hiện động, phụ thuộc vào có hoặc không mã virus đang chạy khi việc phát hiện xảy ra. Anti – Anti – Virus 2.4.4. Phòng chống Virus. Có một câu nói vui rằng Để không bị lây nhiễm virus thì ngắt kết nối khỏi mạng, không sử dụng ổ mềm, ổ USB hoặc copy bất kỳ file nào vào máy tính. Nhưng nghiêm túc ra thì điều này có vẻ đúng khi mà hiện nay sự tăng trưởng số lượng virus hàng năm trên thế giới rất lớn. Không thể khẳng định chắc chắn bảo vệ an toàn 100% cho máy tính trước hiểm hoạ virus và các phần mềm hiểm độc, nhưng chúng ta có thể hạn chế đến tối đa có thể và có các biện pháp bảo vệ dữ liệu của mình. a. Sử dụng phần mềm diệt virus Bảo vệ bằng cách trang bị thêm một phần mềm diệt virus có khả năng nhận biết nhiều loại virus máy tính và liên tục cập nhật dữ liệu để phần mềm đó luôn nhận biết được các virus mới. Trên thị trường hiện có rất nhiều phần mềm diệt virus. Một số hãng nổi tiếng viết các phần mềm virus được nhiều người sử dụng có thể kể đến là: McAfee, Symantec, Kaspersky b. Sử dụng tường lửa Tường lửa (Firewall) không phải một cái gì đó quá xa vời hoặc chỉ dành cho các nhà cung cấp dịch vụ internet (ISP) mà mỗi máy tính cá nhân cũng cần phải sử dụng tường lửa để bảo vệ trước virus và các phần mềm độc hại. Khi sử dụng tường lửa, các thông tin vào và ra đối với máy tính được kiểm soát một cách vô thức hoặc có chủ ý. Nếu một phần mềm độc hại đã được cài vào máy tính có hành động kết nối ra Internet thì tường lửa có thể cảnh báo giúp người sử dụng loại bỏ hoặc vô hiệu hoá chúng. Tường lửa giúp ngăn chặn các kết nối đến không mong muốn để giảm nguy cơ bị kiểm soát máy tính ngoài ý muốn hoặc cài đặt vào các chương trình độc hại hay virus máy tính. Sử dụng tường lửa bằng phần cứng nếu người sử dụng kết nối với mạng Internet thông qua một modem có chức năng này. Thông thường ở chế độ mặc định của nhà sản xuất thì chức năng "tường lửa" bị tắt, người sử dụng có thể truy cập vào modem để cho phép hiệu lực (bật). Sử dụng tường lửa bằng 51
- phần cứng không phải tuyệt đối an toàn bởi chúng thường chỉ ngăn chặn kết nối đến trái phép, do đó kết hợp sử dụng tường lửa bằng các phần mềm. Sử dụng tường lửa bằng phần mềm: Ngay các hệ điều hành họ Windows ngày nay đã được tích hợp sẵn tính năng tường lửa bằng phần mềm, tuy nhiên thông thường các phần mềm của hãng thứ ba có thể làm việc tốt hơn và tích hợp nhiều công cụ hơn so với tường lửa phần mềm sẵn có của Windows. Ví dụ bộ phần mềm ZoneAlarm Security Suite của hãng ZoneLab là một bộ công cụ bảo vệ hữu hiệu trước virus, các phần mềm độc hại, chống spam, và tường lửa. c. Cập nhật các bản sửa lỗi của hệ điều hành Hệ điều hành Windows (chiếm đa số) luôn luôn bị phát hiện các lỗi bảo mật chính bởi sự thông dụng của nó, tin tặc có thể lợi dụng các lỗi bảo mật để chiếm quyền điều khiển hoặc phát tán virus và các phần mềm độc hại. Người sử dụng luôn cần cập nhật các bản vá lỗi của Windows thông qua trang web Microsoft Update (cho việc nâng cấp tất cả các phần mềm của hãng Microsoft) hoặc Windows Update (chỉ cập nhật riêng cho Windows). Cách tốt nhất hãy đặt chế độ nâng cấp (sửa chữa) tự động (Automatic Updates) của Windows. Tính năng này chỉ hỗ trợ đối với các bản Windows mà Microsoft nhận thấy rằng chúng hợp pháp. d. Vận dụng kinh nghiệm sử dụng máy tính Cho dù sử dụng tất cả các phần mềm và phương thức trên nhưng máy tính vẫn có khả năng bị lây nhiễm virus và các phần mềm độc hại bởi mẫu virus mới chưa được cập nhật kịp thời đối với phần mềm diệt virus. Người sử dụng máy tính cần sử dụng triệt để các chức năng, ứng dụng sẵn có trong hệ điều hành và các kinh nghiệm khác để bảo vệ cho hệ điều hành và dữ liệu của mình. Một số kinh nghiệm tham khảo như sau: Phát hiện sự hoạt động khác thường của máy tính: Đa phần người sử dụng máy tính không có thói quen cài đặt, gỡ bỏ phần mềm hoặc thường xuyên làm hệ điều hành thay đổi - có nghĩa là một sự sử dụng ổn định - sẽ nhận biết được sự thay đổi khác thường của máy tính. Ví dụ đơn giản: Nhận thấy sự hoạt động chậm chạp của máy tính, nhận thấy các kết nối ra ngoài khác thường thông qua tường lửa của hệ điều hành hoặc của hãng thứ ba (thông qua các thông báo hỏi sự cho phép truy cập ra ngoài hoặc sự hoạt động khác của tường lửa). Mọi sự hoạt động khác thường này nếu không phải do phần cứng gây ra thì cần nghi ngờ sự xuất hiện của virus. Ngay khi có nghi ngờ, cần kiểm tra bằng cách cập nhật dữ liệu mới nhất cho phần mềm diệt virus hoặc thử sử dụng một phần mềm diệt virus khác để quét toàn hệ thống. Kiểm soát các ứng dụng đang hoạt động: Kiểm soát sự hoạt động của các phần mềm trong hệ thống thông qua Task Manager hoặc các phần mềm 52
- của hãng thứ ba (chẳng hạn: ProcessViewer) để biết một phiên làm việc bình thường hệ thống thường nạp các ứng dụng nào, chúng chiếm lượng bộ nhớ bao nhiêu, chiếm CPU bao nhiêu, tên file hoạt động là gì ngay khi có điều bất thường của hệ thống (dù chưa có biểu hiện của sự nhiễm virus) cũng có thể có sự nghi ngờ và có hành động phòng ngừa hợp lý. Tuy nhiên cách này đòi hỏi một sự am hiểu nhất định của người sử dụng. Loại bỏ một số tính năng của hệ điều hành có thể tạo điều kiện cho sự lây nhiễm virus: Theo mặc định Windows thường cho phép các tính năng autorun giúp người sử dụng thuận tiện cho việc tự động cài đặt phần mềm khi đưa đĩa CD hoặc đĩa USB vào hệ thống. Chính các tính năng này được một số loại virus lợi dụng để lây nhiễm ngay khi vừa cắm ổ USB hoặc đưa đĩa CD phần mềm vào hệ thống (một vài loại virus lan truyền rất nhanh trong thời gian gần đây thông qua các ổ USB bằng cách tạo các file autorun.ini trên ổ USB để tự chạy các virus ngay khi cắm ổ USB vào máy tính). Cần loại bỏ tính năng này bằng các phần mềm của hãng thứ ba như TWEAKUI hoặc sửa đổi trong Registry. e. Bảo vệ dữ liệu máy tính Nếu như không chắc chắn 100% rằng có thể không bị lây nhiễm virus máy tính và các phần mềm hiểm độc khác thì bạn nên tự bảo vệ sự toàn vẹn của dữ liệu của mình trước khi dữ liệu bị hư hỏng do virus (hoặc ngay cả các nguy cơ tiềm tàng khác như sự hư hỏng của các thiết bị lưu trữ dữ liệu của máy tính). Trong phạm vi về bài viết về virus máy tính, bạn có thể tham khảo các ý tưởng chính như sau: Sao lưu dữ liệu theo chu kỳ là biện pháp đúng đắn nhất hiện nay để bảo vệ dữ liệu. Bạn có thể thường xuyên sao lưu dữ liệu theo chu kỳ đến một nơi an toàn như: các thiết bị nhớ mở rộng (ổ USB, ổ cứng di động, ghi ra đĩa quang ), hình thức này có thể thực hiện theo chu kỳ hàng tuần hoặc khác hơn tuỳ theo mức độ cập nhật, thay đổi của dữ liệu của bạn. Tạo các dữ liệu phục hồi cho toàn hệ thống không dừng lại các tiện ích sẵn có của hệ điều hành (ví dụ System Restore của Windows Me, XP ) mà có thể cần đến các phần mềm của hãng thứ ba, ví dụ bạn có thể tạo các bản sao lưu hệ thống bằng các phần mềm ghost, các phần mềm tạo ảnh ổ đĩa hoặc phân vùng khác. Thực chất các hành động trên không chắc chắn là các dữ liệu được sao lưu không bị lây nhiễm virus, nhưng nếu có virus thì các phiên bản cập nhật mới hơn của phần mềm diệt virus trong tương lai có thể loại bỏ được chúng. 53
- 2.5. Internet Firewall Hiện nay, khái niệm mạng toàn cầu - Internet không còn mới mẻ. Nó đã trở nên phổ biến tới mức không cần phải chú giải gì thêm đặc biệt là trong những tạp chí kỹ thuật. Khi những tạp chí thông thường chú trọng vào Internet thì giờ đây, những tạp chí kỹ thuật lại tập trung vào khía cạnh khác: an toàn thông tin. Đó cùng là một quá trình tiến triển hợp logic: khi những quan tâm ban đầu về một siêu xa lộ thông tin, bạn nhất định nhận thấy rằng không chỉ cho phép bạn truy nhập vào nhiều nơi trên thế giới, và ngược lại nhiều người không mời mà có thể ghé thăm máy tính của bạn thông qua Internet. Thực vậy, Internet cung cấp những kỹ thuật cho phép mọi người truy nhập, khai thác, chia sẻ thông tin. Những nó cũng là nguy cơ chính dẫn đến thông tin của bạn bị sai hỏng hoặc phá huỷ hoàn toàn. Theo số liệu của CERT(Computer Emegency Response Team - “Đội cấp cứu máy tính”), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994. Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Hơn nữa, những con số này chỉ là phần nổi của tảng băng. Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị hệ thống không hề hay biết những cuộc tấn công nhằm vào hệ thống của họ. Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn công cũng liên tục được hoàn thiện. Điều đó một phần do các nhân viên quản trị hệ thống được kết nối với Internet ngày càng đề cao cảnh giác. Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu đoán tên người sử dụng- mật khẩu (UserID-password) hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn công vào thời gian gần đây bao gồm cả các thao tác: giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin). 2.5.1. Định nghĩa. Thuật ngữ Firewall có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để ngăn chặn, hạn chế hoả hoạn. Trong công nghệ mạng thông tin, Firewall là một kỹ thuật được tích hợp vào hệ thống mạng để chống sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ cũng như hạn chế sự xâm nhập vào hệ thống của một số thông tin khác không mong muốn. Cũng có thể hiểu rằng Firewall là một cơ chế để bảo vệ mạng tin tưởng (trusted network) khỏi các mạng không tin tưởng (untrusted network). Internet Firewall là một thiết bị (phần cứng+phần mềm) giữa mạng của một tổ chức, một công ty, hay một quốc gia (Intranet) và Internet. Nó thực hiện vai trò bảo mật các thông tin Intranet từ thế giới Internet bên ngoài. 54
- 2.5.2. Chức năng. Internet Firewall (từ nay về sau gọi tắt là firewall) là một thành phần đặt giữa Intranet và Internet để kiểm soát tất cả các việc lưu thông và truy cập giữa chúng với nhau bao gồm: Firewall quyết định những dịch vụ nào từ bên trong được phép truy cập từ bên ngoài, những người nào từ bên ngoài được phép truy cập đến các dịch vụ bên trong, và cả những dịch vụ nào bên ngoài được phép truy cập bởi những người bên trong. Để firewall làm việc hiệu quả, tất cả trao đổi thông tin từ trong ra ngoài và ngược lại đều phải thực hiện thông qua Firewall. Chỉ có những trao đổi nào được phép bởi chế độ an ninh của hệ thống mạng nội bộ mới được quyền lưu thông qua Firewall. Sơ đồ chức năng hệ thống của firewall được mô tả như trong hình bên dưới 2.5.3. Cấu trúc. Firewall bao gồm: Một hoặc nhiều hệ thống máy chủ kết nối với các bộ định tuyến (router) hoặc có chức năng router. Các phần mềm quản lý an ninh chạy trên hệ thống máy chủ. Thông thường là các hệ quản trị xác thực (Authentication), cấp quyền (Authorization) và kế toán (Accounting). Chúng ta sẽ đề cập kỹ hơn các hoạt động của những hệ này ở phần sau. 2.5.4. Các thành phần của Firewall và cơ chế hoạt động. Một Firewall chuẩn bao gồm một hay nhiều các thành phần sau đây: Bộ lọc packet ( packet-filtering router ) Cổng ứng dụng (application-level gateway hay proxy server ) 55
- Cổng mạch (circuite level gateway) Bộ lọc gói tin. Nguyên lý: Khi nói đến việc l-u thông dữ liệu giữa các mạng với nhau thông qua Firewall thì điều đó có nghĩa rằng Firewall hoạt động chặt chẽ với giao thức liên mạng TCP/IP. V giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận được từ các ứng dụng trên mạng, hay nói chính xác hơn là các dịch vụ chạy trên các giao thức (Telnet, SMTP, DNS SMNP, NFS ) thành các gói dữ liệu (data packets) rồi gán cho các packet này những địa chỉ để có thể nhận dạng, tái lập lại ở đích cần gửi đến, do đó các loại Firewall cũng liên quan rất nhiều đến các packet và những con số địa chỉ của chúng. Bộ lọc packet cho phép hay từ chối mỗi packet mà nó nhận được. Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thoả mãn một trong số các luật lệ của lọc packet hay không. Các luật lệ lọc packet này là dựa trên các thông tin ở đầu mỗi packet (packet header), dùng để cho phép truyền các packet đó ở trên mạng. Đó là: Địa chỉ IP nơi xuất phát ( IP Source address) Địa chỉ IP nơi nhận (IP Destination address) Những thủ tục truyền tin (TCP, UDP, ICMP, IP tunnel) Cổng TCP/UDP nơi xuất phát (TCP/UDP source port) Cổng TCP/UDP nơi nhận (TCP/UDP destination port) Dạng thông báo ICMP ( ICMP message type) giao diện packet đến ( incomming interface of packet) giao diện packet đi ( outcomming interface of packet) Nếu luật lệ lọc packet được thoả mãn thì packet được chuyển qua firewall. Nếu không packet sẽ bị bỏ đi. Nhờ vậy mà Firewall có thể ngăn cản được các kết nối vào các máy chủ hoặc mạng nào đó được xác định, hoặc khoá việc truy cập vào hệ thống mạng nội bộ từ những địa chỉ không cho phép. Hơn nữa, việc kiểm soát các cổng làm cho Firewall có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó, hoặc chỉ có những dịch vụ nào đó (Telnet, SMTP, FTP ) được phép mới chạy được trên hệ thống mạng cục bộ. Ưu điểm Đa số các hệ thống firewall đều sử dụng bộ lọc packet. Một trong những ưu điểm của phương pháp dùng bộ lọc packet là chi phí thấp vì cơ chế lọc packet đã được bao gồm trong mỗi phần mềm router. Ngoài ra, bộ lọc packet là trong suốt đối với người sử dụng và các ứng dụng, vì vậy nó không yêu cầu sự huấn luyện đặc biệt nào cả. 56
- Hạn chế: Việc định nghĩa các chế độ lọc packet là một việc khá phức tạp, nó đòi hỏi người quản trị mạng cần có hiểu biết chi tiết vể các dịch vụ Internet, các dạng packet header, và các giá trị cụ thể mà họ có thể nhận trên mỗi trường. Khi đòi hỏi vể sự lọc càng lớn, các luật lệ vể lọc càng trở nên dài và phức tạp, rất khó để quản lý và điều khiển. Do làm việc dựa trên header của các packet, rõ ràng là bộ lọc packet không kiểm soát được nội dung thông tin của packet. Các packet chuyển qua vẫn có thể mang theo những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu. Cổng ứng dụng. Nguyên lý Đây là một loại Firewall được thiết kế để tăng cường chức năng kiểm soát các loại dịch vụ, giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt động của nó dựa trên cách thức gọi là Proxy service (dịch vụ đại diện). Proxy service là các bộ chương trình đặc biệt cài đặt trên gateway cho từng ứng dụng. Nếu người quản trị mạng không cài đặt chương trình proxy cho một ứng dụng nào đó, dịch vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua firewall. Ngoài ra, proxy code có thể được định cấu hình để hỗ trợ chỉ một số đặc điểm trong ứng dụng mà ng-òi quản trị mạng cho là chấp nhận được trong khi từ chối những đặc điểm khác. Một cổng ứng dụng thường được coi như là một pháo đài (bastion host), bởi vì nó được thiết kế đặt biệt để chống lại sự tấn công từ bên ngoài. Những biện pháp đảm bảo an ninh của một bastion host là: Bastion host luôn chạy các version an toàn (secure version) của các phần mềm hệ thống (Operating system). Các version an toàn này được thiết kế chuyên cho mục đích chống lại sự tấn công vào Operating System, cũng nh- là đảm bảo sự tích hợp firewall. Chỉ những dịch vụ mà người quản trị mạng cho là cần thiết mới được cài đặt trên bastion host, đơn giản chỉ vì nếu một dịch vụ không được cài đặt, nó không thể bị tấn công. Thông thường, chỉ một số giới hạn các ứng dụng cho các dịch vụ Telnet, DNS, FTP, SMTP và xác thực user là được cài đặt trên bastion host. Bastion host có thể yêu cầu nhiều mức độ xác thực khác nhau, ví dụ như user password hay smart card. Mỗi proxy được đặt cấu hình để cho phép truy nhập chỉ một sồ các máy chủ nhất định. Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống. Mỗi proxy duy trì một quyển nhật ký ghi chép lại toàn bộ chi tiết của giao thông qua nó, mỗi sự kết nối, khoảng thời gian kết nối. Nhật ký này rất có ích trong việc tìm theo dấu vết hay ngăn chặn kẻ phá hoại. 57
- Mỗi proxy đều độc lập với các proxies khác trên bastion host. Điều này cho phép dễ dàng quá trình cài đặt một proxy mới, hay tháo gỡ môt proxy đang có vấn để. Ví dụ: Telnet Proxy Ví dụ một người (gọi là outside client) muốn sử dụng dịch vụ TELNET để kết nối vào hệ thống mạng qua môt bastion host có Telnet proxy. Quá trình xảy ra như sau: Outside client telnets đến bastion host. Bastion host kiểm tra password, nếu hợp lệ thì outside client được phép vào giao diện của Telnet proxy. Telnet proxy cho phép một tập nhỏ những lệnh của Telnet, và quyết định những máy chủ nội bộ nào outside client được phép truy nhập. Outside client chỉ ra máy chủ đích và Telnet proxy tạo một kết nối của riêng nó tới máy chủ bên trong, và chuyển các lệnh tới máy chủ dưới sự uỷ quyền của outside client. Outside client thì tin rằng Telnet proxy là máy chủ thật ở bên trong, trong khi máy chủ ở bên trong thì tin rằng Telnet proxy là client thật. Ưu điểm Cho phép người quản trị mạng hoàn toàn điều khiển được từng dịch vụ trên mạng, bởi vì ứng dụng proxy hạn chế bộ lệnh và quyết định những máy chủ nào có thể truy nhập được bởi các dịch vụ. Cho phép người quản trị mạng hoàn toàn điều khiển được những dịch vụ nào cho phép, bởi vì sự vắng mặt của các proxy cho các dịch vụ tương ứng có nghĩa là các dịch vụ ấy bị khoá. Cổng ứng dụng cho phép kiểm tra độ xác thực rất tốt, và nó có nhật ký ghi chép lại thông tin về truy nhập hệ thống. Luật lệ filltering (lọc) cho cổng ứng dụng là dễ dàng cấu hình và kiểm tra hơn so với bộ lọc packet. Hạn chế Yêu cầu các users biến đổi (modìy) thao tác, hoặc modìy phần mềm đã cài đặt trên máy client cho truy nhập vào các dịch vụ proxy. Ví dụ, Telnet truy nhập qua cổng ứng dụng đòi hỏi hai bước để nối với máy chủ chứ không phải là một bước. Tuy nhiên, cũng đã có một số phần mềm client cho phép ứng dụng trên cổng ứng dụng là trong suốt, bằng cách cho phép user chỉ ra máy đích chứ không phải cổng ứng dụng trên lệnh Telnet. Cổng vòng. Cổng vòng là một chức năng đặc biệt có thể thực hiện đươc bởi một cổng ứng dụng. Cổng vòng đơn giản chỉ chuyển tiếp (relay) các kết nối TCP mà không thực hiện bất kỳ một hành động xử lý hay lọc packet nào. 58
- Hình dưới minh hoạ một hành động sử dụng nối telnet qua cổng vòng. Cổng vòng đơn giản chuyển tiếp kết nối telnet qua firewall mà không thực hiện một sự kiểm tra, lọc hay điều khiển các thủ tục Telnet nào.Cổng vòng làm việc như một sợi dây,sao chép các byte giữa kết nối bên trong (inside connection) và các kết nối bên ngoài (outside connection). Tuy nhiên, vì sự kết nối này xuất hiện từ hệ thống firewall, nó che dấu thông tin về mạng nội bộ. Cổng vòng thường được sử dụng cho những kết nối ra ngoài, nơi mà các quản trị mạng thật sự tin tưởng những người dùng bên trong. Ưu điểm lớn nhất là một bastion host có thể được cấu hình như là một hỗn hợp cung cấp cổng ứng dụng cho những kết nối đến, và cổng vòng cho các kết nối đi. Điều này làm cho hệ thống bức tường lửa dễ dàng sử dụng cho những người trong mạng nội bộ muốn trực tiếp truy nhập tới các dịch vụ Internet, trong khi vẫn cung cấp chức năng bức tường lửa để bảo vệ mạng nội bộ từ những sự tấn công bên ngoài. 2.5.5. Các hạn chế của Firewall. Firewall không đủ thông minh như con người để có thể đọc hiểu từng loại thông tin và phân tích nội dung tốt hay xấu của nó. Firewall chỉ có thể ngăn chặn sự xâm nhập của những nguồn thông tin không mong muốn nhưng phải xác định rõ các thông số địa chỉ. Firewall không thể ngăn chặn một cuộc tấn công nếu cuộc tấn công này không "đi qua" nó. Một cách cụ thể, firewall không thể chống lại một cuộc tấn công từ một đường dial-up, hoặc sự dò rỉ thông tin do dữ liệu bị sao chép bất hợp pháp lên đĩa mềm. Firewall cũng không thể chống lại các cuộc tấn công bằng dữ liệu (data- driven attack). Khi có một số chương trình được chuyển theo thư điện tử, vượt qua firewall vào trong mạng được bảo vệ và bắt đầu hoạt động ở đây. Một ví dụ là các virus máy tính. Firewall không thể làm nhiệm vụ rà quét virus trên các dữ liệu được chuyển qua nó, do tốc độ làm việc, sự xuất hiện liên tục của các virus mới và do có rất nhiều cách để mã hóa dữ liệu, thoát khỏi khả năng kiểm soát của firewall. 2.5.6. Các ví dụ về Firewall. Packet-Filtering Router (Bộ trung chuyển có lọc gói) 59
- Hệ thống Internet firewall phổ biến nhất chỉ bao gồm một packet-filtering router đặt giữa mạng nội bộ và Internet (Hình 2.3). Một packet-filtering router có hai chức năng: chuyển tiếp truyền thông giữa hai mạng và sử dụng các quy luật về lọc gói để cho phép hay từ chối truyền thông. Căn bản, các quy luật lọc đựơc định nghĩa sao cho các host trên mạng nội bộ được quyền truy nhập trực tiếp tới Internet, trong khi các host trên Internet chỉ có một số giới hạn các truy nhập vào các máy tính trên mạng nội bộ. Tư tưởng của mô cấu trúc firewall này là tất cả những gì không được chỉ ra rõ ràng là cho phép thì có nghĩa là bị từ chối. Ưu điểm: - giá thành thấp (vì cấu hình đơn giản) - trong suốt đối với người sử dụng Hạn chế: - Có tất cả hạn chế của một packet-filtering router, như là dễ bị tấn công vào các bộ lọc mà cấu hình được đặt không hoàn hảo, hoặc là bị tấn công ngầm dưới những dịch vụ đã được phép. - Bởi vì các packet được trao đổi trực tiếp giữa hai mạng thông qua router , nguy cơ bị tấn công quyết định bởi số lượng các host và dịch vụ được phép. Điều đó dẫn đến mỗi một host được phép truy nhập trực tiếp vào Internet cần phải được cung cấp một hệ thống xác thực phức tạp, và thường xuyên kiểm tra bởi người quản trị mạng xem có dấu hiệu của sự tấn công nào không. - Nếu một packet-filtering router do một sự cố nào đó ngừng hoạt động, tất cả hệ thống trên mạng nội bộ có thể bị tấn công. Screened Host Firewall Hệ thống này bao gồm một packet-filtering router và một bastion host ( xem hình dưới). Hệ thống này cung cấp độ bảo mật cao hơn hệ thống trên, vì nó thực hiện cả bảo mật ở tầng network( packet-filtering ) và ở tầng ứng dụng (application level). Đồng thời, kẻ tấn công phải phá vỡ cả hai tầng bảo mật để tấn công vào mạng nội bộ. 60
- Trong hệ thống này, bastion host được cấu hình ở trong mạng nội bộ. Qui luật filtering trên packet-filtering router được định nghĩa sao cho tất cả các hệ thống ở bên ngoài chỉ có thể truy nhập bastion host; Việc truyền thông tới tất cả các hệ thống bên trong đều bị khoá. Bởi vì các hệ thống nội bộ và bastion host ở trên cùng một mạng, chính sách bảo mật của một tổ chức sẽ quyết định xem các hệ thống nội bộ được phép truy nhập trực tiếp vào bastion Internet hay là chúng phải sử dụng dịch vụ proxy trên bastion host. Việc bắt buộc những user nội bộ được thực hiện bằng cách đặt cấu hình bộ lọc của router sao cho chỉ chấp nhận những truyền thông nội bộ xuất phát từ bastion host. Ưu điểm: - Máy chủ cung cấp các thông tin công cộng qua dịch vụ Web và FTP có thể đặt trên packet-filtering router và bastion. Trong trường hợp yêu cầu độ an toàn cao nhất, bastion host có thể chạy các dịch vụ proxy yêu cầu tất cả các user cả trong và ngoài truy nhập qua bastion host trước khi nối với máy chủ. Trường hợp không yêu cầu độ an toàn cao thì các máy nội bộ có thể nối thẳng với máy chủ. - Nếu cần độ bảo mật cao hơn nữa thì có thể dùng hệ thống firewall dual-home (hai chiều) bastion host (hình 2.5). Một hệ thống bastion host như vậy có 2 giao diện mạng (network interface), nhưng khi đó khả năng truyền thông trực tiếp giữa hai giao diện đó qua dịch vụ proxy là bị cấm. 61
- - Bởi vì bastion host là hệ thống bên trong duy nhất có thể truy nhập được từ Internet, sự tấn công cũng chỉ giới hạn đến bastion host mà thôi. Tuy nhiên, nếu như người dùng truy nhập được vào bastion host thì họ có thể dễ dàng truy nhập toàn bộ mạng nội bộ. Vì vậy cần phải cấm không cho người dùng truy nhập vào bastion host. Demilitarized Zone (DMZ - khu vực phi quân sự) hay Screened-subnet Firewall Hệ thống này bao gồm hai packet-filtering router và một bastion host (hình 2.6). Hệ thống firewall này có độ an toàn cao nhất vì nó cung cấp cả mức bảo mật : network và application trong khi định nghĩa một mạng “phi quân sự”. Mạng DMZ đóng vai trò như một mạng nhỏ, cô lập đặt giữa Internet và mạng nội bộ. Cơ bản, một DMZ được cấu hình sao cho các hệ thống trên Internet và mạng nội bộ chỉ có thể truy nhập được một số giới hạn các hệ thống trên mạng DMZ, và sự truyền trực tiếp qua mạng DMZ là không thể được. Với những thông tin đến, router ngoài chống lại những sự tấn công chuẩn (như giả mạo địa chỉ IP), và điều khiển truy nhập tới DMZ. Nó cho phép hệ thống bên ngoài truynhập chỉ bastion host, và có thể cả information server. Router trong cung cấp sự bảo vệ thứ hai bằng cách điều khiển DMZ truy nhập mạng nội bộ chỉ với những truyền thông bắt đầu từ bastion host. Với những thông tin đi, router trong điều khiển mạng nội bộ truy nhập tới DMZ. Nó chỉ cho phép các hệ thống bên trong truy nhập bastion host và có thể cả information server. Quy luật filtering trên router ngoài yêu cầu sử dung dich vụ proxy bằng cách chỉ cho phép thông tin ra bắt nguồn từ bastion host. Ưu điểm: - Kẻ tấn công cần phá vỡ ba tầng bảo vệ: router ngoài, bastion host và router trong. - Bởi vì router ngoài chỉ quảng cáo DMZ network tới Internet, hệ thống mạng nội bộ là không thể nhìn thấy (invisible). Chỉ có một số hệ thống 62
- đã được chọn ra trên DMZ là được biết đến bởi Internet qua routing table và DNS information exchange (Domain Name Server). - Bởi vì router trong chỉ quảng cáo DMZ network tới mạng nội bộ, các hệ thống trong mạng nội bộ không thể truy nhập trực tiếp vào Internet. Điều nay đảm bảo rằng những user bên trong bắt buộc phải truy nhập Internet qua dịch vụ proxy. Hệ thống Firewall của CSE. Bộ chương trình Firewall 1.0 của CSE được đ-a ra vào tháng 6/1998. Bộ chương trình này gồm hai thành phần: Bộ lọc gói tin – IP Filtering Bộ chương trình cổng ứng dụng – proxy servers Hai thành phần này có thể hoạt động một cách riêng rẽ. Chúng cũng có thể kết hợp lại với nhau để trở thành một hệ thống firewall hoàn chỉnh. Trong tập tài liệu này, chúng tôi chỉ đề cập đến bộ chương trình cổng ứng dụng đã được cài đặt tại VPCP. Tổng quan. Bộ chương trình proxy của CSE (phiên bản 1.0) được phát triển dựa trên bộ công cụ xây dựng Internet Firewall TIS (Trusted Information System) phiên bản 1.3. TIS bao gồm một bộ các chương trình và sự đặt lại cấu hình hệ thống để nhằm mục đích xây dựng một Firewall. Bộ chương trình được thiết kế để chạy trên hệ UNIX sử dụng TCP/IP với giao diện socket Berkeley. 63
- Việc cài đặt bộ chương trình proxy đòi hỏi kinh nghiệm quản lý hệ thống UNIX, và TCP/IP networking. Tối thiểu, người quản trị mạng firewall phải quen thuộc với: - việc quản trị và duy trì hệ thống UNIX hoạt động - việc xây dựng các package cho hệ thống Sự khác nhau khi đặt cấu hình cho hệ thống quyết định mức độ an toàn mạng khác nhau. Người cài đặt firewall phải hiểu rõ yêu cầu về độ an toàn của mạng cần bảo vệ, nắm chắc những rủi ro nào là chấp nhận được và không chấp nhận được, thu lượm và phân tích chúng từ những đòi hỏi của người dùng. Bộ chương trình proxy được thiết kế cho một số cấu hình firewall, trong đó các dạng cơ bản nhất là dual-home gateway (hình 2.4), screened host gateway(hình 2.5), và screened subnet gateway(hình 2.6). Như chúng ta đã biết, trong những cấu trúc firewall này, yếu tố căn bản nhất là bastion host, đóng vai trò nh- một người chuyển tiếp thông tin (forwarder), ghi nhật ký truyền thông, và cung cấp các dịch vụ. Duy trì độ an toàn trên bastion host là cực kỳ quan trọng, bởi vì đó là nơi tập trung hầu hết các cố gắng cài đặt một hệ thống firewall. Các thành phần của bộ chưong trình Proxy. Bộ chương trình proxy gồm những chương trình bậc ứng dụng (application- level programs), hoặc là để thay thế hoặc là được cộng thêm vào phần mềm hệ thống đã có. Bộ chương trình proxy có những thành phần chính bao gồm: Smap: dịch vụ SMTP(Simple Mail Tranfer Protocol) Netacl: dịch vụ Telnet, finger, và danh mục các điêu khiển truy nhập mạng Ftp-Gw: Proxy server cho Ftp Telnet-Gw: Proxy server cho Telnet Rlogin-Gw: Proxy server cho rlogin Plug-Gw: TCP Plug-Board Connection server (server kết nối tức thời dùng thủ tục TCP) Smap: Dịch vụ SMTP SMTP được xây dựng bằng cách sử dụng cặp công cụ phần mềm smap và smapd. Có thể nói rằng SMTP chống lại sự đe doạ tới hệ thống, bởi vì các chương trình mail chạy ở mức độ hệ thống để phân phát mail tới các hộp thư của user. Smap và smapd thực hiện điều đó bằng cách cô lập chương trình mail, bắt nó chạy trên một thư mục dành riêng (restricted directory) qua chroot (thay đổi thư mục gốc), như một user không có quyền ưu tiên. Mục đích của smap là cô lập chương trình mail vốn đã gây ra rất nhiều lỗi trên hệ thống. Phần lớn các công việc xử lý mail thường được thực hiện bởi chương trình sendmail. Sendmail không yêu cầu một sự thay đổi hay đặt lại cấu hình gì cả. Khi một hệ thống ở xa nối tới một cổng SMTP, hệ điều hành khởi động smap. Smap lập tức chroot tới th- mục dành riêng và 64
- đặt user-id ở mức bình thường (không có quyền ưu tiên). Bởi vì smap không yêu cầu hỗ trợ bởi một file hệ thống nào cả, thư mục dành riêng chỉ chứa các file do smap tạo ra. Do vậy, bạn không cần phải lo sợ là smap sẽ thay đổi file hệ thống khi nó chroot. Mục đích duy nhất của smap là đối thoại SMTP với các hệ thống khác, thu lượm thông báo mail, ghi vào đĩa, ghi nhật ký, và thoát. Smap d có trách nhiệm thường xuyên quét th- mục kho của smap và đ-a ra các thông báo đã được xếp theo thứ tự (queued messages) tới sendmail để cuối cùng phân phát. Chú ý rằng nếu sendmail được đặt cấu hình ở mức bình thường, và smap chạy với uucp user-id (?), mail có thể được phân phát bình thường mà không cần smapd chạy với mức -u tiên cao. Khi smapd phân phát một thông báo, nó xoá file chứa thông báo đó trong kho. Theo ý nghĩa này, sendmail bị cô lập, và do đó một user lạ trên mạng không thể kết nối với sendmail mà không qua smap. Tuy nhiên, smap và smapd không thể giải quyết vấn đề giả mạo thư hoặc các loại tấn công khác qua mail. Smap có kích thước rất nhỏ so với sendmail (700 dòng so với 20,000 dòng) nên việc phân tích file nguồn để tìm ra lỗi đơn giản hơn nhiều. Netacl: công cụ điều khiển truy nhập mạng Chúng ta đã biết rằng inetd không cung cấp một sự điều khiển truy nhập mạng nào cả: nó cho phép bất kỳ một hệ thống nào trên mạng cũng có thể nối tới các dịch vụ liệt kê trong file inetd.conf. Netacl là một công cụ để điều khiển truy nhập mạng, dựa trên địa chỉ network của máy client, và dịch vụ được yêu cầu. Vì vậy một client (xác định bởi địa chỉ IP hoặchostname) có thể khởi động telnetd (một version khác của telnet) khi nó nối với cổng dịch vụ telnet trên firewall. Thường thường trong các cấu hình firewall, netacl được sử dụng để cấm tất cả các máy trừ một vài host được quyền login tới firewall qua hoặc là telnet hoặc là rlogin, và để khoá các truy nhập từ những kẻ tấn công. Độ an toàn của netacl dựa trên địa chỉ IP và/hoặc hostname. Với các hệ thống cần độ an toàn cao, nên dụng địa chỉ IP để tránh sự giả mạo DNS. Netacl không chống lại được sự giả địa chỉ IP qua chuyển nguồn (source routing) hoặc những phương tiện khác. Nếu có các loại tấn công như vậy, cần phải sử dụng một router có khả năng soi những packet đã được chuyển nguồn (screening source routed packages). Chú ý là netacl không cung cấp điều khiển truy nhập UDP, bởi vì công nghệ hiện nay không đảm bảo sự xác thực của UDP. An toàn cho các dịch vụ UDP ở đây đồng nghĩa với sự không cho phép tất cả các dịch vụ UDP. Netacl chỉ bao gồm 240 dòng mã C (cả giải thích) cho nên rất dễ dàng kiểm tra và hiệu chỉnh. Tuy nhiên vẫn cần phải cẩn thận khi cấu hình nó. Ftp-Gw: Proxy server cho Ftp 65
- Ftp-Gw là một proxy server cung cấp điều khiển truy nhập mạng dựa trên địa chỉ IP và/hoặc hostname, và cung cấp điều khiển truy nhập thứ cấp cho phép tuỳ chọn khoá hoặc ghi nhật ký bất kỳ lệnh ftp nào. Đích cho dịch vụ này cũng có thể tuỳ chọn được phép hay khoá. Tất cả các sự kết nối và byte dữ liệu chuyển qua đều bị ghi nhật kí lại. Ftp-Gw tự bản thân nó không đe doạ an toàn của hệ thống firewall, bởi vì nó chạy chroot tới một th- mục rỗng, không thực hiện một thủ tục vào ra file nào cả ngoài việc đọc file cấu hình của nó. Kích thước của Ftp-gw là khoảng 1,300 dòng. Ftp gateway chỉ cung cấp dịch vụ ftp, mà không quan tâm đến ai có quyền hay không có quyền kết xuất (export) file. Do vậy, việc xác định quyền phải được thiết lập trên gateway và phải thực hiện trứơc khi thực hiện kết xuất (export) hay nhập (import) file. Ftp gateway nên được cài đặt dựa theo chính sách an toàn của mạng. Bộ chương trình nguồn cho phép người quản trị mạng cung cấp cả dịch vụ ftp và ftp proxy trên cùng một hệ thống. Telnet-Gw: Proxy server cho Telnet Telnet-Gw là một proxy server cung cấp điều khiển truy nhập mạng dựa trên địa chỉ IP và/hoặc hostname, và cung cấp sự điều khiển truy nhập thứ cấp cho phép tuỳ chọn khoá bất kỳ đích nào. Tất cả các sự kết nối và byte dữ liệu chuyển qua đều bị ghi nhật ký lại. Mỗi một lần user nối tới telnet-gw, sẽ có một menu đơn giản của các chọn lựa để nối tới một host ở xa. Telnet-gw không phương hại tới an toàn hệ thống, vì nó chạy chroot đến môt th- mục dành riêng (restricted directory). File nguồn bao gồm chỉ 1,000 dòng lệnh. Việc xử lý menu là hoàn toàn diễn ra ở trong bộ nhớ, và không có môt subsell hay chương trình nàotham dự. Cũng không có việc vào ra file ngoài việc đọc cấu hình file. Vì vậy, telnet-gw không thể cung cấp truy nhập tới bản thân hệ thống firewall. Rlogin-Gw: Proxy server cho rlogin Các terminal truy nhập qua thủ tục BSD rlogin có thể được cung cấp qua rlogin proxy. rlogin cho phép kiểm tra và điêu khiển truy nhập mạng tương tự như telnet gateway. Rlogin client có thể chỉ ra một hệ thống ở xa ngay khi bắt đầu nối vào proxy, cho phép hạn chế yêu cầu tương tác của user với máy (trong trường hợp không yêu cầu xác thực). Sql-Gw: Proxy Server cho Oracle Sql-net Thông thường, việc khai thác thông tin từ CSDL Oracle được tiến hành thông qua dịch vụ WWW. Tuy nhiên để hỗ trợ người sử dụng dùng chương trình plus33 nối vào máy chủ Oracle, bộ firewall của CSE được đ-a kèm vào chương trình Sql- net proxy. Việc kiểm soát truy nhập được thực hiệu qua tên máy hay địa chỉ IP của máy nguồn và máy đích. Plug-Gw: TCP Plug-Board Connection server 66
- Firewall cung cấp các dịch vụ thông thường như Usernet news. Người quản trị mạng có thể chọn hoặc là chạy dịch vụ này trên bản thân firewall, hoặc là cài đặt một proxy server. Do chạy news trực tiếp trên firewall dễ gây lỗi hệ thống trên phần mềm này, cách an toàn hơn là sử dụng proxy. Plug-gw được thiết kế cho Usernet News. Plug-gw có thể được đặt cấu hình để cho phép hay từ chối một sự kết nối dựa trên địa chỉ IP hoặc là hostname. Tất cả sự kết nối và các byte dữ liệu chuyển qua đều được ghi nhật ký lại. 67
- CHƯƠNG 3 – AN NINH MẠNG VÀ HỆ THỐNG 3.1. Vấn đề an ninh hệ thống. An ninh hệ thống có thể bị đe doạ từ rất nhiều góc độ và nguyên nhân khác nhau gọi chung là các lỗ hổng bảo mật. Đe doạ an ninh có thể xuất phát từ bên ngoài mạng nội bộ hoặc cũng có thể xuất phát từ ngay bên trong tổ chức. Do đó,việc đảm bảo an ninh an toàn cho mạng máy tính cần phải có nhiều giải pháp cụ thể khác nhau. Tuy nhiên, tổng quan nhất có ba giải pháp cơ bản sau: - ƒ Giải pháp về phần cứng. - ƒ Giải pháp về phần mềm. - ƒ Giải pháp về con người. Đây là ba giải pháp tổng quát nhất mà bất kì một nhà quản trị an ninh nào cũng phải tính đến trong công tác đảm bảo an ninh an toàn mạng máy tính. Mỗi giải pháp có một ưu nhược điểm riêng mà người quản trị an ninh cần phải biết phân tích, tổng hợp và chọn lựa để tạo khả năng đảm bảo an ninh tối ưu nhất cho tổ chức mình. 3.1.1. Đảm bảo tính riêng tư. Đối tượng tiềm tàng của tấn công riêng tư là các mạng quảng bá (LAN) và các điểm kết nối. Với phần lớn các mạng LAN là mạng quảng bá nên thông tin được truyền giữa hai máy có thểđược các máy khác nhìn thấy.Thông tin truyền tải theo frame chứa địachỉ nguồn và đích. Đối phương có thể quan sát sự chuyển tải trong LAN và xác định mọi traffic cần thiếtdựa trên địachỉ nguồn và đích. Nếu LAN cung cấp khả năng truy nhập theo đường dail-in, đối phương có thể truy cập vào mạng và theo dõi luồng truyền tải. Từ LAN truy cập ra ngoài thường thông qua: router, modem,comm server. Từ các comm server thường có các đường kết nối tới các patch panel. Với đối tượng là các điểm kết nối, đối phương có thể móc nối vào mạng thông qua các vị trí nối dây dùng các sóng điện từ năng lượng thấp để truyền tải thông tin ra ngoài. 68
- Lưu ý: Các tấn công vào mạng có thể tại mọivị trí của đường truyền thông. Đối với dạng tấn công chủ động, kẻ tấn công phải kiểm soát vật lý đường truyền và có thể thêm, bắt giữ thông tin. 3.2. Các cơ chế đảm bảo an toàn hệ thống. Cơ chế bảomật đường liênkết ( link encryption approaches ). Mỗi đường truyềnthông có thể bị tấncông đều được kết nối với các thiết bị mã hóa tại hai đầu ⇒ mọi quá trình truyền tải trên đường đều được bảo mật. Nhược điểm: – Yêucầu nhiều thiết bị mã hóa – Giải mã đối với mạng lớn. – Thông điệp phải được giải mã mỗi khi đi vào bộ chuyển mạch gói bởi vì bộ chuyển mạch cần phải đọc địa chỉ ( vitual circuit number ) trong phần đầu gói tin để định tuyến cho gói. – Như vậy thông điệp là một điểm yếu tại mỗi bộ chuyển mạch. Do đó nếu phải làm việc với mạng công cộng, người sử dụng không thể kiểm soát được an toàn thông tin tại nút mạng. Biện pháp khác phục: – Mọi đường liên kết từ nguồn tin tới đích cần phải được đảm bảo mã mật. – Mỗi cặp nút chia sẻ một đường kết nối phải cùng chia sẻ một khóa mật duy nhất và mỗi đường liên kết khác nhau phải dùng những khóa mật khác nhau. 69
- – Như vậy phải dùng nhiều khóa và mỗi khóa chỉ được phân phối tới hai nút. Cơ chế bảomật đầu – cuối ( end – to – end encryption approaches ) Quá trình mã hóa mật được thực hiện tại hai hệ thống đầu cuối. Máy trạm nguồn mã hóa thông tin và được truyền qua mạng tới trạm đích. Trong đó, trạm nguồn và trạm đích cùng chia sẻ khóa mật và do đó có thể giải mã thông điệp. Dạng bảo mật này cho phép bảo đảm an toàn đối với các tấn công vào các điểm kết nối hoặc các điểm chuyển mạch. Dạng bảo mật này cũng cho phép người sử dụng yên tâm về mức độ an toàn của mạng và đường liên kết truyền thông. Nhược điểm: Dữ liệu truyền bao gồm phần đầu và phần dữ liệu: Nếu mã hóa toàn bộ gói tin theo sơ đồ mã hóa đối xứng, thông tin không thể truyền tới đích vì: chỉ có máy đích giải mã được gói tin ⇒ nút chuyển mạch không thể giải mã và đọc địa chỉ đích do đó không thể định tuyến gói tin. Bên cạnh đó, nếu chỉ mã hóa phần thân gói tin ⇒ đối phương sẽ biết phần đầu để phân tích tải. Ưu điểm: Phương pháp bảo mật đầu cuối cho phép thực hiện xác thực: hai trạm đầu cuối chia sẻ cùng một khóa mật, người nhận sẽ biết được thông điệp tới từ người gửi. Phương pháp bảo mật đường truyền không có cơ chế xácthực. 3.2.1. Điểm đặt các hàm mã hóa đầu cuối. Với mã hóa đường truyền, các hàm mã hóa được thực hiện tại mức thấp của phân cấp mạng truyền thông ( tầng vậtlý hoặc tầng liên kết ). Đối với mã hóa đầu cuối, mức thấp nhất để đặt các hàm mã hóa là tầng mạng. Ví dụ: các phép mã hóa có thể được đặt tương ứng với X.25, do đó mọi khối dữ liệu của các khối X.25 đều được mã hóa. Trên mức mã hóa tầng mạng, số lượng các đối tượng được định danh và bảo vệ riêng rẽ tương ứng với số lượng trạm đầu cuối. Mỗi trạm đầu cuối có thể trao đổi mã mật với trạm khác nếu chúng cùng chia sẻ một khóa mật. Như vậy có thể tách chức năng mã hóa và đưa vào một khối chức năng bộ xử lý ngoại vi. 70