140 likes | 152 Views
This project explores SSL (Secure Socket Layer) and JSSE (Java Secure Socket Extension) in Java, providing convenience for users to learn about cryptography and secure communication. It includes an overview of SSL architecture and implementation in Java with relevant code snippets.
E N D
SECURE NOTEPAD BYANKUR DESHMUKH & P JAYA SUNDERAM
OVERVIEW • Why this project ? • Overview of SSL • Architecture • Overview of JSSE • Our application
WHY THIS PROJECT ? • Convenience for users. • Learn about SSL (Secure Socket Layer) • Explore JSSE (Java Secure Socket Extension) • A big help to us. • Effort to make a contribution to open source
SSL – SECURE SOCKET LAYER • Introduced by Netscape in 1994 • Most widely used protocol for implementing cryptography on the web. • Used over TCP. • Why use SSL • Authenticate user • Protect data from attackers • SSL architecture
JSSE OVERVIEW • Implemented in 100% Pure Java • Provides API support for SSL versions 2.0 and 3.0, and an implementation of SSL version 3.0 • Includes classes that can be instantiated to create secure channels (SSLSocket, SSLServerSocket, and SSLEngine) • Support for various ciphers like RSA, DES, AES,DSA and others.
…Continued • Provides support for client and server authentication, which is part of the normal SSL handshaking • Provides support for HTTP encapsulated in the SSL protocol (HTTPS), which allows access to data such as web pages using HTTPS • It ships with JSDK 1.4.2
CODE SNIPPET • Client • // Create a non-blocking socket channel • SocketChannel socketChannel = SocketChannel.open(); • socketChannel.configureBlocking(false); • socketChannel.connect(new InetSocketAddress(hostname, port)); • // Do initial handshake • doHandshake(socketChannel, engine, myNetData, peerNetData); • myAppData.put("hello".getBytes()); • Server • int num = socketChannel.read(peerNetData); • if (num == -1) { // Handle closed channel } else if (num == 0) { // No bytes read; try again ... } else { // Process incoming data peerNetData.flip(); • res = engine.unwrap(peerNetData, peerAppData); • if (res.getStatus() == SSLEngineResult.Status.OK) { peerNetData.compact(); if (peerAppData.hasRemaining()) { // Use peerAppData } }
SECURE NOTEPAD • Written in java • Incorporated security using SSL • Emulates basic features of a notepad. • Edit • Formatting
BIBLIOGRAPHY • www.java.sun.com • www.openssl.org • Cryptography and Network Security: PRINCIPLIES AND PRACTICES, William Stallings