A Java implementation of a Secure Channel in Socket Programming in the context of a simple ebanking prototype.
Full report in Portuguese available here
-
Diffie-Hellman Key Agreement with Signature from the Server
-
Client verifies the signature using a X509 encoded Certificate
-
Computation of a Shared Key
-
Usage of AES CBC Mode to ensure communication confidentiality
-
Usage of HMAC256 to ensure communication integrity and autenticity
Compile lines:
Server (compile):
javac -cp commons-codec-1.7.jar server.java
Client (compile):
javac -cp commons-codec-1.7.jar client.java
Run lines:
Server (execute):
java -cp :commons-codec-1.7.jar server
Client (execute):
java -cp :commons-codec-1.7.jar client