• Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác như chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực c
Trang 1BÁO CÁO BÀI TẬP LỚN
AN TOÀN THÔNG TIN
Đề tài:
“Tìm Hiểu về SSH ”
GVHD : NGUYỄN VĂN HOÀNG
Sinh viên thực hiện : THC– 52
Nguyễn Thị NgaNguyễn Thị Phương Thảo
Trang 26 Các thuật toán được sử dụng trong SSH
7 Các loại tấn công mà SSH có thể cản được
8 Các mối đe dọa mà SSH không thể cản
Trang 31 Khái niệm về SSH
• SSH (tiếng anh :Secure Shell ) là một giao thức
mạng dùng để thiết lập kết nối mạng một cách bảo mật SSH hoạt động ở lớp trên trong mô hình phân lớp TCP/IP
• Các công cụ SSH (như là OpenSSH, PuTTy….)
cung cấp cho người dùng cách thức để thiết lập kết nối mạng được mã hóa để tạo một kênh kết nối
riêng tư Hơn nữa tính năng tunneling (hoặc còn gọi
là port forwarding) của các công cụ này cho phép chuyển tải các giao vận theo các giao thức khác
Trang 42 Lịch sử phát triển của SSH
• Năm 1995, Tatu Ylõnen, đã trình bày về SSH1 và giao thức SSH1
• Năm 1998, SCS phát hành sản phẩm phần mềm “SSH Secure Shell” (SSH2), dựa trên giao thức SSH-2
• Năm 2000, SCS mở rộng SSH2 bản quyền cho phép dùng miễn phí đối với Linux, NetBSD, FreeBSD và hệ điều hành OpenBSD
• Năm 2000, OpenSSH (http://www.openssh.com) được
dử dụng miễn phí có đăng kí OpenSH hỗ trợ cả
SSH-1 và SSH-2 trong một chương trình
Trang 53 Các đặc điểm của SSH
3.1 Tính bí mật (Privacy /Encryption)
3.2 Tính toàn vẹn (integrity)
3.3 Chứng minh xác thực (authentication)
3.4 Phân quyền (authorization)
3.5 Chuyển tiếp (forwarding) hoặc tạo đường hầm
(tunneling)
Trang 63.1 Tính bí mật (Privacy /Encryption)
• SSH cung cấp tính bí mật bằng việc mã hoá dữ liệu đi qua mạng Đó là việc mã hoá hai đầu dựa trên khoá ngẫu nhiên(-session key) (sinh ra để phục vụ cho một phiên kết nối và được huỷ đi khi phiên kết nối thành công)
• SSH hỗ trợ nhiều thuật toán mã hoá đối với phiên dữ liệu, đó là những thuật toán mã hoá chuẩn như: AES, ARCFOUR, Blowfish, Twofish, IDEA, DES và triple-DES (3DES)
Trang 73.2 Tính toàn vẹn (integrity)
• Để đảm bảo tính toàn vẹn dữ liệu, giao thức SSH
sử dụng phương pháp kiểm tra toàn vẹn mật mã Phương pháp này kiểm tra cả việc dữ liệu có bị biến đổi hay không và dữ liệu đến có đúng là do đầu kia gửi hay không Nó sử dụng thuật toán
băm khóa là MD5 và SHA-1
Trang 83.3 Chứng minh xác thực (authentication)
• Chứng minh xác thực là việc kiểm tra định danh của ai đó để xác định chính xác đúng là người đó hay không Mỗi kết nối SSH bao gồm hai việc xác thực: client kiểm tra định danh của SSH server
(server authentication) và server kiểm tra định
danh của người sử dụng yêu cầu truy cập (user
authentication).
• Mỗi định danh và truy cập của người sử dụng có thể được cung cấp theo nhiều cách khác nhau
Trang 9• Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác như chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khóa.
• Một SSH client và SSH server đàm phán với nhau
để xác định cơ chế xác thực sẽ sử dụng dựa trên cấu hình của chúng và một server thậm chí có thể yêu cầu nhiều kiểu xác thực
Trang 10• Việc phân quyền có tác dụng quyết định ai đó có thể hoặc không thể làm gì đó Nó diễn ra sau khi xác
thực, bởi vì bạn không thể trao quyền nào đó cho
một người mà bạn không biết họ là ai
• SSH server có nhiều cách khác nhau để giới hạn hành động của client
• Việc phân quyền có thể được điều khiển tại một mức server rộng (ví dụ: /etc/ssh/sshd_config file đối với OpenSH) hoặc theo tài khoản phụ thuộc vào phương thức xác thực sử dụng
3.4 Phân quyền (authorization)
Trang 113.5 Chuyển tiếp (forwarding) hoặc
tạo đường hầm (tunneling)
• Chuyển tiếp hoặc tạo đường hầm là đóng gói dịch vụ dựa trên TCP khác như là Telnet hoặc IMAP trong một phiên SSH mang lại hiệu quả bảo mật của SSH đến với các dịch vụ dựa trên TCP khác
• SSH hỗ trợ 3 kiểu chuyển tiếp sau :
Trang 12• + X forwarding là một hệ thống window phổ biến đối với các trạm làm việc Unix, một trong những đặc điểm của nó là tính trong suốt Sử dụng X bạn có thể chạy ứng dụng X từ xa để mở các cửa sổ của chúng trên
màn hình hiển thị cục bộ của bạn
• + Agent forwarding SSH client có thể làm việc với một SSH agent trên cùng một máy Sử dụng một đặc trưng gọi là agent forwarding, client cũng có thể liên lạc với các agent trên những máy từ xa Điều thuận lợi
là nó cho phép client trên nhiều máy làm việc với một agent và có thể tránh vấn đề liên quan đến tường lửa
Trang 13• + TCP port forwarding: SSH sử dụng TCP/IP làm cơ chế vận chuyển của nó, thường là cổng 22 trên máy chủ, vì nó mã hóa và giải mã lưu lượng truy cập qua kết nối Những ứng dụng khác sử dụng giao thức
TCP như telnet, SMTP, NNTP, IMAP và một số giao thức khác cũng có thể được hướng tới các port TCP khác dùng SSH Quá trình này được gọi là TCP port forwarding Port forwarding được gọi là đường hầm
vì kết nối SSH cung cấp một “đường hầm” xuyên qua
để cho các kết nối TCP khác có thể đi qua Tuy nhiên SSH Port forwarding chỉ hoạt động trên giao thức
TCP và không làm việc được trên các giao thức khác như UDP hay AppleTalk
Trang 144 Kiến trúc chung của một hệ thống SSH
Trang 15– Các loại khóa thành phần: User key, Host key, Server key, Session key, Key generator.
Trang 16• Known hosts database
Là một chồng host key Client và server dựa vào cơ
sở dữ liệu này để xác thực lẫn nhau
• Agent
Một chương trình lưu user key trong bộ nhớ Agent trả lời cho yêu cầu đối với khoá quan hệ hoạt động như là kí hiệu một giấy xác thực nhưng nó không tự phơi bày khoá của chúng Nó là một đặc điểm rất có ích
• Signer
Một chương trình kí hiệu gói chứng thực hostbased.
Trang 17• Random seed
Một dãy dữ liệu ngẫu nhiên đựoc dùng bởi các thành phần SSH để khởi chạy phần mềm sinh số ngẫu nhiên
• Configuration file
Một chồng thiết lập để biến đổi hành vi của một SSH client hoặc SSH server Không phải tất cả thành phần đều được đòi hỏi trong một bản bổ sung của SSH Dĩ nhiên những server, client và khoá là bắt buộc nhưng nhiều bản bổ sung không có agent và
thậm chí vài bản không có bộ sinh khoá
Trang 18đầy đủ.
• - Giao thức lớp vận chuyển SSH (SSH-TRANS)
- Giao thức xác thực SSH (SSH-AUTH)
- Giao thức kết nối SSH (SSH-CONN)
- Giao thức truyền file SSH (SSH-SFTP)
Trang 195.2 Tóm tắt cơ chế hoạt động của SSH-2
• Một phiên hoạt động của SSH-2 trải qua 4
bước chủ yếu như sau:
– Thiết lập kết nối ban đầu (SSH-TRANS)– Tiến hành xác thực lẫn nhau (SSH-AUTH)– Mở phiên kết nối để thực hiện các dịch vụ (SSH-CONN)
– Chạy các dịch vụ ứng dụng SSH ( có thể là SSH-SFTP)
Trang 206 Các thuật toán được sử dụng trong SSH
• Những thuật toán khóa công khai :
– Rivest-Shamir-Adleman (RSA)
– Thuật toán chữ ký số (DSA)
– Thuật toán thoả thuận khoá Diffie-Hellman
• Những thuật toán khoá bí mật
– Thuật toán mã hoá dữ liệu bí mật quốc tế (IDEA)– Chuẩn mã hoá tiên tiến (AES)
– Chuẩn mã hoá dữ liệu (DES)
– Trible-DES (3DES)
Trang 21• Những thuật toán khoá bí mật (tiếp)
Trang 227 Các loại tấn công mà SSH có thể cản được
7.1 Eavesdropping
Một eavesdropper là một người rình mò trên mạng, có thể biết được giao thông mạng mà không làm ảnh hưởng đến đường truyền Hình thức mã hóa của SSH chống lại eavesdropping
7.2 Dịch vụ đặt tên và giả mạo IP
Nếu một kẻ tấn công phá hoại dịch vụ đặt tên (DNS, NIS, …), các chương trình liên quan đến mạng có thể bị ép buộc kết nối đến máy tính khác Cũng tương tự, một kẻ tấn công có thể giả mạo một host bằng cách đánh cắp địa chỉ IP đang dùng Trong các trường hợp khác, bạn cũng sẽ gặp rắc rối: các chương trình trên máy khách có thể kết nối sai đến máy chủ, đánh cắp mật khẩu mà bạn cung cấp Trình bảo vệ SSH chống lại kiểu tấn công này bằng cách kiểm tra mã hóa và nhận dạng máy chủ
Trang 237.3 Chiếm đoạt kết nối
Một kẻ tấn công lanh lợi không chỉ có thể theo dõi được giao thông mạng, mà còn có thể xen vào, chiếm đoạt một kết nối
TCP Đây là các tai hại rõ ràng, dù cho phương thức xác nhận của bạn có tốt như thế nào đi nữa, kẻ tấn công có thể đơn giản là đợi cho đến khi bạn đăng nhập, sau đó đánh cắp kết nối và chèn các lệnh bất chính của hắn vào trong session của bạn SSH
không thể chống lại kiểu chiếm quyền điều khiển này, từ đó trở
đi đây trở thành điểm yếu trong TCP hoạt động bên dưới SSH Tuy nhiên, SSH đáp trả không hiệu quả (trừ kiểu tấn công từ
chối dịch vụ) Trình kiểm tra tính toàn vẹn của SSH phát hiện một session có bị sửa đổi hay không, và ngắt kết nối ngay lập tức mà không sử dụng bất kỳ dữ liệu bị sửa đổi nào
Trang 247.4 Tấn công Man-in-the-Middle
Đây là kiểu tấn công mà có một người thứ ba xen vào giữa, là kiểu tấn công chủ động đặc biệt không dễ bị phát hiện
Tuy nhiên SSH có đủ khả năng để chống lại kiểu tấn công này
Trang 258 Các mối đe dọa mà SSH không thể cản
• Phá mật khẩu
SSH cải tiến quá trình an toàn mật khẩu bằng cách mã hóa nó khi truyền qua mạng Tuy nhiên, mật khẩu vẫn là điểm yếu của quá trình xác thực, bạn phải cẩn thận với điều này Bạn phải chọn một mật khẩu an toàn, dễ nhớ đối với bạn nhưng lại khó đoán với người khác Bạn phải tránh bị đánh cắp mật
khẩu, tốt nhất là chỉ một mình bạn biết cách truy cập vào tài khoản của mình.
Trang 26• IP và các kiểu tấn công TCP
SSH hoạt động trên nền TCP, vì vậy nó dễ trở thành
điểm yếu để tấn công vào TCP và IP Các đảm bảo về tính riêng tư, tính toàn vẹn, và tính xác thực của SSH sẽ hạn chế rủi ro đối với các cuộc tấn công từ chối dịch vụ
TCP/IP chịu được các sự cố mạng như là sự tắc nghẽn và hỏng các liên kết Nếu kẻ thù tấn công vào
một Router, IP có thể định tuyến xung quanh nó Tuy nhiên, nó không được thiết kế để chống lại các gói dữ liệu ảo mà kẻ thù đưa vào trong mạng TCP IP điều
khiển các thông báo không được xác thực Và trong kết quả trả về, TCP/IP có 1 số các điểm yếu cố hữu có thể
khai thác được, như là :
Trang 27o SYN flood
o TCP RST, ICMP không thật
o TCP bất đồng bộ và chiếm quyền
o Phân tích đường truyền
o Convert Channels (kênh biến đổi)
o Sự cẩu thả của người dùng
Trang 28TÀI LIỆU THAM KHẢO
mat/66513_Bao-ve-ket-noi-Internet-thong-qua-SSH.aspx