DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > 高防服务器 > 正文

ddos防护_ddos防攻击500g_限时优惠

ddos防护_ddos防攻击500g_限时优惠

Duo实验室2018年5月10日詹姆斯·巴克莱·罗比·斯莫泰勒·麦卡斯林仅限人类:Duo Mobile和Android保护的确认Duo从去年年底开始与谷歌合作,开发Android P中的Android保护确认API,帮助谷歌提供反馈,作为谷歌早期技术预览计划的一部分。我们已经在Duo-Mobile中设计了一个与这个新的安全API集成的原型,以评估其功能,并考虑在今年晚些时候Android P和兼容硬件发布时将其纳入我们的产品中。Android保护的确认如何工作?Android保护的确认在响应提示或对话框时提供了对人的存在和意图的加密保证。这可以防止屏幕上的提示被恶意应用程序劫持或单击。我们立即在我们的产品中看到了适当的用例,例如增强了对人参与响应Duo-Push通知的信心,一种完成双因素身份验证并验证其身份的方法。Android保护的确认也非常适合金融或医疗应用。试想一下,在转账之前,能够确认一个人(而不是设备上运行的恶意软件)存在的好处是什么?或者在注射胰岛素之前?毫无疑问,这项技术的更多应用将在未来的几个月和几年中显现出来。技术概述Android保护的确认API指定在可信执行环境(TEE)中的设备上生成一个密钥对,并带有一个限制其使用的特定确认标记。我们还从后端服务器生成、存储和发送一个certificationchallenge,它在设备上生成密钥对时使用。在注册期间,公钥被发送到应用程序后端,如果被认为是可信的,则在将来用于验证每个身份验证的确认签名。伴随认证响应的有效确认签名可确保人从注册设备响应事务,而不是对手编写的恶意软件或试图自动响应接收到的身份验证请求的软件。Android保护的确认需要Android P或更高版本,以及具有兼容TEE的设备。为了构建一个与Android保护确认兼容的功能原型,我们使用了一个Android的shim库,它偶然地调用com.android.security网站。兼容设备上的确认API。在后端,不需要与Google服务器通信。这使得签名可以快速验证,而不需要额外的往返时间到谷歌的服务。所有这些所需要的是从Google获得正确的Android密钥证明根证书来验证确认公钥,以及一个能够处理验证确认签名的加密库。后端不仅确保确认证书链是有效的,并且是用适当的确认标记创建的,而且根证书是Google证书。技术架构如前所述,Android保护的confirmationapi自然适合Duo-Push身份验证,因为它用于验证用户是否是他们所说的用户。在我们的原型中,当收到一个Duo Push时使用Confirmation API,这给了我们更大的保证,传奇防御cc攻击,即用户批准了事务。下图显示了Android保护的确认在Duo中的使用流程。单击以查看更大。Android保护的确认如何在服务器上运行以下是Android保护的确认在运行Android P或更高版本的受支持Android设备上的工作方式:首先,我们确定是否需要生成一个新的受Android保护的确认密钥对。这通常发生在Duo Mobile发布时。公钥被发送到服务器然后,服务器验证:证书链是合法的叶子证书是用正确的CertificationChallenge生成的证明证书断言公钥是用确认标记生成的根证书是受信任的Google根证书如果确认公钥被成功验证,我们将其存储在注册设备的服务器端数据库中。下面是一个Python代码示例,展示了如何从证书链中验证leaf证书(或leaf)的certificationchallenge。来自asn1加密核心导入OctetString来自asn1加密核心导入顺序从加密导入x509从密码学.危险品.后端导入默认后台从cryptography.x509.oid导入ObjectIdentifier例如,从Redis中提取这个。decoded_challenge=证明_挑战.解码('base64')实际挑战=''证书=x509。加载x509证书(叶.解码('base64'),默认的\u backend())oid=ObjectIdentifier('1.3.6.1.4.1.11129.2.1.17')扩展名=cert.extensions.get\u扩展名(旧版)如果存在(分机,x509。延伸。延伸):值=扩展名.value如果isinstance(值,x509。extensions.UnrecognizedExtension):ASU序列=序列.加载(值。值)如果len(asn1_序列)>=5:挑战=asn1_序列[4]如果isinstance(质询,八位字符串):实际挑战=挑战.nativereturn actual_challenge==解码的_challenge一旦叶证书的CertificationChallenge被验证,服务器就可以继续证书链验证。下面是Python中的代码示例,展示了如何执行证书链验证并检查根证书是否是Google根证书。从OpenSSL导入加密受信任的_GOOGLE_ROOT=''来自链的根_=中间产物[-1]store_ctx=crypto.X509StoreContext(\u CERT_store,leaf,ddos云防御买,intermediates[:-1])尝试:储存_ctx.verify_证书()除了crypto.X509StoreContextError as e:返回False如果信任来自链的GOOGLE根和根:根来自链的根=crypto.dump_证书(加密文件类型,根从链).strip()如果root_from_chain_pem==受信任的_GOOGLE_root:返回True返回False一旦为兼容的Android P设备创建了受Android保护的确认密钥对,确认公钥将用于验证从该设备接收到的每个Duo-Push认证。当一个Duo-Push通知被发送到注册的设备时,它包括一个nonce,以及一个promptText字符串,该字符串将显示在确认对话框中。promptText和nonce临时存储在服务器上,以便在签名验证期间检索。当用户点击注册设备上的通知来响应Duo Push时,包含promptText的Android保护的确认提示将显示给用户。然后,用户通过单击Approve或Deny来响应Android保护的确认对话框,这将生成并向服务器发送签名。当服务器接收到这些数据和响应时,先前存储的Android保护的确认公钥用于验证签名(promptText,nonce)。如果签名是有效的,答案是Approve,并且promptText和nonce符合预期,那么Duo服务可以相信推送认证是由真实用户批准的,认证流可以继续。如果不满足这些条件中的任何一个,则无法信任身份验证尝试并失败。下面是Python中的代码示例,演示如何检查promptText和nonce是否如预期的那样,以及确认签名是否有效。confirmations_signature=base64.b64解码(编码确认签名)confirmations_data_that_confirmed=base64.b64解码(编码的确认书数据确认书data_that\u confirmed=cbor2.loads(confirmations_data_that_confirmed\u)例如,extra_data=''从Redis中提取这个。例如,prompt_text=''从Redis中提取这个。接收到_prompt_text=数据__已确认。获取("提示")接收到的数据=数据_已确认。获取("额外")如果未收到"提示"文本或未收到"额外"数据:引发异常("缺少提示文本和/或额外的数据"。)如果提示短信!=收到的"提示"文本:引发异常('无效的Android保护确认提示文本')如果有额外的数据!=接收到的额外数据:引发异常("无效的Android保护确认额外数据"。)confirmations_pub_key=''从数据库中提取设备公钥。如果没有确认密钥:引发异常('缺少确认'u pub\'u密钥')confirmations_pub_key=确认书\u pub_密钥编码('ascii')pk=加载\u pem_公共密钥(confirmations_pub_密钥,backend=default_后端())验证程序=pk.验证器(确认签名,静态资源高防cdn,ECDSA(SHA256())验证程序.更新(确认数据已确认)尝试:验证程序。验证()无效签名除外:引发异常("收到无效的Android保护确认签名"。)需要注意的是,山石防火墙防御内网ddos,从Android保护的确认API传递到后端的数据是简明的二进制对象表示(CBOR)格式。CBOR使用基于JavaScript对象表示法(JSON)的数据模型,centoscc防御,但它是二进制格式。或者,正如我的同事Nick Steele所说,"CBOR对于自鸣得意的人来说就像JSON。"Android保护的确认如何在Android设备上工作在运行Android P或更高版本的受支持设备上,当帐户被激活或更新时,会创建一个受Android保护的确认密钥对。然后将公钥发送到后端进行验证,并与设备记录一起存储在数据库中。下面的代码示例显示了如何生成密钥对。密钥库ks=KeyStore.getInstance(密钥存储区名称);ks.负荷(空);字符串alias=makeNewAlias();密钥发生器kpg=KeyPairGenerator.getInstance(KeyProperties.KEY_算法,密钥存储区名称);kpg.初始化(东北

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: http://www.ddosgb.com/ddos/60406.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 8078423访问次数
  • 建站天数

    DDOS防御

    ddos防御

    cc防护

    web安全

    高防服务器

    高防cdn


    QQ客服

    400-0797-119

    X