Encryption 向客户端发送AES密钥和IV

Encryption 向客户端发送AES密钥和IV,encryption,cryptography,aes,Encryption,Cryptography,Aes,从服务器向移动客户端发送AES密钥和IV以用于加密敏感数据是否安全?密钥和IV将使用TLS发送。此密钥将用于从端到端加密数据 更新: 我的需求实际上已经改变了,所以我不需要这样做,但我提出的解决方案实际上是让客户端通过tls向服务器发送公钥。然后服务器可以使用该公钥加密密钥并将其发送回客户端。这将与TLS中的任何数据一样安全。它还取决于您的客户端对该TLS的信任程度,该TLS可能没有双边身份验证 但基本上,以这种方式发送密钥对使用TLS没有多大帮助。如果TLS不安全,则AES密钥不安全。如果不是

从服务器向移动客户端发送AES密钥和IV以用于加密敏感数据是否安全?密钥和IV将使用TLS发送。此密钥将用于从端到端加密数据

更新


我的需求实际上已经改变了,所以我不需要这样做,但我提出的解决方案实际上是让客户端通过tls向服务器发送公钥。然后服务器可以使用该公钥加密密钥并将其发送回客户端。

这将与TLS中的任何数据一样安全。它还取决于您的客户端对该TLS的信任程度,该TLS可能没有双边身份验证

但基本上,以这种方式发送密钥对使用TLS没有多大帮助。如果TLS不安全,则AES密钥不安全。如果不是,那么AES密钥是安全的…但是TLS已经是安全的。如果您使用提供前向安全性的密码套件(DHE_u或ECDHE_u),可能会有一点优势


但最重要的是,如果你发送任何东西,你会发送一个公钥,比如PGP密钥。另一方面,此人当然仍然必须信任发送者(即通过验证指纹),但如果TLS连接不安全,则泄露公钥至少不会破坏使用它加密的任何内容。

它将与TLS中的任何数据一样安全。它还取决于您的客户端对该TLS的信任程度,该TLS可能没有双边身份验证

但基本上,以这种方式发送密钥对使用TLS没有多大帮助。如果TLS不安全,则AES密钥不安全。如果不是,那么AES密钥是安全的…但是TLS已经是安全的。如果您使用提供前向安全性的密码套件(DHE_u或ECDHE_u),可能会有一点优势


但最重要的是,如果你发送任何东西,你会发送一个公钥,比如PGP密钥。另一方面,此人当然还必须信任发件人(即通过验证指纹)但是,如果TLS连接不安全,那么泄露公钥至少不会破坏使用它加密的任何东西。

客户端使用公钥发送所有内容的问题是,对于大容量服务器来说,解密速度太慢。使用椭圆曲线(例如使用ECIE)解密速度要快得多。请注意,您不应该将此答案视为一个完整的协议设计-只是正确方向的提示。当然,还有混合加密(使用公钥加密随机AES数据密钥,使用该密钥加密字节,在接收端反转)。客户端使用公钥发送所有内容的问题是,对于大容量服务器来说,解密速度太慢。使用椭圆曲线(例如使用ECIE)进行解密要快得多。请注意,您不应该将此答案视为一个完整的协议设计-只是正确方向上的提示。当然,还有混合加密(使用公钥加密随机AES数据密钥,使用该密钥加密字节,在接收器反转)。