【问题标题】:DCOM Hardening - Autentication level for callsDCOM 强化 - 呼叫的身份验证级别
【发布时间】:2022-07-21 19:55:03
【问题描述】:

MS 正在更改 DCOM 的最低安全级别。 COM+ 应用程序的设置“呼叫身份验证级别”将设置为最低“数据包完整性”,这将在 2023 年 3 月之前强制执行。

根据 Microsoft 的说法,处理此问题的正确方法是通过编程在您的应用程序中进行此更改,而不是更改计算机服务>COM+ 应用程序下的 com+ 应用程序的设置。有没有人从中获得经验,它是如何完成的? 我和我的团队正在为此苦苦挣扎。我们使用 Delphi RAD Studio,但我猜这并不重要,原则可能是相同的。

我们已经研究了通过编程来更改此设置的可能性,但如果不完全重写 Delphi 核心功能,这似乎是不可能的。当 com+ 对象由 Delphi 核心函数创建时,存在未设置的身份验证级别属性,将其留为“空白”。我们将其解释为它将在 COM+ 应用程序下应用 COM+ 对象的身份验证级别。

还有一个功能 CoInitializeSecurity 实际上似乎是一个更合理的替代方案,但仍不清楚。有人吗?

【问题讨论】:

    标签: com+ dcom hardening


    【解决方案1】:

    我们只是在 Delphi 应用程序中使用 CoInitializeSecurity 函数解决了这个问题,它就可以工作了。

    我们做了两种类型:

    type
      TAuthenticationLevel = (
        alMclDefault,
        alMclNone,
        alMclConnect,
        alMclCall,
        alMcllPacket,
        alMclPacketIntegrity,
        alMclPacketPrivacy
      );
      TImpersonationLevel = (
        ilMclNone,  // dummy
        ilMclAnonymous,
        ilMclIdentify,
        ilMclImpersonate,
        ilMclDelegate
      );
    

    在 mainform.pas 结束时,初始化调用:

    initialization
      OleCheck(CoInitializeSecurity(nil, -1, nil, nil, ord(alMclPacketIntegrity), ord(ilMclIdentify), nil, 0, nil));
    end.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-14
      • 2013-09-10
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      相关资源
      最近更新 更多