|
13 | 13 | import de.rub.nds.tlsattacker.attacks.pkcs1.Pkcs1Vector;
|
14 | 14 | import de.rub.nds.tlsattacker.attacks.pkcs1.Pkcs1VectorGenerator;
|
15 | 15 | import de.rub.nds.tlsattacker.attacks.util.response.EqualityError;
|
| 16 | +import de.rub.nds.tlsattacker.core.config.delegate.CiphersuiteDelegate; |
16 | 17 | import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
|
| 18 | +import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver; |
| 19 | +import de.rub.nds.tlsattacker.core.constants.CipherSuite; |
| 20 | +import de.rub.nds.tlsattacker.core.constants.KeyExchangeAlgorithm; |
17 | 21 | import de.rub.nds.tlsattacker.core.util.CertificateFetcher;
|
18 | 22 | import de.rub.nds.tlsattacker.core.workflow.ParallelExecutor;
|
19 | 23 | import de.rub.nds.tlsscanner.config.ScannerConfig;
|
|
31 | 35 | */
|
32 | 36 | public class BleichenbacherProbe extends TlsProbe {
|
33 | 37 |
|
| 38 | + private List<CipherSuite> suiteList; |
| 39 | + |
34 | 40 | public BleichenbacherProbe(ScannerConfig config, ParallelExecutor parallelExecutor) {
|
35 | 41 | super(parallelExecutor, ProbeType.BLEICHENBACHER, config, 10);
|
| 42 | + suiteList = new LinkedList<>(); |
36 | 43 | }
|
37 | 44 |
|
38 | 45 | @Override
|
39 | 46 | public ProbeResult executeTest() {
|
40 | 47 | BleichenbacherCommandConfig bleichenbacherConfig = new BleichenbacherCommandConfig(getScannerConfig().getGeneralDelegate());
|
41 | 48 | ClientDelegate delegate = (ClientDelegate) bleichenbacherConfig.getDelegate(ClientDelegate.class);
|
42 | 49 | delegate.setHost(getScannerConfig().getClientDelegate().getHost());
|
43 |
| - |
| 50 | + ((CiphersuiteDelegate) (bleichenbacherConfig.getDelegate(CiphersuiteDelegate.class))).setCipherSuites(suiteList); |
44 | 51 | RSAPublicKey publicKey = (RSAPublicKey) CertificateFetcher.fetchServerPublicKey(bleichenbacherConfig.createConfig());
|
45 | 52 | if (publicKey == null) {
|
46 | 53 | LOGGER.info("Could not retrieve PublicKey from Server - is the Server running?");
|
@@ -74,6 +81,19 @@ public boolean shouldBeExecuted(SiteReport report) {
|
74 | 81 |
|
75 | 82 | @Override
|
76 | 83 | public void adjustConfig(SiteReport report) {
|
| 84 | + if (report.getCipherSuites() != null) { |
| 85 | + for (CipherSuite suite : report.getCipherSuites()) { |
| 86 | + if (AlgorithmResolver.getKeyExchangeAlgorithm(suite) == KeyExchangeAlgorithm.RSA) { |
| 87 | + suiteList.add(suite); |
| 88 | + } |
| 89 | + } |
| 90 | + } else { |
| 91 | + for (CipherSuite suite : CipherSuite.values()) { |
| 92 | + if (AlgorithmResolver.getKeyExchangeAlgorithm(suite) == KeyExchangeAlgorithm.RSA) { |
| 93 | + suiteList.add(suite); |
| 94 | + } |
| 95 | + } |
| 96 | + } |
77 | 97 | }
|
78 | 98 |
|
79 | 99 | @Override
|
|
0 commit comments