# Exercise set 5 by Samuel Fountain fount032, Griffin Higley, Nat Rose ## 1) Broken RNGs ### a) To generate the symmetric key K, the attacker would have to have the exect same inputs as the user. Lets evaluate the inputs. | Input Value | What We Know | Possible Values | |------------------------------|-----------------------------------|-----------------| | Current time in microseconds | millisecond accuracy current time | 1000 | | Browser PID | It is a 16-bit number | 2^16 | | Parent PID | Parent PID is 1 | 1 | So there are 65536000 or 6.5536E+7 different possible input value combinations for the encryption key resulting in the same number of possible symmetric keys. For an on path adversary there is only 1 semeteric key exchanged (K) for a captured key exchange. An attacker could test a possible key by encrypting their generated key (K') with the servers public RSA key and checking to see if the ciphertext matches ciphertext of the encrypted key K that the client sent to the server. If the ciphertexts match then K' = K and the adversary knows what the symmetric encryption key is. Our VM can perforem 102638 1024-bit public key operations per second. At this rate it would take an attacker 638.52 seconds (less than 11 minutes)to check all possible symmetric keys. ### b) A 15-bit value can have 2^16 or 65536 different possible values. Therefore, There are 65536 different possible public keys a machine running that build of sshd could have. Using `time openssl dhparam 1024` We find out that generating a 1024 bit openssl public key would take 2.149 seconds. So it would have taken 1173.64 or just over 19 and a half hours to generate all possible public keys for this build of sshd. ## 2) Mal-in-the-Middle attacks I : Replay A reply attack on OCSP that would allow a *Mal-in-the-Middle* to convince a client that a certificate is valid, even after it has been revoked would work with the following flow. First the *client* sends the server a query, **_Hash_(CertID)** to *Mal* Then *Mal* sends **_Hash_(CertID)** on to the *server* The *server* responds to *Mal* with **_Sigs_("valid", _Hash_(CertID))** *Mal* then saves the value **_Sigs_("valid", _Hash_(CertID))** for later use and sends **_Sigs_("valid", _Hash_(CertID))** to the *client* Some time goes by, during which *server* must revoke their certificate for some reason. The *client* then sends *Mal* **_Hash_(CertID)** if *Mal* wants to perform a replay attack and make *client* belive that the certificate is still valaid all *Mal* has to do is send the value it has stored **_Sigs_("valid", _Hash_(CertID))** to *client* and *client* will belive the revoked certificate is actually valid. ## 3) Mal-in-the-Middle attacks II: Downgrade First the *client* will send a hello message to *Mal* Then *Mal* will send the hello message on to the *mail server* The *mail server* will respond to *Mal* with `250 STARTTLS` *Mal* will than take this message and strip the end off so the message now read `250` and will forword that onto the *client* After this the *client* will just continue to use unencrypted SMTP commands because it thinks that the *server* does not support TLS and the *server* will use unecrypted SMTP commands because it thinks that the *client* does not support TLS. ## 4) Crypto protocols ### a) | URL | Cipher | | -------- | -------- | | www.umn.edu:443 | ECDHE-RSA-AES256-GCM-SHA384 | | www.google.com:443 | TLS_AES_256_GCM_SHA384 | ### b) #### https://www.umn.edu **Public Key :** RSA 2048-bit Public Key **Expiration Date :** 10/27/2021, 11:59:59 PM CUT **Other Domains** - ur.umn.edu - *.pharmacy.umn.edu - *.prd.umn.edu - *.vetmed.umn.edu - advocate.umn.edu - advocates.umn.edu - amplification.umn.edu - brief.umn.edu - campus-climate.umn.edu - campusclimate.umn.edu - d2d-2017-campaign.umn.edu - directory.umn.edu - discover-archive.umn.edu - discover.umn.edu - driven-to-discover.umn.edu - driventodiscover.umn.edu - drugdesign.umn.edu - government-relations.umn.edu - governmentrelations.umn.edu - hub.ahc.umn.edu - legislative-action.umn.edu - legislativeaction.umn.edu - news.umn.edu - photo-video.umn.edu - photo.umn.edu - president.umn.edu - study-away.umn.edu - studyaway.umn.edu - twin-cities.umn.edu - twincities.umn.edu - university-district.umn.edu - university-relations.umn.edu - universityrelations.umn.edu - www.advocate.umn.edu - www.advocates.umn.edu - www.brief.umn.edu - www.cahfs.umn.edu - www.csh.umn.edu - www.dentalclinics.umn.edu - www.dentistry.umn.edu - www.directory.umn.edu - www.discover.umn.edu - www.driven-to-discover.umn.edu - www.equine.umn.edu - www.government-relations.umn.edu - www.governmentrelations.umn.edu - www.itdd.umn.edu - www.legislative-action.umn.edu - www.legislativeaction.umn.edu - www.news.umn.edu - www.nursing.umn.edu - www.photo-video.umn.edu - www.photo.umn.edu - www.president.umn.edu - www.raptor.umn.edu - www.study-away.umn.edu - www.studyaway.umn.edu - www.tc.umn.edu - www.twin-cities.umn.edu - www.twincities.umn.edu - www.university-district.umn.edu - www.university-relations.umn.edu - www.universityrelations.umn.edu - www.ur.umn.edu - www.vdl.umn.edu - www.vmc.umn.edu #### https://www.google.com **Public Key :** Elliptic Curve 256 P-256 Curve **Expiration Date :** 6/24/2020, 12:58:56 PM CUT **Other Domains** - www.google.com ### c) | Server | Public Key | | -------- | -------- | | apollo.cselabs.umn.edu | RSA | | csel-kh1250-13.cselabs.umn.edu | RSA | | github.umn.edu | RSA and ecdsa-sha2-nistp256|