2

我正在使用 Python/wxPython 构建一个集中式桌面应用程序。其中一项要求是用户身份验证,我正在尝试使用 LDAP 来实现它(尽管这不是强制性的)。

该系统的用户将是制定预算的机械和电气工程师,而最大的问题将是工业间谍活动。这是一个常见的问题,即泄漏通常以非正式的方式从底部发生,这可能会造成问题。该系统的设置方式是,每个用户都可以访问所有并且只能访问其需要的信息,因此除了最上层的人之外,没有人拥有整个项目的货币信息。

问题是,对于我能想到的实现身份验证系统的每一种方式,Python 的开放性让我想到了至少一种绕过/从系统获取敏感信息的方式,因为“编译”py2exe是我能得到的最接近混淆的方法Windows 上的代码。

我并不是真的想隐藏代码,而是让身份验证例程本身安全,以这样一种方式进行,即访问代码并不意味着访问应用程序的能力。我想添加的一件事是对访问例程进行某种代码签名,因此用户可以确定他没有运行经过修改的客户端应用程序。

我想避免这种情况的一种方法是制作一个C用于身份验证的模块,但我宁愿不必这样做。

当然,这个问题现在正在发生变化,不仅仅是“谁能指出我正确的方向,如何构建一个在 Python 上运行的安全身份验证系统?这样的东西已经存在了吗?”,而是“你如何强化脚本(Python) 反对错误修改?”

4

2 回答 2

3

你的用户有多恶意?真的。

究竟有多恶意?

如果您的用户是邪恶的反社会者,并且无法信任桌面解决方案,那么请不要构建桌面解决方案。建立一个网站。

如果您的用户是普通用户,他们会在尝试 (a) 学习 Python (b) 了解您的安全工作原理以及 (c) 真诚地努力打破它。

如果您确实有桌面安全问题(即公共安全、军事等),那么请重新考虑使用桌面。

否则,放松,做正确的事,不要担心“脚本”。

C++ 程序更容易被破解,因为人们很懒惰并允许 SQL 注入。

于 2009-09-02T01:07:36.417 回答
1

可能:

  1. 用户将其凭据输入桌面客户端。
  2. 客户端对服务器说:“嗨,我的名字用户名和密码是密码”。
  3. 服务器检查这些。
  4. 服务器对客户端说:“嗨,用户名。这是你的秘密令牌:......”
  5. 随后,客户端使用秘密令牌与用户名一起“签署”与服务器的通信。
于 2009-09-02T00:53:33.990 回答