1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn at&bm httt Đề tài giao thức bảo mật ssh

20 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giao thức bảo mật ssh
Người hướng dẫn Thầy <Tên Thầy>
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tiểu luận
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 1,48 MB

Nội dung

SSH Secure Shell là một phương thức xác thực được sử dụng trong giao thức SSH để truyền tải dữ liệu qua mạng một cách an toàn và bảo mật.. Lớp Truyền Tải Transport Layer Lớp này chịu trá

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN MÔN AT&BM HTTT

Đề tài: Giao thức bảo mật SSH

Giảng viên: Thầy <Tên thầy>

Nhóm 1:

Tên thành viên (NT) Mã sinh viên Viết báo cáo, Làm Slide

Tên thành viên Mã sinh viên Thuyết trình

Tên thành viên Mã sinh viên Thuyết trình

Tên thành viên Mã sinh viên Thuyết trình

Hà Nội, 2024

Trang 2

Mục lục

1.2 Lớp 6 - Trình Bày (Presentation Layer) 6

1.1 Mã hóa Bất đối xứng trong Khởi tạo Kết nối 9 1.2 Tạo và Sử dụng Khóa Phiên (Session Key) 10

1.4 Kết hợp mã hóa Đối xứng và Bất đối xứng 11

1 Tấn công dò mật khẩu (Brute-force attacks) 13

2 Tấn công trung gian (Man-in-the-Middle - MITM) 14

3 Tấn công dựa trên tệp cấu hình và khóa (File-based attacks) 16

Trang 3

V SSH và tiêu chuẩn Zero Trust 17

2 Kiểm Soát Truy Cập Theo Chính Sách (Policy-Based Access Control) 18

3 Giám Sát và Đăng Nhập Mọi Hoạt Động (Monitoring and Logging) 18

4 Bảo Mật Dữ Liệu Trong Quá Trình Truyền Tải (Data Protection in Transit) 18

VI Tiêu chuẩn an toàn thông tin Việt Nam liên quan đến SSH 19

1 TCVN ISO/IEC 27001:2019 - Hệ thống Quản lý An toàn Thông tin 19

2 TCVN 11930:2017 - An toàn Công nghệ Thông tin: Các kỹ thuật kiểm soát và bảo

3 TCVN 8628:2010 - Công nghệ thông tin - Các kỹ thuật bảo mật - Tiêu chuẩn cho

Trang 4

I Giới thiệu

1 SSH là gì?

SSH (Secure Shell) là một phương thức xác thực được sử dụng trong giao thức SSH để truyền tải dữ liệu qua mạng một cách an toàn và bảo mật Đây là một giao thức mã hóa, với cổng mặc định là 22, cho phép người dùng kết nối tới máy chủ mà không cần phải nhập mật khẩu mỗi lần truy cập SSH hoạt động dựa trên hai loại khóa:

Khóa công khai: Được công khai và không cần bảo vệ, dùng trong quá trình mã

hóa dữ liệu

Khóa riêng: Được lưu trữ trên máy tính cá nhân và cần được bảo vệ, dùng trong

việc giải mã

2 Sự ra đời của SSH

SSH, viết tắt của Secure Shell, là một giao thức cung cấp khả năng kết nối an toàn với một máy tính khác qua mạng không an toàn Được giới thiệu lần đầu vào năm

1995, SSH ra đời nhằm thay thế các phương thức truyền thống như Telnet, vốn chỉ chuyển dữ liệu dưới dạng văn bản thuần túy

Hãy tưởng tượng một quản trị viên hệ thống làm việc từ xa muốn quản lý máy chủ tại trung tâm dữ liệu của công ty Nếu không có SSH, họ sẽ phải lo ngại việc thông tin đăng nhập bị chặn, dẫn đến nguy cơ máy chủ bị tấn công bởi tin tặc Tuy nhiên, với SSH, quản trị viên có thể thiết lập một kết nối được mã hóa, bảo vệ toàn bộ dữ liệu truyền qua internet Nhờ đó, họ có thể đăng nhập bằng tên người dùng và khóa riêng, cho phép thực hiện các lệnh, truyền tệp, và cập nhật hệ thống một cách an toàn mà không lo ngại việc bị theo dõi Khả năng truy cập bảo mật này là rất cần thiết để bảo

vệ tính toàn vẹn của các thông tin quan trọng của công ty

3 Mục tiêu

Bài viết này đưa ra cái nhìn chi tiết về Secure Shell (SSH), làm rõ lý do vì sao SSH được xem là bảo mật, phân tích các phương pháp tấn công có thể xảy ra nhắm vào SSH, đánh giá mức độ phù hợp của SSH với các nguyên tắc Zero Trust, đồng thời xem xét các tiêu chuẩn an toàn thông tin hiện hành của Việt Nam có liên quan

Trang 5

II Kiến trúc

1 Vị trí hoạt động

SSH hoạt động chủ yếu ở lớp ứng dụng của mô hình OSI, nhưng cũng liên quan đến một số lớp khác

1.1 Lớp 7 - Ứng Dụng (Application Layer)

Đây là lớp chính nơi SSH vận hành Lớp ứng dụng cung cấp các giao diện và dịch

vụ, cho phép người dùng cuối thiết lập kết nối SSH và thực hiện các thao tác như truy cập từ xa hoặc truyền tải dữ liệu thông qua SCP hoặc SFTP Tất cả lệnh và truy vấn từ người dùng đều được thực thi trên lớp này

Trang 6

1.2 Lớp 6 - Trình Bày (Presentation Layer)

Tầng này chịu trách nhiệm mã hóa và giải mã thông tin SSH áp dụng nhiều thuật toán mã hóa như AES, ChaCha20, và các hàm băm như SHA-2, MD5 để bảo vệ dữ liệu trong quá trình truyền tải Việc mã hóa ở tầng trình bày giúp ngăn chặn nguy

cơ dữ liệu bị nghe lén

1.3 Lớp 4 - Giao Vận (Transport Layer)

SSH sử dụng giao thức TCP (Transmission Control Protocol) nhằm thiết lập một kênh truyền tải đáng tin cậy Tầng này đảm bảo rằng dữ liệu được truyền đi không

bị thất lạc và duy trì thứ tự đúng đắn SSH được cài đặt mặc định để hoạt động qua cổng 22/TCP, giúp dữ liệu được truyền tải an toàn và có tính xác thực cao

Trang 7

2 Kiến trúc

Kiến trúc của SSH có ba lớp chính: Lớp truyền tải, lớp xác thực và lớp kết nối

2.1 Lớp Truyền Tải (Transport Layer)

Lớp này chịu trách nhiệm cung cấp tính năng bảo mật cơ bản cho kết nối, bao gồm:

● Mã hóa: Sử dụng các thuật toán mã hóa như AES, Triple DES, hoặc

ChaCha20 để bảo vệ dữ liệu khỏi bị đọc trộm

● Xác thực máy chủ: Lớp truyền tải đảm bảo tính toàn vẹn của phiên

làm việc bằng cách xác thực máy chủ với khách hàng thông qua khóa công khai Điều này giúp phát hiện sự giả mạo nếu một kẻ tấn công

cố gắng đóng vai trò máy chủ trong kết nối

● Chống Tấn Công Replay và MITM: Bằng cách sử dụng nonce và

mã MAC, lớp truyền tải ngăn chặn việc phát lại gói tin từ các phiên trước, đồng thời bảo vệ chống tấn công MITM

2.2 Lớp Xác Thực (Authentication Layer)

Lớp xác thực quản lý quá trình xác thực người dùng trước khi cho phép truy cập vào hệ thống:

Trang 8

● Xác thực dựa trên mật khẩu hoặc khóa SSH: SSH hỗ trợ cả mật

khẩu và các cặp khóa công khai/riêng tư để xác thực người dùng Xác thực bằng khóa SSH đặc biệt mạnh mẽ do khóa riêng tư không được chia sẻ trên mạng, làm giảm khả năng bị đánh cắp

● Xác thực nhiều lớp: SSH cũng có thể kết hợp xác thực nhiều yếu tố

(MFA) để tăng cường bảo mật, chẳng hạn như yêu cầu người dùng nhập mã xác minh từ thiết bị di động

2.3 Lớp Kết Nối (Connection Layer)

Lớp này cung cấp một kênh liên lạc ảo cho nhiều phiên làm việc độc lập giữa máy khách và máy chủ, bao gồm:

● Quản lý kênh (channel): Lớp kết nối quản lý nhiều phiên (ví dụ:

truy cập shell, chuyển tập tin qua SCP/SFTP) bằng cách chia chúng thành các kênh riêng biệt Mỗi kênh hoạt động độc lập, cho phép chuyển dữ liệu song song mà không làm ảnh hưởng đến các kênh khác

● Chuyển tiếp cổng (port forwarding): SSH cho phép chuyển tiếp các

kết nối từ máy khách đến các dịch vụ khác thông qua lớp kết nối, giúp tạo ra các kênh bảo mật cho các dịch vụ không an toàn

Trang 9

III Tại sao SSH lại an toàn?

Mã hóa được sử dụng bởi giao thức SSH để bảo vệ cả máy chủ và máy khách Tất

cả các tệp truyền đi, khóa và tên đăng nhập đều được mã hóa để ngăn chặn các cuộc tấn công

1 Bảo mật Dữ liệu trong Giao thức SSH

SSH (Secure Shell) là một giao thức mạng an toàn, cho phép truyền tải dữ liệu một cách bảo mật qua các kênh không an toàn Sở dĩ SSH có độ an toàn cao là nhờ vào việc sử dụng các cơ chế mã hóa dữ liệu Dưới đây là những yếu tố quan trọng giúp SSH bảo vệ an toàn dữ liệu trong suốt quá trình kết nối

1.1 Mã hóa Bất đối xứng trong Khởi tạo Kết nối

Trong giai đoạn ban đầu của kết nối, SSH dùng mã hóa bất đối xứng

để trao đổi khóa và xác thực danh tính giữa máy chủ và máy khách Các thuật toán như RSA (Rivest–Shamir–Adleman), DSA (Digital Signature Algorithm), và ECDSA (Elliptic Curve Digital Signature Algorithm) được

sử dụng để đảm bảo:

● Xác thực danh tính: Máy khách nhận khóa công khai từ máy chủ và

chỉ máy chủ có khóa bí mật tương ứng mới có thể giải mã thông tin này

● Bảo vệ khỏi tấn công giả mạo: Mã hóa bất đối xứng bảo đảm rằng

chỉ có máy chủ hợp lệ mới được kết nối, ngăn ngừa các đối tượng xấu can thiệp hoặc mạo danh trong quá trình khởi tạo

Trang 10

1.2 Tạo và Sử dụng Khóa Phiên (Session Key)

Sau khi xác thực hoàn tất, SSH chuyển sang sử dụng mã hóa bất đối xứng để tạo

ra khóa phiên (session key), một khóa đối xứng riêng biệt cho mỗi phiên làm việc

và dùng để mã hóa toàn bộ dữ liệu trao đổi

● Bảo mật phiên: Khóa phiên là duy nhất và không tái sử dụng, giúp giảm

nguy cơ tấn công và bảo vệ an toàn tuyệt đối cho mỗi lần kết nối

● Hiệu suất cao: Mã hóa đối xứng nhanh hơn nhiều so với mã hóa bất đối

xứng, nên SSH chỉ dùng mã hóa bất đối xứng ban đầu để trao đổi khóa, sau

đó toàn bộ dữ liệu được mã hóa bằng khóa đối xứng để tối ưu hóa tốc độ

1.3 Mã hóa Dữ liệu trong Kênh SSH

Khi đã thiết lập khóa phiên, mọi dữ liệu được truyền qua kênh SSH đều sẽ mã hóa với thuật toán đối xứng như AES (Advanced Encryption Standard), Blowfish, hoặc ChaCha20

● Bảo mật nội dung: Dữ liệu được mã hóa ngay tại mỗi gói, đảm bảo không

bị lộ hoặc đọc trộm trên mạng

● Chống can thiệp dữ liệu: Kết hợp các thuật toán băm như SHA-256 để tạo

mã xác thực (MAC - Message Authentication Code) cho mỗi gói dữ liệu, ngăn chặn mọi hành vi chỉnh sửa hoặc giả mạo dữ liệu khi truyền

Trang 11

1.4 Kết hợp mã hóa Đối xứng và Bất đối xứng

SSH kết hợp hai loại mã hóa nhằm đạt được cả hiệu quả và bảo mật:

● Mã hóa bất đối xứng: Bảo đảm quá trình trao đổi khóa ban đầu được an

toàn và tránh tấn công MITM (Man-In-The-Middle)

● Mã hóa đối xứng: Cung cấp tốc độ cao khi mã hóa dữ liệu, đảm bảo dữ

liệu được bảo mật suốt quá trình truyền tải mà không ảnh hưởng đến hiệu suất

2 Xác thực người dùng

SSH triển khai các phương thức xác thực mạnh mẽ để đảm bảo chỉ các thực thể được phép mới có thể truy cập vào hệ thống từ xa Các phương pháp xác thực SSH bao gồm:

● Xác thực qua khóa công khai: Cơ chế này sử dụng cặp khóa công khai và

bí mật, trong đó máy khách giữ khóa bí mật còn khóa công khai lưu trên máy chủ từ xa Khi kết nối, máy chủ sẽ gửi một thử thách mà chỉ máy khách có khóa bí mật mới giải mã được, từ đó xác minh danh tính

● Xác thực bằng mật khẩu: SSH cũng hỗ trợ xác thực qua mật khẩu Người

dùng nhập mật khẩu để đăng nhập, tuy nhiên, phương thức này ít an toàn hơn do khả năng bị lộ hoặc bị đánh cắp mật khẩu

● Xác thực qua chứng chỉ hoặc 2FA: Các phương pháp này tăng cường bảo

mật bằng việc yêu cầu OTP hoặc chứng chỉ để xác thực, phù hợp với những

hệ thống đòi hỏi mức độ an toàn cao hơn

Nhờ các cơ chế xác thực này, SSH đảm bảo chỉ người dùng có quyền truy cập vào

hệ thống, tránh các truy cập trái phép

3 Bảo Toàn Tính Toàn Vẹn

SSH sử dụng mã xác thực thông điệp (MAC) để đảm bảo tính toàn vẹn của dữ liệu, ngăn chặn và phát hiện các hành vi sửa đổi trong quá trình truyền

● MAC (Message Authentication Code): Đây là giá trị băm được tạo từ nội

dung gói dữ liệu truyền đi Khi trao đổi, máy khách và máy chủ tính toán MAC và gửi cùng với dữ liệu

● Xác minh tính toàn vẹn: Bên nhận sẽ tính toán lại MAC và so sánh Nếu

không khớp, gói dữ liệu có thể đã bị thay đổi và sẽ bị loại bỏ

Trang 12

4 Truyền Tệp Tin Bảo Mật

SSH cung cấp các giao thức SCP và SFTP để truyền tệp giữa các máy từ xa an toàn

● SCP: Truyền tệp trực tiếp giữa hai máy qua kết nối SSH với dữ liệu được

mã hóa trong suốt quá trình truyền và xác thực bên nhận, giúp bảo vệ dữ liệu khỏi việc bị đọc trộm

● SFTP: Cung cấp tính năng quản lý tệp linh hoạt như duyệt thư mục, tạo,

xóa, và thay đổi quyền tệp từ xa Giao thức này mã hóa dữ liệu và đảm bảo tính toàn vẹn trong quá trình truyền tải

Nhờ SCP và SFTP, SSH đáp ứng nhu cầu truyền tệp an toàn, đặc biệt hữu ích trong môi trường doanh nghiệp và hệ thống nhạy cảm

5 Chuyển Tiếp Cổng và Tunneling

SSH hỗ trợ tunneling qua cơ chế chuyển tiếp cổng, giúp tạo các kênh kết nối an toàn cho nhiều mục đích khác nhau

● Chuyển tiếp cổng cục bộ: Cho phép máy khách truy cập vào tài nguyên

mạng nội bộ qua cổng SSH của máy chủ Ví dụ, máy khách từ xa có thể truy cập vào cơ sở dữ liệu nội bộ qua SSH

● Chuyển tiếp cổng từ xa: Cho phép dịch vụ trên máy khách được truy cập

từ xa qua máy chủ SSH, hữu ích khi cần truy cập tài nguyên của máy khách

từ mạng bên ngoài

● Chuyển tiếp cổng động: Thiết lập một proxy linh hoạt thông qua SOCKS,

cho phép lưu lượng từ nhiều ứng dụng qua kênh SSH

Trang 13

IV Thử các phương thức tấn công vào SSH

1 Tấn công dò mật khẩu (Brute-force attacks)

1.1 Mô tả tấn công:

Trong tấn công brute-force, kẻ tấn công thử nhiều tổ hợp mật khẩu khác nhau để truy cập vào máy chủ SSH Nếu mật khẩu đơn giản hoặc không an toàn, kẻ tấn công có thể đoán đúng và truy cập vào hệ thống

1.2 Thử nghiệm tấn công:

Chuẩn bị:

- Máy tấn công: Công cụ brute-force ( ví dụ Hydra), Danh sách mật khẩu phổ biến

- Máy nạn nhân: Có mở cổng ssh với mật khẩu yếu Thực hiện tấn công:

- Sử dụng Hydra với danh sách mật khẩu hiện có Phản hồi từ máy nạn nhân:

- Giới hạn đăng nhập thất bại: Kẻ tấn công sẽ thấy các thông báo như "Connection refused" hoặc "Too many authentication failures" trong Hydra

- Sử dụng xác thực bằng khóa công khai: Các thông báo từ Hydra sẽ hiển thị "No valid authentication method found" hoặc "Authentication failed" cho mọi lần thử mật khẩu

Kết luận:

SSH ngăn chặn tấn công brute-force hiệu quả bằng cách

từ chối các lần đăng nhập quá nhiều hoặc không cho phép xác thực bằng mật khẩu Điều này làm cho brute-force không thành công khi cấu hình bảo mật được thiết lập đúng cách

Trang 14

1.3 Cơ chế bảo vệ của SSH:

1.3.1 Xác thực bằng khóa công khai: SSH cung cấp phương thức

xác thực bằng khóa công khai thay vì chỉ dùng mật khẩu Với cách thức này, khi sử dụng cặp khóa riêng - khóa công khai, việc dò mật khẩu trở nên vô ích vì SSH không lưu mật khẩu mà thay vào đó sử dụng các khóa mã hóa phức tạp Cơ chế này loại

bỏ hoàn toàn khả năng thu thập thông tin nhạy cảm, đảm bảo an toàn kể cả trong trường hợp có nguy cơ bị tấn công

1.3.2 Giới hạn đăng nhập thất bại: Phần lớn cấu hình SSH đều thiết

lập giới hạn số lần đăng nhập thất bại, nếu vượt quá mức này,

IP sẽ bị khóa tạm thời hoặc chặn truy cập Điều này giúp giảm nguy cơ thành công của các cuộc tấn công brute-force và ngăn chặn việc dò mật khẩu liên tục

1.3.3 Firewall và hệ thống phát hiện xâm nhập: Các tường lửa và

hệ thống phát hiện xâm nhập (IDS/IPS) có khả năng nhận diện

và chặn đứng các yêu cầu brute-force vào cổng SSH, ngăn chặn những nỗ lực tấn công liên tục vào hệ thống

2 Tấn công trung gian (Man-in-the-Middle - MITM)

2.1 Mô tả tấn công:

Tấn công MITM xảy ra khi kẻ tấn công can thiệp vào kênh truyền thông giữa máy khách và máy chủ, cho phép chúng theo dõi hoặc thay đổi dữ liệu trong quá trình truyền

2.2 Thử nghiệm tấn công:

Chuẩn bị:

- Máy tấn công: Công cụ Ettercap, Wireshark

- Máy nạn nhân: Có mở cổng ssh

Điều kiện thực hiện:

- IP của máy nạn nhân và máy tấn công trong cùng mạng

Trang 15

Thực hiện tấn công:

- Ettercap với ARP spoofing giữa máy nạn nhân và máy chủ SSH

- Sử dụng Wireshark để theo dõi lưu lượng giữa hai máy này Lọc lưu lượng SSH trên cổng 22 và theo dõi dữ liệu truyền qua

Phản hồi từ máy nạn nhân:

- Khi kẻ tấn công chặn dữ liệu qua Wireshark hoặc Ettercap, chúng sẽ chỉ thấy các gói tin được mã hóa và không thể đọc được nội dung Wireshark sẽ hiển thị các gói tin SSH với nội dung bị mã hóa, không thể hiểu được thông tin bên trong

- Nếu kẻ tấn công cố gắng đóng giả máy chủ SSH, máy khách sẽ phát hiện sự thay đổi trong fingerprint và đưa ra cảnh báo rằng fingerprint của máy chủ đã thay đổi Khi người dùng thấy cảnh báo này, họ có thể từ chối kết nối, ngăn chặn cuộc tấn công MITM

Kết luận:

Nhờ mã hóa toàn bộ dữ liệu và xác thực fingerprint, SSH bảo vệ người dùng khỏi tấn công MITM, đảm bảo rằng

dữ liệu không thể đọc hoặc thay đổi bởi bên thứ ba

2.3 Cơ chế bảo vệ của SSH:

2.3.1 Mã hóa end-to-end: SSH áp dụng mã hóa cho toàn bộ quá trình

trao đổi giữa máy khách và máy chủ, giúp dữ liệu trở nên không thể đọc được đối với các bên thứ ba Phương thức mã hóa này đảm bảo an toàn cho nội dung truyền tải, bảo vệ khỏi các nguy cơ tấn công

2.3.2 Xác thực fingerprint của máy chủ: Khi lần đầu kết nối SSH

với máy chủ, người dùng sẽ lưu lại dấu vân tay của máy chủ đó Nếu dấu vân tay này thay đổi trong những lần kết nối tiếp theo,

hệ thống sẽ cảnh báo người dùng Đây là cách giúp phát hiện và ngăn chặn các cuộc tấn công MITM, đảm bảo tính hợp lệ của máy chủ

Ngày đăng: 14/02/2025, 15:35