Title: Proxy%20Protocols%20SOCKS%204,%204a,%20and%205%20Advanced%20Software%20Engineering%20(CSE870)%20Instructor:%20Dr.%20B.%20Cheng%20Contact%20info:%20chengb%20at%20cse%20dot%20msu%20dot%20edu
1Proxy ProtocolsSOCKS 4, 4a, and 5Advanced
Software Engineering (CSE870)Instructor Dr. B.
ChengContact info chengb at cse dot msu dot edu
- Kayra Hopkins
- Loretta Macklem
2Outline
- Introduction
- Frameworks
- Demo
- Extra Credit Implementation
- Demo
3Introduction
- SOCKS - an Internet protocol that allows
client-server applications to transparently use
the services of a network.
4SOCKS Protocols
- SOCKS 4
- No authentication
- Simple connect and bind connections supported
- SOCKS 4a
- Domain resolution
- SOCKS 5
- Authentication plus UDP connection supported
5Frameworks
- Framework - a reusable design for a software
system expressed as -
- Set of abstract classes
- The way their instances collaborate for a
specific type of software
6Use of Frameworks for SOCKS
- SOCKS versions have a large amount of common
functionality - First step was to identify all major common
functionality.
7Whitebox
- Commonalities
- Identify if client or server can access IP
requested - Creating a connection to a server
- Receiving messages
- Forwarding messages
- Sending reply messages
- Authentication
- Differences (points of extension)
- Parsing the request message
- Forming the reply message
- Creating new types of authentication
8Whitebox, cont.
- Design Pattern
- Iterator Pattern
- Username/Password Login
- Domain Resolution
- Authentication
9Whitebox Class Diagram
10Magenta is Design Pattern, Green is where user
implements functionality, Blue is abstract class
11(No Transcript)
12Greybox
- Changes
- Authentication is now an interface
- At the time only one protocol used authentication
so we thought it would be the easiest to change
for greybox
13Red is interfaces, Magenta is Design Pattern,
Green is where user implements functionality,
Blue is abstract class
14Blackbox
- All extension are done through interfaces
15 Red is interfaces, Magenta is Design Pattern,
Green is where user implements functionality
16State Diagram
Connected
Connection Denied
17Demo
18Problems We Encountered
- Figuring out how to get the information from the
request messages without having the control loop
be changed much - Solution - have implementation of parsing the
request message have a function which returns an
array with all of the needed values to be passed
to reply message implementation
19What We Learned
- No comment on whether making a whitebox is easier
than making a blackbox - Able to identify where we have used frameworks
previously without knowing it
20Applying Our Framework to MISys
- Decided to place all patient records on a
separate server, apart from the application - MISys uses proxy to connect to other server and
obtain patient information
21Class Diagram
MISys
SOCKS Framework
22Framework accesses Patient or Appointment Records
Makes call to obtain Patient or Appt Records
Connects to MISysMainUI class
Connects to Iterator Class
23MISys Demo
24Questions?