我正在编写管理nginx(域,重写等),svn和其他服务的面板。为此,我正在编写将在root上工作的后端(更改nginx配置,重新加载它们,更改用户密码等)以及客户端(控制台客户端和Web应用程序)。使用python后端的客户端授权
应用程式适用于Unix套接字,和我做了非常简单的协议吧:
\0\0\0\0user\0key\0module\0command\0data\0
好了,这是很简单的。客户端发送命令和数据到后端,例如:
\0\0\0\0morsik\0\0nginx\0add_domain\0www.domain.tld something\0
问题是,如何验证用户真的是morsik?对于Web界面,我不必 - 网页有自己的授权,所以我可以发送一些密钥,这将适用于任何人都不知道的用户。 问题是如果有人有权访问ssh。然后他可以编写简单的客户端来欺骗用户名,然后他可以更改其他用户配置。
那么,我怎样才能为用户做出正确的授权?
你可能想学习书“应用密码学”,由布鲁斯,第一。很有可能你必须使用同一个密钥的HMAC。 – Keith
HMAC看起来很有趣,但如果密钥会被公众所知,那么欺骗数据仍然存在。因为这是python脚本,所以必须公开...或者有其他方法来存储密钥? – morsik
读这本书。 ;-) – Keith