Skip to content

Commit 2093337

Browse files
committed
Fixed ciphersuite selection for bleichenbacher probe
1 parent 348cb58 commit 2093337

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

src/main/java/de/rub/nds/tlsscanner/probe/BleichenbacherProbe.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
import de.rub.nds.tlsattacker.attacks.pkcs1.Pkcs1Vector;
1414
import de.rub.nds.tlsattacker.attacks.pkcs1.Pkcs1VectorGenerator;
1515
import de.rub.nds.tlsattacker.attacks.util.response.EqualityError;
16+
import de.rub.nds.tlsattacker.core.config.delegate.CiphersuiteDelegate;
1617
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;
1721
import de.rub.nds.tlsattacker.core.util.CertificateFetcher;
1822
import de.rub.nds.tlsattacker.core.workflow.ParallelExecutor;
1923
import de.rub.nds.tlsscanner.config.ScannerConfig;
@@ -31,16 +35,19 @@
3135
*/
3236
public class BleichenbacherProbe extends TlsProbe {
3337

38+
private List<CipherSuite> suiteList;
39+
3440
public BleichenbacherProbe(ScannerConfig config, ParallelExecutor parallelExecutor) {
3541
super(parallelExecutor, ProbeType.BLEICHENBACHER, config, 10);
42+
suiteList = new LinkedList<>();
3643
}
3744

3845
@Override
3946
public ProbeResult executeTest() {
4047
BleichenbacherCommandConfig bleichenbacherConfig = new BleichenbacherCommandConfig(getScannerConfig().getGeneralDelegate());
4148
ClientDelegate delegate = (ClientDelegate) bleichenbacherConfig.getDelegate(ClientDelegate.class);
4249
delegate.setHost(getScannerConfig().getClientDelegate().getHost());
43-
50+
((CiphersuiteDelegate) (bleichenbacherConfig.getDelegate(CiphersuiteDelegate.class))).setCipherSuites(suiteList);
4451
RSAPublicKey publicKey = (RSAPublicKey) CertificateFetcher.fetchServerPublicKey(bleichenbacherConfig.createConfig());
4552
if (publicKey == null) {
4653
LOGGER.info("Could not retrieve PublicKey from Server - is the Server running?");
@@ -74,6 +81,19 @@ public boolean shouldBeExecuted(SiteReport report) {
7481

7582
@Override
7683
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+
}
7797
}
7898

7999
@Override

0 commit comments

Comments
 (0)