Questions tagged «https»

3
REST API安全性存储令牌vs JWT vs OAuth
我仍在尝试寻找最佳的安全解决方案来保护REST API,因为移动应用程序和API的数量每天都在增加。 我尝试了不同的身份验证方式,但是仍然存在一些误解,因此我需要经验丰富的人的建议。 让我说说,我如何理解所有这些东西。如果我理解不正确,请告诉我。 就REST API和WEB而言,它都是无状态的,我们需要在每个请求中发送一些auth数据(cookie,令牌...)。我知道三种用于验证用户身份的广泛使用的机制 使用HTTPS的令牌。我已经使用这种方法很多次,对于HTTPS来说已经足够了。如果用户提供正确的密码和登录名,他将收到令牌作为响应,并将其用于其他请求。令牌由服务器生成并存储,例如存储在单独的表中或存储用户信息的表中。因此,对于每个请求服务器,检查用户是否具有令牌,并且该令牌与数据库中的令牌相同。一切都非常简单。 JWT令牌。该令牌是自描述的,它包含有关令牌本身的所有必要信息,用户无法更改(例如到期日期)或任何其他声明,因为该令牌是由服务器使用secret关键字生成(签名)的。这也很清楚。但是对我个人来说,一个大问题是如何使令牌无效。 OAuth2。我不明白为什么直接在服务器和客户端之间建立通信时应使用这种方法。据我了解,OAuth服务器用于发布具有受限范围的令牌,以允许其他应用程序访问用户信息而无需存储密码和登录名。对于社交网络而言,这是一个很好的解决方案,当用户想要在某个页面上进行注册时,服务器可以请求权限以获取用户信息(例如,从Twitter或Facebook获取信息),并使用用户数据等填充注册字段。 考虑将移动客户端用于在线商店。 第一个问题,我应该比第一类令牌更喜欢JWT吗?就我需要在移动客户端上登录/注销用户而言,我需要将令牌存储在某个地方,或者在JWT的情况下,令牌应该在注销时失效。使用不同的方法来使令牌无效,其中之一是创建无效的令牌列表(黑名单)。嗯 表/文件的大小比令牌存储在表中并与用户相关联并且在注销时被删除时要大得多。 那么,JWT令牌的好处是什么? 关于OAuth的第二个问题,如果与服务器直接通信,应该使用它吗?客户端和服务器之间仅发出令牌的另一层的目的是什么,但是通信将不是与oauth服务器,而是与主服务器。据我了解,OAuth服务器仅负责授予第三方应用访问用户私人信息的权限(令牌)。但是我的移动客户端应用程序不是第三方。
104 security  rest  api  oauth  https 

5
适用于公共REST API的OAuth2 ROPC与基本身份验证?
我在这里感兴趣的特定用例是针对可公开使用的服务器端点(例如,公共REST API)对REST客户端进行身份验证。 这里最简单的解决方案是Basic Auth。但是我经常听到OAuth2在几乎所有情况下都被视为一种出色的身份验证解决方案。 事实是,对于REST客户端针对REST服务器进行身份验证的唯一可行的OAuth2授予​​类型是资源所有者密码凭证(ROPC),因为代码授予和隐式授予要求用户界面/网页(由Auth服务器托管)用户登录并手动授权客户端应用。 ROPC的工作方式是,通过发送资源所有者的用户名/密码和客户端ID作为查询字符串参数?这比基本身份验证(IMHO)更为不安全,基本身份验证至少使用base-64对凭据进行编码,然后将其发送到可以由TLS加密的标头中! 所以我问:在公共REST API的上下文中,OAuth2 ROPC是否真的比Basic Auth更好?有什么比OAuth2 ROPC更安全的? 更新资料 我刚刚读了这篇出色的文章,解释了Amazon针对AWS的非基于OAuth2的REST安全性。从本质上讲,这是一个基于私钥的解决方案,其中,每个REST请求的哈希都将生成,并作为sidecar与常规(未加密)请求一起发送。只有客户端和服务器知道私钥,因此,当服务器接收到该请求(再次包含普通请求+散列请求)时,服务器将查找客户端的私钥,将相同的哈希应用于普通请求,并然后比较两个哈希。 这听起来比OAuth2的ROPC更加复杂,复杂和安全!除非我在这里缺少一些重要的东西,否则OAuth2 ROPC只会发送client_id,username并且password作为查询字符串参数...完全完全不安全!这种基于HMAC /哈希的解决方案似乎更加令人印象深刻和安全。 问题是,即使是该文章的作者也继续说: 您[也会]慢慢意识到并接受在某个时候您将必须实现OAuth ... 巴巴巴哇?!?!如果OAuth2的安全性不如此聪明的基于HMAC /哈希的解决方案,那么为什么本文的作者感到在某些时候需要使用OAuth。我很混乱。
21 rest  oauth  https 

7
通过HTTPS进行身份验证会降低我的应用程序速度吗?
我正在构建一个Web应用程序和RESTful Web服务。 我一直在阅读有关如何验证对Web服务的请求的最佳方法的各种文章。 对我而言,最好的选择似乎是使用HTTP基本身份验证。我阅读的几乎每篇文章都说,身份验证应该通过SSL或等效协议进行加密。 我不太确定这涉及什么。这是否意味着我的整个Web服务必须位于安全的服务器上?这会减慢速度吗?

2
HTTPS是否足以避免重播攻击?
我正在为移动应用程序在服务器上公开一些REST方法。 我想避免用户可以嗅探如何构建HTTP方法(从移动应用程序),然后将其再次发送到服务器。范例: 移动应用发送请求 用户使用代理,可以检查网络上发生了什么 用户看到并保存手机刚刚发送的请求 =>现在,我不希望用户能够手动发送该请求 是否足以通过HTTPS保护服务器?
10 api  https 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.