Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OAuth 2.0中的安全性有多高?_Python_Django_Api_Security_Oauth 2.0 - Fatal编程技术网

Python OAuth 2.0中的安全性有多高?

Python OAuth 2.0中的安全性有多高?,python,django,api,security,oauth-2.0,Python,Django,Api,Security,Oauth 2.0,背景:我目前在一个团队中,负责为伦敦大学学院制作API 我负责构建OAuth的实现,它位于我们可以提供给用户的Shibboleth之上。为了尽可能地保证它的安全,我们将提供学生数据,因此我们不能在这里冒任何风险,我已经实现了一个nonce参数和一个client\u secret\u proof参数,即sakurity.com/oauth上描述的appsecret\u proof 不同之处在于,在我的实现中,向nonce端点发出请求,然后将该nonce值连接到用户的令牌上,然后通过HMAC算法运行

背景:我目前在一个团队中,负责为伦敦大学学院制作API

我负责构建OAuth的实现,它位于我们可以提供给用户的Shibboleth之上。为了尽可能地保证它的安全,我们将提供学生数据,因此我们不能在这里冒任何风险,我已经实现了一个nonce参数和一个client\u secret\u proof参数,即sakurity.com/oauth上描述的appsecret\u proof

不同之处在于,在我的实现中,向nonce端点发出请求,然后将该nonce值连接到用户的令牌上,然后通过HMAC算法运行,这样就无法重放client_secret_proof参数

这里的问题是,我的PM认为这种额外的保护是不必要的,而且对开发人员的体验来说非常糟糕,但我想尝试尽可能地降低连接的MITM难度,并尽我所能防止我们的学生开发人员的草率编程泄露客户机密。我是在浪费时间来加强OAuth,还是OAuth 2.0在防止某些类型的攻击方面天生就很弱?我主要担心的是开发人员没有正确验证HTTPS证书,这将使HTTPS中已经存在的保护变得毫无意义

非常感谢你对这件事的想法!我们不想提供糟糕的开发人员体验,但我们也不想忽视任何攻击向量

实施保护:


客户端库:

尽管您没有提到您使用的是哪种类型的OAuth 2.0客户端?水疗,网络应用或??。除了OAuth 2.0或OpenID Connect,我不会给我们任何东西。由于OpenID Connect使用可以签名和加密的JWTs

那是在2012年,自那以后,事情有了很大的进展

正如2016年done所指出的,大多数缺陷都是由实施缺陷造成的

即使自2016年以来,从一个角度来看,OAuth 2.0和OpenID connect也有一些增强


在当今的网络环境中,在处理敏感信息时,有什么太过安全,而这些敏感信息的泄露可能会对组织的声誉造成损害?

感觉最好在或处问这个问题。我不确定这个网站上的人是否会阅读RFC,然后评估您的增强功能的安全属性和风险。另请参见。@jww谢谢您的帮助。我找到了那篇文章,它给了我一些验证,我做了正确的事情来尝试和保护协议,但也许它只是天生就被破坏了。你可以将问题标记为crypto,让版主移动它,这样你就不必在一个站点上删除它,然后在另一个站点上创建它。无论出于何种原因,Stack Exchange网络不允许您自己迁移它。此外,基于我所知道的OAuthe,包括OAuth1.1和OAuth- 2的批评,我将考虑使用OAuth1.1并不是1作为起点。然而,我不知道在现实生活中会有多痛苦。另外,在某个时候,你自己的翻滚总会以不安全告终啊,对不起,应该澄清一下。该API是基于Django构建的,我们希望开发人员将我们用作一个IdP,重定向到他们选择的回调URL,从中他们可以将代码GET参数交换为令牌。我们的PM通常对OAuth 2.0作为标准感到满意,因为GitHub、Slack等使用它,但1.1似乎总是更安全,但我不确定这是否是因为有更多的参数。我想如果我问我的每一个额外的安全特性(例如,客户机密的nonces和HMAC证明)是否确实是必要的,并且值得在开发人员经验方面进行权衡,那么这个问题的措辞应该会更好?假设证书验证在客户端正确实现,我会假设没有,但如果没有正确实现,那么客户机密码很容易被破解。