2001 Conference Proceedings, June 11-14, 2001

Computer and information security considerations for installing and running Microsoft Internet Information Server and Microsoft SQL Server

Robin Snyder
Department of Computer Science and Quantitative Methods
Winthrop University
701 Oakland Avenue
Rock Hill, SC 29733
(803) 323-4813
snyderr@winthrop.edu
http://faculty.winthrop.edu/snyderr


Abstract

Computer and information security is becoming an increasingly important problem in a society that is becoming more and more dependent on information systems and computer technology. In any system, security is only as good as the weakest link, and most web-based systems have many weak links. And since computer and information security is a continuing process rather than a one and done product, one can never learn too much about the topic. This paper/talk will discuss/present an introduction to computer and information security with particular emphasis on security considerations for installing and running Microsoft Internet Information Server and SQL Server in a web environment.

Introduction

As computer and information security is becoming increasingly important, it is no surprise that the area of computer and information security is a huge field. There are many books on the subject. A good survey can be found in [6] while an entertaining history of cryptography can be found in [8]. For fairly current information in a cookbook format, the book "Hacking Exposed" [4] is an invaluable and interesting reference. For example, one is usually taught that it is easy to monitor traffic on a unswitched Ethernet network as all messages are broadcast to any computer that wants to listen while a switched Ethernet network only sends messages to the intended recipient computers. Thus, a switched network is much more secure than an unswitched network. But, the book provides detailed instructions are provided for how to monitor traffic on a switched network [4, p. 443-456]. Of course, you need access to at least one line or station on that switched network, but if you are under the illusion that such a network is inherently safe, you might be susceptible to such an attack.

Even more recent information can be found by doing a web search and/or getting on a mailing list. InfoWorld publishes free email newsletters on various subjects. See

http://www.iwsubscribe.com/newsletters/ for more information. The "Security Watch" newsletter has current and important information on security. As the InfoWorld site advertises, "If your network's not secure, you're toast. Get practical advice on how to run a tight ship with InfoWorld's security guru P.J. Connolly, in this hands-on, technically oriented weekly column." (as of 4/10/2001). There are also numerous web sites created and maintained by hackers for hackers, to quickly disseminate the latest techniques. The problem is made worse by the fact that the Internet crosses international boundaries. Thus, even if there are applicable laws in your country, those laws may not apply in other countries. And, one countries villain may be another countries hero. In a global community, you can be attacked electronically from anywhere.

The fundamental assumption in information systems and computer technology security is that a potential adversary has access to all published information. The logical consequence of using this assumption as basis for systems design criteria is that everyone should only have access to information that they need to do their job. This is much easier to do in a closed system, such as an intranet, than it is in an open system, such as the Internet. On the Internet, every adversary not only has access to your system, but has access to a wealth of published information of which you might not even be aware.

Use effective measures that are easy to do

There is no such thing as absolute security, as long as people have access to the computers and/or information that needs to be secure. Think about it. If the White House, FBI, NSA, etc., can't do it, can you? On the other hand, you do want some security. And, since a system is only as secure as its weakest link, and you often do not know what that weakest link is, the cost of approaching maximum security can be prohibitive. The middle ground is that you should get and use the security for which you are willing to pay the cost.

When connected to the Internet, every hacker in the world has access to trying to break your security. Many hackers, like thieves, go looking for easy places to break into. So, as a minimum, you should do everything that is easy to do from a security point of view.

One of the easiest things to do to avoid security problems is to always have the most recent software fixes installed on your production servers and client machines. For Windows platform client machines, one should check the "Windows Update" site often for updates. One way to do this is as follows.

  • From Internet Explorer, select "Tools", "Windows Update".
  • Select "Product Updates".
  • Follow the instructions.

I prefer not to have the overhead and inconvenience of the "Windows Critical Update Notification" update, so I do not install that feature, but I do try to check it at least once a week or when I hear news of a security problem involving Microsoft. The critical updates often involve some new way that someone has found to compromise the security of Internet Explorer.

A commonly used production web platform consists of Microsoft IIS (Internet Information Server) as a web server and Microsoft SQL Server as a database server, although it is possible to use them together as a development system in addition to a production system [9]. It is fairly easy to install and configure each into a usable web system. It is quite another matter to make sure that the web system is secure. For servers, one should check for updates to IIS, SQL Server, etc., especially those updates that relate to security. Here are some relevant links.

  • The primary Microsoft Windows update page is at http://www.microsoft.com/windows/default.asp.
  • The primary SQL Server update page is at http://www.microsoft.com/sql/downloads/default.htm.
  • For example, the most recent service pack for SQL Server 7 is SP3, which can be downloaded from http://www.microsoft.com/sql/downloads/sp3.htm (37.5 MB).
  • The primary update page for IIS 4, for example, is at http://www.microsoft.com/ntserver/all/downloads.asp, as part of the NT 4 Server update page.

Of course, the Microsoft site seems to change often, so you might have to hunt for what you want, but the search engine makes it fairly easy to find things. Other platforms will have similar sites.

An example of something that is hard to do is to protect a web server from a Dos (Denial of Service) attack whereby a hacker, or group of hackers, makes a huge number of requests to a web server, thus keeping it busy so that it can do little or no useful work.

The human factor

In 1993, Bruce Schneier wrote the first edition of a best-selling book entitled "Applied Cryptography" [5] in which described the mathematical basis for cryptography and provided source code that many a programmer has used to create secure systems. When he started consulting for companies, he began to how woefully inadequate that book was in terms of the human factor of security. One colleague told him that "the world was full of bad security systems designed by people who had read Applied Cryptography.". [6, p. xii]. Observing that cryptography is a branch of mathematics while security involves people and digital security involves complex, buggy computers, Schneier went on to write "Secrets & lies: digital security in a networked world", a must-read for anyone interested in security as opposed to cryptography. As he states, "If you think technology can solve your security problems, then you don't understand the problems and you don't understand the technology. ... in order to understand the security of a system, you need to look at the entire system - and not at any particular technology." [6, p. xii-xiii].

In particular, "Security is a process, not a product." [6, p. 84]. Security involves the human factor and is only as strong as the weakest link. A common example is the use of password protected resources. The strongest cryptography will not help if a user compromises their password. The term human engineering is used, especially in the hacker community, to refer to talking your way into getting the information you need from a human rather than getting it through a computer. Posing as someone else on the telephone, hackers can get password, configuration information, etc. For example, what would you do if someone called you who sounded like they knew what they were doing and said something like the following. "Hello. This is name from the IT department help desk and we are having problems with your account. If it is OK with you, all we need to fix it is your password so that we can login to your account, fix the problem, and then logoff. We'll let you know when we are done. It should only take a few minutes.". In a large company you might not know who is calling.

Let us now look at a few examples of aspects of system security for Internet-based systems involving web server and database server.

Firewalls

The typical tiered information systems model of a web-based system consists of the following layers.

  • The presentation layer consists of the web browser using HTML that is formatted and displayed to the user.
  • The business logic layer consists of a web server with some form of server-side processing, such as ASP.
  • The data access layer consists of a database management system such as SQL Server, sometimes with a connection to a mainframe database.

Between the presentation layer and the business logic layer is a firewall that only allows certain TCP/IP messages to pass through the firewall. The Internet is outside the firewall while the local intranet is inside the firewall. Of course, there are more sophisticated configurations where more than one firewall is used, but that is beyond the scope of this discussion.

A free, for individual noncommercial use, firewall software program that the author uses is ZoneAlarm (version 2.1.44) available at http://www.zonelabs.com (as of April 11, 2001). Such software will not only help protect your computer, it will make you more aware of what a firewall program does and how it does it.

For home users connected to the Internet via high-speed Cable Modem or DSL (Digital Subscriber Line) phone access, security can be a problem as computers left on are always connected to the Internet, even when no one is using them who might otherwise notice if something unusually is happening, such as a hacker attack. Installation of a Cable/DSL router, such as the LinkSys, at http://www.linksys.com, EtherFast 4-Port Cable/DSL Router provides a 4-port high speed 100Mbps switch (for client stations) and 10Mbps WAN connection to the cable/DSL connection and provides NAT (Network Address Translation) to isolate the internal home intranet from direct unsolicited access from the Internet. However, if you connect the Internet from the intranet, the connected site can communicate back to the site that initiated the communication. The standard IP intranet addresses are as follows.

  • 10.x.x.x (class A)
  • 172.16.x.x (class B)
  • 192.168.1.x (class C, supported by the above router)

Most companies and academic institutions use NAT to isolate the intranet from the Internet. In most cases, direct access to SQL Server is only allowed from within the firewall (i.e., on the intranet). Thus, users outside the firewall cannot directly access SQL Server. Instead, the firewall allows traffic on the http: port (port 80) and the https: port (port 443) to pass through the firewall in both directions. Often, some other ports (e.g., email) may also allow messages to pass. Since the web server is inside the firewall, it has direct access to SQL Server. Thus, the web server acts as a intermediate control point between the user and the database. Thus, if the ASP server-side processing code were written correctly, and there were no software bugs in the system, then, the human factors of cooperating users would be the primary security problem. But, since many bugs exist in the systems software, and the programmer-written application-specific software (e.g., ASP pages) is not written bug-free, an uncooperating-user has many opportunities to break the security of the system.

One common problem is a hacker stuffing an input field with values that were not anticipated by the programmer. Normally, when writing self-contained software that will run on one computer at any one time, the programmer assumes a cooperating-user model whereby if all code within the program checks the validity of parameters passed to a procedure, that procedure need not check those parameters for validity (Nicklaus Wirth, inventor of the Pascal programming language used this model in his design of the Oberon system, which never gained the popularity of the predecessor languages Pascal and Modula). Although this approach can make for a more efficient program, the assumptions do not hold in a distributed web environment. In general, parameters should be validated at the client browser, must be validated at the web server, and should be validated again at the database server, just in case. One must also look at how the input data is used.

If the input data is to be displayed as HTML, then a hacker could input code that, when displayed as HTML, would, say, load an ActiveX control from someplace on the Internet. If the ActiveX control gets loaded, and is given access to the user's computer, as might easily happen, then the ActiveX control could do anything it wants on the user's computer. This is not good.

One way around this problem is not to display HTML directly. The Server.HTMLEncode function will, for example, convert "<TAG>", which, depending on the TAG, could do something bad, to "&lt;TAG&gt", which will display without any side-effects.

Another problem might be that if single-quotes are included in the input, and that input is passed to SQL Server as an encoded SQL command, then the single-quotes might mess up the query. One way around this problem is to replace all single quotes in such text strings with two single quotes so that the SQL command is interpreted properly.

The problem with such pages not working right might be a direct security problem. In other cases, the page might just not work right. But, when a page does not work properly, sometimes the error message might give useful information to an attacker, besides just looking bad to the viewer.

It must be remembered that even if data validation is done at the client web page, the knowledgeable hacker need not use that web page. All parameters from an HTML page are sent to the web server in a well-known format. Anyone can do a "View Source" and see how the parameters are sent. Thus, a hacker can send the input directly circumventing any checks made at the client web page (e.g., using built-in HTML limitations, JavaScript validation, etc.). To see that this feature can often be used for good by users, consider the following. The Winthrop library has a way that one can look up books on-line through the web. It is somewhat cumbersome, but it works well. The library uses URL-encoded parameters and it is easy to figure out how it does it. So, the author has set up a page with references for certain textbooks with the URL encoded to directly look up the books along with the current status (e.g., on-the-shelf). This is a good use of a feature that can be used for devious purposes by hackers in other contexts.



Microsoft Internet Information Server

The use of Microsoft IIS as a web server could easily fill several huge books (see, for example, [1], [11]).

The most secure web servers only allow client browsers to request static HTML pages without any server-side processing. However, to be useful, a web server needs to provide some form of server-side processing.

The rights that a web page with server-side processing has on the web server can be a combination of "Read", "Write", "Script", "Execute", and/or other rights supported on that server. Usually, on a web server that supports server-side processing, "Read" and "Script" are granted in most directories. However, directory browsing should be turned off so that a client browser can only access files that are linked, in a transitive manner, from the main web page. Having "Read" access but not directory browsing access means that one can read any file or subdirectory in the directory, but one cannot see what is there. One must, instead, know what files and/or subdirectories are there. "Script" access allows scripts, such as ASP scripts, to execute on the server.

To be safe, one should turn off or not install options, such as FrontPage Server extensions, which contain security problems, unless one has a good reason use them. As a practical matter, a good way to do this is to get the web server running with all options installed, and then remove them, one by one, every few days, or weeks, so that if removing any one of them causes any problems, it should be easy to detect what change caused what problem. The worst way to do it is to make a lot of changes at one time since if there are any problems, you will not know what caused the problem, especially if care was not take to document the exact changes as they are made.

One useful design is to create a front-end web server, outside the firewall, perhaps hosted by at a site through an ISP, that serves only static HTML pages. The front-end site has a link to a back-end web server that requires that the user login. From the server point of view, each web page transaction is separate from each other web page transaction. However, the use of cookies allows the web server to track client behavior from client requests to client request in what is called a session. Systems such as ASP make tracking such sessions fairly easy and transparent. The user can be authenticated once and then tracked in a session variable until it expires. Or, the user can be authenticated on every access by passing the login parameters (i.e., user name and password) from access to access, which obviates the need for cookies or for the client browser to have cookies enabled. If at any point a request is made that does not have the required user name and password as parameters, the login box appears before anything else can be done on that site. Better yet, use the session authentication and, if cookies are not enabled, use the page to page authentication.

There are two primary ways to pass parameters from client machine to web server, GET parameters or POST parameters. A GET parameter is a URL-encoded parameters. However, GET parameters are not very secure as the URL is passed as plain text, can be saved and/or bookmarked as a favorite, appears in the history list, etc. Such parameters are nice for saving queries from search engines, so that the exact page can be found again, but are not good from a security point of view. Most secure pages use POST parameters whereby the parameters are passed in the body of the http: message. However, this is only useful only as long as eavesdropper cannot monitor and read the message. This requires that the messages sent between client browser and web server be encrypted which requires a brief overview of cryptography as it relates to web systems.

Cryptography

Communication using cryptography involves the sender encrypting a plain text message and transmitting it to a recipient so that it can be decrypted to the original plain text message by the recipient while anyone else who has access to the message should be unable to decrypt the message to the original plain text.

Efficient symmetric cryptography methods such as DES (Data Encryption Standard) exist to securely encrypt/decrypt messages by use of a symmetric key, provided that both sides have the key. The primary problem is in key distribution as encryption using the existing keys cannot be safely used to send the new keys.

Public key cryptography, or asymmetric cryptography, partially solves the key distribution problem and makes possible the concept of digital signatures. The most popular public key cryptography method is the RSA (Rivest, Shamir, and Adleman), the details of which are not important here. What is important is that each user has a private key and a public key. Given the public key, one can encrypt messages, but one needs the private key to decrypt messages. Software can generate both private and public key pairs for any user. As keys are public, the key distribution is partially solved.

But, how does one know who the message came from? Since one can encrypt or decrypt plain text, user A can decrypt a plain text message first, then encrypt it with user B's public key and send it to B. Now, only user B can decrypt the message and then encrypt it using A's public key to make sure that it only came from user A, as only A can decrypt the message. This concept is the basis for what is called a digital signature.

In general, asymmetric cryptography is much less efficient than symmetric cryptography. So, in practice, messages consist of two parts. One part uses asymmetric cryptography to form the digital signature and exchange symmetric session keys, good for only that message or session. The rest of the message uses the more efficient symmetric cryptography. This method was made popular by the email program PGP (Pretty Good Privacy).

Secure sockets layer security

The web incarnation of public key cryptography is called SSL (Secure Sockets Layer) security. If enabled on a web server, it uses, by default, port 443, for a service called https:, as opposed to the standard http: service on port 80. SSL is easy to enable on a web server, if supported (as it is on IIS). The more bits used, the more secure is the communication. However, decisions involving how to use SSL are sometimes complicated. There is just one setting in one dialog box in IIS on the web server that sets the encryption strength security required to access the web server, and it is easily changed.

In general, the web server owner must make the final decision based on how much risk of information compromise they are willing to tolerate in relation to the configuration problems that clients with older browsers might have upgrading their older browsers to the required encryption strength. Since even 128-bit encryption is not absolutely safe, there is always some risk of information compromise, so that is not the question. The question is how much risk of information compromise is tolerable. A reasonable compromise would be to set the required encryption strength to 40-bit encryption, which would handle most browsers, and strongly recommend to clients that they use 128-bit encryption strength (which would still be supported by the server). Any client doing any transaction on the Internet that involves personal information that might be compromised should never use less than 128-bit security, but that is a decision that clients should make on their own and not be forced unless the server owner is not willing to tolerate the risk of a less secure transmission method.

The encryption strength, measured in bits, must be one that is agreed on by everyone in the industry. You cannot use an arbitrary number. Some current standards are 40-bit, 56-bit, and 128-bit. Ignoring some mathematical points, adding one bit essentially doubles the security of the encryption. So, 56-bit encryption is about 65,000 times more secure than 40-bit encryption. And, 128-bit encryption is a million-million-million times more secure than 56-bit encryption. It is believed that only agencies such as the NSA have the resources to break 128-bit encryption. On the other hand, breaking 40-bit encryption can be done by motivated college students without too much difficulty and without requiring too much time.

The guideline for the client is that the client should use the strongest encryption available and that is supported by the server. The server can be set to always accept 128-bit encryption even if it is set to accept a lower level of encryption. The guideline for the server is less clear, as it involves making a business-technical tradeoff that can not be made based only on technical decisions. The decision depends on how much risk the server owner is willing to tolerate.

For example, in banking, if the server owner (the bank) decides to use lower encryption, and someone breaks it and steals money, the bank is taking the risk. So, the bank would typically require 128-bit security. The same reasoning applies for credit card transactions over the Internet. Due to U.S. law, the merchant and/or bank would be liable in most cases, so they are taking the risk and would usually require 128-bit security. As a client, I do not want to take a chance on the risk and the time and effort to make things right, so I would opt for 128-bit security.

From a security point of view, one wants the strongest encryption possible. One drawback is that it requires more processing on both client (not very important) and server (could be important with very high volumes of sessions using encryption).

The primary practical problem with requiring 128-bit security is that clients with older browsers would have to upgrade those browsers to use a higher encryption strength. This could present significant problems if the users in question have older browsers and are not computer savvy about performing the rather simple (for computer savvy users) upgrade themselves. Due to changes in the U.S. export restriction laws, all new browsers (e.g., I.E. 5.0 and above) come with 128-bit encryption, so this problem should become less and less important in the future.

There have been bugs in software that has crippled the use of SSL. An early version of Netscape had a predictable way of generating private keys. Later, it was demonstrated how to patch an executable version of Netscape so that it would always use the same private key. So, using SSL is only as good as the system in which it is operating, which changes every time that a client browser or web server is modified.

User authentication

Usually, some form of user identification along with a password is used to authenticate the user to the system so that the system is fairly confident that the user is who the user claims to be, the definition of authentication.

NTLM (NT LAN Manager) authentication is used by NT/2000 for authenticating users. Without getting into details, it works using a form of public key cryptography whereby the server can authenticate the client without the password every passing over the wire. This is achieved by passing information back and forth so that the server, but not an eavesdropper, can authenticate the client. Since every process on NT must run by impersonating some valid user account, and since NTLM does not provide NT with a userid and password, and since NT security does not support delegation, access to the hard drive and other resources (e.g., SQL Server) can be a problem under NT. One is left compromising security to some extent.

On IIS, one can use no authentication (the default for most users browsing web sites), or other forms of authentication. NTLM is sometimes used, mostly in an intranet environment. Client-side certificate authentication can also be used (see certificate-based security below). Unfortunately, NTLM authentication authenticates only the client to the server, not the server to the client. Microsoft has adopted a form of Kerberos security for Windows 2000. The primary importance of Kerberos security is that it authenticates the server to the client. In a multi-server environment, such as a web server and database server, each server can be authenticated to the other as trusted so that client login credentials can be used to safely impersonate that client by one server in requesting services from the other server using the rights of the client, thus solving the delegation problem. Thus, one can use Windows login authentication on the web server and pass that authentication on to SQL Server.

Server authentication

The purpose of the encryption security is to establish a secure connection between the client and the server so that an eavesdropper cannot listen in on the conversation (e.g., to get login names and passwords, to get information, etc.). The login name and password is used to authenticate the client to the server, but how does the user know that the server is who the server claims to be.

For example, when the URL http://www.company.com is typed and Enter is pressed, how do you know that you have reached the company who owns that URL. The DNS (Domain Name System) is a distributed database system that is responsible for converting domain names, as used in web URL's, into IP addresses. It is possible, and it has happened, that a hacker could do the following.

  1. Copy a companies web site from the Internet and modify it on their own site as a Trojan horse web site.
  2. Break into one of the primary DNS computers and have the domain name point to their Trojan horse web site. Another, perhaps easier, way is to call the right office and use what is called human engineering to talk someone into making the switch.
  3. Now, the Trojan horse web site can pose as the real web site, at least until the company whose web site has been hijacked finds out and takes some form of effective action.

So, again, how does the user and/or client browser authenticate the server? To partially solve this problem, certificate-based security was developed to authenticate the server to the client. The system works by creating a hierarchy of certificates that involve cryptography and trusted company verification that the certificates are valid. Although full of loopholes, this is the current state of the art in server-based authentication.

In particular, one weak point is that how does one know whether to trust a certificate. Most trusted certificates are issued by companies such as VeriSign (a spin-off from RSA Systems). But those certificates can be costly ($100 to $1000 or more per year). And, if you have multiple web servers and/or IP addresses, change domain names, change IP addresses, or lose your certificate or password, you will need to get a new one. Of course, you can get a certificate from a less-trusted source. Or, to avoid all costs, you can become issue your own certificates to yourself using Microsoft Certificate Server, included with IIS. But, even if you get a certificate from a trusted source, such as VeriSign, that is no guarantee as the checks on requests for certificates are minimal, in most cases, and although there is a provision for revoking certificates (in a way that is similar to the expiration date on a credit card), most software does not support such revocation. In early 2001, a hacker posing as a Microsoft employee used human engineering to talk someone at VeriSign into issuing two digital certificates to the person with Microsoft as the trusted source as verified by VeriSign. Shortly after it was discovered, Microsoft started working on patches and VeriSign revoked the certificates, but the existing system for checking for revoked certificates is not really reliable or even used in most cases. Such a certificate would allow a hacker to have complete control over a client computer if that client computer downloaded an ActiveX control and trusted Microsoft the download. This would happen automatically if the user had checked the box to "Always trust Microsoft". The Microsoft fix would, presumably, check for that particular certificate, but there could still be problems. Returning to the user authentication using parameters passed from client browser to web server, the web server should have SSL turned on and require secure https: to the pages that are to be secure. In addition, the web server should install the necessary certificates to reasonably prove to the client that the web server is who the web server claims to be.

Microsoft SQL Server

The use of Microsoft SQL Server as a database server could easily fill several huge books (see, for example, [3], [7]). SQL Server installation is fairly straightforward. SQL Server is normally behind the firewall and is only directly accessible from the web server and from client computers within the intranet.

SQL Server has an extensive security model consisting of users, logins, roles (i.e., groups), and permissions for users, tables, views, stored procedures, etc., much of which is beyond the scope of this paper. One users, logins, groups, roles, etc., are set up, security access to SQL Server can be via integrated security using Windows login (e.g., NT authentication), or mixed security, which uses SQL Server standard login using userid and password (not as secure over the wire, so you want traffic to and from SQL Server hidden from the outside world). Since integrated security cannot be used in an NT environment from the Internet point of view, the userid and password for standard security appears in each ASP web page that does database access, so you do not want anyone to be able to view the source code of ASP web pages. Hackers are always looking for bugs that would allow them to view the source code of ASP web pages in order to obtain such information. There are known bugs that allow them to do this, so make sure that you have the most recent updates to your web server.

From a web system point of view, each ASP page, which by default impersonates the IUSR_MACHINENAME user, must have a user login and password to access the SQL Server database. Prior to Windows 2000, standard login was the approved way to access SQL Server as even though the web server might use Windows authentication, there was no way to delegate to SQL Server the same authentication rights. Since NT authentication for IUSR_MACHINENAME does not match any client authentication using NT authentication, and that authentication cannot be delegated, one is left with standard SQL Server login.

A VPN (Virtual Private Network), as supported by Windows, provides a way for a client computer to connect to an intranet by tunneling through a firewall using an existing Internet connection. Once connected, it is as if the client computer were actually on that intranet. This is important if one need, say, to access SQL Server from the Internet as the firewall will not permit direct access. VPN's provide a convenient way to connect to an intranet without using a dial-up connection with a modem, which can be even more of a security problem. Anyone using Microsoft VPN software should update to the latest version (1.3 or higher) to avoid certain well-known security problems with earlier versions.

Summary

This paper has covered just a few of the many important computer security aspects of installing and running Microsoft Internet Information Server as a web server and Microsoft SQL Server as a database server.



References

[1] Braginski, L., & Powell, M. (1998). Running Microsoft Internet Information Server. Redmond, WA: Microsoft Press.

[2] Howard, M., Levy, M., & Waymire, R. (2000). Designing secure web-based applications using Microsoft Windows 2000. Redmond, WA: Microsoft Press.

[3] Petkovic, D. (2000). SQL Sever 2000: A beginner's guide. Berkeley, CA: Osborne/McGraw-Hill

[4] Scambray, J., McClure, S., & Kurtz, G. (2001). Hacking exposed: network security secrets and solutions, 2nd ed. Berkeley, CA: Osborne/McGraw-Hill.

[5] Schneier, B. (1995). Applied cryptography : protocols, algorithms, and source code in C, 2nd ed. New York: John Wiley & Sons, Inc.

[6] Schneier, B. (2000). Secrets & lies: digital security in a networked world. New York: John Wiley & Sons, Inc.

[7] Shepker, M. (2000). Sams teach yourself SQL Server 7 in 24 hours. Indianapolis, IN: Sams.

[8] Singh, S. The code book. New York: Anchor Books.

[9] Snyder, R. (2001). Creating a fully-functional stand-alone web development system that includes web and database servers. Proceedings of the 34th Annual Conference of the Association of Small Computer Users in Education. Myrtle Beach, SC.

[10] Stein, L. Web security: a step-by-step reference guide. Reading, MA: Addison-Wesley.

[11] Stewart, J., & Chandak, R. (1999). A guide to Microsoft Internet Information Server 4.0. Cambridge, MA: Course Technology.

 
 
Home - 2002 Conference - Proceedings - Newsletters - ASCUE-L Listserv - About ASCUE
©2001-2002 ASCUE, Inc.
email: clsmith@depauw.edu
http://www.ascue.org
Latest update: 3-nov-01