加密凭据并安全地重用它们

2024-04-27 01:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在构建一个网站,用户可以在其中输入另一个web服务的凭据,我将从中获取他们的数据。你知道吗

我想确保当我在数据库中保存他们的凭据时,我使用了可能的最佳加密和最佳体系结构来确保最高级别的安全性。你知道吗

我想到的第一个想法是使用RSA公钥加密数据(PBKDF2,PKCS1\u OAEP,aes256bit…??)然后允许我的废弃脚本使用私钥来解密凭据并使用它们。你知道吗

  • 但如果我的服务器被黑客攻击,黑客将有权访问数据库和私钥,因为它将保留在我的服务器上运行报废脚本和主机数据库。有解决这个问题的架构模式吗?你知道吗
  • 我读到应该混合使用散列和加密来实现最大的安全性,但是散列是单向的,它不适合我的用例,因为我将不得不重用凭据。如果你能告诉我最好的加密密码/模式,你知道这可能是可怕的。你知道吗

我用python编写代码,我相信PyCrypto是加密的首选库。(抱歉,我对加密技术知之甚少,可能会混淆技术)


Tags: 数据用户服务器脚本web数据库网站体系结构
2条回答
from cryptography.fernet import Fernet 
class Crypt():
    def __init__(self, key):
        self.cipher = Fernet(key)

    def encrypt(self, my_message):
        return self.cipher.encrypt(my_message)

    def decrypt(self, my_message):
        return self.cipher.decrypt(my_message)

    @staticmethod        
    def key_maker():
        return Fernet.generate_key()            

if __name__ == '__main__':
    KEY = Crypt.key_maker()
    crypt = Crypt(KEY)
    msg = crypt.encrypt(b'hi')
    msg = crypt,decrypt(msg)

在第二台服务器(加密服务器)上进行加密和解密。你知道吗

将密码与用于加密的id一起传递给加密服务器,然后它返回加密的密码以存储在数据库中。你知道吗

当需要密码时,将加密的密码传递给加密服务器进行解密。你知道吗

让加密服务器监视请求活动,如果收到的请求数量异常,则发出警报,并在极端情况下停止处理请求。你知道吗

使第二台服务器非常安全。无互联网接入,最小访问帐户,双因素身份验证。你知道吗

加密服务器变成了穷人的HSM(硬件加密模块)。你知道吗

相关问题 更多 >