感谢某陈姓大佬
总体过程
首先清除上次运行的相关文件,然后配置路由策略和切面路由策略,接着依此读入_Alice_crypt.def、_Bob_crtpt.def、_receiver.def、_transfer.def,并根据文件的配置,依此启动A2B目录下的实例,最后读入_sender.def 并发送文件。
加密与发送
_Alice_crypthub实例
设置连接配置文件,配置一个本地加密服务crypt_server,打开127.0.0.1:12111端口,以便接收sender所发送的文件,设置plugin_config.cfg载入加密模块中的sm4crypt插件,并赋予插件初始值信息(包含加密密钥),路由策略中,匹配成功的文件消息从connector_proc发出后,分发到crypt模块。
sender实例
设置连接配置文件,添加了一个与 crypt_server相连的客户端设置(crypt_clienr),打开了127.0.0.1:12111,还添加了一个file_client客户端,打开了12500端口。将遵循切面路由策略的文件消息发送给crypt_client,也就是将其传到_Alice_crypthub实例,在经过加密处理后以密文方式传回,但保持消息头的有效性,以支持消息的继续传递。路由策略中设置了模块功能的连接。
transfer
transfer实例
设置连接配置文件,打开12600和12500端口,建立转发端port_client分别连接文件发送端与接受端,设置transfer实例的目的在于方便之后添加文件监听实例(切面路由策略中实现),以便对不安全场景进行进一步模拟。
接收与解密
B_crypthub实例
设置连接配置文件,打开12211端口,建立解密端cryptohub_recv,plugin_config.cfg中载入加密模块中的sm4crypt插件,并赋予插件初始值信息(包含加密密钥),路由策略中匹配成功的文件消息从connector_proc发出后,分发到crypt模块。
receiver实例
设置连接配置文件,打开12211和12600端口,建立解密端和文件接收端。将遵循切面路由策略的文件消息发送给crypt_client,也就是将其传到_B_crypthub实例中进行解密
运行结果