Criptografia
Segurança da Informação
LGPD
Boas Práticas
Desenvolvimento

数据加密:如何在日常开发中应用

密码学并不是一个特殊的项目;这些都是软件开发人员每天做出的小而正确的决定。

数据加密:如何在日常开发中应用

大多数数据泄露并不是因为天才黑客破坏了算法而发生的。发生这种情况的原因是密码以纯文本形式保存、忘记了没有保护的备份,或者敏感数据在没有加密的情况下传输。几乎总是,失败不是高级加密,而是没有人应用的基本加密。

因此,日常生活中的[密码学1]并不是一个被锁在房间里的安全专家就能解决的问题。对于那些每天编写代码并在没有意识到的情况下做出保护或暴露信任系统的数据的小决定的人来说,这是一个问题。

这篇文章是关于这些日常决定的。不是关于算法背后的数学,而是关于将相当安全的系统与即将发生的事故区分开来的实际选择。

解决一半问题的心理法则

在使用任何技术之前,请遵循一个原则:敏感数据在不需要的地方永远不应该被读取。密码永远不需要可读。个人数据无需明确。备份不需要公开。

中心论点很简单:日常生活中出色的密码学并不是要掌握奇异的技术,而是不要因为懒惰或缺乏知识而使敏感数据不受保护。最常见的攻击正是利用了缺失的保护,而不是那些做得不好的保护。

如果您内化这个问题“这些数据需要在这里可读吗?”并根据答案采取行动,你已经避免了大多数真正的问题。

数据需要保护的三个时刻

传输中的数据

每当信息通过网络传输时,它就可能被拦截。这里的保护是对通信进行加密。实际上,这意味着无一例外地在所有内容中使用 HTTPS,并确保服务之间的连接也被加密。

在日常生活中,常见的错误是不保护内部通信,认为“这是内部网络,很安全”。受损的内部网络正是有多少攻击得以传播。以同样的严肃性对待所有流量。

静态数据

它是存储在银行、文件、备份中的数据。对静态数据进行加密可确保即使有人窃取磁盘或复制数据库,如果没有密钥,内容仍然无法读取。

实际的日常决策是确定哪些数据值得静态加密。敏感的个人数据、文件、财务信息。现代数据库和云服务几乎透明地提供静态密码;错误是由于缺乏知识而没有打开它。

密码,单独的情况

密码未加密,密码经过哈希处理。区别很重要:[加密3]可通过密钥进行逆转;哈希不是。无论是您还是抢劫银行的攻击者,您都不应该能够恢复用户的原始密码。

使用为密码设计的哈希函数,例如 bcrypt、scrypt 或 Argon2,这些函数故意变慢,使暴力攻击变得困难。典型且危险的错误是以纯文本形式存储密码或使用简单而快速的哈希值。这一次的失误,已经造成了无数的泄密。

最重要的日常决定

首先是不要发明[密码学4]。创建自己的“聪明”方案的诱惑是初学者的典型错误。自制加密几乎总是存在您看不到的缺陷。使用经过了解该主题的人员多年测试的已建立的库和标准算法。

二是保管好钥匙。密钥存储在源代码中、提交到存储库中的强密码就像一扇锁着的门,密钥藏在地毯下。密钥和秘密不会出现在代码或版本化文件中;它们进入秘密金库或受保护的环境变量。

第三是尽量减少保留的东西。最安全的数据是您没有收集的数据。在考虑如何保护信息之前,先询问您是否真的需要它。在[LGPD5]的背景下,这个问题不再是一个好的做法,而是成为一个法律原则:收集必要的最低限度。

我经常看到的错误

最常见的错误是将[加密6]视为“之后”的任务。该团队快速交付,但没有保护数据,并承诺返回处理数据。这个“之后”很少出现在事件发生之前。延迟安全是主动的不安全。

另一个错误是盲目信任提供商。使用云并不代表您的责任被委托。提供商提供了[加密7]工具,但打开它们并正确使用它们仍然是您的工作。关闭密码按钮并不能保护任何人。

还有保护主路径而忘记边缘的错误:以纯文本记录敏感数据的日志、泄漏信息的错误消息、使用未受保护的真实数据的测试环境。攻击者寻找被遗忘的边缘,而不是装甲门。

日常生活的实用愿景

您无需成为密码学家即可很好地保护数据。您需要具备三种反应能力:对通过的内容进行加密、对剩余的内容进行加密以及使用强哈希值存储密码,始终使用现有工具并保管好密钥。如果始终如一地做到这一点,您的系统已经领先于大多数系统。

一致性是重点。安全性不会因为缺乏复杂的功能而失败,而是因为忘记了异常而失败。没有 HTTPS 的单一端点、没有散列的单一密码表,其他一切都毫无意义。

结束

日常生活中的密码学是一种习惯,而不是一个项目。这些都是开发人员不断做出的小而正确的决定,并受到保护用户数据是工作的一部分而不是额外的文化的支持。

任何谨慎对待他人数据的人都会建立比任何功能更有价值的东西:信任。而信任一旦被可预防的泄密所破坏,就很难恢复。

如果您开发软件并意识到这些基本实践中的任何一个还不是您日常工作的一部分,那么值得从今天最紧急的实践开始。博客上还有其他关于安全、[LGPD8 和数据保护的文章,对这些要点进行了更深入的探讨。

另请阅读

  • 【小型团队的数据加密:毫不夸张的要点9
  • 【现在收获,稍后解密:你的长期保存数据已经面临风险10
  • 【创建应用时:初学者不能忽视的安全11
  • 【数据加密规模化:关键治理与运营12
  • [后量子密码学:应对新威胁13
  • [如何迁移到后量子密码学:ML-KEM、ML-DSA 和混合方法14