一种基于SM2,SM4国密算法提升SSH协议安全性的方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011559517.6
(22)申请日 2020.12.25
(71)申请人 北京航天云路有限公司
地址 100144 北京市海淀区西四环中路16
号院7号楼12层1201-3
(72)发明人 单酉 冀天宇 
(74)专利代理机构 北京世誉鑫诚专利代理有限
公司 11368
代理人 孙国栋
(51)Int.Cl.
H04L  29/06(2006.01)
(54)发明名称
一种基于SM2,SM4国密算法提升SSH协议
全性的方法
(57)摘要
本发明涉及网络技术领域,特别是涉及一种
基于SM2,SM4国密算法提升SSH协议安全性的方
法;使用国密算法SM2,SM4替换SSH协议中的对称
加密和非对称加密算法,提升SSH协议在涉密网
络中的安全,规避SSH协议在涉密网络中的安全
风险;包括以下步骤:在SSH连接过程中,将密钥
认证的算法替换为SM2国密算法,在客户端‑服务
器通信阶段,将对称加密算法替换为SM4国密算
法,
实现了支持国密算法的SSH协议。权利要求书1页  说明书3页  附图2页CN 112738064 A 2021.04.30
C N  112738064
A
1.一种基于SM2,SM4国密算法提升SSH协议安全性的方法,其特征在于,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为SM2国密算法,在客户端‑服务器通信阶段,将对称加密算法替换为SM4国密算法,实现了支持国密算法的SSH协议。
2.如权利要求1所述的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,其特征在于,具体步骤如下:
S1、将golang官方代码作为项目根目录;
S2、在项目根目录新建文件夹SM2和SM4,然后将代码库的SM2和SM4文件夹中的内容分别复制到新建的文件夹SM2和SM4中;
S3、修改文件,增加函数newSM4CTR(key ,iv[]byte)(cipher.Stream ,error),用来创建SM4算法对象;在cipherModes数组中增加"sm4128‑ctr"对象,用来提供其他方法调用;
S4、修改文件,supportedCiphers数组,preferredCiphers数组中增加对象"sm4128‑ctr",用来提供其他方法调用;
S5、修改文件,修改isAcceptableAlgo函数,增加KeyAlgoSM2P256,KeyAlgoSM4P256对象;
S6、修改ssh/agent/client文件,增加sm2KeyMsg结构体,sm2CertMsg结构体,并实现算法的序列化和反序列化方法,parseSM2Key,parseSM2Cert,unmarshalSM2。
权 利 要 求 书1/1页CN 112738064 A
一种基于SM2,SM4国密算法提升SSH协议安全性的方法
技术领域
[0001]本发明涉及网络技术领域,特别是涉及一种基于SM2,SM4国密算法提升SSH协议安全性的方法。
背景技术
[0002]Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。如图 1所示,为SSH连接过程图。SSH通过在网络中创建安全隧道来实现 SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows 10 1803版本已提供OpenSSH工具。
[0003]SSH以非对称加密实现身份验证。身份验证有多种途径,例如其中一种方法是使用自动生成的公钥‑私钥对来简单地加密网络连接,随后使用密码认证进行登录;另一种方法是人工生成一对公钥和私钥,通过生成的密钥进行认证,这样就可以在不输入密码的情况下登录。任何人都可以自行生成密钥。公钥需要放在待访问的电脑之中,而对应的私钥需要由用户自行保管。认证过程基于生成出来的私钥,但整个认证过程中私钥本身不会传输到网络中。
[0004]SSH协议有两个主要版本,分别是SSH‑1和SSH‑2。无论是哪个版本,核实未知密钥来源都是重要的事情,因为SSH只验证提供用户是否拥有与公钥相匹配的私钥,只要接受公钥而且密钥匹配服务器就会授予许可。这样的话,一旦接受了恶意攻击者的公钥,那么系统也会把攻击者视为合法用户。
[0005]在类Unix系统中,已许可登录的公钥通常保存在用户/home目录的~/.ssh/ authorized_keys文件中,该文件只由SSH使用。当远程机器持有公钥,而本地持有对应私钥时,登录过程不再需要手动输入密码。另外为了额外的安全性,私钥本身也能用密码保护。SSH要求私钥文件不能被多个用户访问,这在Linux上应该修改文件权限为 0600;在Windows上修改文件权限,删除Inheritance权限,然后授予自身用户是唯一Full control 权限。私钥会保存在固定位置,也可以通过命令行参数指定(例如ssh命令的“‑i”选项)。ssh‑keygen 是生成密钥的工具之一。SSH也支持基于密码的身份验证,此时密钥是自动生成的。若客户端和服务端从未进行过身份验证,SSH未记录服务器端所使用的密钥,那么攻击者可以模仿服务器端请求并获取密码,即中间人攻击。但是密码认证可以禁用,而且SSH 客户端在发现新密钥或
未知服务器时会向用户发出警告。
[0006]SSH的经典用途是登录到远程电脑中执行命令。除此之外,SSH 也支持隧道协议、端口映射和X11连接。借助SFTP或SCP协议,SSH 还可以传输文件。SSH使用客户端‑服务器模型,标准端口为22。服务器端需要开启SSH守护进程以便接受远端的连接,而用户需要使用 SSH客户端与其创建连接。大多数现代操作系统(包括macOS、大部分Linux、OpenBSD、FreeBSD、Solaris等系统)都提供了SSH,包括Windows系统也提供SSH程序(在Windows 10
1809版本之后)。在软件层次,许多关于SSH的专有软件、免费软件和开源软件被研发出来,如:文件管理软件(同步、复制、删除等)。如:PuTTY和Windows 下的WinSCP、类Unix系统下的Konqueror等。从云计算的角度上讲, SSH能够阻止一些因直接暴露在互联网而产生的安全问题,在解决连接问题上发挥了重要作用。SSH隧道可以在互联网、防火墙和虚拟机之间提供一个安全的通道。
[0007]在设计上,SSH是Telnet和非安全shell的替代品。Telnet和 Berkeley rlogin、rsh、rexec等协议采用明文传输,使用不可靠的密码,容易遭到监听、嗅探和中间人攻击。SSH旨在保证非安全网络环境(例如互联网)中信息加密完整可靠。
[0008]密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA‑1、RSA、AES等国际通用的密码算法体系及相关标准。2010年底,国家密码管理局公布了我国自
主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日起,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用国密算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。
发明内容
[0009]为解决上述技术问题,本发明提供一种基于SM2,SM4国密算法提升SSH协议安全性的方法,使用国密算法SM2,SM4替换SSH协议中的对称加密和非对称加密算法,提升SSH协议在涉密网络中的安全,规避SSH协议在涉密网络中的安全风险。
[0010]本发明的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为 SM2国密算法,在客户端‑服务器通信阶段,将对称加密算法替换为 SM4国密算法,实现了支持国密算法的SSH协议。
[0011]本发明的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,具体步骤如下:[0012]S1、将golang官方代码作为项目根目录;
[0013]S2、在项目根目录新建文件夹SM2和SM4,然后将代码库的SM2 和SM4文件夹中的内容分别复制到新建的文件夹SM2和SM4中;
[0014]S3、修改s s h/c i ph e r.g o文件,增加函数n e w SM4C TR(k e y,i v []by te) (cipher.Stream,error),用来创建SM4算法对象;在 cipherModes数组中增加"sm4128‑ctr"对象,用来提供其他方法调用;
[0015]S4、修改文件,supportedCiphers数组, preferredCiphers数组中增加对象"sm4128‑ctr",用来提供其他方法调用;
[0016]S5、修改文件,修改isAcceptableAlgo函数,增加KeyAlgoSM2P256, KeyAlgoSM4P256对象;
[0017]S6、修改ssh/agent/client文件,增加sm2KeyMsg结构体, sm2CertMsg结构体,并实现算法的序列化和反序列化方法, parseSM2Key,parseSM2Cert,unmarshalSM2。[0018]与现有技术相比本发明的有益效果为:SH协议只支持标准国际通用的加密算法,比如AES,RSA等,这对于我国涉密场所的信息安全而言是一项潜在的威胁,国密算法是国家密码局认定的国产商用密码算法,在保障信息安全方面发挥了重要作用,该方案通过修改
golang官方代码中SSH协议的标准实现 (github/golang/crypto),以国密算法代替了国际加密算法,代码能够直接编译为二进制文件,服务端能够轻松支持大量客户端连接,具有较高性能,同时,代码基于golang开发,可维护性好,对于后续的功能扩展有良好支持,具有优秀的可维护性。
附图说明
[0019]图1是现有技术中SHH连接过程图。
[0020]图2是本发明的SHH连接过程图。
具体实施方式
[0021]下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0022]本发明的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,包括以下步骤:在SSH连接过程中,将密钥认证的算法替换为 SM2国密算法,在客户端‑服务器通信阶段,将对称加密算法替换为 SM4国密算法,实现了支持国密算法的SSH协议。
[0023]本发明的一种基于SM2,SM4国密算法提升SSH协议安全性的方法,具体步骤如下:[0024]S1、将golang官方代码(github/golang/crypto) 作为项目根目录;[0025]S2、在项目根目录新建文件夹SM2和SM4,然后将代码库 (github/ tjfoc/gmsm)的SM2和SM4文件夹中的内容分别复制到新建的文件夹SM2和SM4中;
[0026]S3、修改s s h/c i ph e r.g o文件,增加函数n e w SM4C TR(k e y,i v []by te) (cipher.Stream,error),用来创建SM4算法对象;在cipherModes数组中增加"sm4128‑ctr"对象,用来提供其他方法调用;
[0027]S4、修改文件,supportedCiphers数组, preferredCiphers数组中增加对象"sm4128‑ctr",用来提供其他方法调用;
[0028]S5、修改文件,修改isAcceptableAlgo函数,增加KeyAlgoSM2P256, KeyAlgoSM4P256对象;
[0029]S6、修改ssh/agent/client文件,增加sm2KeyMsg结构体, sm2CertMsg结构体,并实现算法的序列化和反序列化方法, parseSM2Key,parseSM2Cert,unmarshalSM2。[0030]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

本文发布于:2024-09-22 10:03:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/448115.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   密码   协议   国密   公钥   使用   方法   提供
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议