一种基于SM2,SM4国密算法提升SSH协议安全性的方法技术

技术编号:28300798 阅读:16 留言:0更新日期:2021-04-30 16:29
本发明专利技术涉及网络技术领域,特别是涉及一种基于SM2,SM4国密算法提升SSH协议安全性的方法;使用国密算法SM2,SM4替换SSH协议中的对称加密和非对称加密算法,提升SSH协议在涉密网络中的安全,规避SSH协议在涉密网络中的安全风险;包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为SM2国密算法,在客户端‑服务器通信阶段,将对称加密算法替换为SM4国密算法,实现了支持国密算法的SSH协议。

【技术实现步骤摘要】
一种基于SM2,SM4国密算法提升SSH协议安全性的方法
本专利技术涉及网络
,特别是涉及一种基于SM2,SM4国密算法提升SSH协议安全性的方法。
技术介绍
SecureShell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。如图1所示,为SSH连接过程图。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows101803版本已提供OpenSSH工具。SSH以非对称加密实现身份验证。身份验证有多种途径,例如其中一种方法是使用自动生成的公钥-私钥对来简单地加密网络连接,随后使用密码认证进行登录;另一种方法是人工生成一对公钥和私钥,通过生成的密钥进行认证,这样就可以在不输入密码的情况下登录。任何人都可以自行生成密钥。公钥需要放在待访问的电脑之中,而对应的私钥需要由用户自行保管。认证过程基于生成出来的私钥,但整个认证过程中私钥本身不会传输到网络中。SSH协议有两个主要版本,分别是SSH-1和SSH-2。无论是哪个版本,核实未知密钥来源都是重要的事情,因为SSH只验证提供用户是否拥有与公钥相匹配的私钥,只要接受公钥而且密钥匹配服务器就会授予许可。这样的话,一旦接受了恶意攻击者的公钥,那么系统也会把攻击者视为合法用户。在类Unix系统中,已许可登录的公钥通常保存在用户/home目录的~/.ssh/authorized_keys文件中,该文件只由SSH使用。当远程机器持有公钥,而本地持有对应私钥时,登录过程不再需要手动输入密码。另外为了额外的安全性,私钥本身也能用密码保护。SSH要求私钥文件不能被多个用户访问,这在Linux上应该修改文件权限为0600;在Windows上修改文件权限,删除Inheritance权限,然后授予自身用户是唯一Fullcontrol权限。私钥会保存在固定位置,也可以通过命令行参数指定(例如ssh命令的“-i”选项)。ssh-keygen是生成密钥的工具之一。SSH也支持基于密码的身份验证,此时密钥是自动生成的。若客户端和服务端从未进行过身份验证,SSH未记录服务器端所使用的密钥,那么攻击者可以模仿服务器端请求并获取密码,即中间人攻击。但是密码认证可以禁用,而且SSH客户端在发现新密钥或未知服务器时会向用户发出警告。SSH的经典用途是登录到远程电脑中执行命令。除此之外,SSH也支持隧道协议、端口映射和X11连接。借助SFTP或SCP协议,SSH还可以传输文件。SSH使用客户端-服务器模型,标准端口为22。服务器端需要开启SSH守护进程以便接受远端的连接,而用户需要使用SSH客户端与其创建连接。大多数现代操作系统(包括macOS、大部分Linux、OpenBSD、FreeBSD、Solaris等系统)都提供了SSH,包括Windows系统也提供SSH程序(在Windows101809版本之后)。在软件层次,许多关于SSH的专有软件、免费软件和开源软件被研发出来,如:文件管理软件(同步、复制、删除等)。如:PuTTY和Windows下的WinSCP、类Unix系统下的Konqueror等。从云计算的角度上讲,SSH能够阻止一些因直接暴露在互联网而产生的安全问题,在解决连接问题上发挥了重要作用。SSH隧道可以在互联网、防火墙和虚拟机之间提供一个安全的通道。在设计上,SSH是Telnet和非安全shell的替代品。Telnet和Berkeleyrlogin、rsh、rexec等协议采用明文传输,使用不可靠的密码,容易遭到监听、嗅探和中间人攻击。SSH旨在保证非安全网络环境(例如互联网)中信息加密完整可靠。密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA-1、RSA、AES等国际通用的密码算法体系及相关标准。2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日起,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用国密算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。
技术实现思路
为解决上述技术问题,本专利技术提供一种基于SM2,SM4国密算法提升SSH协议安全性的方法,使用国密算法SM2,SM4替换SSH协议中的对称加密和非对称加密算法,提升SSH协议在涉密网络中的安全,规避SSH协议在涉密网络中的安全风险。本专利技术的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为SM2国密算法,在客户端-服务器通信阶段,将对称加密算法替换为SM4国密算法,实现了支持国密算法的SSH协议。本专利技术的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,具体步骤如下:S1、将golang官方代码作为项目根目录;S2、在项目根目录新建文件夹SM2和SM4,然后将代码库的SM2和SM4文件夹中的内容分别复制到新建的文件夹SM2和SM4中;S3、修改ssh/cipher.go文件,增加函数newSM4CTR(key,iv[]byte)(cipher.Stream,error),用来创建SM4算法对象;在cipherModes数组中增加"sm4128-ctr"对象,用来提供其他方法调用;S4、修改ssh/common.go文件,supportedCiphers数组,preferredCiphers数组中增加对象"sm4128-ctr",用来提供其他方法调用;S5、修改ssh/server.go文件,修改isAcceptableAlgo函数,增加KeyAlgoSM2P256,KeyAlgoSM4P256对象;S6、修改ssh/agent/client文件,增加sm2KeyMsg结构体,sm2CertMsg结构体,并实现算法的序列化和反序列化方法,parseSM2Key,parseSM2Cert,unmarshalSM2。与现有技术相比本专利技术的有益效果为:SH协议只支持标准国际通用的加密算法,比如AES,RSA等,这对于我国涉密场所的信息安全而言是一项潜在的威胁,国密算法是国家密码局认定的国产商用密码算法,在保障信息安全方面发挥了重要作用,该方案通过修改golang官方代码中SSH协议的标准实现(https://github.com/golang/crypto),以国密算法代替了国际加密算法,代码能够直接编译为二进制文件,服务端能够轻松支持大量客户端连接,具有较高性能,同时,代码基于golang开发,可维本文档来自技高网
...

【技术保护点】
1.一种基于SM2,SM4国密算法提升SSH协议安全性的方法,其特征在于,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为SM2国密算法,在客户端-服务器通信阶段,将对称加密算法替换为SM4国密算法,实现了支持国密算法的SSH协议。/n

【技术特征摘要】
1.一种基于SM2,SM4国密算法提升SSH协议安全性的方法,其特征在于,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为SM2国密算法,在客户端-服务器通信阶段,将对称加密算法替换为SM4国密算法,实现了支持国密算法的SSH协议。


2.如权利要求1所述的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,其特征在于,具体步骤如下:
S1、将golang官方代码作为项目根目录;
S2、在项目根目录新建文件夹SM2和SM4,然后将代码库的SM2和SM4文件夹中的内容分别复制到新建的文件夹SM2和SM4中;
S3、修改ssh/cipher.go文件,增加函数newSM4CTR(key,iv[]byte)(cipher.Stream,...

【专利技术属性】
技术研发人员:单酉冀天宇
申请(专利权)人:北京航天云路有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1