【问题标题】:django how to secure my projectdjango 如何保护我的项目
【发布时间】:2015-04-20 10:14:45
【问题描述】:

我在一个项目中工作,我必须远程配置一些产品。 这些产品有 sim 卡,可以通过 gsm 连接到互联网,所以我无法直接连接到它们。

客户将连接到我的网站,通过填写表格对他们的产品提出配置请求,完成后,我将所有产品的新配置保存在数据库中,我将向每个产品发送一条短信,短信让产品知道他们必须通过 http 连接到 sms 中指定的 url,当他们连接到 url 时,我会用他们的序列号识别产品并发送他们的新配置。

现在我真的不知道如何保护短信中发送的所有数据或管理从产品到我的服务器的身份验证。

我想基于 MD5/SHA HASH 公式进行身份验证,但问题是用于哈希的秘密将存储在产品中,如果秘密和公式被知道,它将变得至关重要. 也许使用带有产品信息的日期的动态哈希会更好。 HTTPS也许可以解决一切,但我不能只使用产品的序列号作为授权。

我还想在基础设施上添加一个私钥,但我认为它太复杂了。 例如,我会使用产品公钥加密数据,产品会使用我的服务器公钥加密数据,但我不知道实现这种架构是否太难。

我使用 django 框架,ngnix。

【问题讨论】:

  • 这个问题是too broad。可能的答案太多,或者对于这种格式来说,好的答案太长了。请添加详细信息以缩小答案范围或隔离可以在几段中回答的问题。
  • 缩小范围我想知道如果哈希公式不包含在产品和我的代码中硬编码的密码,则使用哈希验证我的产品连接是否安全,所有公式数据都将包含产品序列数字,日期可能是其他产品信息。

标签: django security encryption hash https


【解决方案1】:

我认为您对加密/解密数据的“哈希”是什么感到困惑。散列通常是一种方式,无法(轻松)“取消散列”已传输的信息。

您的设计中最薄弱的环节是用于传输数据的非常有限的 SMS(文本消息)系统。它缺乏使用大/完整字符集(例如二进制)的能力——这意味着加密的消息必须很长才能保证安全。但它也限制了消息的长度,所以这些长的加密消息无法发送。

正如 cmets 中所述,这个问题过于笼统,无法提供具体答案。但如果这些是“智能”设备,那么使用 SSL 的专用配置“应用程序”可能是您的最佳解决方案。

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 2015-12-17
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2015-05-28
    • 2021-05-16
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多