Microsoft 安全通报 4092731

10/11/2017

本文内容

Azure 云服务计算机密钥生成算法更新

发布时间:2018 年 5 月 8 日 | 2018 年 6 月 29 日更新

版本: 1.2

执行摘要

Microsoft 发布此安全通报是为了提供与为 Azure 云服务生成计算机密钥的方式更新相关的信息。此方案可能会影响正在使用 Azure 云服务 Web 角色的客户。现有部署中的计算机密钥是在熵不足的情况下生成的,并且使用了已启用的加密算法。

为了解决此问题,Microsoft 发布了一个算法更新,用于在新的 Azure 云服务 Web 角色部署中生成计算机密钥,包括使用保密性较强的随机数生成。除非重新部署,否则所有现有 Web 角色都将保留其先前生成的计算机密钥。如果知道某些详细信息,攻击者可能会猜出由已弃用的算法创建的计算机密钥。在某些情况下,易受攻击的计算机密钥可能允许安全功能绕过。

此通报可指导客户确认其是否受此情况的影响以及受影响时应采取的措施。

受影响的云服务

使用 Web 角色的 Azure 部署受此问题影响。唯一的例外情况是你在 CS 包的 Web.config 中提供了自己的计算机密钥。Azure 辅助角色、虚拟机以及所有其他 Azure 产品不受影响。

常见问题解答

1. 如何知晓我受到了影响?

除非你在 CS 包的 Web.config 中提供了自己的计算机密钥,否则所有 Azure 云服务 Web 角色都会受到此问题的影响。Azure 云服务辅助角色、虚拟机以及所有其他 Azure 产品不受影响。

ASP.NET 使用计算机密钥用于多种目的,包括:

防止篡改 Web 窗体视图状态数据

生成和验证 ASP.NET Web 窗体会话 Cookie

防止 CSRF 令牌

使用 machinekey.protect 和 machinekey.unprotect 方法加密。

2. 修复受影响的应用程序是否有什么先决条件?

是的,如果用适用于 .Net 的 Azure SDK 停用版本部署 Web 角色,则不会使用增强的计算机密钥生成算法。有关受支持的版本,请参阅 https://azure.microsoft.com/zh-cn/downloads/archive-net-downloads/。若要升级到受支持的版本,请单击先前引用的站点上的链接进行下载,并使用受支持的 SDK 版本重新部署项目。在确认使用受支持的 SDK 部署项目后,请按照本公告中的其他步骤进行操作。

3. 如何修复受影响的应用程序?

若要生成新的计算机密钥,你需要重新部署 .cspkg 和 .cscfg 作为新的云服务,在过渡槽中部署工作负载并执行交换部署(VIP 交换),或注入你自己的计算机密钥,然后执行同步升级。典型的更新部署操作是不够的。以下介绍了高级别缓解选项,详细步骤如下所示:

选项 1: 将工作负载部署到新的云服务。更新 CNAME 以使流量流向新的云服务。当零流量进入旧站点时,即可删除旧的云服务。

选项 2: 将云服务部署到过渡槽并执行交换部署。

选项 3: 在 Web.config 中生成你自己的计算机密钥并执行同步更新。这将同时更新所有实例,因此会导致应用程序出现故障时间。

我们建议你使用“选项 1”来避免出现故障时间。我们还建议你在低利用率期间执行缓解措施,因为在计算机密钥发生更改时会话可能会中断。

注意:使用选项 1 和选项 2 获得新的计算机密钥后,应用程序的 IP 地址将会更改。

4. 我已使用计算机密钥使用 MachineKey.Encode()/MachineKey.Protect() 加密持久性数据。我如何恢复数据?

如果 MachineKey 用于加密数据(使用 MachineKey.Encode()/MachineKey.Protect()),则在执行缓解步骤之前,必须使用在 web.config 中定义的旧计算机密钥和算法来解密数据(通过分别调用 MachineKey.Decode()/MachineKey.Unprotect())。完成缓解步骤后,对 MachineKey.Encode()/MachineKey.Protect() 和 MachineKey.Decode()/MachineKey.Unprotect() 的任何调用都将使用 web.config 中更新的计算机密钥和算法。

5. 我如何知道我的应用程序正在使用新的计算机密钥算法?

如果云服务中只有一个部署,则只需检查 Azure 管理门户中云服务的“证书”选项卡上的 Azure 计算机密钥证书即可。如果此证书存在,则部署将使用计算机密钥算法。

如果云服务(生产和过渡)中有两个部署,则需要将远程桌面转换为 Web 角色并查看 IIS 配置。如果看到计算机密钥证书,则将使用新的计算机密钥算法。你将需要对每个部署中的一个 Web 角色进行此检查。如果无法连接到 VM,请提交支持票证(#7 中的说明),我们的支持团队可以帮助确认你的部署是否在使用新的计算机密钥。

6. 什么是“用于 MachineKey 的 Microsoft Azure 服务管理”证书?

这是用于与增强算法一起加密计算机密钥的证书。

7. 谁管理“用于 MachineKey 的 Microsoft Azure 服务管理”证书,过期时会发生什么情况?

Azure 管理此证书。客户无需关心此证书的到期日期,因为它仅与新算法结合使用一次以生成新的计算机密钥。到期日期不会造成任何影响。

8. 证书是否可以从 VM 中删除或移除?

否,不能移除证书。

9. 如果我对缓解步骤有疑问,我该怎么办?

请使用标准上报流程在云服务下提交支持案例。若要在 Azure 门户中上报,请按照下列步骤操作:

在 Azure 门户中转到“帮助 + 支持”。

选择“技术”问题类型。

选择你的订阅,然后在“服务”中选择“云服务(Web 角色/辅助角色)”服务。

单击“下一步”,选择“MachineKey 证书更新”作为问题类型,然后填写支持票证的详细信息。

执行缓解措施的详细步骤

选项 1:重新部署云服务。

通过门户执行重新部署:

使用 .cspkg 和 .cscfg 创建新的云服务。在此处查看详细信息。

更新 CName 或 A 记录以使流量流向新的云服务。

流量流向新的云服务后,删除旧的云服务。

通过 PowerShell 执行重新部署:

使用 .cspkg 和 .cscfg 创建新的云服务。在此处查看详细信息。

示例:New-AzureService -ServiceName "yourServiceName" -Label "MyTestService" -Location "South Central US"

使用 .cspkg 和 .cscfg 创建新的部署。在此处查看详细信息。

示例:New-AzureDeployment -ServiceName "yourServiceName" -Slot "Production" -Package "YourCspkgFile.cspkg" -Configuration "YourConfigFile.cscfg"

更新 CName 或 A 记录以使流量流向新的云服务。

删除在流量流向新的云服务后计算机密钥未更新的先前云服务。在此处查看详细信息。

示例:Remove-AzureService -ServiceName "yourOldServiceName"

通过 Rest API 执行重新部署:

创建新的云服务。在此处查看详细信息。

示例:https://management.core.windows.net//services/hostedservices

通过使用创建部署 API 创建新部署。如果你需要查找 .cspkg 和 .cscfg,则可以调用 Get-Package API。

示例:https://management.core.windows.net//services/hostedservices//deploymentslots/production

在流量流向新的云服务后,删除之前未更新计算机密钥的云服务。在此处查看详细信息。

示例:https://management.core.windows.net//services/hostedservices/

选项 2:交换部署。

使用选项 2 需要你有一个空的过渡槽。如果当前在过渡槽中有部署,则可以将其删除,然后按照下列步骤操作:

通过门户执行交换部署:

通过在过渡槽中上传 .cspkg 和 .cscfg 来更新云服务部署。这将包含用于生成计算机密钥的新证书。在此处查看详细信息。

交换生产槽和过渡槽。在此处查看详细信息。

删除先前生产部署中的过渡槽。在此处查看详细信息

通过 PowerShell 执行交换部署。

在过渡槽中部署 cspkg 和 cscfg。在此处查看详细信息。

示例:New-AzureDeployment -ServiceName "yourServiceName" -Slot "Staging" -Package "YourCspkgFile.cspkg" -Configuration "YourConfigFile.cscfg"

交换生产槽和过渡槽。在此处查看详细信息。

示例:Move-AzureDeployment -ServiceName "yourServiceName"

删除先前生产部署中的过渡槽。

示例:Remove-AzureDeployment -ServiceName "yourServiceName" -Slot "Staging"

通过 Rest API 执行交换部署:

通过使用创建部署 API 在过渡槽中创建新部署。如果你需要查找 .cspkg 和 .cscfg,则可以调用 Get-Package API。

示例:https://management.core.windows.net//services/hostedservices//deploymentslots/staging

通过使用交换部署交换生产槽和过渡槽。

示例:https://management.core.windows.net//services/hostedservices/

删除先前生产部署中的过渡槽

示例:https://management.core.windows.net//services/hostedservices//deploymentslots/staging

选项 3:在 Web.config 中生成你自己的计算机密钥并执行同步部署。

在 PowerShell 中生成新的计算机密钥 XML 元素(请参阅附录 A)。

使用新的计算机密钥更新 WebConfig。查看说明。

重新打包云服务。

通过使用包含新的计算机密钥的 .cscfg 文件执行 upgrade-deployment。模式必须设置为“同时”__,否则可能会导致应用程序处于不正常状态。

免责声明

本通报中提供的信息“按原样”提供,没有任何形式的担保。Microsoft 不作任何明示或暗示保证,包括对适销性和针对特定用途的适用性的保证。Microsoft Corporation 或其供应商不对任何损害(包括直接的、间接的、偶然的、必然的损害、商业利润损失或特殊损害)承担任何责任,即使 Microsoft Corporation 或其供应商事先已被告知有可能发生此类损害。由于有些州不允许免除或限制必然或偶然损害的赔偿责任,因此上述限制可能不适用。

修订

V1.0(2018 年 5 月 8 日):通报已发布。

V1.1(2018 年 5 月 24 日):添加了常见问题解答 #4,以解释在使用 MachineKey.Encode()/MachineKey.Protect() 加密数据后如何恢复持久性数据。此次仅为信息性变更。

V1.2(2018 年 6 月 29 日):将 Azure 来宾操作系统的引用更改为 Azure 云服务

计算机应用安全检查通报,Microsoft 安全通报 4092731相关推荐

  1. 山东省计算机技能大赛通报,比赛成绩通报

    通报的目的,不仅仅是让人们知晓内容,它主要的任务是让人们知晓内容之后,从中接受先进思想的教育,或警戒错误,引起注意,接受教训.下面第一范文网小编给大家带来比赛成绩通报范文,供大家参考! 比赛成绩通报范 ...

  2. 不使用机器学习的机器视觉_我关于使用机器学习进行体育博彩的发现使博彩公司总能胜出

    不使用机器学习的机器视觉 One afternoon, in the middle of my holidays the thought of using machine learning to pr ...

  3. 事故通报绝不能一报了事22344

    事故通报绝不能一报了事 某发电厂在组织职工学习<事故通报>后,将通报的事故,结合企业实际编制成问答试卷,对职工进行测试,并把考核成绩纳入职工年度绩效考核之中,以督促职工扎实学习.牢牢掌握. ...

  4. 处理32人!永久取消申报基金/报奖资格……又一批科研不端案例被通报批评

    9月30日,国家卫健委网站公布14起机构医学科研诚信案件调查处理结果.所涉论文主要涉及买卖论文.伪造实验过程.篡改研究数据等学术不端行为等.共处理32人.给予撤销研究生导师资格,取消5-8年项目申报. ...

  5. 反转!南大通报“教师性侵学生”事件,举报人因读研时未获国奖虚假举报

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文来源:南京大学.微博.募格学术此前报道等 12月29日,南京大学 ...

  6. 撤销博士学位!取消硕导资格!科技部最新通报一批科研不端案件...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 近日,科技部发布<部分高校医学科研诚信案件调查处理结果公开通 ...

  7. 北理工通报方岱宁院士处理结果

    点击进入->3D视觉工坊学习交流群 12月7日,@北京理工大学发布<情况通报>,通报"教师方岱宁相关视频事件"处理结果. 据通报,经查核,视频内容是方岱宁今年7月 ...

  8. 酷家乐母公司群核科技冲刺美股上市:2020年亏损约3亿元,曾因违规多次被通报

    6月25日,酷家乐母公司群核科技向美国证券交易委员会(SEC)递交F-1招股书,拟申请在纳斯达克全球精选市场上市,代码为"KOOL",摩根士丹利.摩根大通.中金为主要承销商. 此前 ...

  9. scip指令集_明年1月实施!ECHA对输欧物品提出SCIP通报要求

    原标题:明年1月实施!ECHA对输欧物品提出SCIP通报要求 昨日,我们发布了 高度关注物质候选清单(SVHCs) 新增至209项的新闻及合规应对方法 敦促大家 尽早确认自己的输欧产品是否有涉及清单中 ...

最新文章

  1. C语言:随笔6--指针1.2
  2. mysql 查询结果转置_转置MySQL查询 – 需要将行放入列中
  3. 高性能存储之--快速理解redis(简版)
  4. 结对编程--基于android平台的黄金点游戏
  5. 3变量程序_PLC的程序结构及其特点
  6. 标志寄存器_访问标志寄存器,并与寄存器B |交换标志寄存器F的内容 8085微处理器...
  7. win8消费者预览版Chrome无法设置默认浏览器
  8. 实例方法、静态方法和类方法的区别
  9. 深搜(DFS),Image Perimeters
  10. Django搭建个人博客:改写View视图
  11. 6.Nginx 的 Rewrite 规则
  12. 【收藏】华三交换机配置方法及操作实例
  13. 计算机键盘排列方式,电脑上的键盘布局是怎么形成的?
  14. 不要去深圳小梅沙海洋世界
  15. 计算机的硬盘有几个区,电脑固态硬盘需要分区吗 分几个区比较好?
  16. python统计英文文章中单词的个数无文件_求Python统计英文文件内单词个数的思路...
  17. 东师19年春计算机在线作业,东师算法分析与设计20春在线作业1【标准答案】
  18. uniapp上传、预览、删除图片
  19. Spark 写入 MySQL 乱码问题
  20. ERP流程二 实体类大全

热门文章

  1. 【论文阅读】Adaptive Clustering-based Malicious Traffic Classification at the Network Edge
  2. [zz] 关于字体和字体微调(Hinting )的知识
  3. 【JY】No.7.1力学架构结构力学求解器(SM)使用教程
  4. 利用opencv进行图片水印消除
  5. Chameleon跨端框架——一个理想主义团队的开源作品
  6. matlab化学程序,Matlab在化学的应用
  7. 腾讯发布的开发语言安全指南:C/C++安全指南
  8. Linux(三)进程,vim权限,网络
  9. SMVC4: JSON文件的使用
  10. vue中v-model详解