Skip to content

Commit 0dfa55b

Browse files
authored
Merge pull request #17 from RUB-NDS/v2.1
V2.1
2 parents 92a69af + 4f6b9d4 commit 0dfa55b

File tree

8 files changed

+30
-14
lines changed

8 files changed

+30
-14
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ TLS-Scanner is a tool created by the Chair for Network and Data Security from th
44
**Please note:** *TLS-Scanner is a research tool intended for TLS developers, pentesters, administrators and researchers. There is no GUI. It is in the first version and may contain some bugs.*
55

66
# Compiling
7-
In order to compile and use TLS-Scanner, you need to have Java installed, as well as [TLS-Attacker](https://github.com/RUB-NDS/TLS-Attacker) in Version 2.2
7+
In order to compile and use TLS-Scanner, you need to have Java installed, as well as [TLS-Attacker](https://github.com/RUB-NDS/TLS-Attacker) in Version 2.3
88

99
```bash
1010
$ cd TLS-Scanner

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
<modelVersion>4.0.0</modelVersion>
44
<artifactId>TLS-Scanner</artifactId>
55
<groupId>de.rub.nds.tlsscanner</groupId>
6-
<version>2.0</version>
6+
<version>2.1</version>
77
<packaging>jar</packaging>
88
<dependencies>
99
<dependency>
1010
<groupId>de.rub.nds.tlsattacker</groupId>
1111
<artifactId>TLS-Core</artifactId>
12-
<version>2.2</version>
12+
<version>2.3</version>
1313
</dependency>
1414
<dependency>
1515
<groupId>de.rub.nds.tlsattacker</groupId>
1616
<artifactId>Attacks</artifactId>
17-
<version>2.2</version>
17+
<version>2.3</version>
1818
</dependency>
1919
<dependency>
2020
<groupId>junit</groupId>

src/main/java/de/rub/nds/tlsscanner/ScanJobExecutor.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
1212
import de.rub.nds.tlsscanner.config.ScannerConfig;
13+
import de.rub.nds.tlsscanner.constants.ProbeType;
1314
import de.rub.nds.tlsscanner.report.result.ProbeResult;
1415
import de.rub.nds.tlsscanner.report.SiteReport;
1516
import de.rub.nds.tlsscanner.probe.TlsProbe;
@@ -38,9 +39,13 @@ public ScanJobExecutor(int threadCount) {
3839
}
3940

4041
public SiteReport execute(ScannerConfig config, ScanJob scanJob) {
42+
List<ProbeType> probeTypes = new LinkedList<>();
4143
List<Future<ProbeResult>> futureResults = new LinkedList<>();
4244
for (TlsProbe probe : scanJob.getProbeList()) {
43-
futureResults.add(executor.submit(probe));
45+
if (probe.getDanger() <= config.getDangerLevel()) {
46+
futureResults.add(executor.submit(probe));
47+
probeTypes.add(probe.getType());
48+
}
4449
}
4550
List<ProbeResult> resultList = new LinkedList<>();
4651
for (Future<ProbeResult> probeResult : futureResults) {
@@ -55,13 +60,12 @@ public SiteReport execute(ScannerConfig config, ScanJob scanJob) {
5560
executor.shutdown();
5661
ClientDelegate clientDelegate = (ClientDelegate) config.getDelegate(ClientDelegate.class);
5762
String hostname = clientDelegate.getHost();
58-
SiteReport report = new SiteReport(hostname);
63+
SiteReport report = new SiteReport(hostname, probeTypes);
5964
report.setServerIsAlive(Boolean.TRUE);
6065
for (ProbeResult result : resultList) {
6166
result.merge(report);
6267
}
63-
for(AfterProbe afterProbe : scanJob.getAfterProbes())
64-
{
68+
for (AfterProbe afterProbe : scanJob.getAfterProbes()) {
6569
afterProbe.analyze(report);
6670
}
6771
return report;

src/main/java/de/rub/nds/tlsscanner/TlsScanner.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
1414
import de.rub.nds.tlsattacker.core.config.delegate.GeneralDelegate;
1515
import de.rub.nds.tlsscanner.config.ScannerConfig;
16+
import de.rub.nds.tlsscanner.constants.ProbeType;
1617
import de.rub.nds.tlsscanner.probe.BleichenbacherProbe;
1718
import de.rub.nds.tlsscanner.probe.CertificateProbe;
1819
import de.rub.nds.tlsscanner.probe.CiphersuiteOrderProbe;
@@ -96,7 +97,7 @@ public SiteReport scan() {
9697
return executor.execute(config, job);
9798
}
9899
// testList.add(new SignatureAndHashAlgorithmProbe(websiteHost));
99-
SiteReport report = new SiteReport(config.getClientDelegate().getHost());
100+
SiteReport report = new SiteReport(config.getClientDelegate().getHost(), new LinkedList<ProbeType>());
100101
report.setServerIsAlive(false);
101102
return report;
102103
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ public ProbeResult executeTest() {
3030
delegate.setHost(getScannerConfig().getClientDelegate().getHost());
3131
BleichenbacherAttacker attacker = new BleichenbacherAttacker(bleichenbacherConfig);
3232
Boolean vulnerable = attacker.isVulnerable();
33+
if (vulnerable == null && !getScannerConfig().isImplementation()) {
34+
vulnerable = false;
35+
}
3336
return new BleichenbacherResult(vulnerable);
3437

3538
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import de.rub.nds.tlsattacker.core.constants.NamedCurve;
1717
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
1818
import de.rub.nds.tlsattacker.core.constants.ProtocolVersion;
19+
import de.rub.nds.tlsattacker.core.exceptions.ConfigurationException;
1920
import de.rub.nds.tlsattacker.core.exceptions.WorkflowExecutionException;
2021
import de.rub.nds.tlsattacker.core.protocol.message.AlertMessage;
2122
import de.rub.nds.tlsattacker.core.state.State;
@@ -99,7 +100,7 @@ public List<CipherSuite> getSupportedCipherSuitesWithIntolerance(List<CipherSuit
99100
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(WorkflowExecutorType.DEFAULT, state);
100101
try {
101102
workflowExecutor.executeWorkflow();
102-
} catch (WorkflowExecutionException ex) {
103+
} catch (ConfigurationException | WorkflowExecutionException ex) {
103104
LOGGER.warn("Encountered exception while executing WorkflowTrace!");
104105
LOGGER.debug(ex);
105106
supportsMore = false;

src/main/java/de/rub/nds/tlsscanner/report/SiteReport.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import de.rub.nds.tlsscanner.constants.AnsiColors;
2020
import de.rub.nds.tlsscanner.constants.CipherSuiteGrade;
2121
import de.rub.nds.tlsscanner.constants.GcmPattern;
22+
import de.rub.nds.tlsscanner.constants.ProbeType;
2223
import de.rub.nds.tlsscanner.probe.certificate.CertificateReport;
2324
import de.rub.nds.tlsscanner.report.result.VersionSuiteListPair;
2425
import java.util.List;
@@ -31,6 +32,8 @@
3132
public class SiteReport {
3233

3334
//general
35+
private final List<ProbeType> probeTypeList;
36+
3437
private final String host;
3538
private Boolean serverIsAlive = null;
3639
private Boolean supportsSslTls = null;
@@ -164,8 +167,9 @@ public class SiteReport {
164167
private Boolean supportedCurvesIntolerance;
165168
private Boolean clientHelloSizeIntolerance;
166169

167-
public SiteReport(String host) {
170+
public SiteReport(String host, List<ProbeType> probeTypeList) {
168171
this.host = host;
172+
this.probeTypeList = probeTypeList;
169173
}
170174

171175
public String getHost() {
@@ -1394,4 +1398,7 @@ public String toString() {
13941398
return getStringReport();
13951399
}
13961400

1401+
public List<ProbeType> getProbeTypeList() {
1402+
return probeTypeList;
1403+
}
13971404
}

src/main/java/de/rub/nds/tlsscanner/report/result/CiphersuiteProbeResult.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void merge(SiteReport report) {
7171
supportsOnlyPfsCiphers = true;
7272
prefersPfsCiphers = true;
7373
for (VersionSuiteListPair pair : pairLists) {
74-
if (pair.getCiphersuiteList().size() > 0 && pair.getCiphersuiteList().get(0).isEphemeral()) {
74+
if (pair.getCiphersuiteList().size() > 0 && !pair.getCiphersuiteList().get(0).isEphemeral()) {
7575
prefersPfsCiphers = false;
7676
}
7777
allSupported.addAll(pair.getCiphersuiteList());
@@ -108,7 +108,7 @@ private void adjustKeyExchange(CipherSuite suite) {
108108
if (suite.name().contains("_DH")) {
109109
supportsDh = true;
110110
}
111-
if (suite.name().contains("RSA")) {
111+
if (suite.name().contains("TLS_RSA")) {
112112
supportsRsa = true;
113113
}
114114
if (suite.name().contains("ECDH")) {
@@ -126,7 +126,7 @@ private void adjustKeyExchange(CipherSuite suite) {
126126
if (suite.name().contains("TLS_PSK_WITH")) {
127127
supportsPskPlain = true;
128128
}
129-
if (suite.name().contains("DHE_PSK")) {
129+
if (suite.name().contains("_DHE_PSK")) {
130130
supportsPskDhe = true;
131131
}
132132
if (suite.name().contains("ECDHE_PSK")) {

0 commit comments

Comments
 (0)