|
|
- Description
JTouch is a Java HTTP browser working in both GUI or CLI mode. It demonstrates the provider pluggability of JSSE for Sun and IBM. Also, it gives a low level configuration of SSL cipher suites, enabling security checks of web servers. It's a good tool for debugging or automating complex page checking, refreshing proxy caches,..
- Features
general :
- HTTP keep-alive
- fully customizable requests with headers and body
- web server & proxy authentication in Basic & Digest
- full cookie support for netscape and v1
- low level time stamps logging, then we know where is the latency (network, web server, proxy)
specific SSL features :
- SSL provider pluggability with SUN and IBM
- low level SSL configuration (SSL version and cipher suites)
- configurable truststore
- web server certificate can be saved to a file (in order to update a keystore later)
- SSL random can be downgraded to zero security for speeding up SSL handshakes
- check all cipher suites against a webserver in order to know its security compliance
- RFC compliance
I tried my best to be as compliant as possible with the following RFCs, though this was not possible to implement 100% of them yet :
- 2616 Hypertext Transfer Protocol -- HTTP/1.1
- 2617 HTTP Authentication: Basic and Digest Access Authentication
- 2109 HTTP State Management Mechanism
- 2396 Uniform Resource Identifiers (URI): Generic Syntax
- 822 STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
- Netscape : PERSISTENT CLIENT STATE HTTP COOKIES
- Installing runtime
In order to use JTouch, you need Java 1.5 (at least) and the following security enhancements :
- install the unrestricted security policy files (files available in the download file)
- install IBM JSSE provider (version 1) (instructions and file available in the download file)
- Running in GUI
Open a command and run 'java -jar JTouch.jar', this will open a window and you will see some interesting logs in the command window.
- Running in CLI
Open a command and run 'java -jar JTouch.jar --help' to see all the available parameters.
- Examples
- simple request to a webserver
java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:System.out
- simple request via proxy
java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -proxyname:proxy -proxyport:8080 -o:System.out
- see the time stamps
java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:result.txt --netstamps --htmlstamps
- save the cookies for another request
java -jar JTouch.jar -hostname:fr.yahoo.com -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:result.txt -cookiestore:netscape
- view the cookies stored in file
java -jar JTouch.jar -viewcookies_netscape:cookies_netscape
- specify an SSL cipher suite
java -jar JTouch.jar -hostname:www.bred.fr -version:HTTP/1.1 -connect:https -port:443 -uri:/ -method:GET -o:result.txt -truststore:all -ciphers:SSL_RSA_WITH_RC4_128_SHA
- Feedback
You can get all feedback from the support forum
|