▲ | some_furry 4 days ago | |||||||||||||||||||||||||||||||||||||
> It's also worth noting, the user _must_ be made aware of the encryption method that was used, their "signer" application, which is also responsible for encryption and decryption, would require their permission to do an operation in either direction. Let me ask a more pointed question about downgrade attack resistance then: Is the algorithm being used determined by the encrypted message contents? Or is it determined by the key controlled by the signer app? | ||||||||||||||||||||||||||||||||||||||
▲ | vnuge 4 days ago | parent [-] | |||||||||||||||||||||||||||||||||||||
Regardless of the signer interface the procedure call remains the same. The client application determines what method it wants to use, then the plaintext is passed to the signer (web extension, nip46 remote signing, android etc) with the nip44.encrypt or nip04.encrypt procedure calls. The user is then requested to confirm the encryption operation. So a "downgrade" could happen in two ways. The client selects nip04 without the user's instructions, and the signer does not properly guard or notify the user that the message to be encrypted is using nip04. Still not really an attack I don't think, since no "sessions" exist in DMs there shouldn't be any way a remote user gets to cause a client to change algorithms. To answer directly, the client app chooses, makes a remote procedure call with the desired algorithm, user confirms, message is encrypted, returned, signed (another rpc round-trip), then written to relays. The signer application is ALWAYS authoritative, if it chooses to. | ||||||||||||||||||||||||||||||||||||||
|