lOMoARcPSD|17343589
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUN ĐỀ HỌC PHẦN
MẠNG MÁY TÍNH
ĐỀ TÀI:
TÌM HIỂU VỀ GIAO THỨC SSH
Sinh viên thực hiện
: NGUYỄN HUY HOÀNG
Giảng viên hướng dẫn : LÊ MẠNH HÙNG
Ngành
: CÔNG NGHỆ THÔNG TIN
Chuyên ngành
: HTTMDT1
Lớp
: D15CNTT2
Khóa
: D15
Hà Nội, tháng .10. năm .2021
lOMoARcPSD|17343589
PHIẾU CHẤM ĐIỂM
STT
1
Họ và tên
sinh viên
Nội dung thực hiện
Điểm
NGUYỄN
HUY
HOÀNG
Họ và tên giảng viên
Giảng viên chấm 1:
Giảng viên chấm 2:
Chữ ký
Ghi chú
Chữ
ký
lOMoARcPSD|17343589
MỤC LỤC
LỜI MỞ ĐẦU
1. Giao thức SSH là gì……………………………………………………….
2. Lịch sử và các phiên bản SSH…………………………………………….
3.
Tổng quan và các đặc điểm của SSH……………………………………..
4. Kiến trúc chung của một hệ thống SSH………………………………….
5. Bên trong SSH-2………………………………………………………….
6. 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 nguy hiểm mà SSH không thể cản………………………………
lOMoARcPSD|17343589
1. Giao thức SSH là gì
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ã hoá để 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. Do vậy có thể thấy khi xây dựng một hệ thống mạng dựa
trên SSH, chúng ta sẽ có một hệ thống mạng riêng ảo VPN đơn giản.
Mỗi khi dữ liệu được gửi bởi một máy tính vào mạng, SSH tự động mã
hố nó. Khi dữ liệu được nhận vào, SSH tự động giải mã nó. Kết quả là việc
mã hố được thực hiện trong suốt: người dùng có thể làm việc bình thường,
khơng biết rằng việc truyền thơng của họ đã được mã hố an tồn trên mạng.
2. Lịch sử và các phiên bản SSH
SSH1 và giao thức SSH-1 được trình bày năm 1995 bởi Tatu Ylõnen, một
nhà nghiên cứu ở trường đại học kĩ thuật Helsinki của Phần Lan. Sau khi
mạng trường đại học của ông ta là nạn nhân của một cuộc tấn công đánh cắp
password vào đầu năm đó.
Tháng 7 năm 1995, SSH1 được phát hành rộng rãi dưới dạng một phần
mềm miễn phí có source code, cho phép mọi người sao chép và sử dụng mà
khơng thu phí. Vào cuối năm đó, ước tính có khoảng 20.000 người dùng trên
50 quốc gia đã sử dụng SSH1, và mỗi ngày Ylõnen nhận 150 mail yêu cầu
hỗ trợ. Để đáp lại, Ylõnen đã thành lập SSH Communications Security (SCS,
) vào tháng 12 năm 1995 để duy trì, thương nghiệp hố
và tiếp tục phát triển SSH.
Cũng trong năm 1995, Ylõnen soạn thảo giao thức SSH-1 còn gọi là
Internet Engineering Task Force (IETF), nó diễn tả hoạt động cơ bản của
phần mềm SSH1 trên thực tế. Nó là một giao thức có phần quảng cáo nhưng
cịn một số lỗi và giới hạn nhưng rất phổ biến.
Năm 1996, SCS giới thiệu một phiên bản mới đó là phiên bản chính của
giao thức, SSH 2.0 hay SSH-2, phiên bản này được kết hợp chặt chẽ những
thuật tốn mới và khơng hợp với SSH-1. Trong lúc đó, IETF thành lập một
nhóm làm việc gọi là SECSH (Secure Shell) để chuẩn hoá giao thức và chỉ
đạo sự phát triển của nó trên lợi ích chung. Nhóm làm việc SECSH đã trình
bày bản phác thảo Internet đầu tiên đối với giao thức SSH-2 vào tháng 2 năm
1997. 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. Tuy nhiên, SSH2 không thay thế SSH1
trong một số lĩnh vực, có 2 lí do. Thứ nhất, SSH2 khơng có một số tiện ích,
các đặc điểm có ích và cấu hình tuỳ chọn như SSH1. Thứ hai, SSH2 có
nhiều giới hạn về việc đăng kí. Bản chính SSH1 đã có sẵn miễn phí từ
Ylõnen và trường đại học kĩ thuật Helsinki. Phiên bản mới hơn của SSH1 từ
lOMoARcPSD|17343589
SCS vẫn có sẵn miễn phí cho hầu hết người dùng, thậm chí cả cấu hình
thương mại cũng miễn phí chỉ cần phần mềm đó khơng được trực tiếp bán
cho việc thu lợi nhuận hoặc được tặng như là một dịch vụ cho khách hàng.
Vì thế tuy SSH2 đã xuất hiện, nhưng hầu hết những người đang sử dụng
SSH1 đều nhận ra vài ưu điểm của SSH1 so với SSH2 và tiếp tục sử dụng
SSH1, ba năm sau khi SSH2 ra đời thì SSH1 vẫn là phiên bản được sử dụng
phổ biến trên Internet và vượt qua cả SSH2 là giao thức tốt hơn và bảo mật
hơn.
Tuy nhiên, SSH2 cũng có hai sự phát triển hưa hẹn, đó là một bản nới
lỏng của SSH2 bản quyền và sự xuất hiện SSH-2 bổ sung. Năm 2000, SCS
mở rộng SSH2 bản quyền để cho phép sử dụng khi làm việc riêng lẻ đối với
các tổ chức hoạt động phi lợi nhuận. Nó cũng được mở rộng cho phép dùng
miễn phí đối với Linux, NetBSD, FreeBSD và hệ điều hành OpenBSD. Cùng
thời gian đó, OpenSSH () đã được phát triển nổi bật
như là một SSH bổ sung, được phát triển dưới hoạt động của dự án
OpenBSD () và miễn phí sẵn bên dưới OpenBSD có
đăng kí. OpenSH hỗ trợ cả SSH-1 và SSH-2 trong một chương trình. Tuy
OpenSSH được phát triển trên nền OpenBSD nhưng nó cũng hoạt động được
trên Linux, Solais, AIX và những hệ điều hành khác. Mặc dù OpenSSH
tương đối mới và khơng có vài đặc điểm có trong SSH1 và SSH2 nhưng nó
đang trên đà phát triển nhanh chóng và hứa hẹn trở thành bản SSH chính
trong tương lai không xa.
3. Tổng quan và các đặc điểm của SSH
Các đặc điểm chính của giao thức SSH là:
- Tính bí mật (Privacy) của dữ liệu thơng qua việc mã hố mạnh mẽ
- Tính tồn vẹn (integrity) của thơng tin truyền, đảm bảo chúng không bị
biến đổi.
- Chứng minh xác thực (authentication) nghĩa là bằng chứng để nhận dạng
bên gửi và bên nhận
- Giấy phép (authorization) :dùng để điều khiển truy cập đến tài khoản.
- Chuyển tiếp (forwarding) hoặc tạo đường hầm (tunneling) để mã hoá
những phiên khác dựa trên giao thức TCP/IP
3.1.1. Tính bí mật
Tính bí mật có nghĩa là bảo vệ dữ liệu không bị phơi bày. Mạng máy tính
bình thường khơng bảo đảm tính bí mật, bất cứ ai truy cập đến phần cứng
của mạng hoặc đến những host kết nối với mạng đều có thể sẽ đọc được tất
cả dữ liệu đi qua mạng. Mặc dù mạng chuyển mạch hiện đại đã giảm những
vấn đề này trong mạng vùng cục bộ nhưng nó vẫn cịn một vấn đề nghiêm
trọng đó là mật khẩu dễ bị những kẻ xấu đánh cắp.
lOMoARcPSD|17343589
SSH cung cấp tính bí mật bằng việc mã hố dữ liệu đi qua mạng. Đó là
việc mã hố hai đầu dựa trên khoá ngẫu nhiên (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 tốn mã hố đố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)
3.1.2. Tính tồn vẹn
Tính tồn vẹn nghĩa là bảo đảm dữ liệu được truyền từ một đầu này đến
đầu kia của mạng không bị thay đổi. 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 khoá là MD5 và SHA-1.
3.1.3. Chứng minh xác thực
Chứng minh xác thực là 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 sr dụng yêu cầu truy cập (user
authentication). Server authentication chắc chắn rằng SSH server là chính
xác và khơng phải là kẻ lừa đảo để đề phịng kẻ tấn cơng lại gửi kết nối
mạng đến một máy khác. Server authentication cũng bảo vệ việc bị kẻ xấu
ngồi ở giữa hai bên, lừa gạt cả hai bên nghĩa là kẻ xấu sẽ nói với server nó là
client và nói với client nó là server để đọc được dữ liệu trao đổi giữa hai bên.
User authentication theo truyền thống là làm việc với mật khẩu. Để xác
thực định danh của bạn, bạn phải đưa ra mật khẩu, và dễ bị lấy cắp. Thêm
nữa, để dễ nhớ một mật khẩu, người ta thường đặt nó ngắn và có ý nghĩa nào
đó nên dễ bị kẻ xấu đốn ra. Đối với mật khẩu dài hơn thì người ta thường
chọn những từ hoặc câu trong ngôn ngữ bẩm sinh nên cũng dễ bị bẻ khoá.
SSH hỗ trợ xác thực bằng mật khẩu, mã hố mật khẩu khi nó truyền đi
trên mạng. Đây là sự cải thiện rất lớn so với những giao thức truy cập từ xa
thông thường khác (Telnet, FTP) mà chúng gửi mật khẩu qua mạng dưới
dạng clear text. Tuy nhiên, việc chứng thực như thế vẫn chỉ là chứng thực
mật khẩu đơn giản vì thế SSH cung cấp cơ chế mạnh hơn và dễ sử dụng hơn:
mỗi user có nhiều chữ kí khố cơng cộng (per-user public-key signature) và
một cải tiến rlogin-style xác thực với định danh host được kiểm tra bằng
khố cơng khai. Hơn nữa, những bản bổ sung khác nhau của SSH hỗ trợ vài
hệ thống khác bao gồm Kerberos, RSA, mật khẩu S/Key one-time và PAM.
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ể
u cầu nhiều kiểu xác thực.
lOMoARcPSD|17343589
3.1.4. Việc cấp giấy phép
Việc cấp giấy phép 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ể chấp nhận một
ai đó có quyền gì khi chưa biết đó là ai. SSH server có nhiều cách khác nhau
để giới hạn hành động của client. Truy cập đến phiên đăng nhập tác động lẫn
nhau như TCP port và X Window forwarding, key agent forwarding, … có
thể tất cả đều được điều khiển mặc dù khơng phải tất các đặc điểm đều có
sẵn trên tất cả các bản bổ sung SSH,và chúng không luôn luôn tống quát
hoặc linh hoạt như bạn ý muốn. Giấy phép 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.1.5. Chuyển tiếp
Chuyển tiếp hoặc tạo đường hầm là tóm lược 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. Ví dụ, một kết nối Telnet
bình thường truyền username, password của bạn và phiên đăng nhập của bạn
ở dạng clear text. Bằng cách chuyển tiếp telnet thông qua SSH, tất cả dữ liệu
sẽ tự động được mã hoá và kiểm tra định danh và bạn có thể xác nhận dùng
SSH tin cậy.
SSH hỗ trợ 3 kiểu chuyển tiếp:
- TCP port forwarding:
SSH dùng TCP/IP làm cơ chế truyền, thường dùng port 22 trên máy
server khi nó mã hố và giải mã lưu lượng đi trên mạng. Ở đây chúng ta nói
đến một đặc điểm mã hoá và giải mã lưu lựong TCP/IP thuộc về ứng dụng
khác, trên cổng TCP khác dùng SSH. Tiến trình này gọi là port forwarding,
nó có tính trong suốt cao va khá mạnh. Telnet, SMTP, NNTP, IMAP và
những giao thức khơng an tồn khác chạy TCP có thể được bảo đảm bằng
việc chuyển tiếp kết nối thông qua SSH. Port forwarding đơi khi được gọi là
tunneling bởi vì kết nối SSH cung cấp một “đường hầm” xuyên qua để kết
nối TCP khác có thể đi qua.
Giả sử bạn có một máy H ở nhà đang chạy IMAP và bạn muốn kết nối
đến một IMAP server trên máy S để đọc và gửi mail. Bình thường thì việc
kết nối này khơng đảm bảo an toàn, tài khoản và mật khẩu mail của bạn
được truyền đi dưới dạng clear text giữa chương trình mail của bạn và server.
Đối với SSH port forwarding, bạn có thể định tuyến lại trong suốt kết nối
IMAP ( tìm cổng TCP 143 trên server S) để truyền đi thơng qua SSH, mã
hố bảo đảm dữ liệu truyền đi trên kết nối. Máy IMAP server phải chạy một
SSH server cho port forwarding để cung cấp việc bảo đảm đó.
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
lOMoARcPSD|17343589
- X forwarding
X 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 tốt nhất 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.
4. Kiến trúc chung của một hệ thống SSH
SSH có khoảng một bộ 12 thuộc tính riêng lẻ, các thành phần tác động
lẫn nhau cho ra các nét đặc trưng riêng.
SSH cũng có khố (keys), phiên (sessions) và những thứ ngộ nghĩnh
khác. Ở đây chúng ta qui định một bản tóm tắt tổng quan của tất cả các thành
phần, ví thế bạn có thể bắt đầu thấy được bức tranh lớn về SSH như sau:
Server
Một chương trình cho phép đi vào kết nối SSH với một bộ máy, trình bày
xác thực, cấp phép, … Trong hầu hết SSH bổ sung của Unix thì server
thường là sshd.
Client
lOMoARcPSD|17343589
Một chương trình kết nối đến SSH server và đưa ra yêu cầu như là “log me
in” hoặc “copy this file”. Trong SSH1, SSH2 và OpenSSH, client chủ yếu
là ssh và scp.
Session
Một phiên kết nối giữa một client và một server. Nó bắt đầu sau khi client
xác thực thành cơng đến một server và kết thúc khi kết nối chấm dứt.
Session có thể được tương tác với nhau hoặc có thể là một chuyến riêng.
Key
Một lượng dữ liệu tương đối nhỏ, thông thường từ mười đến một hoặc hai
ngàn bit. Tính hữu ích của việc sử dụng thuật tốn ràng buộc khoá hoạt
động trong vài cách để giữ khoá: trong mã hố, nó chắc chắn rằng chỉ người
nào đó giữ khố (hoặc một ai có liên quan) có thể giải mã thơng điệp, trong
xác thực, nó cho phép bạn kiểm tra trễ rằng người giữ khố thực sự đã kí
hiệu vào thơng điệp. Có hai loại khóa: khố đối xứng hoặc khố bí mật và
khố bất đối xứng hoặc khóa cơng khai. Một khố bất đối xứng hoặc khố
cơng khai có hai phần: thành phần cơng khai và thàn phần bí mật. SSH đề
cập đến 4 kiểu của khố như phần tóm tắt trong bảng 3-1 và diễn tả dưới
đây.
Name
Lifetime
Created by
Type Purpose
User key
Persistent
User
Public Identify a user to the server
Session key One session Client (and server) Secret Protect communications
Host key
Persistent
Server key One hour
Administrator
Public Identify a server/machine
Server
Public Encrypt the session key (SSH1 only)
Bảng 3-1 các loại khóa thành phần
User key
Là một thực thể tồn tại lâu dài, là khoá bất đối xứng sử dụng bởi client như
một sự chứng minh nhận dạng của user ( một người dùng đơn lẻ có thể có
nhiều khố)
Host key
Là một thực thể tồn tại lâu dài, là khoá bất đối xứng sử dụng bới server như
sự chứng minh nhận dạng của nó, cũng như được dùng bởi client khi chứng
minh nhận dạng host của nó như một phần xác thực đáng tin. Nếu một bộ
máy chạy một SSH server đơn, host key cũng là cái duy nhất để nhận dạng
bộ máy đó. Nếu bộ máy chạy nhiều SSH server, mỗi cái có thể có một host
key khác nhau hoặc có thể dùng chung. Chúng thường bị lộn với server key.
Server key
Tồn tại tạm thời, là khoá bất đối xứng dùng trong giao thức SSH-1. Nó đựợc
tái tạo bởi server theo chu kỳ thường xuyên ( mặc định là mỗi giờ) và bảo
vệ session key. Thường bị lộn với host key. Khố này thì khơng bao giờ
lOMoARcPSD|17343589
được lưu trên đĩa và thành phần bí mật của nó khơng bao giờ được truyền
qua kết nối ở bất cứ dạng nào, nó cung cấp “perfect forward secrecy” cho
phiên SSH-1
Session key
Là một giá trị phát sinh ngẫu nhiên, là khố đối xứng cho việc mã hố truyền
thơng giữa một SSH client và SSH server. Nó được chia ra làm 2 thành phần
cho client và server trong một loại bảo bật trong suốt quá trình thiết lập kết
nối SSH để kẻ xấu khơng phát hiện được nó.
Key generator
Một chương trình tạo ra những loại khoá lâu dài( user key và host key) cho
SSH. SSH1, SSH2 và OpenSSH có chương trình ssh-keygen
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
A program that caches user keys in memory, so users needn't keep retyping
their passphrases. The agent responds to requests for key-related operations,
such as signing an authenticator, but it doesn't disclose the keys themselves.
It is a convenience feature. SSH1, SSH2, and OpenSSH have the agent
ssh-agent, and the program ssh-add loads and unloads the key cache.
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 khố của chúng. Nó là một đặc điểm rất có ích. SSH1,
SSH2 và OpenSSH có agent ssh-agent và chương trình ssh-add để xếp vào
và lấy ra khố được lưu.
Signer
Một chương trình kí hiệu gói chứng thực hostbased.
Random seed
A pool of random data used by SSH components to initialize software
pseudo-random number generators.
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 khố.
5. Bên trong SSH-2
Giao thức SSH-2 được chia làm 4 bộ phận chính, được diễn tả như 4 giao
thức riêng rẽ trong nhiều tài liệu IETF khác nhau. Theo thông thường,
lOMoARcPSD|17343589
chúng được sắp xếp cùng với nhau để cung cấp thiết lập các dịch vụ mà hầu
hết người dùng kết hợp chúng thành một SSH-2 đầ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)
SSH-TRANS là khối xây dựng cơ bản cung cấp kết nối ban đầu, ghi chép
giao thức, xác thực server, mã hóa cơ bản và các dịch vụ bảo tồn. - Sau khi
thiết lập SSH-TRANS, Client có 1 kết nối đơn, đảm bảo, luồng truyền byte
full-duplex đến 1 xác nhận tương đương. - Tiếp theo, client dùng SSHAUTH thông qua kết nối SSH-TRANS đến xác thực của chính nó với server.
SSH-AUTH định nghĩa một cái khung đối với việc nhiều cơ chế xác thực
có thể được sử dụng. - SSH-AUTH chỉ u cầu một phương thức: khố cơng
cộng với thuật toán DSS. - Sau khi xác thực, SSH client yêu cầu giao thức
SSH-CONN để cung cấp một sự đa dạng của các dịch vụ thông qua một
kênh đơn cung cấp bởi SSH-TRANS. - 1 kênh thường bao gồm: những
luồng đa thành phần khác nhau (hoặc channel) ngang qua kết nối bên dưới,
quản lý X, TCP và agent forwarding, truyền tín hiệu thông qua kết nối, nén
dữ liệu và thực thi chương trình từ xa.
Cuối cùng, một ứng dụng có thể sử dụng SSH-SFTP qua một kênh SSHCONN để cung cấp truyền file và các chức năng thao tác hệ thống tập tin từ
xa.
6. Các thuật toán được sử dụng trong SSH
SSH hỗ trợ nhiều loại thuật tốn mã hóa public-key:
rsa – thuật toán được sử dụng nhiều nhất, ra đời từ năm 1977 dựa trên
sự phức tạp của việc phân tích thừa số nguyên tố. Khi sử dụng nên
kèm theo kích thước của khóa ít nhất là 2048 bits, tốt nhất nên là 4096
bits.
dsa -thuật tốn dựa trên tính phức tạp của việc tính tốn logarit rời rạc.
Đã bị loại bỏ ở OpenSSH version 7 vì lý do bảo mật.
ecdsa – thuật toán dựa trên toạ độ của các điểm dựa trên đường cong
Elliptic. Có thể thay thế cho RSA bởi mức an toàn và tốc độ xử lý cao
hơn, kèm theo đó là việc sử dụng khố có độ dài nhỏ hơn so với RSA.
Từ đó làm tăng tốc độ xử lý một cách đáng kể. Chỉ hỗ trợ với 3 loại
kích thước khóa: 256, 384, and 521 bits. Để an tồn nhất thì nên sử
dụng 521 bits !
ed25519 – một thuật toán được thêm vào OpenSSH từ version 6.5. Là
bản cải tiến của ECDSA, cung cấp bảo khả năng mật tốt hơn với hiệu
lOMoARcPSD|17343589
suất nhanh hơn so với DSA hoặc ECDSA. Chưa thực sự phổ cập trên
tồn thế giới.
7. Các loại tấn cơng mà SSH có thể cản được
- Eavesdropping
Tấn cơng nghe lén là một hành vi trộm cắp thơng tin khi nó được truyền
qua mạng bởi một máy tính, điện thoại thơng minh hoặc một thiết bị được
kết nối khác.
Cuộc tấn công lợi dụng thông tin liên lạc mạng không bảo mật để truy cập
dữ liệu khi nó được gửi hoặc nhận bởi người dùng.
Nghe lén là một thuật ngữ tương đối nhẹ. Những kẻ tấn cơng thường lần
mị tìm kiếm thơng tin tài chính và kinh doanh nhạy cảm có thể được bán
dưới hình thức phạm tội. Ngồi ra ngày càng có nhiều người thực hiện cài
đặt nghe lén điện thoại vợ/chồng, cho phép mọi người nghe lén người thân
bằng cách theo dõi việc sử dụng điện thoại thông minh của họ.
Đặc điểm của Tấn công nghe lén
Một cuộc tấn công nghe lén có thể khó bị phát hiện vì các đường truyền
mạng sẽ hoạt động bình thường.
Để thành cơng, một cuộc tấn cơng nghe lén địi hỏi một kết nối giữa máy
khách và máy chủ mà kẻ tấn cơng có thể khai thác để định tuyến lại lưu
lượng mạng. Kẻ tấn công cài đặt phần mềm giám sát mạng trên máy tính
hoặc máy chủ để chặn dữ liệu khi nó được truyền đi.
Bất kì thiết bị nào trong mạng giữa thiết bị truyền và thiết bị nhận, cũng
như các thiết bị đầu tiên và thiết bị đầu cuối. đều là một điểm yếu dễ bị tấn
công.
- Gỉa mạo IP
Mạng máy tính giao tiếp thơng qua các gói dữ liệu. Mỗi gói này chứa nhiều
header, một trong số đó được gọi là "Source IP Address", chứa thông tin IP
của đối tượng gửi.
Giả mạo IP là hành vi sửa đổi nội dung Source IP header với các số ngẫu
nhiên, nhằm che dấu danh tính, mạo danh hệ thống khác, hoặc khởi tạo một
cuộc tấn công.
lOMoARcPSD|17343589
Thơng qua giả mạo IP, kẻ tấn cơng có thể chuyển hướng phản hồi, dễ dàng
đánh cắp và sử dụng dữ liệu người dùng, làm quá tải hoặc gián đoạn server,
ngồi ra cịn có thể lây nhiễm các phần mềm độc hại.
Kẻ tấn công thường giả mạo nhiều Source IP ngẫu nhiên để gây khó khăn
khó khăn cho việc ngăn chặn các cuộc tấn cơng vì gây hiểu lầm rằng chúng
xuất phát từ nhiều nguồn.
Giả mạo IP hầu hết là tiêu cực, có một số ít hợp pháp.
- 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, đánh cắp nó theo nghĩa
đen từ một điểm cuối hợp pháp. Đâ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 tồ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.
- Man in the Middle
8. Các mối nguy hiểm mà SSH không thể cản
Shellshock, một lỗ hổng bảo mật trong Bash command processor, có thể
được thực thi qua SSH nhưng nó là một lỗ hổng trong Bash chứ không phải
trong SSH. Mối đe dọa lớn nhất đối với SSH chính là khả năng quản lý key
khơng tốt. Nếu khơng tạo, xoay vịng và loại bỏ key SSH tập trung thích
hợp, các tổ chức hồn tồn có thể mất quyền kiểm sốt những người có
quyền truy cập vào tài nguyên, đặc biệt là khi SSH được sử dụng trong các
quy trình app-to-app tự động.