PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP的-从我自己的安全系统收回自己大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这比编程问题更多是软件工程问题.我试图使标题尽可能相关,如果有人认为可以更恰当地表达,请告诉我.

因此,我一直在使用asynch开发即时聊天Web服务. javascriptPHP.该应用程序背后的主要卖点是最大程度的保密.有很多即时聊天应用程序,例如Live Messenger,Yahoo Messenger,IRC和Skype等.但是-叫我偏执狂-但我感到我永远无法相信该软件背后的公司,因为几乎没有控制权暴露给用户,而且大多数人似乎完全忽略了隐私问题.我知道还有许多其他安全/私有IM应用程序,但是决定创建自己的应用程序,它使用SSL加密所有使用点(用户->数据库->用户)之间的通信,其中的to / from属性消息表将SHA256撒上盐,作为进一步的预防措施,一旦接收者收到(或我应该说的请求)消息,消息就会自动数据库删除.

目前,消息本身仍然是纯文本.我可以使用PHP的各种加密库,但如何才能消除所有者(我自己)解密消息的可能性,从而破坏隐私?

我当然绝不会这样做,我只是想证明这种程度的隐私.如果我要用密码加密,我会知道密码.如果要使用程序密码进行加密,我将知道PHP密码存储在何处.

有办法解决吗?还是以信任结束?

更新:据我所知,PHP是无状态的,但是例如会话会强制服务器将数据存储在内存中,这是否是将密钥/密码存储在内存中的解决方案?

感谢您的任何想法或建议.

解决方法:

解决这类问题的典型方法是使用公钥加密.您可以在这里阅读概述:http://en.wikipedia.org/wiki/Public-key_cryptography.

简而言之,将为每个用户颁发公钥/私钥组合.公用密钥是公用的,因此您可以获取任何人的公用密钥.私钥仅由其所属的用户保留.公钥密码术的密钥是一种数学运算法则,它允许人们使用公钥来加密某些事物,但只能使用私钥对其进行解密.因此,您可以获得某人的公钥,对发给他们的消息进行加密,而他们是唯一可以使用其私钥解密该消息的人.

在您的方案中,公钥可以保留在您的服务器上并由客户端请求.任何人都可以使用公钥.在仅浏览器的环境中,存储私钥是一个挑战.它可以存储在本地存储中,但是只能在该特定计算机上使用.如果允许将其存储在服务器上,以便用户无论身在何处都可以检索其私钥,那么您将回到原来遇到的相同问题(必须信任服务器和服务器作者,因为他们不是本身无法访问私钥).

有一种更复杂的算法试图缓存公钥/私钥(可能在本地存储中),但是只要不再可用(例如,当用户切换计算机时),您就可以简单地铸造一个新密钥并在本地存储该密钥.使用新的公共密钥更新目录.这样的好处是您可以从新计算机继续使用该系统,但是缺点是,除非您以某种方式拥有与该公钥相对应的私钥,否则您将无法读取使用先前的公钥加密的消息.因此,这可以在实时即时消息传递场景中工作,在这种情况下,消息永远不会为您保存在服务器上,但是如果服务器为您保留消息并且希望您能够从任何位置读取消息(每个消息都有自己的位置),则无法使用密钥对.

SSL通过使用动态生成的公钥/私钥对解决了此问题,但是它们是通过直接的端到端连接进行协商和交换的(因此中间没有节点可以查看或存储未加密的数据),因此另一种可能性将使用对等游戏技术(具有自身的缺陷,可能仅在浏览器中是不可能的)来创建对等连接,并在该连接上使用SSL来交换安全凭证(您和您的服务器的视图)或直接交换消息.您的服务器将用于促进两个端点的连接并传达该需求,而不用于交换安全信息.

大佬总结

以上是大佬教程为你收集整理的PHP的-从我自己的安全系统收回自己全部内容,希望文章能够帮你解决PHP的-从我自己的安全系统收回自己所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: