如果您使用GUID作为面向公众的应用程序的密码作为获取服务访问权的手段,这种安全性是否通过默默无闻?
我认为显而易见的答案是肯定的,但是对我来说安全级别似乎很高,因为猜测GUID的可能性非常低是正确的吗?
更新
GUID将存储在设备中,当插入时,将通过SSL连接通过GUID发送.
也许我可以生成GUID,然后在GUID上执行AES 128位加密并将该值存储在设备上?
在我看来,答案是否定的.
如果您将密码设置为新创建的GUID,则它是一个相当安全的密码:超过8个字符,包含数字,字母和特殊字符等.
当然,在GUID中,所有字母都是大写的'{'
,'}'
并且'-'
是众所周知的.因此,只要没有人知道您使用GUID,密码就更难破解.一旦攻击者知道他正在寻找GUID,蛮力攻击所需的努力就会减少.从这个角度来看,它是默默无闻的安全.
考虑一下这个GUID:{91626979-FB5C-439A-BBA3-7715ED647504}
如果你认为攻击者知道特殊字符的位置,他的问题就会减少到找到字符串91626979FB5C439ABBA37715ED647504
.暴力迫使32个字符的密码?它只会在你的一生中发生,如果有人发明了一台有效的量子计算机.
这是安全性,使用非常非常长的密码,而不是默默无闻.
编辑: 在阅读丹尼斯轩尼诗的答案后,我不得不修改答案.如果GUID确实以可解密的形式包含此信息(特别是mac地址),则攻击者可以大大减少密钥空间.在那种情况下,肯定是默默无闻的安全性,阅读:相当不安全.
当然,MusiGenesis是对的:有很多工具可以生成(伪)随机密码.我的建议是坚持其中一个.
实际上,使用GUID作为密码并不是一个好主意(与提出一个等效长度的真正随机密码相比).虽然看起来很长,但它实际上只有16个字节,通常包括用户的MAC地址,日期/时间和一个小的随机元素.如果黑客可以确定用户的MAC地址,那么猜测他将生成的可能的GUID是相对简单的.
如果可以观察到正在发送的GUID(例如通过HTTP Auth),那么它是多么可猜测是无关紧要的.
某些网站(如Flickr)使用API密钥和密钥.密钥用于通过MD5哈希创建签名.服务器使用密钥计算相同的签名,并以此方式进行身份验证.秘密永远不需要通过网络.
GUID是为了防止意外碰撞,而不是故意碰撞.换句话说,你不太可能猜出一个GUID,但不一定很难找出你是否真的想要.