Skip to content

Commit f6b716e

Browse files
committed
#1 Added README.md
1 parent 50a97ce commit f6b716e

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# NSS JAVA MAKER
2+
A tiny command-line utility for automated Wireshark SSL key (NSS) files creation from Java SSL debug logs.
3+
These files can be used to decrypt HTTPS (or any other SSL/TLS) traffic produced by Java application.
4+
5+
To catch the idea of how it can be used please refer to article "[Decrypting Java applications' TLS traffic via logs](http://habrahabr.ru/post/254205/)" (in russian).
6+
7+
## Features
8+
9+
* Both [RSA](http://en.wikipedia.org/wiki/RSA_(cryptosystem)) and [Diffie-Hellman](http://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange) (PFC) negotiation modes support;
10+
* Various `-Djavax.net.debug` argument values support *(the `:data` value suffix is required)*;
11+
* Various JRE versions of logging application support *(from 6 to 8)*;
12+
* Customizable output file creation modes: **skip, rewrite, append** *(useful for combining with other tools)*;
13+
* Light-weight pure Java application with no external dependencies *(just JRE)*.
14+
15+
## Download
16+
Besides cloning project's repository you can [download ready-to-work JAR](https://github.com/Toparvion/nss-java-maker/raw/master/download/NssJavaMaker.jar) package of the utility.
17+
18+
## System Requirements
19+
NSS Java Maker requires only [**JRE 8+**](http://www.oracle.com/technetwork/java/javase/downloads/2133155) to start.
20+
21+
## Usage
22+
> Please note that use of this utility __is just one intermediate step__ in the more complex process of Java SSL/TLS traffic decryption. Traffic capturing and SSL debug logging precede this step; Wireshark decrypting follows it. To get familiar with the process in whole please refer to article "[Decrypting Java applications' TLS traffic via logs](http://habrahabr.ru/post/254205/)" (in russian).
23+
24+
#### Basic usage
25+
The only thing you should set for *NSS Java Maker* to start is the path to input Java SSL log:
26+
```
27+
java -jar nssjavamaker.jar some/directory/java-ssl-debug.log
28+
```
29+
By default the utility produces output file named **session-keys.nss** in the same directory.
30+
31+
#### Options usage
32+
Output file can be customized with `-out:` option, e.g.:
33+
```
34+
java -jar nssjavamaker.jar -out:export/session-5.nss some/directory/java-ssl-debug.log
35+
```
36+
This time the results will be saved in **session-5.nss** file of the **export** directory.
37+
38+
You can also setup how output file will be treated in case if it already exists. This is defined by `-outMode:` option, e.g.:
39+
```
40+
java -jar nssjavamaker.jar -out:export/session-5.nss -outmode:append some/directory/java-ssl-debug.log
41+
```
42+
Launched this way the utility will append the result to file **export/session-5.nss** if it already exists. In case the option has `SKIP` value the utility will stop running and print appropriate message in console; this is the default behavior. The last value for the `-outMode:` option is `REWRITE` which means erasing all the previous content of output file and filling it with the last launch results.
43+
44+
## Limitations
45+
In the current version *NSS Java Maker* has the following limitations:
46+
47+
* Only first block of SSL debug records is processed.
48+
It means that if your log contains records from several consequent SSL/TLS sessions then only the first one will be processed by the utility. In order to process such log properly please split it into several files and launch the utility for each of them.
49+
50+
* Multi-threaded SSL/TLS communication logs are not supported.
51+
It means that if your Java application writes log from several simultaneously running threads (each with SSL activity) then proper result are not guaranteed.
52+
53+
## Feedback & contacts
54+
If you found a bug or need a feature in the utility please feel free to create issues in project's repository or contact the author directly: [email protected].

0 commit comments

Comments
 (0)