Ask Brandon to move the discussion over to the FAQ section, if it's not there already! :-)
-- T.Rob -----Original Message----- From: MQSeries List [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Monday, May 17, 2004 3:03 PM To: [EMAIL PROTECTED] Subject: Re: Java Clients and Security Hole??? - Leftovers.. Hi Rob and Pavel, Thank you for your responses. But it looks like thats how it is designed. And there is nothing much that could be done other than using the alternatives, ie. SSL, mcauser with userid specified, for more secure environment. Have had a long discussion on mqseries.net. Cheers Kumar "Wyatt, T. Rob" <[EMAIL PROTECTED]> Sent by: MQSeries List <[EMAIL PROTECTED]> 05/17/2004 09:45 AM Please respond to MQSeries List To: [EMAIL PROTECTED] cc: Subject: Re: Java Clients and Security Hole??? - Leftovers.. Kumar, You always have to assume that an MQ client connection is insecure. Even if you only use MQ inside your company's firewall, anybody could put the client on a laptop, plug into your network, and impersonate mqm or whatever UserID is required to access your system. If you use the client-passed UserID to authenticate, everybody is on "the honor system" and is trusted to supply the correct credential although it is not enforced. This is by design. IBM provides the tools to enforce strong authentication using SSL and certificates. Lighter-weight solutions include setting the MCAUSER attribute to enforce a low-privileged UserID on the channel (at the expense of any kind of authentication), or using an exit such as BlockIP which can filter connections by IP address or enforce some UserID policies such as refusal of connections from IDs with administrative authority (mqm for example). Please also bear in mind that your SYSTEM.*.SVRCONN channels are wide open if left with their default settings. If you do not enforce some kind of authentication, anybody can attach to these channels with full administrative privileges. You can find the BlockIP security exit here: http://www.mrmq.dk/index.htm?BlockIP.htm -- T.Rob -----Original Message----- From: MQSeries List [mailto:[EMAIL PROTECTED] Behalf Of mqonnet Sent: Sunday, May 16, 2004 10:32 AM To: [EMAIL PROTECTED] Subject: Java Clients and Security Hole??? - Leftovers.. Hello again, Forgot to mention that I Also defined the SVRCONN channel with MCAUSER attribute BLANK(set to nothing). This looks to me like a *BUG* within the product that can be fixed. All comments welcome. Cheers Kumar -------Original Message------- From: mqonnet Date: Sunday, May 16, 2004 09:06:21 AM To: [EMAIL PROTECTED] Subject: Java Clients and Security Hole??? Hello Mq'ers, The scenario is like this: System A has MQ Server installed. System B has MQ Client installed. Both are on w2k with MQ 5.3, with or without csd's dont think it matters. I logon to system B with userid FRED who is in the mqm group on System B. I defined a userid/principal on System A named FRED. Did *NOT* assign this userid *any* groups. Just setmqaut'd this userid to accept connection on the queue manager. setmqaut -m QM1 -t qmgr -p FRED +connect. I defined a local queue, TEST on the qmgr on System A. Did *NOT* assign *ANY* authorities to userid FRED to access this queue on System A. Which would mean, userid FRED should be able to connect to qmgr QM1 but should NOT be able to open TEST queue. On System B, i have 2 test scenarios. 1) I run amqsputc TEST QM1. Connects fine, but mqopen fails with 2035 as expected. 2) I run a java MQ client app. Connects, opens, puts, closes and disconnects the queue just fine. This is what i believe is the security hole. And i believe it comes off the statement made in the Clients manual, Part 3, Chapter 7, under Access Control. Which says. "For Java client connections, if the client application does not provide a user ID then no client user identification is provided to the server". The above statement is what really bugs me. I see this as a major security hole. And i would believe IBM must have some strong theory for keeping it likewise, which obviously MUST already be know to IBM. Anyone on this forum or anyone from IBM throw some light on this??? To add to all this, i ran a trace on the server system A. Guess what. Amqsputc sends in userid "FRED" for authentication purposes as expected. But the java client sends in userid EntityName Administrato. I believe the implementation of the above comes from another statement made in the same manual as described above. "However, for the clients that use the MQ_USER_ID environment variable to supply the user ID, it is possible that no environment variable is set. In this case, the user ID that started the server-connection channel is used." Just a guess. Any thoughts, anybody. Cheers Kumar Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://vm.akh-wien.ac.at/MQSeries.archive