Re: Security and the ODBC
Posted in 1997
Ums.Harald@fhm.de (Harald Ums) wrote: :Nils.Myklebust@idg.no (Nils Myklebust) wrote: : : :>So the user should supply an extra password for the role I asume. That :>in itself is bad, but may be it could be the same as the password to :>get into the database (the Unix users password for Informix). In that :>case this would be ok. : :No the password should be unknown to the user - of course there is no :way to keep role names secret, it is the same as usernames. : :The program should have a way to retireive _its_ password the way a :user can't. :On UNIX the program could be suid . :On WinNT/Win95 you could brand the program with the password and put :it on a network drive, that supports execute only (no read) access. :But iI admit these are only solutions for inhouse programming. It's a workable idea for several purposes. :The only thing to be inaccessable is the role-password (of course that :can be areal administrative burden). If branding is required the administrative burden might be high. One would have to have a branding function that could be run on a regular basis to change the passwords or the codes used to retrieve the password. :For me this role scheme is just a way for the __APPLICATION__ to :authorize itself __INDEPENDENDLY__ from the user. Yes. That's what we need. That should have been built into any operating system and available as a standard function in a reasonably secure way. That is of course impossible if the program is installed on the users workstation whatever the OS is. Even in this case however it may be good enough for some purposes. With programs installed on servers it should be possible to make it secure enough for many purposes. :>The only real solution is at the connection level where program names, :>application names, machine/terminal names and other things should be :>checked before access is granted at some level. : :I think program names are useless, since if I use an Win* client, I :can give the program any name i want it so no server on the other side :of the network can find out the difference . It isn't quite that easy even on Windows clients. The program name isn't the same as the file name of the executable. It's compiled into the application. It is of course simple to create another application with the same name. There may be several other holes as well. :The other things can be a bit more interesting: :The database connection software could send a crc of the program to :the server and the server would check if the program is registered. There are allways levels of security. For a lot of cases it's enough to make it difficult to get in. This type of soulution should be standard in the communication protocol. For those who require a high level of security other schems should be available. They may however require both more coding and more administration and may not be possible to achieve if any program (MS Access and similar) should be allowed access. Nils.Myklebust@idg.no NM Data AS, P.O.Box 9090 Gronland, N-0133 Oslo, Norway My opinions are those of my company The Informix FAQ is at http://www.iiug.org