繁体   English   中英

msmq身份验证减慢了加密速度

[英]msmq authentication slows encryption

当发送加密的msmq消息时,似乎认证速度降低了(从2500 msg / sec降低到150 msgs / sec)。

对于System.Messaging.MessageQueue和具有msmqIntegration绑定的Wcf客户端,似乎都是这种情况。

我的要求是加密传输,我可以不进行身份验证。 我希望使用WCF客户端,因为可以从app.config更改设置。

msmqIntegrationBinding是否可以在没有身份验证的情况下进行传输加密?

    <msmqIntegrationBinding>
        <binding name="VisionAirMessagingBinding"
            timeToLive="12:00:00"
            maxReceivedMessageSize="4100000"
            receiveErrorHandling="Move"
            retryCycleDelay="00:30:00"
            useMsmqTracing="false"
            serializationFormat="Stream">
            <security mode="Transport">
                <transport msmqAuthenticationMode="WindowsDomain"
                    msmqEncryptionAlgorithm="RC4Stream"
                    msmqProtectionLevel="EncryptAndSign"
                    msmqSecureHashAlgorithm="Sha1"/>
                    </security>
                </binding>

我发现使用系统时,通过注释掉以下内容使身份验证减慢了速度。

q1.Send(new Message 
{
    BodyStream = new MemoryStream(
        Encoding.ASCII.GetBytes("ABCDEFGHIJKLMNOPQRSTUVXYZ")),
        Label = i.ToString(),
        //UseAuthentication = true,
        UseEncryption = true
}, msmqTx);

如果我打开身份验证,发送将再次变慢!

感谢您的帮助!

WindowsDomain身份验证表示Kerberos身份验证。 它必须是多代理协议(使用发送4个或更多不同消息之类的协议)。 由于您使用的是.Send()方法。 如果您不引发一些异步性/并发性,这将限制您的速率(由于多个延迟路径)。

您可能会发现切换到简单的Certificate身份验证就足够了。

结果是服务器将在没有用户凭据的情况下执行消息,但将进行身份验证(您知道谁发送了消息,但无法提升该用户的权限)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM