背景(简体)
我在生产服务器上使用持续集成和部署。例如,我有一个监控 Team City 并自动将构建的包部署到 IIS 的应用程序。
对于这段代码(我们编写的),我想防止中间人在前往生产服务器的途中修改程序集(或让他们更难)。如果有人成功更改了程序集(在传输中或在机器上本地),我想防止(或使其更难)这些程序集被执行。
我们已经采用了一整套安全措施来防止此类事情发生(例如,监视关键文件哈希以确保它们没有更改的代理、审计、最小用户权限等)。
我们想增加我们的推送节奏,但是我们用来监控文件哈希的第三方软件,可以说,“更新起来很麻烦”。
问题
假设我信任操作系统(包括 .net CLR)。我想知道是否可以利用 CLR 中的代码签名安全性构建。与 PowerShell 可能不允许您运行未签名的 powershell 脚本的方式类似。
是否可以这样做,即将 CLR 配置为仅运行来自列入白名单的一组公钥的签名程序集?
如果这是一个坏主意,请告诉我!