1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo Cáo Bảo Mật Thông Tin SSH

27 106 3

Đ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

Định dạng
Số trang 27
Dung lượng 0,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giao thức SSH cung cấp các dịch vụ của máy chủ như xác thực, mã hóa, xác minh tính toàn vẹn dữ liệu và xác thực khách hàng. Máy chủ được SSH xác thực thông qua việc thực hiện DSA, RSA hoặc ECDSA thuật toán mã khóa công khai.

Trang 1

CHƯƠNG 1: GIỚI THIỆU VỀ GIAO THỨC SSH.

Hai bản phân phối có sẵn:

• phiên bản thương mại

• phần mềm miễn phí (www.openssh.com)

SSH2 được chỉ định trong một tập hợp các bản nháp Internet (RFC 4250 - 4256)

2. Kiến trúc giao thức Secure Shell (SSH)

Giao thức SSH bao gồm ba thành phần chính:

• Giao thức lớp truyền tải SSH - cung cấp xác thực máy chủ, tính bảo mật và tínhtoàn vẹn với tính bảo mật chuyển tiếp hoàn hảo • Giao thức xác thực người dùngSSH - xác thực máy khách với máy chủ

• Giao thức kết nối SSH - ghép kênh được mã hóa thành một số kênh logic (chophép phiên trình bao an toàn, chuyển tiếp / đường hầm cổng TCP, v.v.)

Hình 1: Ngăn xếp giao thức SSH (nguồn: cisco.com).

Trang 2

3. Giao thức lớp truyền tải SSH - Tổng quan

SSH TLP thường chạy trên TCP / IP; khi được sử dụng qua TCP, máy chủthường lắng nghe các kết nối trên cổng 22 Cung cấp:

• mã hóa dữ liệu người dùng

• xác thực máy chủ (dựa trên / các khóa máy chủ không đối xứng) • bảo vệ tínhtoàn vẹn (nguồn gốc và dữ liệu)

• nén dữ liệu trước khi mã hóa (tùy chọn)

Phương pháp trao đổi khóa, thuật toán khóa công khai, thuật toán mã hóađối xứng, thuật toán xác thực thông điệp và thuật toán băm đều được thươnglượng (nguồn: RFC 4253)

4. Giao thức lớp truyền tải SSH (TLP) - Trao đổi gói

Hình 2: Trao đổi gói SSH TLP (nguồn: cisco.com).

Trang 3

5. Giao thức gói nhị phân SSH TLP

Hình 3: Hình thành gói SSH TLP (nguồn: cisco.com).

Thực hiện mã hóa và MAC / xác thực mô hình; các cuộc tấn công tồn tạikhi được sử dụng với chế độ CBC (thích chế độ CTR hơn)

Giao thức gói nhị phân SSH TLP

Các thuật toán mã hóa và xác thực, khóa mã hóa, IV đều được thươnglượng trong quá trình trao đổi khóa Các thuật toán và chế độ (AES, 3DES, CBC,CTR, v.v.) có thể khác nhau theo từng hướng

Trước khi mã hóa, gói tin được đệm ngẫu nhiên: gói được mã hóa = (chiềudài gói || chiều dài đệm || trọng tải || đệm ngẫu nhiên)

MAC (HMAC) được tính trên gói văn bản rõ được mã hóa và một số thứ tự32bit ngầm định (không được truyền); ngăn chặn các cuộc tấn công phát lại MACkhông được mã hóa

mac = MAC (khóa, số thứ tự || gói được mã hóa)

6. Trao đổi khóa SSH TLP

Phương pháp trao đổi chính chỉ định cách các khóa phiên một lần được tạo để mãhóa và xác thực cũng như cách xác thực máy chủ được thực hiện (nguồn: RFC4253)

Đặc điểm kỹ thuật SSH cho phép các phương pháp thay thế của khóa trao đổi,nhưng nó chỉ định hai phiên bản trao đổi khóa DiffieHellman

Trang 4

Hình 4: Gói SSH TLP Sàn giao dịch (nguồn: cisco.com).

7. Trao đổi khóa SSH TLP Diffie-Hellman (nguồn: RFC 4253)

VS và VC là các chuỗi id của S và C; KS là khóa máy chủ lưu trữ côngkhai của S; IS và IS là các tin nhắn MSG KEXINIT của S’s và C’s SSH được traođổi trước khi phần này bắt đầu; những thông báo này bao gồm một cookie ngẫunhiên 128bit để đảm bảo tính mới của phiên

• C chọn x ngẫu nhiên, tính e = gx mod p C gửi e cho S

• S chọn y ngẫu nhiên, tính f = gy mod p S nhận e, tính: - K = ey mod p

- H = băm (VC || VS || IC || IS || KS || e || f || K)

C xác minh chữ ký s trên H

Trang 5

8. Bắt nguồn từ khóa phiên SSH

Kết quả của các bước trao đổi chính:

• C và S bây giờ dùng chung một khóa chính K

• S đã được xác thực với C (S đã ký khóa công khai DH ngẫu nhiên của C) • Máychủ H giá trị băm làm id phiên cho kết nối này

• Giao tiếp tiếp theo được bảo vệ bằng các khóa phiên dẫn xuất

Các vectơ đơn vị phiên, khóa mã hóa và xác thực:

• IVCS = hash (K || H || “A” || session id)

• IVSC = băm (K || H || “B” || id phiên)

• EKCS = hash (K || H || “C” || session id)

• EKSC = băm (K || H || “D” || id phiên)

• AKCS = băm (K || H || “E” || id phiên)

• AKSS = băm (K || H || “F” || id phiên)

Dữ liệu chính được lấy từ đầu của đầu ra băm

9. Giao thức xác thực người dùng SSH - Tổng quan

Sau khi trao đổi khóa, khách hàng yêu cầu một dịch vụ bằng gửi YÊU CẦU DỊCH

VỤ MSG SSH gói để yêu cầu Người dùng Xác thực hoặc Giao thức kết nối

Trang 6

Hình 5: Gói SSH TLP Sàn giao dịch (nguồn: cisco.com).

10. Giao thức xác thực người dùng SSH - Tổng quan

Giao thức xác thực SSH chạy trên Giao thức lớp truyền tải SSH; nó giảđịnh rằng giao thức cơ bản cung cấp bảo vệ tính toàn vẹn và bí mật Giao thức cóquyền truy cập vào id phiên (nguồn: RFC 4252)

Hỗ trợ ba phương pháp xác thực người dùng:

• Khóa công khai (bắt buộc)

• Mật khẩu (tùy chọn)

• Dựa trên máy chủ (tùy chọn)

Máy chủ kiểm soát những phương pháp xác thực nào có thể được sử dụng

11. Giao thức xác thực người dùng SSH - Phương thức xác thực

Khóa công khai

Máy khách gửi đến máy chủ một thông báo đã ký bao gồm id phiên, tênngười dùng, khóa công khai của người dùng và một số thông tin khác Chữ kýđược tạo bằng khóa cá nhân của người dùng

Trang 7

Khi nhận được tin nhắn, máy chủ sẽ kiểm tra xem khóa công khai đượccung cấp có được chấp nhận để xác thực hay không và nếu có, hãy kiểm tra xemchữ ký có đúng không.

Mật khẩu

Về cơ bản, máy khách gửi tên người dùng và mật khẩu rõ ràng; Tuy nhiên,chúng được bảo vệ bởi Giao thức Bảo mật Truyền tải SSH

Dựa trên máy chủ

Tương tự với phương thức khóa công khai ở trên nhưng với khóa công khaitrên mỗi máy chủ lưu trữ (không phải cho mỗi người dùng); xác thực dựa trên máychủ mà người dùng đến và tên người dùng trên máy chủ từ xa

12. Giao thức kết nối SSH - Tổng quan

• kết nối X11 được chuyển tiếp

Các ứng dụng này được triển khai dưới dạng các kênh được ghép lại thành mộtđường hầm mã hóa; đường hầm được cung cấp bởi Giao thức lớp truyền tải SSH

Hình 6: Kết nối SSH Trao đổi tin nhắn giao thức (nguồn: cisco.com)

Trang 8

13. Giao thức kết nối SSH - Chuyển tiếp cổng TCP / IP

Chuyển tiếp cổng hoặc SSH đào hầm là một trong những các tính năng hữuích của SSH Sử dụng chuyển tiếp cổng một người có thể chuyển đổi bất kỳ kếtnối TCP không an toàn nào vào một kết nối SSH an toàn

Hình 7: Đường hầm SSH (nguồn: cisco.com).

14. SSH Port Forwarding - Local Port Forwarding

Các kết nối từ máy khách SSH được chuyển tiếp qua máy chủ SSH đếnmáy chủ đích

ssh -L sourcePort: DEST-HOST: destPort SSH-HOST

Kết nối với SSH với SSH-HOST, chuyển tiếp tất cả các cố gắng kết nốiTCP tới sourcePort (trên máy cục bộ) tới đích trên DEST-HOST, có thể truy cậpđược từ SSH-HOST

Ví dụ:

ssh -L 8080: localhost: 80 fesb.hr

ssh -L 8080: google.com: 80 fesb.hr

Trang 9

Hình 8: Chuyển tiếp cổng cục bộ (từ: unix.stackexchange.com).

15. Chuyển tiếp cổng SSH - Chuyển tiếp cổng từ xa

Các kết nối từ máy chủ SSH được chuyển tiếp qua máy khách SSH, sau đóđến máy chủ đích

ssh -R sourcePort: DEST-HOST: destPort SSH-HOST

Kết nối với SSH tới SSH-HOST, chuyển tiếp tất cả các cố gắng kết nối TCPtới sourcePort (trên SSH-HOST) tới đích trên DEST-HOST, có thể truy cập được

từ máy chủ cục bộ

Ví dụ:

ssh -R 80: localhost: 80 fesb.hr

ssh -R 80: google.com: 80 fesb.hr

Trang 10

16. Chuyển tiếp cổng SSH - Chuyển tiếp cổng từ xa

Hình 9: Chuyển tiếp cổng từ xa (từ: unix.stackexchange.com).

Trang 11

CHƯƠNG 2: MỘT THÔNG TIN VỀ SSH

1 Độ bảo mật của Ssh.

Giao thức SSH cung cấp các dịch vụ của máy chủ như xác thực, mã hóa, xácminh tính toàn vẹn dữ liệu và xác thực khách hàng Máy chủ được SSH xác thựcthông qua việc thực hiện DSA, RSA hoặc ECDSA thuật toán mã khóa công khai

Để xác minh mã hóa và toàn vẹn dữ liệu, một số thuật toán được cung cấp màmỗi sản phẩm SSH có thể thực hiện trong một khoảng thời gian nhất định Trongkhi đó, xác thực khách hàng lại được SSH thực hiện bằng cách sử dụng mật khẩu,khóa công khai, chỉ 1 tài khoản login trên 1 thời diểm (single sign-on), và cácphương pháp khác

Đặc điểm kỹ thuật giao thức SSH2 được công khai và đã được xem xét bởi một

số người thực hiện độc lập Vì vậy, khi thực hiện đúng và sử dụng chúng, giaothức này hoàn toàn an toàn để bảo mật thông tin và chống lại hầu hết tất cả cáccuộc tấn công mật mã

2 Những trường hợp cần sử dụng Ssh.

SSH hoạt động ở tầng thứ 4 trong mô hình TCP/IP Nó cho phép tương tác giữamáy chủ và máy khách, sử dụng cơ chế mã hoá nhằm ngăn chặn các hiện tượngnghe trộm, đánh cắp thông tin trên đường truyền Đây là điều mà các giao thứctrước đây như telnet, rlogin không đáp ứng được

TCP/IP là gì?

TCP/IP viết tắt của Transmission Control Protocol (TCP) và InternetProtocol (IP) là giao thức cài đặt truyền thông, chồng giao thức mà hầu hết cácmạng máy tính ngày nay đều sử dụng để kết nối TCP/IP được đặt theo tên của 2giao thức là giao thức điều khiển giao vận và giao thức liên mạng

Vì vây, bạn nên lựa chọn sử dụng SSH nếu muốn thiết lập một kết nối mạngđược mã hóa và cung cấp môi trường an toàn cho người tiêu dùng Các công cụSSH phổ biến hiện nay có thể kể đến như PuTTY, OpenSSH…

3 Cơ chế hoạt động của Ssh.

Quy trình hoạt động của SSH có thể tóm gọn thông qua 3 bước đơn giản sau:Bước 1: Định danh host – xác định định danh của hệ thống tham gia phiên làmviệc SSH Đơn giản hơn, đây là bước khởi tạo kết nối SSH Kết nối này là mộtkênh giao tiếp bảo mật giữa server và client

Bước 2: Mã hoá dữ liệu – thiết lập kênh làm việc mã hoá Sau khi Client xácđịnh được định danh của Server 1 kết nối bảo mật đối xứng được hình thành giữa

2 bên

Bước 3: Chứng thực và giải mã – xác thực người sử dụng có quyền đăng nhập

hệ thống Kết nối này sẽ được sử dụng để Server xác thực Client

Trang 12

4 Ưu điểm của Ssh.

Lý do khiến nhiều người lựa chọn sử dụng giao thức này xuất phát từ những

ưu điểm vượt trội của SSH so với các giao thức khác SSH có khả năng mã hóa vàtruyền tải dữ liệu an toàn giữa mạng lưới host và client Host đại diện cho máy chủ

từ xa bạn muốn kết nối tới và client là máy tính của bạn dùng để truy cập tới host.Lợi thế thứ hai là có nhiều cách khác nhau giúp việc mã hóa qua SSH đượcthực hiện hiệu quả và toàn vẹn như:

Symmetrical encryption, Asymmetrical encryption, Hashing.

Ssh Symmetrical Encryption là

Symmetric encryption 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 Điều này cónghĩa là bất kỳ ai nắm được khóa đều có thể giải mã tin nhắn trong quá trìnhchuyền

Nguyên tắc hoạt động của Symmetrical Encryption là cả client và server tạochung một key bí mật và key đó không được tiết lộ cho bên thứ ba Quá trình tạosymmetric key được thực hiện bởi key exchange algorithm Key đó được dùngnhư chìa khóa mã hóa cho cả hai đầu kết nối

Điều khiến cho thuật toán này an toàn là vì key không được truyền giữa client

và host Thay vào đó, cả 2 máy tính chia sẽ thông tin chung và sau đó sử dụngchúng để tính ra khóa bí mật Vì vậy, kể cả có máy khác bắt được thông tin chung,

nó cũng không thể tính ra key bí mật vì không biết được thuật toán tạo key

Ssh Asymmetrical encryption là

Không giống với symmetrical encryption, asymmetrical encryption sử dụng 2khóa khác nhau để mã hóa và giải mã 2 khóa này được gọi là public key vàprivate key Cả 2 hình thành nên một cặp khóa là public-private key pair Trong

đó, khóa public sẽ được công khai cho tất cả các bên liên quan còn private keyphải luôn luôn được đảm bảo an toàn

Asymmetrical Encrytion chỉ được sử dụng trong quá trình trao đổi thuật toáncủa khóa của symmetric encryption trước khi bắt đầu một phiên giao dịch an toàn.Sau khi kết nối symmetrict an toàn đã được thiết lập, server sử dụng public keycủa client để tạo và challenge và truyền nó tới client để chứng thực Nếu client cóthể giải mã tin nhắn, có nghĩa là nó đang giữ đúng private key cần thiết cho kếtnối

Ssh Hashing là

Hash một chiều khác với cả 2 phương thức mã hóa trên ở chỗ nó không đượcsinh ra để giải mã Thay vào đó, nó tạo ra một giá trị duy nhất với độ dài nhất địnhcho mỗi lần nhập liệu mà không có hướng nào khác để khai thác

Trang 13

Vì vậy, SSH sử dụng hashes để xác nhận tính xác thực của tin nhắn Nó đượcthực hiện bởi HMACs Việc này đảm bảo lệnh không bị giả mạo bởi bất kỳphương thức nào.

5 Giai đoạn thiết lập kết nối của Ssh.

Có thể thấy, phương thức hoạt động của SSH có thể dễ dàng tóm gọn trong 3

bước Ở phần này, hãy cùng chúng tôi tìm hiểu rõ hơn về các giai đoạn thiết lập kết nối của SSH.

Xác định host

Việc định danh host được thực hiện qua việc trao đổi khoá Mỗi máy tính điềukhiển SSH có một khoá định danh duy nhất Chúng bao gồm hai thành phần: khoáriêng tư và khoá công cộng Khoá công cộng được sử dụng khi cần trao đổi giữacác máy chủ Trong khi khóa riêng tư thì được dùng để giải mã riêng

Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khoá côngcộng của nó cho máy khách Máy khách sinh ra một khoá phiên ngẫu nhiên Sau

đó nó mã hoá khoá này bằng khoá công cộng của máy chủ Cuối cùng nó được gửilại cho máy chủ Máy chủ sẽ giải mã khoá phiên này bằng khoá riêng của mình vànhận được khoá phiên Quá trình này được xem như các bước nhận diện máy chủ

và máy khách

Mã hóa dữ liệu

Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, địnhdanh, xác định host), quá trình trao đổi dữ liệu diễn ra thông qua một bước trunggian đó là mã hoá/giải mã, Ở bước này, dữ liệu gửi/nhận trên đường truyền đượcgiải mã theo cơ chế đã thoả thuận trước Các cơ chế mã hoá thường được chọn baogồm: 3DES, IDEA, và Blowfish

Trang 14

Chứng thực người dùng

Chứng thực người dùng là bước cuối cùng trong ba bước Đây cũng đồng thời là bước đa dạng nhất vì có thể sử dụng nhiều cách khác nhau để chứng thực người dùng Thông thường, người ta thường sử dụng các cách như chứng thực rhosts, chứng thực RSA, sử dụng ssh-keygen và ssh-agent…

Trang 15

CHƯƠNG 3: KẾT NỐI GIAO THỨC SSH.

1 Cách dùng Ssh kết nối với server Linux

Thiết lập server Linux chấp nhận các kết nối

Muốn dùng SSH kết nối server Linux, bạn cần thiết lập trên server trước.Tùy thuộc vào phần cứng và bản phân phối Linux việc thiết lập có thể thay đổi.Hướng dẫn sau đây chạy Ubuntu 16.04 LTS

Bạn sẽ cần phải cài đặt công cụ đăng nhập từ xa cho giao thức SSH Mộttrong những công cụ phổ biến nhất là OpenSSH Bạn có thể tìm bản download tạiđây: https://www.openssh.com/portable.html Cách download OpenSSH, mở mộtterminal mới (Ctrl + Alt + T) và nhập lệnh sau:

sudo apt-get update

Điều này thực hiện cập nhật và đảm bảo bạn có các kho lưu trữ mới nhất.Trước khi tiến hành cài đặt OpenSSH, hãy kiểm tra mọi nâng cấp Trong terminal,hãy chạy lệnh:

sudo apt-get upgrade

Khi bạn đã cập nhật và nâng cấp, hãy mở một dòng lệnh mới và nhập:

sudo apt-get install openssh-server

Định cấu hình cài đặt SSH cho server

Sau khi OpenSSH đã được cài đặt ở phía server, bạn có thể chỉnh sửa thôngtin cấu hình cơ bản Mở một terminal mới và nhập chuỗi sau đây để mở file cấuhình SSH:

sudo nano /etc/ssh/sshd_config

Mặc định, SSH server của bạn sẽ hoạt động trên cổng 22 Bạn có thể tựthay đổi từ cổng 22 sang cổng bạn chọn Ngoài ra, bạn có thể tăng cường bảo mậtbằng cách nhập số đăng nhập tối đa Trong Port, tìm dòng MaxAuthTries Bạn cóthể nhập bất kỳ số nào ở đây Vì vậy, để chọn số lần đăng nhập tối đa là 4, hãynhập:

MaxAuthTries 4

Sau khi cài đặt OpenSSH, SSH server sẽ chạy Nhưng để kiểm tra, chỉ cần

mở một terminal và chạy:

sudo service ssh status

Điều này sẽ trả về một thông báo rằng SSH đã được kích hoạt Để khởiđộng SSH, hãy mở một dòng lệnh và nhập:

sudo service ssh start

Và để ngăn SSH chạy, hãy nhập: sudo service ssh stop

Trang 16

2 Kết nối Ssh từ Window

Do Window không tích hợp SSH Command nên người dùng phải tải về các

mã nguồn mở hay ứng dụng đóng vai trò là “bên thứ ba” Bạn có thể sử dụngPuTTy và ZOC7 để kết nối trên Window

SSH PuTTy là gì?

PuTTy là một phần mềm dùng để điều khiển server thông qua mạng Internet

Để kết nối thành công với PuTTy, bạn thực hiện theo các bước sau

• Bước 1: Tải về PuTTy

• Bước 2: Khởi động chương trình PuTTy vừa cài đặt

• Bước 3: Nhập thông tin server cần điều khiển

• Bước 4: Nhập thông tin username và password

Trong quá trình kết nối, bạn cần lưu ý độ tương thích giữa các thông số Đặcbiệt lưu ý số cổng trong khung Port và số cổng SSH Server yêu cầu Ngoài ra,người dùng sẽ nhận được các cảnh báo bảo mật Nếu đây là lần đầu tiên sử dụng,bạn có thể click vào YES và tiếp tục Nếu bạn đã từng truy cập, hãy cẩn thận vìđây có thể là một SSH Server độc hại

Bên cạnh kết nối và cấu hình SSH Server, với PuTTY, người dùng còn cóthể sử dụng file Private Key để sử dụng các ứng dụng khác cần kết nối với SSH.Khi khởi động PuTTY, bạn sẽ tìm thấy tùy chọn này tại cửa sổ PuTTY

Ngày đăng: 16/09/2021, 09:53

TỪ KHÓA LIÊN QUAN

w