Overview
  Research
  Development
  Dissemination
  Services
  Home
Theoretical Biophysics Group
BioCoRE - Biological Collaborative Research Environment
NIH Resource for Macromolecular Modeling and Bioinformatics
UIUC

BioCoRE Security Overview

I. Introduction

BioCoRE is a web-based environment to assist both structural biology research and collaboration between researchers. Researchers use the Internet to view HTML pages with some Javascript and to run Java applets to access data stored on a BioCoRE server. The current BioCoRE software runs on Unix workstations, and the development server is run on a Sun E250 server running Solaris. The BioCoRE server uses an Apache web server and Java Servlets to deliver web pages to the researchers. The servlets communicate with an SQL database, which is managed by MySQL running on the same server machine, using the Java JDBC interface. Most data is currently stored in the database, which is stored on local disks on the server machine. Some data is also being stored in files on the local disk, which are controlled by the servlet code.

BioCoRE is organized around the concept of projects. A researcher is a member of one or more projects, and only has access to information about those projects. Researchers are unaware of the existence of other projects, and of other researchers with whom they don't share a project.

Another aspect of the BioCoRE research project is the evaluation of how researchers use BioCoRE. To do this, the BioCoRE server collects data about how the researchers are using BioCoRE, by recording a trace of each user's activities in the system. This information is stored in an event database, also using MySQL. Periodically (currently every 6 hours), each server attempts to connect to the central event server maintained by the BioCoRE research team, and deposits this information using HTTPS into a main BioCoRE event database. The main event server is running on the same machine and under the same security conditions as the development BioCoRE server.

II. Machine Security

Most internet services, including telnet, ftp, and rlogin, are disabled. The only ways to access the machine are by logging in to the console or through SSH. All of the server software (web server, database, etc.) resides on local disks on the machine.

III. User authentication

All accesses to BioCoRE are encrypted using HTTPS. Upon first accessing BioCoRE, the user fills out a registration form, which includes a request for an email address. When the form is submitted, the server generates a random password for the user, encrypts the password and stores the encrypted version in the database, and sends an email back to the users containing the plain text of the password. The email message tells the user how they may log into BioCoRE using the random password and change it to a password of their choice. On login, the user's password is sent to the server using HTTPS, encrypted using the Unix crypt algorithm, and the encrypted password is compared to the encrypted version in the database.

Once a user has logged in, his session is assigned a "session-id". The session-id is a 32-bit number that is passed, usually as a HTTP parameter, along with any accesses. If the user attempts to use an old session-id after already being assigned a new one, they must again provide their user name and password. The session-id becomes invalid when the user either explicitly logs out of BioCoRE or does not access BioCoRE for a user selected time-out period, (default: 700 minutes).

IV. Job Management

Managing remote computational jobs is one of the tools in BioCoRE. The level of automation we have implemented requires that the BioCoRE server have access to the researcher's account on the computational machine, so that the server may deposit and retrieve files and execute commands to run the job and see if it is still running. Unlike most of the information in BioCoRE, account information is privately held by the user, rather than being shared with everyone in the project. Other project members are only aware of the existence of and results from completed jobs.

Job management was first implemented using SSH and associated programs to allow the BioCoRE server access to the researcher's account. First the user tells BioCoRE about his account, by selecting from a list of machines that BioCoRE knows about, and providing their user name and password. This information is transmitted via HTTPS to the server, where it is used to log in to the remote machine using SSH. Once logged in, the server generates an SSH key-pair, and deposits the public key into the researcher's .ssh/authorized-keys file on the remote machine. The private key is stored in the BioCoRE database. At this point, the server gets rid of the researcher's password, and all further transactions between the server and the remote machine occur using the generated key-pair. Whenever a researcher wishes to prevent BioCoRE from accessing the account, they may do so by removing the public key from their authorized-keys file.

For using Globus, users have to have an Alliance certificate, and BioCoRE uses the MyProxy server to gain access on the users behalf to the Alliance machines.

Feedback

The BioCoRE team welcomes any comments, questions, or suggestions that you might have concerning our product! Please fill out our feedback form.

Go back to the main BioCoRE page


Search Site:
Overview Research Development Dissemination Services
 

Back to Top | Home

This document was last modified on Wednesday, 04-Sep-2002 16:25:49 CDT
Material on this page is copyrighted
Contact Webmaster for more information
438 accesses since 03 Nov 2000