Accessibility
 
Home / Developer Center / Flash Communication Server Developer Center /

Flash Communication Server Article

Icon or Spacer Icon or Spacer Icon or Spacer
David Simmons
 
David Simmons
Principal Engineer
Macromedia
 
Macromedia Flash Communication Server MX security overview


This document describes security features of the Macromedia Flash Communications Server MX. It is intended for IT professionals who are considering deploying the server or business decision-makers who will purchase servers or initiate application development.

For more information on this topic, read the article: Moving into production: a security checklist for Macromedia Flash Communication Server MX.

 
This article covers the following topics:
·
What is Macromedia Flash MX and the Flash Communication Server?
·
Macromedia Flash communications applications
·
Network protocol
·
End user access
·
Controlling users
·
End user privacy
·
Access to host machine's resources
·
Adapters, virtual hosts, and applications
·
Server configuration
   

What is Macromedia Flash MX and the Flash Communication Server?
The Flash Communication Server is a platform enabling real-time, multi-way communications applications (including text, audio and/or video) developed with Macromedia Flash MX.

Macromedia Flash MX is a powerful authoring environment, including video, multimedia, and application development features, which allow designers and developers to create rich user interfaces and enterprise application front ends.

   

Macromedia Flash communications applications
A Flash communications application is a Flash application that communicates through the Flash Communication Server. Usually these applications enable person-to-person communication (either one-to-one, one-to-many, or many-to-many). Flash may also be used for machine-human communication, such as real-time data transmission and notification.

Flash communications applications may consist of:

·

A web page that the user views to start the application. The web page typically contains the Flash movie (SWF file) created with Macromedia Flash MX. Alternately, it could be a place to download a stand-alone executable.

·
A client Flash application (SWF) that executes on the end user's machine in the Flash Player. This is either in a web browser or a standalone application. This contains the presentation layer or user interface for the application.

·
Server code and data: server-side ActionScript that executes on the Flash Communication Server can contain application logic. With ActionScript executing on both the client and server, the application logic can be distributed to clients or centralized as needed.

·
Application Servers: both the Flash client and Flash Communication Server can connect to application servers to execute CFML, Java, and .NET code.

   

Network protocol
Macromedia Flash MX uses the Real-time Messaging Protocol (RTMP) for client-server communication. This is a TCP/IP protocol designed for high-performance transmission of audio, video, and data messages. RTMP sends unencrypted data, including authentication information such as a name and a password.

While RTMP is not secure, Flash communications applications can perform secure transactions and secure authentication through a SSL-enabled web server. (For more details, see the section on end user access below.)

   
End user access
The Macromedia Flash Communication Server MX supports several ways of controlling whether an end user may connect to an application instance:

1

Unauthenticated access requires no name or password login.

Intranet applications may be easily accessed by anyone in the organization for internal corporate communications, ad hoc video conferencing, etc. Anyone who has access to the website or Flash movie and the communications server also has access to the application.

Customer service and support applications may allow any end user of a website to communicate with company representatives immediately—without requiring the end user to register or supply identity information.

2

Basic authentication is typically used with a small user base where secure authentication is not required.

Identity information, such as name and password, is transmitted over unencrypted RTMP. The server verifies the name and password, and allows the client to continue as appropriate.

This is a good option for intranet applications delivered on a website that require end user authentication.

3

Ticket-based authentication - the most scalable, and quite secure method.

With ticket-based authentication, a user is first verified by an authentication server, which provides the Flash client with a "ticket". This is passed to the Flash Communication Server, which is configured to verify the ticket. Tickets can expire after a short time.

4

IP address access may be allowed or denied.

The server may be configured to prevent or allow access from a specific IP address or range of IP addresses.

   
Controlling users
The Flash Communication Server has functions for server-side scripts that may disconnect users. Applications can be developed for moderators or administrators to perform custom maintenance and monitoring.
   
End user privacy
End user data can be stored in shared objects, a mechanism for persistent storage on either the client or server computer. Applications only have access to the shared objects associated with that application, preventing another Flash program from reading that data. The shared object storage, however, is not secure. The data is stored in an unencrypted, binary format. It should not be used for sensitive data, such as financial information.
   

Access to a host machine's resources
Applications can not access the resources or files of other applications. This is enforced by saving resources for one application in a unique directory that can't be accessed by other applications.

Server administrators may also set limits on the bandwidth consumed by an application. This will prevent one application from consuming all the network bandwidth on a machine.

Disk space may also be limited by the server configuration.

   

Adapters, virtual hosts, and applications
The Macromedia Flash Communication Server will work with multiple network adapters on the server machine. This allows the server to be built for maximum network throughput.

In addition, "virtual hosts" may be configured on each adapter. Virtual hosts can be used to isolate different server users, allowing each server user to add applications freely but keeping their programs separate from others. Virtual hosts are assigned to specific adapters.

Finally, individual applications can run as a default instance or individual instances. For example, different instances of the same video chat application allows the program to be used by different groups that do not want to communicate. Applications always run under the same virtual host.

   

Server configuration
Proper server configuration is the key to securing your applications. Some of the items that the administrator can control are:

·
Administrator users and passwords.
·
IP address ranges or domain names required or denied to administrator users.
·
Connection port for administrators, thus allowing access only to users behind a firewall.
·
Performance parameters such as thread limits, garbage collection intervals, and stream allocation size.
·
IP addresses and ports to listen on for normal incoming connections
·
Domain names or IP address ranges permitted or denied for applications.
·
Logging server access and application events.
·
Performance characteristics of the server-side script engine.
·
Bandwidth capacity for an application.
·
Default bandwidth for a client connecting to an application.
·
Directory roots used for stream, data, and application storage.
·
Limits on application instances, streams, and shared objects.
 

Conclusion
The Flash Communication Server and client applications are easy to secure by following proper development and configuration guidelines. Applications can be safely deployed to servers by following the recommended practices for secure development.


About the author
Dave Simmons joined Macromedia in 1993 and is currently an engineer on the Flash Communication Server MX team. Prior to joining that group, he developed the Shockwave Multiuser Server for Director. He spent several years as Project Manager for SoundEdit 16 and also worked on Japanese, Chinese and Korean language versions of Macromedia products. In a prior life, he worked in Tokyo and Singapore for 8 years before settling in Northern California.