Questions tagged «security»

有关密码和IT安全的问题。这可以是计算机,网络或数据库的安全性。

7
引用不建议使用全球唯一密码
我与某人(客户)在系统的用户标识/认证过程上存在分歧。麻烦之处在于,他们希望每个用户都拥有一个全局唯一的密码(即,没有两个用户可以使用相同的密码)。我已经提出了反对这种情况的所有显而易见的论点(这是一个安全漏洞,它使身份验证与身份认证混淆,这毫无意义,等等),但他们坚持认为这种方法没有什么不妥。 我已经进行了各种Google搜索,以寻求关于此的权威(或半权威,甚至只是独立的)观点,但找不到任何(主要是明显的虚假行为,因此似乎不值得警告)据我所知)。有人能指出我这种独立意见吗? [编辑] 谢谢您的所有回答,但我已经理解了此建议方法/要求的问题,甚至可以向客户解释这些问题,但客户不会接受,因此,我要求提供独立和/或权威的消息来源。 我也找到了Daily WTF文章,但是它遇到了Jon Hopkins指出的问题-这是不言而喻的WTF,似乎不值得解释为什么。 是的,密码将被添加和散列。在这种情况下,可能很难确保全局唯一性,但这不能解决我的问题-这仅意味着我要求客户不要让步,这不仅是不明智的建议,而且也很难实行。如果我可以说“我没有在盐和哈希上花钱”,那么我可以说“我没有实现全局唯一的密码”。 任何指针独立和/或权威来源,为什么这是一个糟糕的主意还是感激地接受... [/编辑]

9
“ if password == XXXXXXX”是否足以确保最低安全性?
如果我为具有中到低安全风险的应用程序创建登录名(换句话说,它不是银行应用程序或任何其他应用程序),那么我可以接受用户输入的密码,只需输入类似以下内容的密码即可: if(enteredPassword == verifiedPassword) SendToRestrictedArea(); else DisplayPasswordUnknownMessage(); 这似乎很容易有效,但是我当然不介意是否仅此而已。对用户名/密码组合进行简单检查是否足够? 更新:特定项目恰好是Web服务,验证完全是服务器端的,并且不是开源的。域会改变您的处理方式吗?

6
是什么使哈希算法“安全”?
阅读了这个有趣的问题之后,我觉得我对如果需要使用哪种不安全的哈希算法有了一个很好的了解,但不知道为什么我可能会改用安全算法。 那有什么区别呢?输出不只是代表散列对象的随机数吗?是什么使某些哈希算法安全?
19 security  hashing 

13
使用ELSE编程不好吗?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我经常遇到由于使用该ELSE构造而导致的错误。一个典型的例子是: If (passwordCheck() == false){ displayMessage(); }else{ letThemIn(); } 对我来说,这是安全问题。我知道passwordCheck可能是布尔值,但是我不会将应用程序的安全性放在上面。如果它是字符串,int等会怎样? 我通常会尝试避免使用ELSE,而是选择两个完全独立的IF语句来测试我的期望。然后,其他任何东西都将被忽略,或者将被专门处理。 当然,这是防止错误/安全问题进入您的应用程序的更好方法。 你们是如何做到的?

2
我应该将用户声明存储在JWT令牌中吗?
我在HTTP标头中使用JWT令牌来验证对资源服务器的请求。资源服务器和身份验证服务器是Azure上的两个单独的辅助角色。 我不能决定应该将请求存储在令牌中还是将请求附加到请求/响应中。Claims列表影响客户端UI元素的呈现以及对服务器上数据的访问。因此,在处理请求之前,我想确保服务器收到的声明是真实的并经过验证的。 声明示例包括:CanEditProductList,CanEditShopDescription,CanReadUserDetails。 我要为其使用JWT令牌的原因是: 更好地防止客户端对声明进行编辑(即入侵声明列表)。 无需在每个请求上查找索赔。 我不想使用JWT令牌的原因: 然后,身份验证服务器必须知道以应用程序为中心的声明列表。 令牌成为黑客入侵的单一点。 我读过几句话说,JWT令牌不用于应用程序级数据。 在我看来,两者都有缺点,但是我倾向于将这些声明包含在令牌中,并且只想由以前处理过此问题的人员来处理。 注意:我将对所有API请求使用HTTPS,因此在我看来,令牌将“足够”安全。我正在使用AngularJS,C#,Web API 2和MVC5。

5
“忘记密码”-如何处理?
我阅读了此答案,发现有一条评论坚持不通过电子邮件发送密码: 我不希望通过电子邮件检索密码。这意味着我的密码以纯文本格式存储在某处。仅应将其重置。 这给我提出了处理“忘记密码”选项的问题? 原始密码必须不惜任何代价显示在任何UI中,以便用户能够读取它。那么处理“忘记密码”的方式是什么

1
是否有关于用户密码存储做法的官方标准?
最近,我使用了几年前拥有的帐户的政府服务。我忘记了该服务的密码,因此我使用了“忘记密码”链接,并且很惊讶地看到这个政府网站以纯文本格式将密码发送到了我的电子邮件地址。 我个人知道如何处理用户密码,并通过反馈表单(这是一个政府网站,发送了一些关于我的担忧的评论。人们使用其他在线政府服务来处理敏感信息,以及大多数人对所有事情都使用相同的密码或少数几个密码(我知道我确实如此),并且我怀疑整个过程中都使用了相同的安全性实践),对此我迅速做出了回应。他们向我保证,“该部已采取必要步骤保护密码信息,包括使用适当的加密方法对其进行存储”。 我只想说“很显然,如果您可以通过电子邮件将密码发送给我,显然您没有采取必要的步骤”,但我并不是想表现得粗鲁,而且我认为我的信息永远不会接触到反正知道我的意思的人。 因此,我只想声明“尚未根据[某些官方安全标准]采取必要的步骤”,这可能会促使人们对其进行调查。我在OWASP上进行了快速搜索,但只找到了一篇有关纯文本存储的文章。 是否存在关于用户密码处理的安全标准,该标准禁止(我认为可能)禁止存储可检索的密码信息?甚至更好:处理诸如银行和政府网络服务之类的敏感信息的网站是否必须遵循这样的标准? 我知道我可能不会做任何更改,但是值得一试。

2
UDP数据有效载荷应包含CRC吗?
对于我曾经工作过的公司,我必须实现一个套接字接收器,该接收器主要通过一些专用传感器硬件通过本地连接以UDP形式获取数据。所讨论的数据是格式正确的UDP数据包,但有趣的是,数据有效负载始终以使用其余数据形成的CRC16校验和结尾。 我按照规范在终端执行了检查,但是我一直想知道这是否有必要。毕竟,UDP协议本身不携带16位CRC吗?因此,尽管UDP数据包可能会丢失或乱序,但我给人的印象是,在到达OS进程之前,如果不被网络硬件丢弃,就无法破坏它们。还是我缺少一些特殊用例? 值得补充的是,我在国防行业工作,正如您确定的那样,我对这样的事情都非常清楚,所以我想知道这是否仅仅是“安全OCD”的案例。 ..

1
REST API安全性:HMAC /密钥哈希与JWT
我刚刚读了这篇已有几年历史的文章,但是描述了一种保护REST API的聪明方法。实质上: 每个客户都有唯一的公钥/私钥对 只有客户端和服务器才知道私钥。它永远不会通过电线发送 对于每个请求,客户端都会获取多个输入(整个请求本身,当前时间戳和私钥),并通过HMAC函数运行它们以生成请求的哈希 然后,客户端将常规请求(包含公钥)和哈希发送到服务器 服务器会查询客户端的私钥(基于提供的公钥),并进行一些时间戳检查(我当然不理解),以验证请求是否不是受害对象。 重播攻击 如果一切正常,则服务器使用私钥和相同的HMAC函数来生成其自己的请求哈希 然后,服务器比较两个哈希(客户端发送的哈希值以及它生成的哈希值);如果它们匹配,则对请求进行身份验证并允许其继续 然后我偶然发现了JWT,听起来很相似。但是第一篇文章根本没有提到JWT,因此我想知道JWT是否与上述auth解决方案不同,如果有所不同,怎么做。

4
为什么某些站点会阻止密码中的空格?
在较新的网站上似乎不太常见,但是我需要使用多个帐户(例如,用于支付帐单等)的网站阻止我创建带有空格的密码。这只会使事情更加难以记住,而且我知道密码对数据库的空间或编程没有限制,否则会进行加密或(禁止使用天堂符号)。那么,为什么在注册站点时通常会歧视空格键呢?

6
如果java.lang.String不是最终的,那该怎么办?
我是Java开发人员多年,最终,在主修课程后,我有时间认真学习它,以参加认证考试……一件事一直困扰着我,那就是String是“最终的”。当阅读有关安全性问题和相关内容时,我确实理解它。但是,认真地讲,有没有人有真实的例子呢? 例如,如果String不是最终的,会发生什么?就像不是在Ruby中一样。我还没有听到来自Ruby社区的任何抱怨……而且我知道StringUtils和相关类必须实现自己或通过网络搜索才能实现该行为(4行代码),愿意。
16 java  security 

9
开发人员应具有多少数据库访问权限?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 因此,我曾在许多不同的工作场所担任过开发人员,而我对数据库的访问级别也有所不同。我通常没有生产数据库访问权限。 大多数情况下,我可以访问测试数据库,但是它有所不同。有时我可以随意更改数据库和数据,但是通常还有其他安排。就像我可能只对数据具有读取权限。 我在一个由DBA团队管理数据库的地方工作,除非我们提交了带有sql脚本的表格以供他们“检查”,否则我们根本无法进行任何更改。他们通常与项目本身没有多大关系,因此在大多数情况下,只是按F5键即可。 老实说,我可以理解为什么需要锁定prod,但是我更喜欢在开发和测试环境中具有尽可能多的数据库访问权限。我认为大多数开发人员都有能力了解数据库周围的情况。但是我想听听意见吗?开发人员应具有多少数据库访问权限?我们可以信任不破坏任何东西吗?

7
为什么SSL / TLS没有内置在现代操作系统中?
大多数主要操作系统都内置了许多构成Internet基础结构的基本网络协议。例如,TCP,UDP和DNS都内置在Linux,UNIX和Windows中,并可以通过低级系统API供程序员使用。 但是当涉及到SSL或TLS时,必须转向第三方库,例如OpenSSL或Mozilla NSS。 SSL是一个相对较旧的协议,它基本上是与TCP / IP一样普遍的行业标准,那么为什么它不内置在大多数操作系统中?

6
如何向用户保证网站和密码的安全[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在可靠的网站上,我总是看到诸如“所有数据都已加密”或“使用128位加密对所有密码进行加密”之类的声明。但是,我从未遇到过诸如“所有密码都经过哈希处理”的声明。 在我的网站上,将SHA-512(最有可能)使用带有随机盐的哈希后,将所有用户密码存储在数据库中。我想添加一个摘要,以确保用户的密码是安全的,因此不会阻止他们使用我的网站,因为它需要密码。我希望用户感到安全,但是我认为并不是每个人都知道哈希是什么。 我的问题:可以提供一条消息,说“所有密码都是加密且安全的”吗,因为我认为普通用户不会知道哈希和加密之间的区别,并且更可能会因为看到了而感到安全舒适词“加密”?还是我应该提供替代消息? 附带一提,我是加密和密码哈希的新手,我想知道在我启动网站时现在是否足够安全。我不想告诉用户它是否安全。任何信息将不胜感激。谢谢。

4
如何安全地实现自动登录
我读过很多,很多,很多关于如何“你可能会存储密码错”的帖子。他们总是指在用户登录的服务器上存储密码。他们基本上会重新编码(确保使用双关语)无处不在的建议,例如确保对密码加盐等。但是,我从未见过有关在客户端上存储密码的最佳实践的文章,这样客户端不必登录每次他们要登录时手动进行;“记住我”功能。 从浏览器到诸如Dropbox之类的程序,许多软件都具有此功能。 我最近确实读过一篇老文章,内容涉及Dropbox如何在您的计算机上存储ID,您可以将其复制/粘贴到另一台计算机上,然后启动Dropbox并以从中获得ID的设备身份登录。没有登录,什么都没有,并且对Dropbox帐户具有完全访问权限。这似乎是一个非常愚蠢的设计,但是我想不出任何更好的方法来做到这一点。 我什至不知道如何避免以纯文本形式存储像cookie之类的东西。如果您对其进行加密,那么将密钥存储在何处? 我认为不引入安全漏洞的唯一方法是删除自动登录功能,并让用户每次想要使用服务时都输入密码,但这是在可用性方面的努力,并且用户不愿意这样做而被宠坏了。 关于安全地本地存储凭据以实现自动登录功能,我可以读到什么?如果原则对于整篇文章来说太简单了,那是什么?有问题的软件不应依赖于并非所有平台都具有的功能(例如某些Linux发行版具有的“钥匙串”)。
15 security  login 

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.