1

According to this answer, WannaCry will:

  1. Generate AES key at victim's system to encrypt victim's files.
  2. Generate RSA key at victim's system to encrypt AES key generated above.
  3. Encrypt private key of the RSA key genreated above with the public key shipped with WannaCry.

My question is: Why not replace the step 2 with: Encrypt AES key generated at step 1 with the public key shipped with WannaCry.

5

According to FireEye, WannayCry generates a new AES key for each file that is about to encrypt on victims' systems. So if a victim has 10000 files, he will need 10000 AES keys to decrypt them. A reasonable guess is WannaCry's author doesn't want all 10000 AES keys to transfer to him, which causes a lot of space and network resource wasted. Therefore, WannaCry generates a new RSA key pair(only one for each victim), to encrypt all 10000 AES keys on a victim's system, and then encrypt the per-victim RSA private key with the shipped RSA public key. Finally WannaCry transfers the ciphertext (encrypted per-victim RSA private key) to author's hand.

  • You don't need to ship the keys anywhere to encrypt then with the wannacry public key on the victims machine. You would only need to do that if you want to decrypt them, so this is part of the infrastructure for after the payment – PlasmaHH Mar 17 '18 at 10:55
0

This way the author of WannaCry will need to choose between 2 options:

  1. Sending all AES keys to his server
  2. Sending his RSA private key to everyone who did pay a ransom

With the 1st method his server resources (space and bandwidth) will be overused. With the 2nd method everyone who paid a ransom have an encryption key suitable for every machine, so if someone has paid once, then they will be able to decrypt every encrypted machine without having to pay more.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.