Hi Aleski,

inlined:
On 21 Apr 2006, at 11:18, Aleksi Kallio wrote:


I went through the ActiveMQ 4.0 RC2 code, checking how temporary topics are implemented. They seem to be regular topics, with generated pseudo-random topic names. Names are created by concatenating the connection identifier and a counter number. Is this correct?
Yes - this is correct!

Is there a possibility of name-clashes between two clients? Or does the connection identifier take care of this?
A connection has to have a unique id - see below

How hard it is to wiretap a temporary topic? If I understood correctly, broker does not dispatch messages to clients not listening to given topic. So wiretapping requires knowing/guessing temp topic names, correct?
It's not hard to wire tap any destination to be honest. You can simply subscribe to any topic/queue using a wilcard - e.g. ">". However - this is where security comes in. If you configure security - see: http://www.activemq.org/Security - then you can restrict users to what they can listen to.

I'm a bit worried on this because incremental counter is used to generate topic names. Guessing the name of a temp topic created by another client is quite easy. Why a cryptographically strong pseudo random number is not used instead? In Java they can be obtained very easily by using java.util.UUID.
The uniqueness comes from the connectionId - which is globally unique = using a similar algorithm to java.util.UUID. BTW - activemq has to be Java 1.4 compatible (J2EE 1.4) - so we can't use java.util.UUID directly.

cheers.

Rob

Reply via email to