From 2804203868585dd79837d9fc806d3dd48f0e9057 Mon Sep 17 00:00:00 2001 From: serega6531 Date: Thu, 15 Oct 2020 02:09:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serega6531/packmate/service/PatternMatcher.java | 5 +++-- .../packmate/service/optimization/TlsDecryptor.java | 13 ++++++------- .../ru/serega6531/packmate/StreamOptimizerTest.java | 7 ------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java b/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java index eba7f82..7466cab 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternMatcher.java @@ -101,8 +101,9 @@ public class PatternMatcher { } private void addIfPossible(FoundPattern found) { - if (result.stream().noneMatch(match -> between(match.getStartPosition(), match.getEndPosition(), found.getStartPosition()) || - between(match.getStartPosition(), match.getEndPosition(), found.getEndPosition()))) { + if (result.stream().noneMatch(match -> + between(match.getStartPosition(), match.getEndPosition(), found.getStartPosition()) || + between(match.getStartPosition(), match.getEndPosition(), found.getEndPosition()))) { result.add(found); } } diff --git a/src/main/java/ru/serega6531/packmate/service/optimization/TlsDecryptor.java b/src/main/java/ru/serega6531/packmate/service/optimization/TlsDecryptor.java index e492285..e36e9b5 100644 --- a/src/main/java/ru/serega6531/packmate/service/optimization/TlsDecryptor.java +++ b/src/main/java/ru/serega6531/packmate/service/optimization/TlsDecryptor.java @@ -50,7 +50,7 @@ import java.util.regex.Pattern; @RequiredArgsConstructor public class TlsDecryptor { - private static final Pattern cipherSuitePattern = Pattern.compile("TLS_RSA_WITH_([A-Z0-9_]+)_([A-Z0-9]+)"); + private static final Pattern cipherSuitePattern = Pattern.compile("TLS_RSA_WITH_([A-Z0-9_]+)_[A-Z0-9]+"); private final List packets; private final RsaKeysHolder keysHolder; @@ -91,24 +91,23 @@ public class TlsDecryptor { Matcher matcher = cipherSuitePattern.matcher(cipherSuite.name()); //noinspection ResultOfMethodCallIgnored matcher.find(); - String blockCipher = matcher.group(1); //TODO использовать не только AES256 - String hashAlgo = matcher.group(2); + String blockCipher = matcher.group(1); clientRandom = clientHello.getRandom(); serverRandom = serverHello.getRandom(); - decryptTlsRsa(blockCipher, hashAlgo); + decryptTlsRsa(blockCipher); } } @SneakyThrows - private void decryptTlsRsa(String blockCipher, String hashAlgo) { + private void decryptTlsRsa(String blockCipher) { String[] blockCipherParts = blockCipher.split("_"); String blockCipherAlgo = blockCipherParts[0]; int blockCipherSize = Integer.parseInt(blockCipherParts[1]); String blockCipherMode = blockCipherParts[2]; - if (!blockCipherAlgo.equals("AES")) { + if (!blockCipherAlgo.equals("AES")) { //TODO использовать не только AES256 return; } @@ -141,7 +140,7 @@ public class TlsDecryptor { TlsSecret masterSecret = preMaster.deriveUsingPRF( PRFAlgorithm.tls_prf_sha256, ExporterLabel.master_secret, randomCS, 48); byte[] expanded = masterSecret.deriveUsingPRF( - PRFAlgorithm.tls_prf_sha256, ExporterLabel.key_expansion, randomSC, 72 + keyLength * 2).extract(); // для sha256 + PRFAlgorithm.tls_prf_sha256, ExporterLabel.key_expansion, randomSC, 72 + keyLength * 2).extract(); byte[] clientMacKey = new byte[20]; byte[] serverMacKey = new byte[20]; diff --git a/src/test/java/ru/serega6531/packmate/StreamOptimizerTest.java b/src/test/java/ru/serega6531/packmate/StreamOptimizerTest.java index edf6b3f..6f7cd21 100644 --- a/src/test/java/ru/serega6531/packmate/StreamOptimizerTest.java +++ b/src/test/java/ru/serega6531/packmate/StreamOptimizerTest.java @@ -2,7 +2,6 @@ package ru.serega6531.packmate; import org.apache.commons.lang3.ArrayUtils; import org.junit.jupiter.api.Test; -import ru.serega6531.packmate.model.CtfService; import ru.serega6531.packmate.model.Packet; import ru.serega6531.packmate.service.optimization.HttpGzipProcessor; import ru.serega6531.packmate.service.optimization.HttpUrldecodeProcessor; @@ -34,9 +33,6 @@ class StreamOptimizerTest { @Test void testUrldecodeRequests() { - CtfService service = new CtfService(); - service.setUrldecodeHttpRequests(true); - Packet p = createPacket("GET /?q=%D0%B0+%D0%B1 HTTP/1.1\r\n\r\n".getBytes(), true); List list = new ArrayList<>(); list.add(p); @@ -48,9 +44,6 @@ class StreamOptimizerTest { @Test void testMergeAdjacentPackets() { - CtfService service = new CtfService(); - service.setMergeAdjacentPackets(true); - Packet p1 = createPacket(1, false); Packet p2 = createPacket(2, true); Packet p3 = createPacket(3, true);