Hello!

When using HTTP as transport with a public SyncML server, attackers can
send messages to the server while a sync runs. If they manage to do that
so that the server believes that the message came from the client it
wants to talk to, then the session could be hijacked or (more likely)
the server will get so confused that the sync fails.

What protection mechanism are in place to prevent this? My understanding
is that servers create a random session ID and accept all messages
addressed to a URL which contains that session ID (Funambol: <RespURI>
http://my.funambol.com/sync;jsessionid=EBEB550AE4C588DE559F4253E3FCEC19.NODE01
</RespURI>; Synthesis: <RespURI>
http://www.synthesis.ch/sync2?sessionid=4561864950208023213
</RespURI>).

So the session ID should be truly unpredictable, because the security of
the session depends on it, correct? Does the Synthesis engine create the
number itself? At the very least it needs to know it or the response
URI, so that it can encode it in the outgoing message.

There's also a SessionID inside the SyncHDR. It's a lot shorter
(Synthesis: <SessionID>68</SessionID>) and chosen by the client. Does
the Synthesis engine really do much with this value? How is it created
with libsynthesis as client?

HTTPS is only partly a solution. It prevents reading the response
message during transmission, but unless strict client certificate
checking is enabled, injecting messages is still possible.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.



_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to