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

đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh

35 17 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 Secure Shell (SSH)
Tác giả Võ Duy Khang, Phạm Trung Tín, Ngô Trí Trường, Lê Văn Thắng
Người hướng dẫn Ths Đặng Văn Thành Nhân
Trường học Trường Đại học Công nghệ TP. HCM
Chuyên ngành Bảo mật thông tin
Thể loại Đồ án môn học
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 35
Dung lượng 6,91 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU VỀ SSH (6)
    • 1.1 Giao thức SSH là gì ? (6)
      • 1.1.1. Khái niệm (6)
      • 1.1.2. Cơ chế hoạt động (6)
      • 1.1.3. Chức năng chính (7)
    • 1.2 Lịch sử phát triển các phiên bản SSH (8)
      • 1.2.1. Phiên bản 1 (8)
      • 1.2.2. Phiên bản 2 (8)
      • 1.2.3. Phiên bản 1.99 (8)
      • 1.2.4. OpenSSH và OSSH (9)
  • CHƯƠNG 2. KIẾN TRÚC VÀ THUẬT TOÁN (10)
    • 2.1 Các kỹ thuật mã hóa (10)
      • 2.1.1. Mã hóa Symmetric Encryption (10)
      • 2.1.2. Mã hóa Asymmetric Encryption (10)
      • 2.1.3. Mã hóa Hashing (11)
    • 2.2. Sơ lược (11)
      • 2.2.1. Xác thực bằng mật khẩu (11)
      • 2.2.2. Xác thực bằng public key (11)
    • 2.3. Kiến trúc (12)
      • 2.3.1. The transport layer (Lớp truyền tải) (13)
      • 2.3.2. The user authentication layer (Lớp xác thực người dùng) (13)
      • 2.3.3. The connection layer (Lớp kết nối) (14)
    • 2.4. RSA (14)
      • 2.4.1. Thuật toán RSA là gì? (14)
      • 2.4.2. RSA được sử dụng ở đâu? (15)
      • 2.4.3. RSA được sử dụng như thế nào? (16)
      • 2.4.4. Áp dụng RSA với SSH (18)
  • CHƯƠNG 3. ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ LỖ HỔNG (23)
    • 3.1. Ưu điểm của giao thức SSH (23)
    • 3.2. Nhược điểm của giao thức SSH (23)
    • 3.3. Một số lỗ hổng (24)
      • 3.3.1. SSH-1 (24)
      • 3.3.2. CBC plaintext recovery (24)
      • 3.3.3. Suspected decryption by NSA (24)
  • CHƯƠNG 4. DEMO (25)
  • CHƯƠNG 5. TỔNG KẾT (34)
  • TÀI LIỆU THAM KHẢO (35)

Nội dung

Trong thực tế, người ta còn sử dụng SSH để phát triển tunnel bảo mật cho các giao thức ứng dụng.. Xác thực bằng public key Cách này sử dụng một cặp khóa – public-key và private-key – đư

GIỚI THIỆU VỀ SSH

Giao thức SSH là gì ?

Giao thức Secure Shell ( SSH ) là một giao thức mạng mật mã để vận hành các dịch vụ mạng một cách an toàn qua một mạng không an toàn Các ứng dụng đáng chú ý nhất của nó là đăng nhập từ xa và thực thi dòng lệnh

SSH tạo ra cơ chế xác thực qua mật khẩu mạnh, hình thành mối liên kết giao tiếp dữ liệu mã hóa ra giữa hai máy qua môi trường internet Ngày nay giao thức SSH được giấy quản trị mạng sử dụng phổ biến trong quá trình quản lý, điều chỉnh ứng dụng từ xa Nó cho phép vị tự đăng nhập vào mạng máy tính và thực hiện một số tác vụ cơ bản như dịch chuyển file

SSH gồm cả giao thức mạng và bộ tiện ích cơ bản để triển khai chính giao thức đó Cụ thể, SSH ứng dụng ảnh mô hình client-server, kết nối với vùng hiển thị Session và vùng Session chạy

5 Hình 1 2 Cơ chế hoạt động

Khi triển khai SSH hệ thống sẽ hỗ trợ cả giao thức ứng dụng, sử dụng cho trình giả lập Terminal hoặc truyền file Trong thực tế, người ta còn sử dụng SSH để phát triển tunnel bảo mật cho các giao thức ứng dụng

Mục đích SSH được tạo ra là để thay thế cho trình giả lập Terminal, cơ chế đăng nhập không an toàn (Telnet, Rlogin) Giao thức SSH hỗ trợ tính năng đăng nhập, khởi chạy Terminal Session thông qua hệ thống điều khiển từ xa

Chức năng cơ bản nhất của giao thức SSH là liên kết với một host từ xa, ứng với một phiên Terminal bằng dòng lệnh “ssh server.example.org” Dòng lệnh này có thể liên kết Client với một máy chủ server.example.com thông qua

Giao thức đảm nhiệm khá nhiều chức năng trong hệ thống điều khiển, liên kết máy chủ Các chức năng cơ bản phải kể đến như:

 Hỗ trợ truy cập từ xa vào những hệ thống, thiết bị ứng dụng giao thức SSH

 Cho phép dịch chuyển file an toàn

 Thực thi lệnh bảo mật, an toàn trên hệ thống điều khiển từ xa

 Quản lý an toàn và hiệu quả thành phần hạ tầng mạng

SSH có thể kết hợp với Terminal Session thay thế cho những chương trình Telnet có tính bảo mật thấp.

Lịch sử phát triển các phiên bản SSH

Năm 1995, Tatu Ylửnen, một nhà nghiờn cứu tại Đại học Cụng nghệ Helsinki, Phần Lan, đã thiết kế phiên bản đầu tiên của giao thức (nay được gọi là SSH-1) được thúc đẩy bởi một cuộc tấn công đánh hơi mật khẩu tại mạng trường đại học của ông Mục tiêu của SSH là thay thế các giao thức rlogin, TELNET, FTP và rsh trước đó, không cung cấp khả năng xác thực mạnh cũng như không đảm bảo tớnh bảo mật Ylửnen đó phỏt hành bản triển khai của mỡnh dưới dạng phần mềm miễn phívào tháng 7 năm 1995, và công cụ này nhanh chóng trở nên phổ biến Đến cuối năm 1995, cơ sở người dùng SSH đã tăng lên 20.000 người dùng ở năm mươi quốc gia

Vào thỏng 12 năm 1995, Ylửnen thành lập SSH Communications Security để tiếp thị và phát triển SSH Phiên bản gốc của phần mềm SSH sử dụng nhiều phần mềm miễn phí khác nhau, chẳng hạn như GNU libgmp, nhưng các phiên bản sau do SSH Communications Security phát hành ngày càng phát triển thành phần mềm độc quyền

Người ta ước tính rằng đến năm 2000, số lượng người dùng đã tăng lên 2 triệu người

"Secsh" là tên chính thức của Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) cho nhóm công tác IETF chịu trách nhiệm về phiên bản 2 của giao thức SSH Năm 2006, một phiên bản sửa đổi của giao thức, SSH 2, đã được thông qua - làm tiêu chuẩn Phiên bản này không tương thích với SSH-1 SSH-2 có cả tính năng bảo mật và cải tiến tính năng so với SSH 1 Ví dụ, bảo mật tốt hơn thông - qua trao đổi khóa Diffie – Hellman và kiểm tra tính toàn vẹn mạnh mẽ thông qua mã xác thực tin nhắn Các tính năng mới của SSH 2 bao gồm khả năng chạy bất - kỳ số lượng phiên trình bao nào qua một kết nối SSH duy nhất Do tính ưu việt và phổ biến của SSH 2 so với SSH 1, một số triển khai như libssh (v0.8.0 +), Lsh - - và Dropbear chỉ hỗ trợ giao thức SSH-2

Vào tháng 1 năm 2006, ngay sau khi phiên bản 2.1 được thành lập, RFC

4253 chỉ định rằng máy chủ SSH hỗ trợ 2.0 cũng như các phiên bản trước phải

7 xác định phiên bản giao thức của nó là 1.99 Số phiên bản này không phản ánh bản sửa đổi phần mềm lịch sử mà là một phương pháp để xác định khả năng tương thích ngược

Năm 1999, các nhà phát triển, mong muốn có một phiên bản phần mềm miễn phí, đã khởi động lại quá trình phát triển phần mềm từ bản phát hành 1.2.12 của chương trình SSH gốc, chương trình được phát hành cuối cùng theo giấy phộp nguồn mở Đõy là cơ sở mó cho phần mềm OSSH của Bjửrn Grửnvall Ngay sau đú, cỏc nhà phỏt triển OpenBSD đó tỏch mó của Grửnvall và tạo ra OpenSSH, được xuất xưởng với Bản phát hành 2.6 của OpenBSD Từ phiên bản này, một nhánh "tính di động" đã được hình thành để chuyển OpenSSH sang các hệ điều hành khác

Tính đến năm 2005, OpenSSH là cách triển khai SSH phổ biến nhất, là phiên bản mặc định trong một số lượng lớn các bản phân phối hệ điều hành OSSH trong khi đó đã trở nên lỗi thời OpenSSH tiếp tục được duy trì và hỗ trợ giao thức SSH 2, sau khi xóa hỗ trợ SSH 1 khỏi cơ sở mã trong bản phát hành - -OpenSSH 7.6

KIẾN TRÚC VÀ THUẬT TOÁN

Các kỹ thuật mã hóa

Là một dạng mã hóa sử dụng secret key (chìa khóa bí mật) ở cả 2 chiều mã hóa và giải mã tin nhắn bởi cả host và client Quá trình tạo symmetric key được thực hiện bởi key exchange algorithm Khi thực hiện kỹ thuật này, chỉ những người có chìa khóa (mật khẩu) mới có thể giả mã tin nhắn trong quá trình chuyển

Hình 2 1 Mô hình hệ mã hóa đối xứng 2.1.2 Mã hóa Asymmetric Encryption

Khác với Symmetric Encryption, phương thức Asymmetric Encryption lại dùng 2 khóa riêng biệt để phục vụ mã hóa và giải mã Bao gồm khóa công khai Public Key và khóa riêng tư Private Key, hình thành cặp khóa Public-private key pair

Public key luôn công khai, Private key luôn được giữ tuyệt mật và không chia sẽ với bất kỳ bên thứ ba nào Vậy nhưng cũng cần lưu ý rằng Asymmetric Encryption không thể mã hóa tất cả SSH Nó chỉ có thể sử dụng khi trao đổi thuật toán khóa Trước thời điểm bắt đầu một phiên, phía 2 đầu trao đổi cần đồng ý khởi tạo cặp khóa Public – Private trong ngắn hạn Đồng thời, chia sẻ Private Key để tạo ra một Secret Key chung

Hashing một chiều là phương thức mã hóa ứng dụng phổ biến trong Secure Shell Connection Khác với Symmetric Encryption và Asymmetric Encryption, Hashing không sử dụng vào mục đích giải mã Chúng hình thành sau mỗi lần nhập liệu, không thể khai thác Như vậy, Hashing sẽ không thể quay lại để giải mã.

Sơ lược

SSH có nhiều cách để xác thực một người dùng, nhưng hai cách thông dụng nhất vẫn là xác thực dựa trên mật khẩu và xác thực public-key

2.2.1 Xác thực bằng mật khẩu

Xác thực dựa trên mật khẩu đơn giản là bạn chỉ việc sử dụng mật khẩu của user bạn tạo để truy cập, server sẽ lưu chúng, và đối chiếu với mật khẩu của bạn khi đăng nhập Cách này thì không đủ an toàn do bạn có khả năng bị đánh cắp mật khẩu

2.2.2 Xác thực bằng public key

Cách này sử dụng một cặp khóa – public-key và private-key – được tạo ra dựa trên thuật toán mã hóa public key Cặp khóa sau khi được tạo ra từ một máy - tính, ta sẽ lấy public key lưu vào server, khi truy cập ta sẽ dựa vào private- -key lưu trên máy local và đặc tính liên quan mật thiết tới nhau của chúng để thiết lập kết nối Kiểu xác thực này còn cho cho phép chúng ta thiết lập một kết nối an toàn một cách tự động hóa (automation)

Hình 2 2 Mô hình Client - Server

Kiến trúc

Giao thức SSH có kiến trúc phân lớp với ba thành phần riêng biệt:

 The transport layer (Lớp truyền tải)

 The user authentication layer (Lớp xác thực người dùng)

 The connection layer (Lớp kết nối)

11 2.3.1 The transport layer (Lớp truyền tải)

Thường sử dụng Giao thức điều khiển truyền (TCP) của TCP / IP , dành riêng cổng số 22 làm cổng lắng nghe máy chủ Lớp này xử lý trao đổi khóa ban đầu cũng như xác thực máy chủ và thiết lập mã hóa, nén và xác minh tính toàn vẹn Nó hiển thị cho lớp trên một giao diện để gửi và nhận các gói tin rõ ràng với kích thước mỗi gói lên đến 32,768 byte, nhưng mỗi lần triển khai có thể cho phép nhiều hơn Lớp truyền tải cũng sắp xếp để trao đổi lại khóa, thường là sau khi 1

GB dữ liệu đã được chuyển hoặc sau một giờ trôi qua, tùy điều kiện nào xảy ra trước

2.3.2 The user authentication layer (Lớp xác thực người dùng)

Xử lý xác thực máy khách và cung cấp một bộ thuật toán xác thực Xác thực hướng đến máy khách : khi một người được nhắc nhập mật khẩu, đó có thể là máy khách SSH, không phải máy chủ Máy chủ chỉ phản hồi các yêu cầu xác thực của máy khách Các phương pháp xác thực người dùng được sử dụng rộng rãi bao gồm:

 Mật khẩu: một phương pháp xác thực mật khẩu đơn giản, bao gồm một cơ sở cho phép thay đổi mật khẩu Không phải tất cả các chương trình đều thực hiện phương pháp này

 Khóa công khai: một phương pháp xác thực dựa trên khóa công khai , thường hỗ trợ ít nhất các cặp khóa DSA , ECDSA hoặc RSA , với các triển khai khác cũng hỗ trợ chứng chỉ X.509

 keyboard-interactive (Tương tác bàn phím): một phương pháp linh hoạt trong đó máy chủ gửi một hoặc nhiều lời nhắc để nhập thông tin và máy khách hiển thị chúng và gửi lại phản hồi do người dùng nhập vào Được sử dụng để cung cấp xác thực mật khẩu một lần như S / Key hoặc SecurID Được sử dụng bởi một số cấu hình OpenSSH khi PAM là nhà cung cấp xác thực máy chủ lưu trữ cơ bản để cung cấp hiệu quả xác thực mật khẩu, đôi khi dẫn đến việc không thể đăng nhập bằng máy khách chỉ hỗ trợ phương pháp xác thực mật khẩu thuần túy

 Các phương pháp xác thực GSSAPI cung cấp một lược đồ có thể mở rộng để thực hiện xác thực SSH bằng các cơ chế bên ngoài như Kerberos 5 hoặc NTLM , cung cấp khả năng đăng nhập một lần vào các

12 phiên SSH Các phương pháp này thường được triển khai bởi các triển khai SSH thương mại để sử dụng trong các tổ chức, mặc dù OpenSSH có triển khai GSSAPI đang hoạt động

2.3.3 The connection layer (Lớp kết nối)

Xác định khái niệm kênh, yêu cầu kênh và yêu cầu chung, xác định các dịch vụ SSH được cung cấp Một kết nối SSH duy nhất có thể được ghép thành nhiều kênh logic đồng thời, mỗi kênh truyền dữ liệu theo hai chiều Yêu cầu kênh được sử dụng để chuyển tiếp dữ liệu kênh cụ thể ngoài băng tần, chẳng hạn như kích thước đã thay đổi của cửa sổ đầu cuối hoặc mã thoát của quy trình phía máy chủ Ngoài ra, mỗi kênh thực hiện điều khiển luồng riêng của mình bằng cách sử dụng kích thước cửa sổ nhận Máy khách SSH yêu cầu chuyển tiếp cổng phía máy chủ bằng cách sử dụng một yêu cầu chung Các loại kênh tiêu chuẩn bao gồm:

 Shell cho các shell đầu cuối, SFTP và các yêu cầu thực thi (bao gồm cả chuyển SCP)

 Direct-tcpip cho các kết nối được chuyển tiếp từ máy khách đến máy chủ

 Chuyển tiếp tcpip cho các kết nối được chuyển tiếp từ máy chủ đến - máy khách

 Bản ghi DNS SSHFP (RFC 4255) cung cấp dấu vân tay khóa máy chủ công khai để hỗ trợ xác minh tính xác thực của máy chủ.

RSA

2.4.1 Thuật toán RSA là gì?

RSA là một hệ mã hóa bất đối xứng được phát triển bởi Ron Rivest, Adi Shamir và Leonard Adleman (tên của nó cũng chính là tên viết tắt của 3 tác giả này) và được sử dụng rộng rãi trong công tác mã hoá và công nghệ chữ ký điện tử Trong hệ mã hóa này, public key có thể chia sẻ công khai cho tất cả mọi người

Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ key, mã hóa và gi i mã ả

2.4.2 RSA được sử dụng ở đâu?

Mã hóa RSA thường được sử dụng kết hợp với các sơ đồ mã hóa khác Và cho các chữ ký kỹ thuật số có thể chứng minh tính xác thực và tính toàn vẹn của một thông điệp Nó thường không được sử dụng để mã hóa toàn bộ thư và file vì nó kém hiệu quả và tốn tài nguyên hơn so với mã hóa key đối xứng Để làm cho mọi thứ hiệu quả hơn, một file thường sẽ được mã hóa bằng thuật toán key đối xứng Sau đó key đối xứng sẽ được mã hóa bằng mã hóa RSA Theo quy trình này, chỉ người có quyền được truy cập vào RSA private key mới có thể giải mã key đối xứng

Nếu không thể truy cập key đối xứng, thì không thể giải mã file gốc Phương pháp này có thể được sử dụng để bảo mật các thư và file mà không mất nhiều thời gian và tài nguyên

Mã hóa RSA có thể được sử dụng trong một số hệ thống khác nhau Nó có thể vận hành trong OpenSSL, wolfCrypt, cryptlib và một số thư viện mật mã khác

2.4.3 RSA được sử dụng như thế nào?

Thuật toán RSA bao gồm 4 bước: T o khóa, phân kh i khóa, mã hóa và ạ ố gi i mã ả

Một nguyên tắc cơ bản đằng sau RSA là quan sát thấy rằng thực tế để tìm ba số nguyên dương rất lớn e , d và n, sao cho với lũy thừa mô-đuncho tất cả các số nguyên m (với 0 ≤ m< n ):

(m e ) m (mod n) d ≡ và biết rằng e và n, hoặc thậm chí , có thể cực kỳ khó khăn để tìm m ra d Thanh ba (≡) ở đây biểu thịsự đồng dạng mô-đun (có nghĩa là khi bạn chia (m ) e d cho và n mcho n, cả hai đều có cùng phần dư).

Ngoài ra, đối với một số phép toán, thuận tiện là thứ tự của hai lũy thừa có thể được thay đổi và mối quan hệ này cũng ngụ ý

RSA liên quan đếnkhóa công khai và khóa riêng tư Khóa công khai có thể được mọi người biết đến và được sử dụng để mã hóa tin nhắn Mục đích là các thư được mã hóa bằng khóa công khai chỉ có thể được giải mã trong một khoảng thời gian hợp lý bằng cách sử dụng khóa riêng Khóa công khai được biểu diễn bằng số nguyên và n e, và khóa riêng bằng số nguyên d(mặc dù ncũng được sử dụng trong quá trình giải mã, vì vậy nó cũng có thể được coi là một phần của khóa riêng) mđại diện cho thông điệp (được chuẩn bị trước đó với một kỹ thuật nhất định được giải thích bên dưới)

Các khóa cho thuật toán RSA được tạo theo cách sau:

 Để làm cho việc phân tích khó hơn, p và q nên được chọn ngẫu nhiên, có độ ớn tương tự nhau, nhưng khác nhau về l độ dài

 Các s nguyên nguyên t có thố ố ể được tìm th y m t cách hi u qu ấ ộ ệ ả b ng cách s d ng ki m tra tính nguyên th y ằ ử ụ ể ủ

 P và q nên được giữ bí mật

 N được sử dụng làm môđun cho cả khóa công khai và khóa riêng Độ dài của nó, thường được biểu thị bằng bit, là độ dài khóa

 N được phát hành như một phần c a khóa công khai ủ

3.Ta đã biết φ(N) = (p -1)(q - 1), và có thể dùng định lý Trung Hoa để gi m b t tính toán ả ớ

4 Chọn m t s t nhiên sao cho ộ ố ự e 1 < e < φ(n) và là s nguyên t cùng ố ố nhau với φ(n)

5 Tính d sao cho de = 1 (mod φ(n))

 Các s nguyên t ố ố thường được chọn bằng phương pháp thử xác su ất.

 Các bước 4 và 5 có thể thực hiển bằng giải thuật Euclid mở rộng

 Bước 5 có cách viết khác sao cho d = cũng là số ự t nhiên, khi đó sử dụng giá trị d mod (p - 1)(q - 1)

Giả sử người A muốn gửi đoạn thông tin M cho người B Đầu tiên A chuyển M thành một số m < n theo một hàm có thể đạo ngược (từ m có thể xác định lại M) được thỏa thuận trước

Lúc này người A có m và n cũng như e do B gửi A sẽ tính c là bản mã hóa của m theo công thức:

Người B nhận c từ A và biết khóa bí mật d B có thể tìm được m từ c theo công thức sau: m = c mod n d

Biết m, B tìm lạ M theo phương pháp đã thỏa thuận trước Quá trình giải mã vì ta có: c d ≡ (m e ) d m≡ ed (mod p)

Do ed ≡ 1 (mod p - 1) và ed ≡ (mod q -1) nên: m m (mod p) ed ≡ và m m (mod q) ed ≡

Do p và q là hai số nguyên tố cùng nhau, ta có: m m (mod pq) ed ≡

2.4.4 Áp dụng RSA với SSH

Hiểu một cách đơn giản, SSH Key là một phương thức chứng thực người dùng truy cập bằng cách đối chiếu giữa một key cá nhân (Private Key) và key công khai (Public Key)

2.4.4.2 Các thành phần SSH key

Hình 2 5 Các thành phần SSH key Khi tạo ra một SSH Key, bạn cần đảm bảo 3 yêu cầu sau đây:

 Public Key: bạn sẽ copy ký tự key này sẽ bỏ vào file

~/.ssh/authorized_keys trên server của bạn

 Private Key: bạn sẽ lưu file này vào máy tính, sau đó sẽ thiết lập phiên SSH sử dụng key này để có thể login

 Keyphrase: đây là mật khẩu để mở Private Key, khi đăng nhập vào Server nó sẽ hỏi cái này, nếu bạn không đặt password cho Private Key thì có thể bỏ qua

17 2.4.4.3 Cách thức hoạt động SSH key

Hình 2 6 Cách thức hoạt động SSH key Private Key và Public Key luôn có liên hệ chặt chẽ với nhau để nó có thể nhận diện lẫn nhau Khi tạo một SSH Key bạn sẽ có cả 2 loại key ở trên, sau đó đặt Public Key lên máy chủ của bạn, Private Key sẽ được lưu ở máy và khi đăng nhập vào Server, bạn sẽ gửi yêu cầu đăng nhập kèm theo cái Private Key này để gửi tín hiệu đến Server, Server sẽ kiểm tra xem Private Key của bạn có khớp với Public Key có trên Server hay không, nếu 2 key này khớp nhau thì bạn có thể đăng nhập được

2.4.4.4 Tạo SSH key với Windows

Hiện tại, hầu hết các các phần mềm SSH đều có công cụ tạo Keys Để đảm bảo bảo mật, bạn cần tạo cặp Keys mã hóa bởi thuật toán RSA2 với độ dài ít nhất 2048 bit

Nếu bạn sử dụng Windows thì sẽ dùng phần mềm PuTTY-Gen để tạo SSH, bạn có thể tải PuTTY-Gen

Tạo SSH Keys bằng PuTTyGen: lựa chọn SSH-2 RSA và 2048 như hình rồi ấn Generate đồng thời rê chuột xung quanh khung trắng để khởi tạo các chuỗi ngẫu nhiên Nếu bạn đã có Private Key thì chỉ cần nhấn Load để

18 tạo Public Key tương ứng (dùng khi convert Private Key dạng OpenSSH sang)

Hình 2 7 Tạo SSH Keys bằng PuTTyGen

19 Sau khi tạo xong, bạn sẽ thấy nó hiện ra thế này

Hình 2 8 Sau khi tạo SSH key Bây giờ hãy đặt keypharse cho nó bằng cách điền keypharse ở trên

Hình 2 9 Điền keypharse Sau đó ấn Save Private Key và lưu nó trên một nơi thật an toàn, tốt nhất nên đưa 1 bản lên Dropbox nếu bạn có sử dụng

Còn cái public key là cái dãy loằng ngoằng ở trên, nó bắt đầu bằng từ khóa ssh-rsa-XXXXXX Đây sẽ là cái đoạn mà bạn sẽ copy bỏ vào server Bạn có thể lưu lại vào 1 file text hoặc không cần vì sau này nếu cần lấy public key, bạn chỉ cần ấn nút Load trong phần mềm PuTTYGen rồi mở file private key lên là nó tự hiện ra public key

ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ LỖ HỔNG

Ưu điểm của giao thức SSH

Giao thức SSH có khả năng mã hoá cao và tính năng truyền tải dữ liệu an toàn giữa host và client.

Có thể sử dụng nhiều cách khác nhau để tiến hành mã hoá SSH, như việc sử dụng symmetrical encryption, hashing, Asymmetrical encryption

Có tính an toàn tương đối cao khi truy cập máy từ xa

Dữ liệu được trao đổi giữa client và server là dạng dữ liệu clear text nên rất dễ hình dung và linh hoạt trong thao tác

SSH có một số tính năng nổi trội được sử dụng trong các mạng công ty như:

 Cung cấp cho người dùng một quyền truy cập an toàn và các quy trình tự động

 Chuyển các file tương tác và tự động

 Có thể phát lệnh từ xa

 Quản lý cơ sở hạ tầng mạng cũng như các thành phần hệ thống giữ nhiệm vụ then chốt khác.

Nhược điểm của giao thức SSH

Được đánh giá cao về tính an toàn nhưng SSH vẫn tồn tại một số lỗ hổng bảo mật máy tính Cụ thể là tình trạng key lưu trữ trên Client dễ bị tích tụ, yêu cầu phải có nhân viên IT riêng để thực hiện khâu quản lý, dọn dẹp

Mặt khác, dữ liệu lưu trong file SSH có thể bị lợi dụng chiếm đoạt quyền truy cập xác thực vào hệ thống từ xa Vì thế mỗi doanh nghiệp cần phần xây dựng một quy trình lưu trữ, kiểm soát file cụ thể

Phía nhà phát triển nên cẩn trọng khi kết hợp các lệnh hoặc hàm SSH trong Script hay những chương trình khác Tuy rằng không khẩu để đưa lệnh SSH chứa ID người dùng cùng với password nhưng quá trình này dễ tạo lỗ hổng, tạo điều kiện cho hacker tấn công

Một số lỗ hổng

Vào năm 1998, một lỗ hổng đã được mô tả trong SSH 1.5 cho phép chèn trái phép nội dung vào một luồng SSH được mã hóa do không đủ bảo vệ toàn vẹn dữ liệu từ CRC 32 được sử dụng trong phiên bản này của giao thức Một bản sửa - lỗi được gọi là SSH Compensation Attack Detector đã được đưa vào hầu hết các triển khai Nhiều triển khai cập nhật này chứa lỗ hổng tràn số nguyên mới cho phép kẻ tấn công thực thi mã tùy ý với các đặc quyền của daemon SSH, thường là root

Vào tháng 1 năm 2001, một lỗ hổng đã được phát hiện cho phép những kẻ tấn công sửa đổi khối cuối cùng của một phiên mã hóa IDEA Cùng tháng, một lỗ hổng khác được phát hiện cho phép một máy chủ độc hại chuyển tiếp xác thực máy khách đến một máy chủ khác

Vì SSH-1 có những lỗi thiết kế cố hữu khiến nó dễ bị tấn công, nên hiện nay nó thường được coi là lỗi thời và cần tránh bằng cách vô hiệu hóa dự phòng cho SSH-1 một cách rõ ràng Hầu hết các máy chủ và máy khách hiện đại đều hỗ trợ SSH-2

Vào tháng 11 năm 2008, một lỗ hổng lý thuyết đã được phát hiện cho tất cả các phiên bản SSH cho phép khôi phục tới 32 bit bản rõ từ một khối bản mã đã được mã hóa bằng cách sử dụng chế độ mã hóa mặc định tiêu chuẩn lúc đó là CBC Giải pháp đơn giản nhất là sử dụng CTR, chế độ truy cập, thay vì chế độ CBC, vì điều này khiến SSH có khả năng chống lại cuộc tấn công

Vào ngày 28 tháng 12 năm 2014, Der Spiegel công bố thông tin tuyệt mật bị rò rỉ bởi người tố giác Edward Snowden, cho thấy Cơ quan An inh Quốc gia N có thể giải mã một số lưu lượng SSH Các chi tiết kỹ thuật liên quan đến quá trình như vậy không được tiết lộ Một phân tích năm 2017 về các công cụ hack của CIA, BothanSpy và Gyrfalcon cho thấy rằng giao thức SSH không bị xâm phạm

DEMO

TỔNG KẾT

Qua quá trình nghiên cứu và được sự hướng dẫn của thầy Ths Đặng Văn Thành Nhân, nhóm chúng em đã hoàn thành được bài báo cáo về đề tài giao thức Secure Shell (SSH) đưa ra được những kiến thức, khái niệm, kỹ thuật, thuật toán liên quan đến giao thức SSH Do kiến thức cũng như kinh nghiệm của nhóm chúng em còn non kém nên trong quá trình nghiên cứu và làm báo cáo sẽ không thể tránh khỏi những thiếu sót, mong thầy lượng tình bỏ qua Nhóm chúng em sẽ tiếp tục nghiên cứu sâu hơn để hiểu rõ hơn về giao thức SSH

Ngày đăng: 20/08/2024, 15:13

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 SSH là gì? - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 1. 1 SSH là gì? (Trang 6)
Hình 2. 1. Mô hình hệ mã hóa đối xứng  2.1.2. Mã hóa Asymmetric Encryption - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 1. Mô hình hệ mã hóa đối xứng 2.1.2. Mã hóa Asymmetric Encryption (Trang 10)
Hình 2. 2. Mô hình Client - Server - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 2. Mô hình Client - Server (Trang 11)
Hình 2. 3. SSH2 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 3. SSH2 (Trang 12)
Hình 2. 5. Các thành phần SSH key  Khi tạo ra một SSH Key, bạn cần đảm bảo 3 yêu cầu sau đây: - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 5. Các thành phần SSH key Khi tạo ra một SSH Key, bạn cần đảm bảo 3 yêu cầu sau đây: (Trang 18)
Hình 2. 6. Cách thức hoạt động SSH key  Private Key và Public Key luôn có liên hệ chặt chẽ với nhau để nó có  thể nhận diện lẫn nhau - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 6. Cách thức hoạt động SSH key Private Key và Public Key luôn có liên hệ chặt chẽ với nhau để nó có thể nhận diện lẫn nhau (Trang 19)
Hình 2. 7. Tạo SSH Keys bằng PuTTyGen - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 7. Tạo SSH Keys bằng PuTTyGen (Trang 20)
Hình 2. 8. Sau khi tạo SSH key  Bây giờ hãy đặt keypharse cho nó bằng cách điền keypharse ở trên - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 8. Sau khi tạo SSH key Bây giờ hãy đặt keypharse cho nó bằng cách điền keypharse ở trên (Trang 21)
Hình 2. 9. Điền keypharse  Sau đó ấn Save Private Key và lưu nó trên một nơi thật an toàn, tốt  nhất nên đưa 1 bản lên Dropbox nếu bạn có sử dụng - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 2. 9. Điền keypharse Sau đó ấn Save Private Key và lưu nó trên một nơi thật an toàn, tốt nhất nên đưa 1 bản lên Dropbox nếu bạn có sử dụng (Trang 21)
Hình 4. 1  Bước 1 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 1 Bước 1 (Trang 25)
Hình 4. 4. Bước 4 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 4. Bước 4 (Trang 26)
Hình 4. 6. Bước 6 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 6. Bước 6 (Trang 27)
Hình 4. 8. Bước 8 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 8. Bước 8 (Trang 28)
Hình 4. 10. Bước 10 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 10. Bước 10 (Trang 29)
Hình 4. 12. Bước 12 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 12. Bước 12 (Trang 30)
Hình 4. 14. Bước 14 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 14. Bước 14 (Trang 31)
Hình 4. 16. Bước 16 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 16. Bước 16 (Trang 32)
Hình 4. 18. Bước 18 - đồ án môn học bảo mật thông tin đề tài giao thức secure shell ssh
Hình 4. 18. Bước 18 (Trang 33)

TỪ KHÓA LIÊN QUAN

w