MSMQ认证降低加密速度



当发送加密的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认证就足够了。

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

相关内容

  • 没有找到相关文章

最新更新