Chương 4: Phần mô tả một số bài thực hành được làm trong khoá luận này Bảo mật hệ thống là một vấn đề rộng và mới đối với Việt Nam, tôi nhận được sự nhiệt tình hướng dẫn của thầy Nguyễn
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2Mục lục
Mở đầu 1
Chương 1: Các vấn đề chung về mạng máy tính và bảo mật hệ thống 3
1.1 Căn bản về mạng máy tính: 3
1.1.1 Khái niệm chung: 1.1.1.1 Các thành phần của mạng máy tính: 3
1.1.1.2 Phân loại mạng máy tính: 3
1.1.2 Mạng Internet và bộ giao thức TCP/IP 1.2 Các vấn đề chung về bảo mật hệ thống và mạng 19
1.2.1 Các vấn đề về an ninh mạng: 20
1.2.1.1 Một số khái niệm về bảo mật 20
1.2.1.2 Lịch sử bảo mật mạng và hệ thống: 22
1.2.1.3 Một số hình thức tấn công mạng 23
1.2.1.4 Các mức bảo vệ an toàn mạng 24
1.2.2 Các phương thức mã hoá 25
1.2.2.1 Đặc điểm chung của các phương thức mã hóa: 25
1.2.2.2 Các phương thức mã hóa: 28
Chương 2: Các lỗ hổng và phương thức tấn công Mạng phổ biến 31
2.1 Các lỗ hổng và điểm yếu của mạng 35
2.1.1 Các lỗ hổng 35
2.1.1.1 Phân loại lỗ hổng bảo mật: 35
2.1.1.2 ảnh hưởng của các lỗ hổng bảo mật trên mạng Internet: 41
2.1.1.3 Các biện pháp phát hiện hệ thống bị tấn công: 42
2.1.2 Một số điểm yếu của hệ thống: 44
2.1.2.1 Deamon fingerd: 44
2.1.2.2 File hosts.equiv: 44
2.1.2.3 Thư mục /var/mail 44
2.1.2.4 Chức năng proxy của FTPd: 45
2.1.3 Bảo mật dịch vụ Web: 45
2.1.3.1 Lý do: 45
Trang 32.2 Một số phương thức tấn công mạng phổ biến 51
2.2.1 Scanner 51
2.2.1.1 Khái niệm về Scanner? 51
2.2.1.2 Cơ chế hoạt động của các chương trình Scanner 51
2.2.2 Password Cracker: 53
2.2.3 Trojans 56
2.2.3.1 Khái niệm về Trojan 56
2.2.3.2 Phương thức lây lan của các chương trình trojan: 58
2.2.3.3 ảnh hưởng của các chương trình trojans: 58
2.2.4 Sniffer: 59
2.2.4.1 Khái niệm về sniffer: 59
2.2.4.2 Hoạt động của sniffer: 59
2.2.4.3 Mức độ nguy hại của sniffer 60
2.2.4.4 Một số chương trình sniffer 61
2.2.4.5 Phát hiện hệ thống bị sniffer: 61
2.2.4.6 Các biện pháp hạn chế sniffer 61
Chương 3: Các biện pháp bảo vệ mạng máy tính 55
3.1 Các biện pháp kiểm soát hệ thống 63
3.1.1 Kiểm soát hệ thống qua logfile: 63
3.1.1.1 Hệ thống Logfie trong Unix: 63
3.1.1.2 Một số công cụ hữu ích hỗ trợ phân tích logfile: 67
3.1.1.3 Các công cụ ghi log thường sử dụng trong Windows NT: 68
3.2 Các biện pháp tạo kết nối an toàn 70
3.2.1 Giới thiệu chung: 70
3.2.2 Các hoạt động của giao thức SSL đối với dịch vụ 71
3.2.3 SSL Handshake 72
3.2.4 Quá trình kiểm tra tính xác thực của Server được mô tả như sau: 75
3.2.5 Quá trình kiểm tra tính xác thực ở phía Client: 76
3.3 Xây dựng hệ thống firewalls 78
3.3.1 Giới thiệu chung: 78
Trang 43.3.1.2 Chức năng của firewalls: 78
3.3.1.3 Phân loại: 79
3.3.1.4 Nguyên tắc hoạt động của firewalls: 79
3.3.2 Kiến trúc chung của firewall: 82
3.3.2.1 Kiến trúc của hệ thống có firewall: 82
3.3.2.2 Các thành phần của hệ thống firewalls: 83
3.3.2.3 Các bước cần thiết xây dựng firewall 85
3.3.3 Một số phần mềm firewalls thường sử dụng: 86
3.4 Xây dựng chính sách bảo mật 87
Chương 4: Xây dựng mô hình bảo mật hệ thống mạng máy tính……… …94
4.1 Hiện trạng hệ thống mạng máy tính của trường Đại học Quốc gia Hà nội…… 94
4.2 Những nhược điểm của mạng thông tin Đại học Quốc gia Hà nội………….… 95
4.3 Quy hoạch lại hệ thống mạng Đại học quốc gia Hà nội……… … 96
4.3.1 Mục tiêu quy hoạch……… 96
4.3.2 Kế hoạch thực hiện quy hoạch lại hệ thống mạng máy tính của ĐHQG HN… 96
4.3.3 Kết quả thực hiện……… 97
Kết luận 140
Tài liệu tham khảo 141
Trang 5CÁC HÌNH TRONG KHÓA LUẬN
Hình 1 - So sánh mô hình mạng TCP/IP và mô hình OSI 6
Hình 2 - Khuôn dạng segment trong TCP 7
Hình 3 - Cấu trúc địa chỉ lớp A 8
Hình 4 - Cấu trúc địa chỉ lớp B 8
Hình 5 - Cấu trúc địa chỉ lớp C 8
Hình 6 - Cơ chế hoạt động của sâu Internet 22
Hình 7 - Các hình thức tấn công mạng 24
Hình 8 - Các mức độ bảo vệ mạng 24
Hình 9 - Phương thức mã hóa đối xứng 28
Hình 10 - Phương thức mã hóa phi đối xứng 30
Hình 11 - Mã hóa một chiều 32
Hình 12 - Các loại lỗ hổng bảo mật và mức độ ngưy hiểm 36
Hình 13 - Một phiên làm việc của dịch vụ Web 46
Hình 14 - Hoạt động của các chương trình CGI 47
Hình 15 - Hoạt động của các chương trình bẻ khóa 54
Hình 16 - Các vị trí đặt sniffer trên 1 segment mạng 60
Hình 17 - Ghi logs trong Windows 2000 68
Hình 18 - Công cụ Event View của Windows 2000 69
Hình 19 - Chi tiết 1 thông báo lỗi trong Windows 2000 69
Hình 20 - Cấu hình dịchvụ ghi logs trong Windows 2000 70
Hình 21 - Vị trị của SSL trong mô hình TCP/IP 70
Hình 22 - Quá trình kiểm tra xác thực ở phía Server 75
Hình 23 - Quá trình kiểm tra xác thực của client 78
Hình 24 - Kiến trúc hệ thống mạng không có firewall 83
Hình 25 - Kiến trúc hệ thống cò firewall 83
Hình 26 - Các thành phần của hệ thống firewalls 84
Trang 6MỞ ĐẦU
Sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và đặc biệt là mạng Internet ngày càng phát triển đa dạng và phong phú Các dịch vụ trên mạng Internet đã xâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội Các thông tin trao đổi trên Internet cũng đa dạng cả về nội dung và hình thức, trong đó có rất nhiều thông tin cần bảo mật cao bởi tính kinh tế, tính chính xác và tin cậy của nó Bên cạnh đó, những dịch vụ mạng ngày càng có giá trị, yêu cầu phải đảm bảo tính ổn định và an toàn cao Tuy nhiên, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp hơn, do đó đối với mỗi hệ thống, nhiệm vụ bảo mật đặt ra cho người quản trị là hết sức quan trọng và cần thiết
Xuất phát từ những thực tế nêu trên, hiện nay trên thế giới đã xuất hiện rất nhiều công nghệ liên quan đến bảo mật hệ thống và mạng máy tính Việc nắm bắt những công nghệ này là hết sức cần thiết vì công tác bảo mật của các hệ thống mạng Internet Việt Nam nói chung và mạng nội bộ của khách hàng cũng không nằm ngoài các yêu cầu trên
Chính vì vậy, Tôi đã lựa chọn đề tài này để tìm hiểu, các vấn đề mà tôi tìm hiểu và nghiên cứu là như sau:
Các vấn đề chung về hệ thống và các dịch vụ cung cấp trên mạng Internet
Các điểm yếu và lỗ hổng bảo mật thường có trên một số hệ thống cung cấp dịch vụ
Các phương thức tấn công mạng phổ biến và các biến pháp phòng chống
Thiết lập các chính sách bảo mật đối với hệ thống
Tôi biên soạn và cấu trúc tài liệu làm bốn phần, gồm:
Chương 1: Trình bày các vấn đề chung về mạng máy tính và bảo mật hệ thống
Chương 2: Trình bày các vấn đề về lỗ hổng bảo mật, điểm yếu của hệ thống và một số dịch vụ cung cấp;
Chương 3: Trình bày một số giải pháp bảo mật hệ thống và mạng như: tạo kết
Trang 7Chương 4: Phần mô tả một số bài thực hành được làm trong khoá luận này Bảo mật hệ thống là một vấn đề rộng và mới đối với Việt Nam, tôi nhận được
sự nhiệt tình hướng dẫn của thầy Nguyễn Kim Giao, cùng với những góp ý quý báu của các anh chị làm việc tại công ty Điện toán và Truyền số liệu (VDC), sự nhiệt tình trong phần thực hành của các anh chị và các bạn đồng nghiệp tại Viện Công nghệ Thông tin - Đại học Quốc gia Hà Nội đã góp sức cho tôi hoàn thành khóa luận này Tôi tự nhận thấy kinh nghiệm và kỹ thuật còn hạn chế, nội dung chắc chắn sẽ còn sai sót, hy vọng các đọc giả tham gia đóng góp nhiều ý kiến bổ sung để tôi hoàn thiện kiến thức của mình hơn nữa
Trang 8CHƯƠNG 1: CÁC VẤN ĐỀ CHUNG VỀ MẠNG MÁY TÍNH
Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi các đường
truyền vật lý theo một kiến trúc nào đó Việc hình thành các mạng máy tính cho
phép nâng cao hiệu quả khai thác tài nguyên chung từ những vị trí địa lý khác nhau
Hai thành phần cơ bản của mạng máy tính đó là đường truyền vật lý và kiến
trúc mạng
Đường truyền vật lý:
Đường truyền vật lý dùng để chuyển các tín hiệu điện tử giữa các máy tính
Các tín hiệu điện tử đó biểu thị các giả trị dữ liệu dưới dạng các xung nhị phân (on -
off) Tất cả các tín hiệu được truyền giữa các máy tính đều thuộc một dạng sóng
điện từ (EM) nào đó, trải từ các tần số radio tới sóng cực ngắn (viba) và tia hồng
ngoại Tuỳ theo tần số của sóng điện từ có thể dùng các đường truyền vật lý khác
nhau để truyền các tín hiệu
Kiến trúc mạng:
Kiến trúc mạng thể hiện cách nối các máy tính với nhau ra sao và tập hợp các
qui tắc, qui ước mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân
theo để đảm bảo cho mạng hoạt động tốt
Các cách nối các máy tính được gọi là hình trạng (topology) của mạng
Các tập hợp qui tắc, qui ước truyền thông được gọi là giao thức (protocol) của
mạng
1.1.1.2 Phân loại mạng máy tính:
Phân loại theo khoảng cách địa lý:
Phân loại theo khoảng cách địa lý là cách phổ biến và thông dụng nhât Theo
Trang 9 Mạng cục bộ: Là mạng được cài đặt trong một phạm vi nhỏ (trong một toà nhà, một trường học ); khoảng cách tối đa giữa các máy tính chỉ vài
km trở lại
Mạng đô thị: Là mạng được cài đạt trong phạm vi một đô thị hoặc một trung tâm kinh tế - xã hội; khoảng cách tối đa giữa các máy tính khoảng vài chục km trở lại
Mạng diện rộng (WAN): Phạm vi của mạng trải rộng trong phạm vi một quốc gia, hoặc giữa các quốc gia trên toàn thế giới Mạng Internet ngày này là một ví dụ điển hình của mạng WAN
Phân loại theo kiến trúc mạng sử dụng:
Ngoài cách phân loại trên, người ta còn có thể phân loại mạng theo kiến trúc mạng (topo mạng và giao thức sử dụng) Theo cách phân loại này, có các loại mạng như:
Mạng SNA của IBM
Mạng ISO (theo kiến trúc chuẩn quốc tế)
Mạng TCP/IP
Trong phạm vi của tài liệu này, chúng ta quan tâm đến các vấn đề về bảo mật mạng Internet và các hệ thống xây dựng dựa trên nền bộ giao thức TCP/IP Vì vậy, trong phần sau đây chúng ta sẽ tìm hiểu một số khái niệm thường được sử dụng trên mạng Internet và bộ giao thức TCP/IP
1.1.2 Mạng Internet và bộ giao thức TCP/IP
1.1.2.1 Mạng Internet:
Thuật ngữ "Internet" được xem như là một "mạng của các mạng" hay một liên kết mạng có tính toàn cầu Công nghệ Internet ra đời cho phép người sử dụng trên toàn cầu có thể chia xẻ, trao đổi thông tin với nhau trong nhiều lĩnh vực Có thể nói các dịch vụ của mạng Internet có mặt trong hầu khắp các lĩnh vực của cuộc sống ngày nay
Lịch sử phát triển:
Năm 1969, cơ quan nghiên cứu và phát triển tiên tiến thuộc Bộ quốc phòng
Mỹ (Advanced Research Project Agency) đã xây dựng thành công mạng ARPANet,
Trang 10cho phép kết nối 4 trung tâm máy tính trên toàn nước Mỹ, phục vụ mục đích quân
sự Khởi đầu ARPANet sử dụng bộ giao thức NCP (Network Control Protocol) Vào giữa những năm 1970, họ giao thức TCP/IP (Transmission Control Protocol/Internet Protocol) được Vint Cerf (Đại học Stanford) và Robert Kahn (BBN) phát triển, ban đầu cùng tồn tại với NCP và đến năm 1983 thì hoàn toàn thay thế NCP trong mạng ARPANet
Vào đầu những năm 1980, mạng ARPANet được tách làm hai phần: phần dân
sự phục vụ mục đích nghiên cứu vần giữ tên là ARPANet và phần quân sự có tên là mạng MILNET
Tháng 11/1986, Uỷ ban khoa học quốc gia Mỹ NSF (National Science Foundation) đã thúc đẩy việc xây dựng một mạng xương sống cho phép kết nối 5 trung tâm máy tính lớn trên toàn liên bang Mỹ Năm 1987, mạng NSFNet ra đời với tốc độ đường truyền cao 1.5Mb/s cho phép nối các trung tâm máy tính với nhau Việc ra đời mạng xương sống NSFNet và các mạng vùng đã trở thành tiền thân của mạng Internet ngày nay Một xa lộ thông tin mới được hình thành cho phép kết nối mạng của các trường đại học, các viện nghiên cứu đã tham gia của cộng đồng Internet Sau đó, các cơ quan chính phủ, các tổ chức kinh doanh cũng tham gia vào mạng Internet Về mặt địa lý Internet nhanh chóng vượt ra khỏi nước Mỹ và trở thành một mạng toàn cầu Đến nay, theo số liệu thống kê của tập đoàn dữ liệu quốc
tế IDG thì số lượng người sử dụng mạng Internet đã lên đến hơn 150 triệu người Việc phát triển mạnh mẽ mạng Internet gắn liền với việc phát triển bộ giao thức TCP/IP Ra đời vào những năm 1970, TCP/IP sau đó được tích hợp vào môi trường điều hành Unix (một hệ điều hành mạng của trường đại học California ở Berkeley) Đến khi xuất hiện máy tính cá nhân (Personal Computer - PC) thì TCP/IP lại được chuyển sang máy PC chạy DOS và các trạm làm việc Unix có thể kết nối với nhau TCP/IP ngày càng phát triển và hoàn thiện, đến nay giao thức này được tích hợp vào trong hầu hết các sản phẩm mạng như UNIX, WINDOWS NT, NETWARE
Trang 11 Một số khái niệm thường sử dụng:
Ngoài một số khái niệm chung về mạng máy tính như đã trình bày ở trên; còn
có một số thuật ngữ thường được sử dụng liên quan đến mạng Internet đó là:
Site: Là một hệ thống mạng, máy tính và người dùng, trên đó có thiết lập và
thi hành các quyết định riêng biệt
Host: Là một trạm làm việc trong một site
Sevicers: Là các dịch vụ cung cấp trên các site; Ví dụ các dịch vụ như: truyền
file; thư điện tử; nhóm tin, web
Client/Server: Là một mô hình xử lý phân tán đối của các services Trong đó
hoạt động của dịch vụ dựa trên 2 đối tượng là các chương trình Server xử lý các yêu cầu gửi từ Client của một host trên mạng; Sau khi nhận được đáp ứng từ Server, Client xử lý thông tin đó để hiển thị cho người sử dụng
Administration: Là hoạt động quản trị đối với một site; Ví dụ như theo dõi,
điều hành, quản lý hoạt động của hệ thống mạng và các dịch vụ; thiết lập các chính sách cần thiết đối với site đó
1.1.2.2 Căn bản về giao thức TCP/IP
Kiến trúc phân tầng TCP/IP
Bộ giao thức TCP/IP được thiết kế theo kiến trúc phân tầng; hình sau minh hoạ chức năng, vai trò tương ứng với các tầng trong mô hình chuẩn OSI
User DataProgram Protocol (UDP)
Trang 12Xét về khía cạnh bảo mật, nhược điểm của bộ giao thức TCP/IP là không hỗ trợ xây dựng các cơ chế bảo mật; dễ dàng đối với các hoạt động giải mã, nghe trộm, bắt trước gói tin Ví dụ: Cấu trúc chung của một gói dữ liệu TCP như sau:
Hình 2 - Khuôn dạng segment trong TCP
Như hình cho thấy, toàn bộ phần header là được định dạng chuẩn nền dữ liệu
ở phần này có thể làm giả, hoặc dễ dò tìm các thông tin, giải mã
Mặt khác, hoạt động của các dịch vụ trong tầng ứng dụng dựa vào định danh các cổng dịch vụ trên hệ thống đó Có hai loại cổng:
Số cổng nguồn: Có giá trị tuỳ ý;
Số cổng đích: Có một số loại dịch vụ sử dụng các giá trị mặc định know); dẫn đến nguy cơ dễ bị xâm nhập và phá hoại dựa vào các loại dịch vụ dùng các cổng mặc định
(well-Nếu trên hệ thống, để hạn chế phá hoại có thể thiết lập chính sách như đóng cổng dịch vụ; tuy nhiên điều này dẫn đến hạn chế là từ chối cung cấp dịch vụ đó Trong phần hai sẽ trình bày cụ thể hơn các điểm yếu trong các loại dịch vụ và từ đó thiết lập các biện pháp và xây dựng chính sách bảo mật hợp lý đối với mỗi hệ thống
Network, địa chỉ IP, subnets và hostname:
Các máy tính trên mạng được phân biệt với nhau bằng địa chỉ, qua đó các gói tin mới có thể chuyển giao tới đúng đích cần tới Hệ thống địa chỉ này được quản lý bởi giao thức mạng IP (Internet Protocol) Mỗi máy tính có một địa chỉ IP của riêng
nó
16-bit source port number 16-bit destination port number
32-bit sequence number 32-bit acknowledgment number
4-bit header
length
reversed (6-bit)
Trang 13Một địa chỉ IP có chiều dài 32 bits Cấu trúc một địa chỉ IP đƣợc chia làm hai phần: Phần network và phần host Phần network định danh mạng chứa host Phần host định danh host trong mạng đó Để đảm bảo không có sự nhầm lẫn địa chỉ trên mạng các nhà khoa học đã thành lập một tổ chức có trách nhiệm phân phối và quản
lý địa chỉ trên mạng
Các địa chỉ IP đƣợc chia thành 5 lớp A, B, C, D, E Trong đó chỉ có 3 lớp A,
B, C đƣợc sử dụng thực tế để đánh địa chỉ cho host, còn lớp D dùng cho multicast address, lớp E dành để dự trữ
Địa chỉ IP có thể viết ở dạng cơ số 10, phân tách bởi các dấu chấm (Ví dụ: 192.139.5.12) hoặc viết ở dạng hệ 16 (0xC08BEA66) Cấu trúc của các lớp địa chỉ này nhƣ sau:
Trang 14255.255.255.255 Địa chỉ broadcast cho tất cả các host trên mạng
Tất cả các địa chỉ trên đều không được sử dụng để đánh địa chỉ cho host
Subnet
Trong thực tế, để dễ dàng cho hoạt động quản lý các trạm trong mạng, thường phân mảnh các mạng lớn trong các lớp mạng (A, B, C) thành các mạng nhỏ hơn Các mạng nhỏ này gọi là các subnet Quá trình này được thực hiện bằng cách lấy một số bit ở phần định danh host để sử dụng cho việc đánh địa chỉ mạng Tuỳ theo cách sử dụng của người quản trị mạng ( số subnet và số host trên mỗi subnet) mà số lượng bit lấy ở phần hostid nhiều hay it
Để tách biệt giữa địa chỉ mạng và địa chỉ host người ta dùng netmask Để tách biệt giữa subnet address và địa chỉ host người ta dùng subnet mask
Một số ví dụ về địa chỉ mạng cách dùng netmask và subnet mask
Khi thực hiện subnet một mạng trong một lớp mạng thì số lượng subnet sẽ quyết định số bit được lấy từ phần host để phục vụ cho subnet Ví dụ bạn muốn chia
1 mạng thành các mạng con gồm 32 subnet (thực tế chỉ dùng 30 subnet trên mỗi địa chỉ mạng, subnet đầu là subnet zero, subnet cuối là subnet broadcast ) của một mạng
ở lớp B; bạn cần 5 bit (25=32) cho subnet, còn lại 11 bit cho host trên mỗi subnet (khoảng 2046 host trên mỗi subnet)
11111111 11111111.11111000.00000000, do đó subetmask là: 255.255.248.0
Hostname: Việc nhớ địa chỉ IP định danh mỗi host trở nên khó khăn khi số
Trang 15Hostname là tên mà người quản trị đặt cho một thiết bị mạng (có thể là router hoặc máy tính ) để dễ quản lý về mặt hành chính Mỗi thiết bị trên mạng thường có một hostname và địa chỉ IP tương ứng Trên mạng, một host chỉ được xác thực bằng địa chỉ IP của nó Do đó để host có thể hoạt động được trên mạng thì hostname phải được chuyển đổi sang địa chỉ IP tương ứng với nó Để thực hiện được việc chuyển đổi này người ta có thể dùng các cơ chế tạo bảng hostname table hoặc Domain Name Service (DNS) cho phép lưu các ánh xạ từ địa chỉ IP sang hostname tương ứng và ngược lại
Một số dịch vụ của giao thức TCP/IP:
Các dịch vụ này nằm ở tầng ứng dụng trong bộ giao thức TCP/IP Cùng với phát triển của Internet các ứng dụng ngày càng đa dạng và hoàn thiện hơn Mỗi dịch
vụ có một giao thức riêng; Sau đây sẽ giới thiệu hoạt động của các dịch vụ này:
Dịch vụ truyền file (File Transfer Protocol)
FTP là dịch vụ cho phép truyền các file giữa các máy được nối với Internet với nhau Dùng dịch vụ này ta có thể truy cập tới hệ thống file ở một máy từ xa và sau
đó tải các tệp từ trạm làm việc ở xa đó vào máy tính của mình (download) hoặc chuyển các file từ máy tính của mình vào máy tính trên mạng (upload) Dịch vụ này
sử dụng giao thức cùng tên là FTP để thực hiện việc truyền tệp Giao thức FTP có thể hỗ trợ tất cả các kiểu tệp (văn bản ASCII, nhị phân, các tệp ở các hệ điều hành khác nhau ) FTP là một dịch vụ đã từng được sử dụng rất nhiều tuy nhiên nó có nhược điểm chính là người dùng không phải lúc nào cũng biết được toàn bộ danh sách các tệp có thể sao chép và quá trình truy nhập các thư mục để tìm tệp thường chậm
Trang 16Thư điện tử (E-mail) là dịch vụ được sử dụng rộng rãi và lâu đời nhất trên Internet E-mail giúp ta trao đổi thông tin một cách dễ dàng, nhanh chóng và thuận tiện với nhiều người trên mạng E-mail có ưu điểm là nó dùng phần mềm tương đối đơn giản, dễ sử dụng, so với các dịch vụ thông tin khác nó là dịch vụ yêu cầu mạng
có giải thông, phần cứng, phần mềm ít nhất Giao thức sử dụng trong dịch vụ Mail là giao thức truyền thư đơn giản (SMTP - Simple mail tranfer protocol) Một
E-số chương trình truyền thư đơn giản rất phổ biến trên UNIX là Sendmail; trên Windows là exchange Server Theo giao thức này, việc trao đổi thư được thực hiện bởi các trạm truyền thư (MTA - Message Tranfer Agent), người gửi không trực tiếp truyền thư đến người nhận, mà thư được lưu truyển qua các MTA trung gian, do đó
cơ chế hoạt động của E-mail được gọi là lưu và truyển tiếp Người sử dụng nhận thư qua giao thức POP 3 (Post office Protocol Version 3) hoặc IMAP Hiện nay các trình duyệt Web như IE và Netscape hỗ trợ các thành phần đóng vai trò POP3 Client (Netscape Messaging và Internet Mail)
Dịch vụ thông tin World Wide Web
Dịch vụ thông tin World Wide Web (WWW - gọi tắt là dịch vụ Web) là dịch
vụ thông tin mới nhất và có tốc độ phát triển mạnh nhất Điểm mạnh của Web là giao diện thân thiện với người sử dụng, khả năng tích hợp với các dịch vụ thông tin khác như FTP, E-mail, Gopher
Ngoài các dòng văn bản, dịch vụ Web còn hỗ trợ cả các thông tin dưới dạng
đa phương tiện (multimedia), đồ họa, hình ảnh, âm thanh Trên mỗi một trang Web
có thể tạo kết nối từ bất cứ điểm nào của tài liệu hiện thời tới một tài liệu khác trong mạng Dịch vụ Web sử dụng giao thức truyền siêu văn bản (Hypertext Tranfer Protocol), giao thức này được đánh giá là một giao thức đơn giản và hiệu quả nhất trong các giao thức ở tầng ứng dụng Chi tiết hoạt đông của dịch vụ Web và các vấn
đề bảo mật liên quan được trình bày trong phần 2 - Bảo mật dịch vụ Web
1.1.2.3 Xem xét một số file cấu hình mạng trong UNIX:
Có một số lượng lớn các file trên hệ thống UNIX liên quan đến cấu hình và hoạt động của giao thức TCP/IP, người quản trị hệ thống cần nắm được ý nghĩa và cách thức cấu hình của các file hệ thống này Hiểu phương thức làm việc và các cấu
Trang 17mật của dịch vụ này cụ thể và sâu sắc hơn Sau đây sẽ trình bày cụ thể các hoạt động của các files, các tiện ích và các deamon liên quan đến cấu hình hệ thống mạng trên UNIX
Một số file liên quan đến cấu hình mạng và dịch vụ
File /etc/hosts
File này chứa tên hostname tương ứng với địa chỉ IP của nó, dùng cho việc chuyển đổi IP address Khi bạn dùng hosname, TCP/IP sẽ rà soát file /etc/hosts để tìm địa chỉ IP của host (giả sử bạn không dùng dịch vụ DNS)
Cấu trúc nội dung của file /etc/hosts như sau:
Address official name alias
Ví dụ: Nội dung file /etc/host
#ethernet address hostname
Trang 1800:80:2d:09:90:92 lancudo
File /etc/networks
Liệt kê các địa chỉ IP và tên các mạng trên internet
Nó có dạng nhƣ sau:
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
Trang 19domain 53/tcp
bootps 67/udp # BOOTP/DHCP server
bootpc 68/udp # BOOTP/DHCP client
hostnames 101/tcp hostname # usually to sri-nic
pop2 109/tcp pop-2 # Post Office Protocol - V2
File /etc/inetd.conf
File này đƣợc sử dụng để cung cấp các thông tin cho lệnh inetd Inetd nghe trên port TCP và bật các tiến trình cần thiết khi kết nối yêu cầu trên port đó Nó tiết kiệm tài nguyên của hệ thống bằng cách chỉ bật các deamon khi chúng đƣợc gọi đến
# <service_name> tli <proto> <flags> <user> <server_pathname> <args>
#
# Ftp and telnet are standard Internet services
#
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind
exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
comsat dgram udp wait root /usr/sbin/in.comsat in.comsat
talk dgram udp wait root /usr/sbin/in.talkd in.talkd
#
# Must run as root (to read /etc/shadow); "-n" turns off logging in utmp/wtmp
#
Một số file liên quan đến hoạt động truy nhập vào hệ thống
Hai file có tác động rất lớn tới vấn đề kiểm soát truy nhập của hệ thống từ xa
đó là: etc/hosts.equiv và rhosts
Trang 20File này chứa một danh sách các host tin cậy Các file này được sử dụng bởi các lệnh (r*) như: rlogin, rcp, rcmd, rsh
Nội dung của file có dạng sau:
sự ngang hàng giữa các user
Sự ngang hàng ở đây có nghĩa là tất cả các user trên các host có tên trong file /etc/hosts.equiv (gọi là các trusted host) đều có quyền truy cập vào máy ngang hàng như các account của chính máy đó
Chú ý: file /etc/hosts.equiv không được sử dụng cho user root Khi đó chỉ có
(giả sử wabbit là trusted host của oreo) Khi đó user chare sẽ login vào oreo
mà không bị hỏi password
Trong file rhosts có thêm trường user name cho phép user có thể login với bất
cứ một user name nào có trong file /etc/passwd
Trang 21User equivalence là một cơ chế qua đó một user có thể được biết trên tất cả các máy trên mạng Nó giúp cho người quản trị mạng một cách dễ dàng hơn, đồng thời nó cũng rất cần thiết khi dùng hệ thống NFS
Để config user equivalence User tạo một file rhosts trong thư mục home File này chỉ cho phép người chủ file có quyền ghi File này chứa tên các hệ thống theo
dòng và chứa user được equivalence
Xem xét một số daemon liên quan đến TCP/IP
Deamon SNMP (SNMPD)
Deamon SNMPD được cài đặt bởi giao thức quản lý internet ICMP Giao thức này có khả năng nhận thông tin từ SNMP agent trên các hệ thống khác, rất nhiều hệ thống không chứa phần mềm quản lý SNMP
Deamon RARP (rarpd)
Deamon rarpd được cài đặt để đáp ứng giao thức chuyển đổi địa chỉ RARP Các hệ thống khác sử dụng RARP khi khởi động để tìm ra địa chỉ IP từ địa chỉ Ethernet Máy tính khi khởi động sẽ gửi địa chỉ Ethernet của nó trong bản tin RARP Hệ thống chạy rarpd muốn trả lời được bản tin này thì cần phải có tên và địa chỉ IP của host gửi trong file /etc/hosts và bảng map tên - địa chỉ ethernet trong file /etc/ethers
Deamon bootp (bootpd)
Deamon này được cài trên server chạy giao thức Internet boot protocol Nó được kích hoạt bởi tiến trình inetd khi nhận được yêu cầu boot Internet boot server được thiết kế để cung cấp thông tin cho client Nó chỉ có chức năng lưu trữ và cung cấp thông tin chứ không có chức năng hạn chế các client (như địa chỉ client, netmassk, broadcast address, domain server address, router address, etc)
Demon route (routed)
Deamon routed được gọi đến khi máy khởi động để quản lý bảng routing table Routed sử dụng giao thức thông tin tuyến Xerox NS để quản lý và cập nhật thông tin vào bảng routing table Lúc hoạt động bình thường deamon routed nghe trên UDP socket 520 để lấy các thông tin định tuyến Nếu host là một router trên mạng internet thì nó sẽ copy theo chu kỳ toàn bộ bảng routing table của nó cho tất
cả các host kết nối trực tiếp với nó trên mạng
Trang 22Lệnh netstat được sử dụng để in ra bảng routing table của host trên màn hình Hầu hết các hệ thống đều có khả năng quản lý cả dynamic và static route Dynamic route được quản lý bởi deamon routed Khi có tuyến thay đổi, deamon routed sẽ cập nhật vào bảng routing table và thông báo cho các host khác nếu cần thiết Static route được tạo bằng tay bởi các nhà quản trị mạng bằng cách dùng lệnh route và thường không được quản lý bởi routed
Deamon Domain Name Service (named)
Named chạy trên Internet Domain Name server, và nó là cơ chế thứ 2 cho phép chuyển đổi giữa hostname và địa chỉ IP Deamon này có thể chạy theo nhiều kiểu: primary, secondary, caching, và slave tuỳ thuộc vào yêu cầu của người quản trị mạng Nếu không dùng file /etc/hosts thì phải config dịch vụ domain name (DNS), và hệ thống đòi hỏi DNS cung cấp địa chỉ IP cho hostname Nếu local DNS không biết địa chỉ IP của host thì các máy chủ tên miền khác sẽ được hỏi tới cho tới khi nhận được địa chỉ IP tương ứng
Deamon System Logger (syslogd)
Deamon này có nhiệm vụ ghi log lại các bản tin về sự thay đổi hệ thống dưới dạng file /etc/syslog.conf Mỗi bản tin được ghi lại theo từng dòng trong file Deamon syslog nhận các thông tin gửi tới nó và ghi lại trong các log file của nó
Một số tiện ích của TCP/IP
Các tiện ích này được sử dụng để quản trị mạng TCP/IP Mục này sẽ đề cập tới một số lệnh được sử dụng để quản trị các dịch vụ TCP/IP trên hệ thống Các lệnh này có thể được chạy bởi user thông thường hoặc super-user
PING 203.162.0.88: 56 data bytes
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=0 time=1 ms
Trang 2364 bytes from test.vnn.vn (203.162.0.88): icmp_seq=2 time=0 ms
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=3 time=0 ms
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=4 time=0 ms
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=5 time=0 ms
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=6 time=0 ms
64 bytes from test.vnn.vn (203.162.0.88): icmp_seq=7 time=0 ms
Lệnh finger
Theo mặc định lệnh finger liệt kê tất cả danh sách các tên login, full name, tên terminal, trạng thái, idle time, login time, office location, phone number cho mỗi user hiện đang login vào mạng
Cũng có thể dùng lệnh finger để liệt kê theo từng account Nó sẽ cho biết thƣ mục home của user, login shell, user đã làm gi (file plan) và làm với những thƣ mục nào (.project):
# finger
Login Name TTY Idle When Where
root Super-User pts/1 Tue 12:23 203.162.0.85
root Super-User pts/2 10 Tue 12:39 pcomm.sg.asep.net
Trang 24Net to Media Table
Device IP Address Mask Flags Phys Addr
- - - - -
iprb0 gateway.widgets.ca 255.255.255.255 00:00:e2:1f:b1:c7
iprb0 gateway.widgets.ca 255.255.255.255 08:00:20:85:65:f9
iprb0 nb.ottawa.uunet.ca 255.255.255.255 00:60:b0:a4:9d:42
iprb0 gateway.widgets.ca 255.255.255.255 00:e0:14:a3:41:a0
Trang 25Hoạt động của người quản trị hệ thống mạng phải đảm bảo các thông tin trên mạng là tin cậy và sử dụng đúng mục đích, đối tượng Đồng thời đảm bảo mạng hoạt động ổn định, không bị tấn công bởi những kẻ phá hoại
Có một thực tế là không một hệ thống mạng nào đảm bảo là an toàn tuyệt đối,
hệ thống bảo vệ chắc chắn đến đâu đi nữa rồi cũng có lúc bị vô hiệu hoá bởi những
kẻ phá hoại
Phần sau đây sẽ trình bày một số khái niệm liên quan đến bảo mật hệ thống mạng Internet mà người quản trị cần quan tâm và giải quyết
1.2.1 Các vấn đề về an ninh mạng:
1.2.1.1 Một số khái niệm về bảo mật
Trước khi tìm hiểu các vấn đề liên quan đến phương thức phá hoại và các biện pháp bảo vệ cũng như thiết lập các chính sách về bảo mật, phần sau đây sẽ trình bày một số khái niệm liên quan đến bảo mật thông tin trên mạng Internet
Đối tượng tấn công mạng (Intruder):
Là những cá nhân hoặc các tổ chức sử dụng các kiến thức về mạng và các công cụ phá hoại (phần mềm hoặc phần cứng) để dò tìm các điểm yếu, lỗ hổng bảo mật trên hệ thống, thực hiện các hoạt động xâm nhập và chiếm đoạt tài nguyên mạng trái phép
Một số đối tượng tấn công mạng là:
Hacker: Là những kẻ xâm nhập vào mạng trái phép bằng cách sử dụng các công cụ phá mật khẩu hoặc khai thác các điểm yếu của các thành phần truy nhập trên hệ thống
Masquerader: Là những kẻ giả mạo thông tin trên mạng Một số hình thức giả mạo như giả mạo địa chỉ IP, tên miền, định danh người dùng
Eavesdropping: Là những đối tượng nghe trộm thông tin trên mạng, sử dụng các công cụ sniffer; sau đó dùng các công cụ phân tích và debug để lấy được các thông tin có giá trị
Trang 26Những đối tượng tấn công mạng có thể nhằm nhiều mục đích khác nhau: như
ăn cắp những thông tin có giá trị về kinh tế, phá hoại hệ thống mạng có chủ định, hoặc cũng có thể chỉ là những hành động vô ý thức, thử nghiệm các chương trình không kiểm tra cẩn thận
Các lỗ hổng bảo mật:
Các lỗ hổng bảo mật là những điểm yếu kém trên hệ thống hoặc ẩn chứa trong một dịch vụ mà dựa vào đó kẻ tấn công có thể xâm nhập trái phép để thực hiện các hành động phá hoại hoặc chiếm đoạt tài nguyên bất hợp pháp
Nguyên nhân gây ra những lỗ hổng bảo mật là khác nhau: Có thể do lỗi của bản thân hệ thống, hoặc phần mềm cung cấp, hoặc do người quản trị yếu kém không hiểu sâu sắc các dịch vụ cung cấp
Mức độ ảnh hưởng của các lỗ hổng là khác nhau Có những lỗ hổng chỉ ảnh hưởng tới chất lượng dịch vụ cung cấp, có những lỗ hổng ảnh hưởng nghiêm trọng tới toàn bộ hệ thống
Trong chương 2 tôi sẽ trình bày chi tiết các loại lỗ hổng bảo mật, các điểm yếu của một số dịch vụ và biện pháp khắc phục
Một chính sách bảo mật được coi là hoàn hảo nếu nó xây dựng gồm các văn bản pháp qui, kèm theo các công cụ bảo mật hữu hiệu và nhanh chóng giúp người quản trị phát hiện, ngăn chặn các xâm nhập trái phép
Chi tiết về phương pháp và cách thức xây dựng một chính sách bảo mật sẽ được trình bày trong chương 3
Trang 27M¸y tÊn c«ng M¸y bÞ tÊn
c«ng
KÝch ho¹t 1 scipts kh¸c ch¹y (dùa trªn c¸c lç hæng cña sendmail vµ fingerd
Göi mét Shell Scrips
Göi mét Shell Scrips
Göi mét Shell Scrips
Hình 6 - Cơ chế hoạt động của sâu Internet
Năm 1990: Các hình thức truyền Virus qua địa chỉ Email xuất hiện phổ biến trên mạng Internet
Năm 1991: Phát hiện các chương trình trojans
Cùng thời gian này sự phát triển của dịch vụ Web và các công nghệ liên quan như Java, Javascipts đã có rất nhiều các thông báo lỗi về bảo mật liên quan như: Các lỗ hổng cho phép đọc nội dung các file dữ liệu của người dùng, một số lỗ hổng cho phép tấn công bằng hình thức DoS,
Trang 28 Năm 1998: Virus Melisa lan truyền trên mạng Internet thông qua các chương trình gửi mail của Microsoft, gây những thiệt hại kinh tế không nhỏ
Năm 2000: Một loạt các Web Site lớn như yahoo.com và ebay.com bị tê liệt, ngừng cung cấp dịch vụ trong nhiều giờ do bị tấn công bởi hình thức DoS
1.2.1.3 Một số hình thức tấn công mạng
Có thể tấn công mạng theo một trong các hình thức sau đây:
Dựa vào những lỗ hổng bảo mật trên mạng: Những lỗ hổng này có thể là các điểm yếu của dịch vụ mà hệ thống đó cung cấp Ví dụ những kẻ tấn công lợi dụng các điểm yếu trong các dịch vụ mail, ftp, web để xâm nhập và phá hoại
Sử dụng các công cụ để phá hoại: Ví dụ sử dụng các chương trình phá khoá mật khẩu để truy nhập vào hệ thống bất hợp pháp, lan truyền virus trên hệ thống, cài đặt các đoạn mã bất hợp pháp vào một số chương trình Nhưng kẻ tấn công mạng cũng có thể kết hợp cả 2 hình thức trên với nhau để đạt được mục đích Cụ thể phân tích các điểm yếu của các dịch vụ thường sử dụng trên mạng cũng như cơ chế của các phương thức tấn công sẽ được trình bày trong chương 2
Hình dưới đây minh hoạ mức độ nguy hại tới hệ thống tương ứng với các hình
Trang 29Hình 7 - Các hình thức tấn công mạng Mức 1 (Level 1): Tấn công vào một số dịch vụ mạng: như Web, Email, dẫn đến các nguy cơ lộ các thông tin về cấu hình mạng Các hình thức tấn công ở mức này có thể dùng DoS hoặc spam mail
Mức 2 (Level 2): Kẻ phá hoại dùng tài khoảng của người dùng hợp pháp để chiếm đoạt tài nguyên hệ thống; (Dựa vào các phương thức tấn công như bẻ khoá, đánh cắp mật khẩu ); kẻ phá hoại có thể thay đổi quyền truy nhập hệ thống qua các
lỗ hổng bảo mật hoặc đọc các thông tin trong tập tin liên quan đến truy nhập hệ thống như /etc/passwd
Từ Mức 3 đến mức 5: Kẻ phá hoại không sử dụng quyền của người dùng thông thường; mà có thêm một số quyền cao hơn đối với hệ thống; như quyền kích hoạt một số dịch vụ; xem xét các thông tin khác trên hệ thống
Mức 6: Kẻ tấn công chiếm được quyền root trên hệ thống
1.2.1.4 Các mức bảo vệ an toàn mạng
Vì không có một giải pháp an toàn tuyệt đối nên người ta thường phải sử dụng đồng thời nhiều mức bảo vệ khác nhau tạo thành nhiều lớp "rào chắn" đối với các hoạt động xâm phạm Việc bảo vệ thông tin trên mạng chủ yếu là bảo vệ thông tin cất giữ trong các máy tính, đặc biệt là trong các server của mạng Hình sau mô tả các lớp rào chắn thông dụng hiện nay để bảo vệ thông tin tại các trạm của mạng
Như minh hoạ trong hình trên, các lớp bảo vệ thông tin trên mạng gồm:
Lớp bảo vệ trong cùng là quyền truy nhập nhằm kiểm soát các tài nguyên (ở đây là thông tin) của mạng và quyền hạn (có thể thực hiện những thao tác gì) trên
Trang 30tài nguyên đó Hiện nay việc kiểm soát ở mức này được áp dụng sâu nhất đối với tệp
Lớp bảo vệ tiếp theo là hạn chế theo tài khoản truy nhập gồm đăng ký tên/ và mật khẩu tương ứng Đây là phương pháp bảo vệ phổ biến nhất vì nó đơn giản, ít tốn kém và cũng rất có hiệu quả Mỗi người sử dụng muốn truy nhập được vào mạng sử dụng các tài nguyên đều phải có đăng ký tên và mật khẩu Người quản trị
hệ thống có trách nhiệm quản lý, kiểm soát mọi hoạt động của mạng và xác định quyền truy nhập của những người sử dụng khác tuỳ theo thời gian và không gian Lớp thứ ba là sử dụng các phương pháp mã hoá (encryption) Dữ liệu được biến đổi từ dạng "đọc được" sang dạng không "đọc được" theo một thuật toán nào
đó Chúng ta sẽ xem xét các phương thức và các thuật toán mã hoá hiện được sử dụng phổ biến ở phần dưới đây
Lớp thứ tư là bảo vệ vật lý (physical protection) nhằm ngăn cản các truy nhập vật lý bất hợp pháp vào hệ thống Thường dùng các biện pháp truyền thống như ngăn cấm người không có nhiệm vụ vào phòng đặt máy, dùng hệ thống khoá trên máy tính, cài đặt các hệ thống báo động khi có truy nhập vào hệ thống
Lớp thứ năm: Cài đặt các hệ thống bức tường lửa (firewall), nhằm ngăn chặn các thâm nhập trái phép và cho phép lọc các gói tin mà ta không muốn gửi đi hoặc nhận vào vì một lý do nào đó
1.2.2 Các phương thức mã hoá
Một trong những biện pháp bảo mật thường sử dụng đó là áp dụng các cơ chế
mã hoá Sau đây sẽ phân tích một số cơ chế mã hoá đảm bảo tính an toàn và tin cậy
dữ liệu thường được sử dụng trong các dịch vụ trên mạng Internet
1.2.2.1 Đặc điểm chung của các phương thức mã hóa:
Trong các phương thức mã hóa, mỗi phương thức đều chủ yếu tập trung giải quyết 6 vấn đề chính như sau:
Authentication - Hoạt động kiểm tra tính xác thực một thực thể trong giao tiếp Authorization - Hoạt động kiểm tra thực thể đó có được phép thực hiện những quyền hạn cụ thể nào
Trang 31Confidential - Tính bảo mật; Xác định mức độ bảo mật đối với mỗi phương thức bảo mật
Integrity - Tính toàn vẹn: Kiểm tra tính toàn vẹn dữ liệu khi sử dụng mỗi phương thức bảo mật cụ thể
Nonrepudiation - Tính không thể phủ nhận Xác định tính xác thực của chủ thể gây ra hành động
Availability - Khả năng thực hiện phương thức bảo mật đó trong môi trường
có và những thông tin xác định tính duy nhất
Với cơ chế kiểm tra dựa vào mô hình những thông tin biết trước, đối tượng cần kiểm tra cần phải cung cấp những thông tin mà chúng biết, ví dụ như password, hoặc mã số thông số cá nhân PIN (Personal information number)
Với cơ chế kiểm tra dựa vào mô hình những thông tin đã có, đối tượng kiểm tra cần phải thể hiện những thông tin mà chúng sở hữu, ví dụ như private key, hoặc
Là hoạt động kiểm tra tính hợp lệ có được cấp phát thực hiện một hành động
cụ thể hay không Do vậy hoạt động này liên quan đến các dịch vụ cấp phát quyền truy cập, đảm bảo cho phép hoặc không cho phép truy nhập đối với những tài
Trang 32nguyên đã được phân quyền cho các thực thể Những hoạt động ở đây có thể là quyền đọc dữ liệu, viết, thi hành một chương trình hoặc sử dụng một thiết bị phần cứng Cơ chế thực hiện việc phân quyền dựa vào 2 mô hình chính sau: Mô hình ACL (Access Control List) và mô hình dựa trên cơ chế thiết lập các chính sách (Policy)
lý
Integrity:
Tính toàn vẹn; hoạt động này đánh giá khả năng sửa đổi dữ liệu so với dữ liệu nguyên thủy ban đầu; Một phương thức bảo mật có tính toàn vẹn dữ liệu khi nó đảm bảo các dữ liệu mã hóa không thể bị thay đổi nội dung so với tài liệu gốc (khi đã được giải mã) và trong trường hợp những kẻ tấn công trên mạng sửa đổi nội dung
dữ liệu đã mã hóa thì không thể khôi phục lại dạng ban đầu của dữ liệu
Nonreputation:
Tính không thể phủ nhận; Xác định tính xác thực của chủ thể gây ra hành động có thực hiện bảo mật (Ví dụ chữ ký điện tử sử dụng trong hệ thống Mail cho phép xác định chính xác đối tượng "ký"- người gửi message đó.)
Availability:
Đánh giá tính thực thi của một phương thức bảo mật Phương thức bảo mật đó phải có khả năng thực hiện trong thực tế đối với các hệ thống máy tính, dữ liệu và thực hiện với các tài nguyên phần cứng, phần mềm; đồng thời phải đảm bảo các yêu cầu về tốc độ tính toán, khả năng chuyển đổi, tính tương thích giữa các hệ thống khác nhau
Trang 331.2.2.2 Các phương thức mã hóa:
Phương thức mã hóa dùng khoá bí mật (Secret Key Crytography)
Sơ đồ sau đây minh hoạ quá trình làm việc của phương thức mã hoá sử dụng khoá bí mật:
Hình 9 - Phương thức mã hóa đối xứng
Đây là phương thức mã hoá đối xứng: Message ở dạng Plaintext (dạng đọc được) được mã hoá sử dụng Private Key (khoá mà chỉ có người mã hoá mới biết được) tạo thành message được mã hoá (Ciphertext) Ở phía nhận, message mã hoá được giải mã cùng với Private Key mã hoá ban đầu thành dạng Plaintext
Điểm chú ý của phương pháp mã hoá này là việc sử dụng khoá bí mật cho cả quá trình mã hoá và quá trình giải mã Do đó, nhược điểm chính của phương thức này là cần có quá trình trao đổi khoá bí mật, dẫn đến tình trạng dễ bị lộ khoá bí mật
Có hai loại mã hoá đối xứng như sau: Mã hoá theo từng khối và mã hoá theo bits dữ liệu
Các thuật toán mã hoá đối xứng theo từng khối dữ liệu (Block Cipher) thực hiện chia message ở dạng plaintext thành các khối ví dụ 64 bits (hoặc 2n bits), sau đó tiến hành mã hoá từng khối này Đối với khối cuối cùng nếu không đủ 64 bits sẽ được bù thêm phần dữ liệu đệm (padding) Bên nhận sẽ thực hiện giải mã theo từng khối
Mã hoá theo từng bits dữ liệu (Stream Ciphers)
Bảng sau đây mô tả một số phương pháp mã hoá đối xứng sử dụng khoá bí mật
Tên thuật toán Chế độ mã hoá Chiều dài khoá
Trang 34RC4 Theo bit 2048
Để khắc phục điểm hạn chế của phương pháp mã hoá đối xứng là quá trình trao đổi khoá bí mật, người ta đã sử dụng phương pháp mã hoá phi đối xứng sử dụng một cặp khoá tương ứng với nhau gọi là phương thức mã hoá phi đối xứng dùng khoá công khai (Public-Key Crytography)
Phương thức mã hóa dùng khoá công khai (Public-Key Crytography)
Phương thức mã hóa dùng khoá công khai được phát minh bởi Whitfield Diffie và Martin Hellman vào năm 1975; Phương thức mã hóa này sử dụng 2 khóa
là Public key và Private Key có các quan hệ toán học với nhau Trong đó Private Key được giữ bí mật và không có khả năng bị lộ do không cần phải trao đổi trên mạng; Public key không phải giữ bí mật và mọi người đều có thể nhận được khoá này Do phương thức mã hóa này sử dụng 2 khóa khác nhau, nên người ta gọi nó là phương thức mã hóa phi đối xứng Mặc dù Private key được giữ bí mật, nhưng không giống với "secret Key" được sử dụng trong phương thức mã hóa đối xứng sử dụng khoá bí mật do Private Key không được trao đổi trên mạng
Public key và Private key tương ứng của nó có quan hệ toán học với nhau và được sinh ra sau khi thực hiện các hàm toàn học; nhưng các hàm toán học này luôn thoả mãn điều kiện là sao cho không thể tìm được private key từ public key và ngược lại Do đó, một cặp khoá public key và private key tương ứng được gọi là key pair
Do có mối quan hệ toán học với nhau, một message được mã hóa bằng public key chỉ có thể giải mã được bằng private key tương ứng; một message được mã hóa bằng private key chỉ có thể giải mã được bằng public key tương ứng của nó
Thuật toán Public key có tính thuận nghịch nếu nó có khả năng sử dụng cả cho bảo mật và ký điện tử Nó là không có tính thuận nghịch nếu chỉ có khả năng ký Với các thuật toán bất thuận nghịch, private key chỉ có thể mã hóa plaintext (tức là quá trình ký) mà không có khả năng giải mã ciphertext Một loại khác của thuật toán mã hóa public-key là hoặc không thể mã hóa hoặc không thể ký; thuật toán này
Trang 35Thuật toán Public-key dựa trên mối quan hệ toán học giữa Public key và private key Bảng sau đây liệt kê các thuật tóan public-key thông dụng như sau:
DSA Digital signature Thuật toán rời rạc
RSA Digital signature, Key
RSA, là tên của 3 nhà toán học đã tìm ra phương thức mã hóa này, đó là Rivest, Shamir và Adleman RSA là thuật toán public-key thông dụng nhất từ trước tới nay RSA có thể sử dụng cả cho mã hóa, ký, và key exchange Chiều dài của key
có thể thay đổi, thông thường trong phạm vi từ 512 đến 2048 bits Việc lựa chọn chiều dài key phải đảm bảo cân bằng giữa tốc độ tính toán và độ phức tạp của phương thức mã hóa
DSA (Digital Signature Algorithm), phương thức mã hóa này được ra đời từ chuẩn DSS (Digital Signature Standard), được giới thiệu vào năm 1994 DSA chỉ có thể ký vào một message; nó không thể dùng cho mã hóa bảo mật và key exchange
Cơ chế làm việc của phương pháp mã hoá sử dụng khoá công khai được mô tả bằng hình sau:
Hình 10 - Phương thức mã hóa phi đối xứng
Giả sử A muốn gửi cho B một message được mã hóa theo phương thức key A sử dụng Public key của B để mã hóa Plaintext tạo thành ciphertext (A có thể nhận được Public Key của B do Public Key là khoá công khai) Sau đó ciphertext này được chuyển tới B Ở phía nhận B sử dụng private key của mình để giải mã Ciphertext và đọc được message ban đầu của A
public-Do đó, để thực hiện phương thức mã hóa dùng khoá công khai, có một số vấn
đề cần giải quyết như sau:
Encrytion
Public key
Private key
Trang 36 Câu hỏi 1: Làm thế nào để A có thể kiểm tra tính xác thực của Public Key của B?
Câu hỏi 2: Làm thế nào để B biết được chính xác là message đó được gửi
mã được message này vì C không có private key của B
Trường hợp giả mạo khoá công khai: Vấn đề đặt ra là làm thế nào để A có thể biết chính xác Public key mà A sử dụng đúng là Public Key của B Trong trường hợp này, nếu D giả mạo B gửi Public key của D đến A (A nhận được Public key là của D mà không phải là của B), và A vẫn mã hoá message của mình; khi đó message đến D sẽ vẫn giải mã được do D có private key của mình Để khắc phục hạn chế này người ta xây dựng một hệ thống các tổ chức thứ ba đóng vai trò trung gian trong việc xác thực tín đúng đắn của một Public Key Đó là các tổ chức xây dựng hệ thống chứng thực điện tử (trong phần 3 sẽ trình bày kỹ hơn về Ceriticate) Trường hợp sử dụng Private Key để mã hoá: Nếu như A sử dụng private key của mình để mã hóa một message và gửi message đó tới B? Khi đó, B có thể sử dụng Public key của A để giải mã message từ A Một người thứ ba C cũng có Public key của A (public key là một khóa công khai) nên nếu nhận được message gửi từ A cũng có thể giải mã được message và đọc nó Do đó, A không thể sử dụng private key của mình để mã hóa một message Tuy nhiên dựa vào đặc điểm ánh xạ 1:1 giữa Private Key và Public Key ta có thể thấy rằng message được mã hoá là được gửi từ A mà không phải là một người khác Điều này cũng trả lời cho câu hỏi
Trang 37để thực hiện qúa trình trao đổi dữ liệu (khoá bí mật này chỉ tồn tại trong một session làm việc duy nhất) Việc sử dụng kỹ thuật mã hoá dùng dùng khoá công khai cho quá trình bắt tay giữa hai thực thể cần trao đổi thông tin có yêu cầu bảo mật kết hợp với thuật toán dùng khoá bí mật cho quá trình trao đổi dữ liệu tạo thành một phương thức mã hóa lai Để thực hiện được phương thức mã hoá lai, Netscape đã đưa ra giao thức SSL thực hiện các quá trình trên Phần 3 trình bày về tạo kết nối bảo mật
sẽ trình bày kỹ hơn về vấn đề này
Qua các phân tích trên, chúng ta thấy rằng có hai khả năng cần phải khắc phục khi sử dụng phương thức mã hóa dựa trên nền tảng Public key đó là:
Nếu sử dụng Public key để mã hóa một message thì đảm bảo message đó là hoàn toàn bảo mật; nhưng cần phải kiểm tra tính xác thực của public key (1)
Nếu sử dụng Private key để mã hóa một message thì có thể giải mã được bởi nhiều người có được public key; nhưng lại có thể sử dụng phương thức này để kiểm tra tính xác thực của một người ký vào message đó (2)
Vấn đề đặt ra là có thể tận dụng được hai đặc điểm này để đảm bảo phiên giao dịch là hoàn toàn bảo mật và tin cậy Cụ thể như sau:
Người ta sẽ sử dụng private key để ký vào một message; mà nội dung của message này là public key của người đó Quá trình này đảm bảo được rằng public key đúng là của người; điều này khắc phục được nhược điểm (1) đã nêu ở trên Sau đó một message được mã hóa bằng public key vừa gửi đến đảm bảo rằng chỉ có người có private key của nó mới có khả năng giải mã được Điều này khắc phục được nhược điểm (2) đã nêu ở trên
Phương thức mã hoá một chiều - thuật toán Băm
Để đảm bảo tính toàn vẹn của dữ liệu không bị thay đổi so với dữ liệu ban đầu, người ta đưa ra các phương thức mã hoá một chiều sử dụng các thuật toán
“Băm” Hoạt động của phương thức mã hoá này được minh hoạ trong hình sau:
Hình 11 - Mã hóa một chiều
one-way function
digest (hash)
Trang 38Hình trên mô tả hoạt động của phương thức mã hóa 1 chiều (Message - Digest); Theo đó, đầu ra của phương thức này là một Message Digest có chiều dài
cố định (message này gọi là message digest, hoặc digest hoặc hash) Với mỗi đầu vào Plaintext sẽ chỉ có duy nhất một kết quả đầu ra tương ứng và từ Message Digest không thể tìm ra Message dạng Plaintext ban đầu Message (dạng Plain text) sau khi thực hiện hàm hashing sẽ tạo ra một chuỗi các ký tự - đặc trưng cho message đầu vào Giải thuật message digest là một thuận toán một chiều hay thường gọi là thuật toán hash Phương thức mã hóa này không sử dụng để mã hóa dữ liệu mà thường sử dụng để kiểm tra tính toán vẹn của dữ liệu trong quá trình truyền thông tin trên mạng
Các thuật toán hashing có 3 đặc điểm chính như sau:
Không có khả năng tạo ra message ban đầu dựa trên digest của nó (nói cách khác là thuật toán hashing phải đảm bảo có tính một chiều, không thể thực hiện theo chiều ngược lại)
Không thể tìm ra một message gốc từ một digest đặc biệt
Không thể tìm 2 message khác nhau có cùng một digest giống nhau
Nếu chiều dài của digest là m bits, nó sẽ cần phải thử 2m message để tìm ra một message với digest mong muốn tương ứng và thực hiện 2m/2 meesage để tìm 2 message có cùng một digest Do đó các hàm thực hiện message-digest phải có đầu
ra ít nhất là 128 bits , vì tối thiểu là 264 là không thể tính toán được với các khả năng tính toán hiện nay Bảng sau đây mô tả một số thuật toán hashing thường sử dụng:
Thuật toán Chiều dài của digest (bits)
Trang 39 Message Authentication Codes - MAC
MAC là một dữ liệu có chiều dài cố định, được gửi cùng với một message để kiểm tra tính toàn vẹn dữ liệu của message đó Các phương thức mã hóa dùng khóa
bí mật và khóa công khai có thể được sử dụng như là nền tảng của việc tạo các MACs Một cách thông dụng để tạo MAC là dùng nhờ một block cipher text (một đoạn text đã được mã hóa) được tạo từ phương thức mã hóa đối xứng sử dụng khóa
bí mật Các giao dịch tài chính trên mạng đã sử dụng phương thức này một thời gian dài để bảo vệ các giao dịch điện tử giữa các nhà bank trên mạng Một hàm mã hóa hashing được sử dụng kết hợp giữa một message và một khóa bí mật để tạo ra MAC ở phía người nhận message, (chú ý người này dùng chung khóa bí mật với phía người gửi), tính toán hash theo dữ liệu gửi đến cùng với khóa bí mật của họ để tạo thành một MAC khác Nếu 2 MAC này trùng với nhau, người nhận sẽ kết luận rằng message đó là được gửi từ một người mà người đó đã biết khóa bí mật và message đó hoàn toàn không bị sửa chữa trong khi truyền dữ liệu Quá trình này được gọi là hàm keys hash và tương ứng với nó MAC được gọi là HMAC
Trang 402.1.1.1 Phân loại lỗ hổng bảo mật:
Có nhiều tổ chức khác nhau tiến hành phân loại các dạng lỗ hổng đặc biệt Theo cách phân loại của Bộ quốc phòng Mỹ, các loại lỗ hổng bảo mật trên một hệ thống được chia như sau:
Lỗ hổng loại C: Các lỗ hổng loại này cho phép thực hiện các phương thức tấn công theo DoS (Dinal of Services - Từ chối dịch vụ) Mức độ nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống; không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp
Lổ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền trên
hệ thống mà không cần thực hiện kiểm tra tính hợp lệ Mức độ nguy hiểm trung bình; Những lỗ hổng này thường có trong các ứng dụng trên hệ thống; có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật
Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngoài cho thể truy nhập vào hệ thống bất hợp pháp Lỗ hổng rất nguy hiểm, có thể làm phá hủy toàn bộ
hệ thống
Hình sau minh họa các mức độ nguy hiểm và loại lỗ hổng tương ứng: