msmq身份验证会降低加密速度

时间:2015-09-01 14:01:41

标签: wcf msmq msmqintegrationbinding

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

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

我的要求是加密传输,我可以不经过身份验证。我更喜欢WCF客户端,因为可以从app.config更改设置。

msmqIntegrationBinding有没有办法在没有身份验证的情况下进行传输加密?

    <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
    android:id="@+id/ivGridMyApp"
    android:layout_width="match_parent"
    android:layout_height="100dp" /></LinearLayout>

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

    <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>

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

WindowsDomain身份验证表示Kerberos身份验证。它必然是一个多代理协议(使用诸如发送的4+个不同消息之类的东西)。由于您使用的是阻止.Send()方法。这会限制你的速率(由于多个延迟路径),如果你没有引入某些异步性和并发性。

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

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