zhangke5959 / strongswan

支持国密sm1,sm2,sm3,sm4算法的ipsec vpn。
Other
99 stars 74 forks source link

基于内核xfrm的国密算法是否能调通 #10

Open sup-andy opened 4 years ago

sup-andy commented 4 years ago

基于内核xfrm的ipsec始终调试不通,不知作者是否调通了,现把我的操作步骤贴出来,希望作者能指出其中错误的地方:

1、合入soft_alg仓库中xfrm_algo.c国密相关算法到内核中的同名文件(完全照搬会有一点编译错误,稍作修正可编译通过),然后替换加载编译出来的内核。 2、指定内核版本,编译soft_alg,得到soft_alg.ko,然后insmod到内核。 3、编译strongswan,具体命令为:./configure --prefix=/ipsec --enable-kernel-libipsec --enable-gmalg ,然后编译,安装,再打包整个/ipsec目录,然后拷贝到目标板。 4、调用testing/tests/gmalg/ipsec_cert下的sm2.sh,生成证书文件,然后把整个testing/tests/gmalg分别拷贝到客户端和服务器。5、在客户端和服务器执行local.sh,然后客户端执行run_libipsec.sh,init_client.sh,run.sh。服务器执行run_libipsec.sh,init_server.sh,run.sh。

结果如下: 04[NET] received packet: from 192.168.181.130[500] to 192.168.181.129[500] (268 bytes) [NET] received packet: from 192.168.181.130[500] to 192.168.181.129[500] (268 bytes) 04[ENC] parsed QUICK_MODE response 3588401551 [ HASH SA No KE ID ID ] 04[CFG] selected proposal: ESP:SM4_CBC_128/HMAC_SM3/CURVE_SM2/NO_EXT_SEQ [ENC] parsed QUICK_MODE response 3588401551 [ HASH SA No KE ID ID ] [CFG] selected proposal: ESP:SM4_CBC_128/HMAC_SM3/CURVE_SM2/NO_EXT_SEQ 04[KNL] received netlink error: Function not implemented (38) 04[KNL] unable to add SAD entry with SPI ca5279ab (FAILED) [KNL] received netlink error: Function not implemented (38) 04[KNL] received netlink error: Function not implemented (38) 04[KNL] unable to add SAD entry with SPI cfbd3394 (FAILED) 04[IKE] unable to install inbound and outbound IPsec SA (SAD) in kernel 04[KNL] deleting policy 192.168.181.130/32 === 192.168.181.129/32 in failed, not found 04[KNL] deleting policy 192.168.181.130/32 === 192.168.181.129/32 fwd failed, not found

wangyongzx commented 3 years ago

基于内核xfrm的ipsec始终调试不通,不知作者是否调通了,现把我的操作步骤贴出来,希望作者能指出其中错误的地方:

1、合入soft_alg仓库中xfrm_algo.c国密相关算法到内核中的同名文件(完全照搬会有一点编译错误,稍作修正可编译通过),然后替换加载编译出来的内核。 2、指定内核版本,编译soft_alg,得到soft_alg.ko,然后insmod到内核。 3、编译strongswan,具体命令为:./configure --prefix=/ipsec --enable-kernel-libipsec --enable-gmalg ,然后编译,安装,再打包整个/ipsec目录,然后拷贝到目标板。 4、调用testing/tests/gmalg/ipsec_cert下的sm2.sh,生成证书文件,然后把整个testing/tests/gmalg分别拷贝到客户端和服务器。5、在客户端和服务器执行local.sh,然后客户端执行run_libipsec.sh,init_client.sh,run.sh。服务器执行run_libipsec.sh,init_server.sh,run.sh。

结果如下: 04[NET] received packet: from 192.168.181.130[500] to 192.168.181.129[500] (268 bytes) [NET] received packet: from 192.168.181.130[500] to 192.168.181.129[500] (268 bytes) 04[ENC] parsed QUICK_MODE response 3588401551 [ HASH SA No KE ID ID ] 04[CFG] selected proposal: ESP:SM4_CBC_128/HMAC_SM3/CURVE_SM2/NO_EXT_SEQ [ENC] parsed QUICK_MODE response 3588401551 [ HASH SA No KE ID ID ] [CFG] selected proposal: ESP:SM4_CBC_128/HMAC_SM3/CURVE_SM2/NO_EXT_SEQ 04[KNL] received netlink error: Function not implemented (38) 04[KNL] unable to add SAD entry with SPI ca5279ab (FAILED) [KNL] received netlink error: Function not implemented (38) 04[KNL] received netlink error: Function not implemented (38) 04[KNL] unable to add SAD entry with SPI cfbd3394 (FAILED) 04[IKE] unable to install inbound and outbound IPsec SA (SAD) in kernel 04[KNL] deleting policy 192.168.181.130/32 === 192.168.181.129/32 in failed, not found 04[KNL] deleting policy 192.168.181.130/32 === 192.168.181.129/32 fwd failed, not found

你好,这个问题你解决了没 ?我也遇到同样的问题

sup-andy commented 3 years ago

问题已解决

RoseBL commented 2 years ago

请问这个问题是怎么解决的呢?

sup-andy commented 2 years ago

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

RoseBL commented 2 years ago

请问您不基于内核xfrm的跑通了吗?

RoseBL commented 2 years ago

能发一下你合并后的xfrm_algo.c嘛?

------------------ 原始邮件 ------------------ 发件人: "zhangke5959/strongswan" @.>; 发送时间: 2021年10月14日(星期四) 下午5:48 @.>; @.**@.>; 主题: Re: [zhangke5959/strongswan] 基于内核xfrm的国密算法是否能调通 (#10)

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

RoseBL commented 2 years ago

您好!最终你调试通了吗?

shockingchen commented 2 years ago

您好 问下代码怎么合的?

Dragonboat777 commented 2 years ago

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

请问,是只加载soft_alg.ko文件?还是修改xfrm_algo.c文件后,重新编译内核?

bin-wang1 commented 1 year ago

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

请问,是只加载soft_alg.ko文件?还是修改xfrm_algo.c文件后,重新编译内核?

朋友,解决了吗?怎么使用soft_alg

Ruifu-Su commented 1 year ago

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

请问,是只加载soft_alg.ko文件?还是修改xfrm_algo.c文件后,重新编译内核?

朋友,解决了吗?怎么使用soft_alg

朋友你好,我最近也在研究国密IPSecVPN,可以加个联系方式嘛,我们遇到问题可以一起讨论,谢谢!😃(邮箱在我的Github主页)

Ruifu-Su commented 1 year ago

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

请问,是只加载soft_alg.ko文件?还是修改xfrm_algo.c文件后,重新编译内核?

朋友,解决了吗?怎么使用soft_alg

朋友你好,我的邮箱是suruifu@nuaa.edu.cn,我最近也在研究国密IPSecVPN,咱们加个联系方式一起研究一下吧。😃

bin-wang1 commented 1 year ago

好的!没有问题。咱们通过邮箱联系哈。我是使用highland0971这个人的代码,结果跑不通,猜测是xfrm的问题。就去了zhangke5959的仓库。 highland0971/strongswan-gmalg-merge: strongSwan - SM2,SM3,SM4 algorithm integration (github.com) 你这边解决soft_alg的使用问题了吗?  

王斌 @.***

 

------------------ 原始邮件 ------------------ 发件人: "苏瑞辅 @.>; 发送时间: 2023年4月12日(星期三) 下午5:46 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [zhangke5959/strongswan] 基于内核xfrm的国密算法是否能调通 (#10)

请问这个问题是怎么解决的呢? 自己的失误,内核中xfrm_algo.c合错了位置,修正后问题解决

请问,是只加载soft_alg.ko文件?还是修改xfrm_algo.c文件后,重新编译内核?

朋友,解决了吗?怎么使用soft_alg

朋友你好,我最近也在研究国密IPSecVPN,可以加个联系方式嘛,我们遇到问题可以一起讨论,谢谢!😃(邮箱在我的Github主页)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

crab2313 commented 10 months ago

xfrm_algo.c的改动在新的内核上应该是已经有的,大概是5.17:

https://lore.kernel.org/netdev/1640164019-42341-2-git-send-email-xujia39@huawei.com/t/

soft_alg剩余的实现就是实现sm3,sm4算法,这些在比较新的内核中也是有的,可以直接打开开关,让内核支持。作者提供的sm3算法有问题,导致派生的hmac(sm3)也存在问题,会导致服务端ping不通客户端。如果内核版本比较低,没有sm3和sm4的支持,那么一定要backport高版本的sm3和sm4支持到低版本内核。

bin-wang1 commented 10 months ago

优秀的你! 

王斌 @.***

 

------------------ 原始邮件 ------------------ 发件人: "Qiu @.>; 发送时间: 2023年10月13日(星期五) 下午2:04 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [zhangke5959/strongswan] 基于内核xfrm的国密算法是否能调通 (#10)

xfrm_algo.c的改动在新的内核上应该是已经有的,大概是5.17:

@.***/t/

soft_alg剩余的实现就是实现sm3,sm4算法,这些在比较新的内核中也是有的,可以直接打开开关,让内核支持。作者提供的sm3算法有问题,导致派生的hmac(sm3)也存在问题,会导致服务端ping不通客户端。如果内核版本比较低,没有sm3和sm4的支持,那么一定要backport高版本的sm3和sm4支持到低版本内核。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>