基于加密网络的连接

更新时间:
2024-03-14
下载文档

基于加密网络的连接

基于网络的连接(telnet,ftp)方便高效,但是基于明文的通信,容易被窃取、篡改和攻击,存在网络安全问题,尤其在进行远程访问时,穿过复杂未知的公网环境非常危险,为此各种加密网络协议,通过加密加密算法保证内容的保密性和安全性。常用的加密网络协议有:SSH、SFTP、SCP、HTTPS等。

协议介绍

SSH 协议介绍

SSH (Secure Shell) 是一种用于安全远程访问计算机的协议。它提供了强大的加密和身份验证机制,可以确保您的远程访问是安全的。

SSH 协议分两个版本,SSH1 和 SSH2。SSH2 协议是在 SSH1 的基础上发展而来,它使用了更先进的加密算法和更可靠的身份验证机制。SSH2 协议支持以下三种身份验证方式:

  1. 密码身份验证:即用户输入密码进行身份验证。
  2. 公钥身份验证:使用公钥和私钥进行身份验证,这种方式更加安全。
  3. Kerberos 身份验证:使用 Kerberos 认证机制进行身份验证。

SSH2 协议还支持多种加密算法,包括AES、3DES、Blowfish 等,这些算法都是非常安全的。此外,SSH2 协议还支持端口转发和 X11 转发等功能,使得远程访问计算机更加方便和灵活。

SFTP 协议介绍

SFTP(SSHFile Transfer Protocol,也称 Secret File Transfer Protocol)是一种安全的文件传输协议,一种通过网络传输文件的安全方法,它确保使用私有并安全的数据流来安全地传输数据。

SFTP 要求客户端用户必须由服务器进行身份验证,并且数据传输必须通过安全通道(SSH)进行,即不传输明文密码或文件数据。它允许对远程文件执行各种操作,有点像远程文件系统协议。SFTP 允许从暂停传输、目录列表和远程文件删除等操作中恢复。

SFTP 和FTP非常相似,都支持批量传输(一次传输多个文件),文件夹/目录导航,文件移动,文件夹/目录创建,文件删除等。但还是存在着差异,下面我们来看看 SFTP 和 FTP 之间的区别:

  • 安全通道

    FTP不提供任何安全通道来在主机之间传输文件;而 SFTP 协议提供了一个安全通道,用于在网络上的主机之间传输文件。

  • 使用的协议

    FTP使用 TCP/IP 协议。而 SFTP 是 SSH 协议的一部分,它是一种远程登录信息。

  • 链接方式

    FTP使用 TCP 端口 21 建立连接。而 SFTP 是在客户端和服务器之间通过 SSH 协议(TCP 端口 22)建立的安全连接来传输文件。

  • 安全性

    FTP密码和数据以纯文本格式发送,大多数情况下是不加密的,安全性不高。而 SFTP 会在发送之前加密数据,二进制的形式传递,是无法 "按原样" 阅读的,安全性较高。

SCP 命令介绍

SCP是Secure Copy Protocol的缩写, SCP 命令是基于SSH安全通信的远程文件拷贝命令。和 CP 命令类似,SCP也是把一个源文件拷贝到目标文件处,但 CP 命令用于本机内部各目录间拷贝,而SCP用于本机和远程主机间文件拷贝,且拷贝是基于SSH安全通信的,保证内容不被窃取、篡改。

SylixOS 加密网络通信前期准备

SylixOS 在内核 V3.0.0 之后才支持加密网络通信,是以中间件方式提供而不是内核自带,需要用IDEV6.0 来创建 base 工程。在 SylixOS 加密网络通信之前需要先部署相关动态支持库和应用程序,并初始化系统和用户密钥。

  1. 编译部署加密功能组件

    SylixOS 中的加密通信服务不是由内核提供而是通过功能组件提供的,创建 base 时需要添加 openssl , openssh 和 zlib 三个相关组件,编译并部署到目标设备中。

    这几个库最终提供了SSH,SFTP和SCP等一组加密通信功能。

  2. 执行 /usr/bin/ssh-keygen,生成 root 用户 rsa 密钥对。执行过程会有一些配置请求,不进行特殊配置的话一直回车即可,默认配置完成后将在 /root/。ssh/ 下生成公钥与私钥。然后拷贝公钥并命名为 authorized_keys 。如果需要为其他用户提供加密通信服务,需要在用户主目录下执行相同命令,以生成该用户的密钥对。

    [root@sylixos:/root]# /usr/bin/ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): #可输入秘钥存储路径,直接回车则使用括号中的默认路径
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):#可选择为rsa密钥对附加密码,直接回车则无密码
    Enter same passphrase again:#再次输入密码以确认
    Your identification has been saved in /root/.ssh/id_rsa
    Your public key has been saved in /root/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:xw+73n/PIV/ge2tDe2pz2/Shg4mi67KikesEhSEmgFY root@sylixos
    The key's randomart image is:
    +---[RSA 3072]----+
    |B..E             |
    |=+               |
    |o .              |
    | .       .       |
    |.       S +   .  |
    |..       . + . o |
    |o.        o +.oo+|
    |.+ .   . . = .*B@|
    |=...++o ..o .+*X@|
    +----[SHA256]-----+
    [root@sylixos:/root]#
    [root@sylixos:/root]# ls .ssh/ #查看生成的SRA密钥对
    id_rsa  id_rsa.pub
    [root@sylixos:/root]#
    [root@sylixos:/root]# cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys  #复制公钥以和程序预期一致
    copy complete. size:566(Bytes) time:0(s) speed:566(Bps)
    [root@sylixos:/root]# ls .ssh/
    authorized_keys  id_rsa  id_rsa.pub
    [root@sylixos:/root]#
    
  3. 执行/usr/bin/ssh-keygen -A,将在/etc/ssh目录下生成系统默认密钥。

    [root@sylixos:/root]# /usr/bin/ssh-keygen -A
    ssh-keygen: generating new host keys: RSA #密钥生成过程执行较久,请耐心等待
    ECDSA ED25519
    [root@sylixos:/root]# ls /etc/ssh/
    ssh_config              ssh_host_ed25519_key      ssh_host_rsa_key.pub
    ssh_host_ecdsa_key      ssh_host_ed25519_key.pub  sshd_config
    ssh_host_ecdsa_key.pub  ssh_host_rsa_key
    [root@sylixos:/root]#
    

以上步骤执行完毕,系统就具备加密通信的条件了。

SylixOS 做 SSH 服务端使用

为SylixOS系统部署加密通信组件并初始化本机密钥后,SSH服务默认是没有上电开启的,需要手动启动。执行/usr/sbin/sshd程序即可启动SSH服务,注意必须使用绝对路径。需要开启自启动的话,将该命令加入启动脚本/etc/startup.sh中即可。

PS命令查看有sshd进程则说明SSH服务启动成功。

[root@sylixos:/root]# /usr/sbin/sshd
[root@sylixos:/root]# ps

      NAME            FATHER      STAT  PID   GRP    MEMORY    UID   GID   USER
---------------- ---------------- ---- ----- ----- ---------- ----- ----- ------
kernel           <orphan>         R        0     0        0KB     0     0 root
sshd             <orphan>         R       16    16     6564KB     0     0 root

total vprocess: 2
[root@sylixos:/root]# 

然后就可以通过各种标准客户端通过SSH来登录目标系统了。

RealEvoIDE通过 SSH 连接设备。

SecureCRT 下 SSH 登录效果如下:

Windows下PowerShell登录效果如下:

Linux(debian12) 下登录效果如下:

SylixOS 做 SSH 客户端使用

SylixOS 可以使用 ssh 命令作为客户端登录其他主机。

命令基本格式为: ssh user@ip

[root@sylixos:/root]# ssh       
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command [argument ...]]
[root@sylixos:/root]# 

下面是SylixOS系统下登录Linux系统下的scilogyhunter用户。

[root@sylixos:/root]# 
[root@sylixos:/root]# ssh scilogyhunter@192.168.196.106
The authenticity of host '192.168.196.106 (192.168.196.106)' can't be established.
ED25519 key fingerprint is SHA256:Vl4CF4Zs753mES3G42ZhSJ2k0d9GKpl9/SuVIA/76PQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.196.106' (ED25519) to the list of known hosts.
scilogyhunter@192.168.196.106's password: 
Linux debian11 5.15.107-2-pve #1 SMP PVE 5.15.107-2 (2023-05-10T09:10Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jul 21 06:55:26 2023
scilogyhunter@debian11:~$ 
scilogyhunter@debian11:~$ exit
logout
Connection to 192.168.196.106 closed.
[root@sylixos:/root]# 

下面是SylixOS系统下登录另一台SylixOS系统的root用户。

[root@sylixos:/root]# 
[root@sylixos:/root]# ssh root@192.168.196.89
The authenticity of host '192.168.196.89 (192.168.196.89)' can't be established.
ED25519 key fingerprint is SHA256:CDvKOBvbRBWNhtcG+ws4WKrr8Z5QRO5bR2sTBYbGrVQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.196.89' (ED25519) to the list of known hosts.

                          [[                          (R)
 [[[[           [[[[      [[             [[[[    [[[[ 
[[  [[            [[                    [[  [[  [[  [[
[[      [[  [[    [[    [[[[    [[  [[  [[  [[  [[    
 [[     [[  [[    [[      [[    [[  [[  [[  [[   [[   
  [[    [[  [[    [[      [[     [[[[   [[  [[    [[  
   [[   [[  [[    [[      [[      [[    [[  [[     [[ 
    [[  [[  [[    [[      [[     [[[[   [[  [[      [[
[[  [[  [[  [[    [[      [[    [[  [[  [[  [[  [[  [[
 [[[[    [[[[   [[[[[[  [[[[[[  [[  [[   [[[[    [[[[ 
           [[                                         
          [[    KERNEL: LongWing(C) 3.2.1
       [[[[   COPYRIGHT ACOINFO Co. Ltd. 2006 - 2023

SylixOS license: Commercial & GPL.
SylixOS kernel version: 3.2.1 Code name: Cen-Ci swords

CPU     : Intel(R) Celeron(R) N5105 @ 2.00GHz
CACHE   : L1 D-CACHE 32KB L1 I-CACHE 32KB L2 U-CACHE 4MB L3 U-CACHE 16MB 
PACKET  : Standard PC Compatibles (32-Bits)
ROM SIZE: 0x00100000 Bytes (0x00000000 - 0x000fffff)
RAM SIZE: 0x10000000 Bytes (0x00000000 - 0x0fffffff)
BSP     : BSP version 1.2.0 for Cen-Ci swords
[root@sylixos2:/root]# 
[root@sylixos2:/root]# exit
Connection to 192.168.196.89 closed by remote host.
Connection to 192.168.196.89 closed.
[root@sylixos:/root]# 

SylixOS 做 SFTP 服务端使用

RealEvoIDE下通过SFTP连接设备效果。注意,如果IDE下创建设备链接使用的是加密模式,则所有和设备间的通信,包括命令行、文件传输、调试、系统监控等都是使用的加密模式。

filezilla软件下进行SFTP传输效果。

SylixOS 下使用 SCP 进行文件传输

[root@sylixos:/root]# scp
usage: scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]
           [-i identity_file] [-J destination] [-l limit] [-o ssh_option]
           [-P port] [-S program] [-X sftp_option] source ... target
[root@sylixos:/root]# 

从将Debian12系统的scilogyhunter用户主目录下的文件 updateaptsource.sh 拷贝到SylixOS系统的root用户主目录下。

[root@sylixos:/root]# 
[root@sylixos:/root]# ls
.ssh
[root@sylixos:/root]# scp scilogyhunter@192.168.196.106:updateaptsource.sh  . 
scilogyhunter@192.168.196.106's password: 
[root@sylixos:/root]# ls
.ssh  updateaptsource.sh
[root@sylixos:/root]# 

将本机文件 updateaptsource.sh 拷贝到另一台SylixOS系统的root用户主目录下,并以test重新命名文件。

[root@sylixos:/root]# 
[root@sylixos:/root]# scp updateaptsource.sh root@192.168.196.89:/root/test
The authenticity of host '192.168.196.89 (192.168.196.89)' can't be established.
ED25519 key fingerprint is SHA256:CDvKOBvbRBWNhtcG+ws4WKrr8Z5QRO5bR2sTBYbGrVQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes 
Warning: Permanently added '192.168.196.89' (ED25519) to the list of known hosts.
[root@sylixos:/root]# 

Windows下PowerShell中使用 scp 命令拷贝数据给SylixOS。

PS C:\> cd .\User\
PS C:\User> ls


    目录: C:\User


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2023/7/19     17:09                FileZilla-3.62.2
d-----         2023/7/19     16:22                SecureCRT_Portable
d-----         2023/7/18     19:59                test
d-----         2023/7/21     14:04                x86
-a----         2023/7/17     14:26     2071882269 RealEvo-6.0.6.exe
-a----         2023/7/18     19:59           9878 test.txt


PS C:\User>
PS C:\User> scp ./test.txt root@192.168.196.88:/root/test
The authenticity of host '192.168.196.88 (192.168.196.88)' can't be established.
ECDSA key fingerprint is SHA256:/KQE6i/kwwi+IDPiGOFjgVonAfofy+5TYV0nM77bczM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
root@192.168.196.88's password:
test.txt                                                                              100% 9878   617.2KB/s   00:00
PS C:\User>
文档内容是否对您有所帮助?
有帮助
没帮助