Encryption 光子服务器上的强制加密

Encryption 光子服务器上的强制加密,encryption,cryptography,photon,Encryption,Cryptography,Photon,国家 在我们提供的应用程序框架(Lite、负载平衡等)中, 如果发送的操作是加密的,服务器会自动响应加密的。 这使得只需在打开加密的情况下请求即可安全地获取关键数据 是否可以在服务器端强制执行?因此,如果调用或接收操作时未加密,光子不会处理某些事件?您只需为客户端捕获OnStatusChanged,并在接收到Connect类型状态更改后,可以在客户端调用buildencryption方法 这将发出所有通信都要加密的要求。您将希望放弃所有请求,直到收到类型为EncryptionEstablishe

国家

在我们提供的应用程序框架(Lite、负载平衡等)中, 如果发送的操作是加密的,服务器会自动响应加密的。 这使得只需在打开加密的情况下请求即可安全地获取关键数据


是否可以在服务器端强制执行?因此,如果调用或接收操作时未加密,光子不会处理某些事件?

您只需为客户端捕获
OnStatusChanged
,并在接收到
Connect
类型状态更改后,可以在客户端调用
buildencryption
方法

这将发出所有通信都要加密的要求。您将希望放弃所有请求,直到收到类型为
EncryptionEstablished
的状态更改,并断开客户端连接。如果您看到
EncryptionFailedToEstablish
,这将为您提供在加密完全建立之前不会处理任何事件的功能

至于在每个操作的基础上执行此操作,这将有点棘手。我建议把所有东西都加密。开销很小,可以解决您的问题。至于额外的CPU时间、RAM利用率或网络流量,则完全可以忽略不计


有关此行为实现的详细信息,您可以查看。

是-您可以检查客户端是否在对等方的OnOperationRequest中发送了加密的请求:

protected override void OnOperationRequest(OperationRequest request, SendParameters sendParameters)
{
...
if (!sendParameters.Encrypted)
{
    string message = string.Format("Only encrypted operations allowed.");
    var response = new OperationResponse { ReturnCode = (short)ErrorCode.OperationDenied, DebugMessage = message, OperationCode = request.OperationCode };
    this.SendOperationResponse(response, sendParameters);
    return;
}
您可以实现自己的对等体并从框架对等体继承,看看Lite中的MyAppliction