Nếu không có SSH, họ sẽ phải lo ngại việcthô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
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
Đề tài: Tìm hiểu về giao thức bảo mật SSH
Môn học: Cơ sở an toàn thông tin
Nhóm BTL: SSH Nguyễn Thiên Thịnh B22DCCN835
Trang 2Lời cảm ơn
Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn sâu sắc đến thầy Đỗ XuânChợ Trong suốt quá trình học tập và nghiên cứu môn An toàn bảo mật hệ thốngthông tin, chúng em đã nhận được sự quan tâm, hỗ trợ và hướng dẫn tận tình củathầy Nhờ đó, chúng em đã tích lũy được nhiều kiến thức quý báu để hoàn thành bàitiểu luận với đề tài: "Tìm hiểu về giao thức bảo mật SSH."
Trong quá trình thực hiện bài tiểu luận, chúng em biết sẽ khó tránh khỏinhững thiếu sót Em mong nhận được những góp ý từ thầy để bài làm của chúng emngày càng hoàn thiện hơn
Nhóm chúng em xin chân thành cảm ơn!
2
Trang 32.1 Lớp Truyền Tải (Transport Layer) 92.3 Lớp Kết Nối (Connection Layer) 92.2 Lớp Xác Thực (Authentication Layer) 10III Tại sao SSH lại an toàn? 10
1 Bảo mật Dữ liệu trong Giao thức SSH 111.1 Mã hóa Bất đối xứng trong Khởi tạo Kết nối 111.2 Tạo và Sử dụng Khóa Phiên (Session Key) 121.3 Mã hóa Dữ liệu trong Kênh SSH 121.4 Kết hợp mã hóa Đối xứng và Bất đối xứng 12
3 Bảo Toàn Tính Toàn Vẹn 13
4 Truyền Tệp Tin Bảo Mật 13
5 Chuyển Tiếp Cổng và Tunneling 14
IV Thử các phương thức tấn công vào SSH 14
1 Tấn công dò mật khẩu (Brute-force attacks) 14
1.2 Thử nghiệm tấn công: 14
Trang 41.3 Cơ chế bảo vệ của SSH: 16
2 Tấn công trung gian (Man-in-the-Middle - MITM) 17
2.2 Thử nghiệm tấn công: 172.3 Cơ chế bảo vệ của SSH: 18
V SSH và tiêu chuẩn Zero Trust 19
1 Xác Thực Mạnh Mẽ (Strong Authentication) 19
2 Kiểm Soát Truy Cập Theo Chính Sách (Policy-Based Access Control) 19
3 Giám Sát và Đăng Nhập Mọi Hoạt Động (Monitoring and Logging) 19
4 Bảo Mật Dữ Liệu Trong Quá Trình Truyền Tải (Data Protection in Transit) 19
5 Kiểm Soát Thiết Bị (Device Control) 20
VI Tiêu chuẩn an toàn thông tin Việt Nam liên quan đến SSH 20
1 TCVN ISO/IEC 27001:2019 - Hệ thống Quản lý An toàn Thông tin 20
2 TCVN 11930:2017 - An toàn Công nghệ Thông tin: Các kỹ thuật kiểm soát và
3 TCVN 8628:2010 - Công nghệ thông tin - Các kỹ thuật bảo mật - Tiêu chuẩn
4
Trang 5I Giới thiệu
Trước sự phức tạp và gia tăng thử thách trong lĩnh vực an ninh mạng, việcđảm bảo dữ liệu được bảo vệ và duy trì an toàn trong giao tiếp giữa các hệ thống đãtrở thành nhiệm vụ trọng yếu của các tổ chức và doanh nghiệp Sự tiến bộ vượt bậccủa công nghệ số cũng kéo theo nhiều nguy cơ tấn công mạng, đặc biệt là nhắm vàocác phương thức kết nối từ xa – một điểm nhắm hấp dẫn đối với tin tặc Để đối phóhiệu quả với những rủi ro tiềm ẩn này, các giải pháp bảo mật như Secure Shell(SSH) đã trở thành thành phần thiết yếu trong hạ tầng an ninh mạng hiện đại, đảmbảo an toàn và duy trì tính toàn vẹn cho thông tin
1 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 antoà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 đầuvà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áychủ 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ệcthô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ênngườ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ậpbả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ọngcủa công ty
Qua đó, bài viết sẽ cung cấp cái nhìn sâu rộng về cách SSH góp phần bảo vệ hệthống thông tin của các tổ chức trước những mối đe dọa mạng ngày càng tinh vi,
Trang 6khẳng định tầm quan trọng của SSH trong việc xây dựng một môi trường mạng
an toàn và tin cậy
6
Trang 7cả lệnh và truy vấn từ người dùng đều được thực thi trên lớp này.
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ềuthuật toán mã hóa như AES, ChaCha20, và các hàm băm như SHA-2, MD5
Trang 8để 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úpngă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ậpmộ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ínhxác thực cao
8
Trang 92 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ệ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ữamá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áchchia chúng thành các kênh riêng biệt Mỗi kênh hoạt động độclập, cho phép chuyển dữ liệu song song mà không làm ảnhhưở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 qualớ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 10m 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àngthông qua khóa công khai Điều này giúp phát hiện sự giả mạonếu một kẻ tấn công cố gắng đóng vai trò máy chủ trong kếtnố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ácphiê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 truycập vào hệ thống:
● 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ườidù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ị đánhcắ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
10
Trang 11III 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áykhá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ănchặ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àncao là nhờ vào việc sử dụng các cơ chế mã hóa dữ liệu Dưới đây là nhữngyếu tố quan trọng giúp SSH bảo vệ an toàn dữ liệu trong suốt quá trình kếtnố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ácthuật toán như RSA (Rivest–Shamir–Adleman), DSA (Digital SignatureAlgorithm), 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 tinnà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ấucan thiệp hoặc mạo danh trong quá trình khởi tạo
Trang 121.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ênlà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ếtnố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 đổikhó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ỗigó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 khitruyền
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:
12
Trang 13● 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ựcthể được phép mới có thể truy cập vào hệ thống từ xa Các phương pháp xácthự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ôngkhai 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ácminh 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 truycậ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ẹncủa dữ liệu, ngăn chặn và phát hiện các hành vi sửa đổi trong quá trìnhtruyề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 144 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úpbả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 íchtrong 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ênhkế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ủamá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
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ẩukhác nhau để truy cập vào máy chủ SSH Nếu mật khẩu đơn giản hoặckhông an toàn, kẻ tấn công có thể đoán đúng và truy cập vào hệ thống
14
Trang 15- 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 methodfound" hoặc "Authentication failed" cho mọi lần thử mậtkhẩu
Trang 16Kết luận:
SSH sử dụng khóa công khai giúp ngăn chặn tấn côngbrute-force hiệu quả Ngoài ra 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ựcbằng mật khẩu nó sẽ khiến cho brute-force không thànhcông khi cấu hình bảo mật được thiết lập đúng cách
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ớicá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àyloại bỏ hoàn toàn khả năng thu thập thông tin nhạy cảm, đảmbả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ảmnguy cơ thành công của các cuộc tấn công brute-force và ngănchặn việc dò mật khẩu liên tục
16
Trang 171.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ănchặ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ềnthô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ạngThực hiện tấn công:
- Ettercap với ARP spoofing giữa máy nạn nhân và máychủ SSH
- Sử dụng Wireshark để theo dõi lưu lượng giữa hai máynày Lọc lưu lượng SSH trên cổng 22 và theo dõi dữ liệutruyề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ặcEttercap, 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ácgó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áykhá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ếtnối, ngăn chặn cuộc tấn công MITM
Trang 18Kế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ảorằ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ênkhô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ỏicá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ếptheo, hệ thống sẽ cảnh báo người dùng Đây là cách giúp pháthiệ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ủ
2.3.3 HMAC (Hash-based Message Authentication Code): SSH sử
dụng HMAC để kiểm tra tính toàn vẹn của dữ liệu truyền tải,ngăn ngừa tình trạng dữ liệu bị thay đổi hoặc thêm vào tráiphép Mọi chỉnh sửa từ phía kẻ tấn công sẽ được phát hiệnngay trong quá trình truyền
18