Some Usability issues with the Internet

This section discusses various connection techniques used on the internet, some issues regarding them and various minor solutions to them.

Setting up a server

This section discusses issues with setting up a service. The first case is setting up a game server, which doesn't support Upnp, and therefore will require configuration of the router/firewall to use. The relevent use case for this scenario is:

Use Case for a user setting up a Non Upnp game service

User Actions

Firewall settings

game actions

 

1. Firewall is set to secure state, All ports are blocked on the system by default.

 

2. User starts game server

 

3. Game opens a listening port on the system for clients to connect to.

 

4. Firewall prevents connections to listening port

 

5. To allow user to join, User opens up service port manually

 

 

 

6. Firewall opens port to internet. Any IP can connect to the server, allowing any hacker to compromise the service

 



In this case, knowledge of IP's, firewalls and ports are required to get the system working properly. The better solution is to use Upnp which doesn't require any manual configuration.In the case that the program supports the upnp protocol, which is used to dynamically open ports, and redirect ports on routers to the correct system on the network, the relevant use case is:

Alternative Use Case for a user setting up a Upnp Based service

User Actions

Firewall settings

Game Actions

 

1. Firewall is set to secure state, All ports are blocked on the system by default.

 

2. User starts game

 

3. Game opens a listening port on the system for clients to connect to, and uses Upnp to tell the firewall to open the port so people on the internet can join

 

4. Firewall automatically opens port for the game, allowing any user from the internet to join the game (melicious or not).

 



While upnp does reduce the amount of configuration required, and should be employed by all services to reduce the configuration required by users, it is no more secure then manually opening a port.

Some limitations of setting up a service currently



Connecting to a service

This section deals with connecting to another users services. As you will see, it is a lot harder then it should be. Its best to start with a simple example of connecting to a game server which has been set up on a standard server (which doesn't have any form of security).

Use Case for joining a game service on a standard server

Server owner

User joining the server

Game

Firewall

2. Owner informs friend that game has been started and locates his IP which is given to the user. He also grabs the port number the game is on (if on a larger server), and gives that to the user as well

3. User sets up a connection on the port and IP specified by the owner. The IP and port often needs to be written down to avoid needing to switch between windows in the game setup (as some games crash when doing so).

4. Game attempts to establish a connection to the target system. If the connection if successfully established, the user is added to the game.

1. Firewall state is set to allowing connections on the correct port, and connection forwarding has been set up already if needed.


As you can see, the IP and port are needed to be determined by the server owner to set up a server. Simply determining their IP is normally beyond the knowledge of most users. Even worse, if the firewall isn't configured properly and is set to ignore connections, the user could be waiting a minute or so before knowing that its not connecting. Now, assuming that the server owner is very paranoid, and is setting up a service known to be a bit insecure, if he wants to be secure, he'd have to only allow the set ip's of his friends onto the service. To do so involves adding them to his firewall. An example use case is below on this situation:

Use Case for joining a game service on a secure system

Server owner

User joining the server

Game

Firewall

1. Owner informs friend that game server has been started and requests their friends IP address so that they can allow them to connect.

2. Friend manually finds ip and gives to owner

 

 

3. Server owner adds IP to firewall, to allow them to join the game

 

 

4. Firewall starts accepting connections from the user, on the game port

5. Looks up their IP manually, and gives both the game port and IP to their friend

6. Friend joins server using IP and port

7. Game connects to target system. Once connection is established, game begins.

8. Firewall permits connection


It soon becomes blatantly obvious that setting up a server that only permits certain friends to join can be a difficult task unfortunately, and most of the actions needed to be performed by the user can be difficult.

Current Issues with joining any server



Issues regarding joining services on 'secured servers'



Zeroconf technologies

Zeroconf systems are designed to facilitate service broadcasting over a small network, allowing different computers to see which services are available on different computers on the network. This can be helpful because it allows users to completely avoid needing any internal network IP's, or worry about knowing the port numbers of other users service's to connect them. While most of the current implementations (such as Rendezvous/Bon Jour) are definitely a step in the correct direction of service sharing over a network, they do not perform at all over the internet, which is its major drawback. Resonance is being designed to simply supplement such technologies, to allow both internet, and internal network to be covered.