Faktorisera 512 bitar RSA SSL/TLS
Nyligen så uppdagades en ny attack mot SSL/TLS vid namn SMACK. Denna attack nyttjar det faktum att många webbsajter i dagsläget erbjuder gamla krypteringsalgoritmer där bl.a. RSA 512 bitar finns med samt en sårbarhet i klienter.
Att faktorisera 512 bitar RSA går relativt snabbt med hjälp av ett kluster hos exempelvis Amazon EC2. Och med hjälp av 75 st servrar hos Amazon tar det cirka 7h och kostar runt 800 SEK. Och verktyget som användes för detta är bl.a. cado-nfs (eller så kan även ggnfs + msieve användas).
Men hur utbrett är problemet eg. med dessa korta nyckellängder på serversidan? Jo, av 14 miljoner sajter som stödjer SSL/TLS så har 36.7% detta problem. Och problemet i detalj består i att om en klient såsom OpenSSL eller Apples SecureTransport får tillbaka ett svar som inkluderar export-grade RSA så kommer dessa klienter att acceptera svaret, även om de ej frågat efter export-grade RSA.
Förfarandet steg för steg:
- När klienten skickar sitt Hello-meddelande så frågar den efter standard RSA
- Angripare som sitter i mitten (MITM) ändrar detta svar till export RSA
- Servern svarar med sin 512-bitars export RSA-nyckel, signerad med sin nyckel för långa livslängder (long term key).
- Klienten sväljer detta svar på grund av OpenSSL/SecureTransport-buggen.
- Angriparen faktoriserar RSA för att hitta den privata nyckeln
- När klienter krypterar ’pre-master secret’ till servern så kan nu angriparen dekryptera TLS huvudhemlighet (master secret)
- Nu kan angriparen se klartext och injicera nytt innehåll
Demonstration av hur attacken kan nyttjas mot NSA (eller rättare skrivet, Akamai):