OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ekmi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ekmi] Request ID or entire request in sksml response



Crystal clear. It really shows is that I'm not an expert in webservices.

Regards,
Tomas


Arshad Noor wrote:
> That is true, Tomas; however, the occurrence is within a <choice>
> element, which implies that you can place only a <GlobalKeyID> or
> a <SymkeyRequestID> in the <SymkeyRequest> and whichever one you
> choose, there must be at least one occurrence of the sub-element.
> 
> Does that claify it?  I will make it clear in the specification
> and update the notes inside the XSD to indicate this.
> 
> Arshad
> 
> Tomas Gustavsson wrote:
>>
>> Hi Arshad,
>>
>> Just to make the (false) impression that I read and fully analyzed 
>> everything carefully :-)
>>
>>
>>> SymkeyRequest.xsd
>>> -----------------
>>>
>>> 01) Added the choice of sending either a GlobalKeyID or a
>>>     SymkeyRequestID in the SymkeyRequest to accommodate
>>>     asynchronous request/responses to/from SKS servers.
>>
>> It says "either or" above. In the symkeyRequest.xsd it says 
>> minOccurs="1" on both the GlobalKeyID and the SymkeyRequestID.
>>
>> Cheers,
>> Tomas
>>
>>
>>>
>>> SymkeyResponse.xsd
>>> ------------------
>>>
>>> 01) Added the SymkeyWorkInProgressType as an additional choice to
>>>     the SymkeyResponse element, to accommodate asynchronous
>>>     request/responses to/from SKS servers.
>>>
>>> The zip file is available at:
>>>
>>> http://www.oasis-open.org/apps/org/workgroup/ekmi/download.php/29681/SKSML-DRAFT7.zip 
>>>
>>>
>>> I don't want to modify the Specification Document until I have
>>> some consensus on the XSD itself.  Once we're agreed on the
>>> changes in the XSD, then I'll modify the Spec document to
>>> reflect the changes.
>>>
>>> Can we use Tuesday October 21st (the day of our TC meeting)
>>> as a deadline for reviewing the changes (they're not very big
>>> changes).  We can then discuss them on the monthly call and
>>> decide our course of action.
>>>
>>> Thanks.
>>>
>>> Arshad Noor
>>> StrongAuth, Inc.
>>>
>>> Arshad Noor wrote:
>>>> Sorry for the delayed response; just got back last night from
>>>> Madrid where I presented SKSML at the ISSE 2008 conference.
>>>> As always, the work this TC is doing generates great interest.
>>>> Given that entire countries already have PKIs established in
>>>> the EU, EKMI is starting to generate much interest over there.
>>>>
>>>> WRT to the elements, Anil, I feel if we are going to support
>>>> asynch message/responses, then we should do it right, right
>>>> from the beginning.  The elements I'm thinking of are fairly
>>>> simple and will not add too much to the protocol.  But, the
>>>> advantage is that it allows the SKCL to take on more and the
>>>> client application has to do less.  I will have the XSD done
>>>> in a few days and send it to the TC for review.
>>>>
>>>> Arshad
>>>>
>>>> Anil Saldhana wrote:
>>>>> Hi Arshad,
>>>>>  asynchronous/deferred processing probably is 10-20% of usage. So 
>>>>> is it worth adding explicit elements into the schema? :)
>>>>>
>>>>> My proposal of status and status code should take care of it.  If 
>>>>> the status is pending, then the relationship between the client and 
>>>>> the server is outside the scope of the spec, as to how the end 
>>>>> response is delivered to the client. It can be callbacks, polling 
>>>>> etc (which is implementation detail). Once the response is ready 
>>>>> and delivered to the client, the status can be success.  The 
>>>>> requestID that is part of the response will tell the client that 
>>>>> this is the result of a deferred processing.
>>>>>
>>>>> Asynchronous/deferred processing will involve smarter clients. So 
>>>>> we can assume that the client has more processing capabilities in 
>>>>> comparison to regular clients.
>>>>>
>>>>> Regards,
>>>>> Anil
>>>>>
>>>>> Arshad Noor wrote:
>>>>>> I am working on modifying the XSD to include a <SymkeyWorkInProgress>
>>>>>> element as a third response-type.  When I get back from my 
>>>>>> presentation
>>>>>> at ISSE/SECURE 2008, I'll send out an update on this.  In the 
>>>>>> meantime,
>>>>>> if there are other suggestions, they are welcome.
>>>>>>
>>>>>> Arshad
>>>>>>
>>>>>> Tomas Gustavsson wrote:
>>>>>>>
>>>>>>> I'll second that.
>>>>>>>
>>>>>>> /Tomas
>>>>>>>
>>>>>>> Anil Saldhana wrote:
>>>>>>>> In my opinion, the 1.0 spec should provide 3 items - status , 
>>>>>>>> status code (optional) and status message (optional).  The 
>>>>>>>> status can be success, error or pending.  When the status is 
>>>>>>>> error, the code and message are relevant.  Apart from the status 
>>>>>>>> of pending (or any suitable word), the spec needs to do little 
>>>>>>>> for deferred processing.
>>>>>>>>
>>>>>>>> Arshad Noor wrote:
>>>>>>>>> I concur.  Any other opinions?
>>>>>>>>>
>>>>>>>>> Arshad
>>>>>>>>>
>>>>>>>>> Tomas Gustavsson wrote:
>>>>>>>>>>
>>>>>>>>>> I vote for 1) or 3). Either one would work. Version 1.0 is not 
>>>>>>>>>> likely to be very widely deployed, especially if the roadmap 
>>>>>>>>>> to 1.1/2.0 is not too long. On the other hand if these are the 
>>>>>>>>>> only important changes in the roadmap we might just take that 
>>>>>>>>>> time and hope that 1.0 will be long lived.
>>>>>>>>>>
>>>>>>>>>> I'm leaning toward 3) right now.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Tomas
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Arshad Noor wrote:
>>>>>>>>>>> Tomas,
>>>>>>>>>>>
>>>>>>>>>>> Including a Request ID in a current SKSML response that 
>>>>>>>>>>> includes a
>>>>>>>>>>> key is easy.  It just means adding an extra element to the 
>>>>>>>>>>> response.
>>>>>>>>>>>
>>>>>>>>>>> However, returning an SKSML response that only includes a 
>>>>>>>>>>> Request ID
>>>>>>>>>>> and a PENDING status element does require defining a new 
>>>>>>>>>>> Response
>>>>>>>>>>> type.
>>>>>>>>>>>
>>>>>>>>>>> So, the choices we have are:
>>>>>>>>>>>
>>>>>>>>>>> 1) Do nothing for 1.0 and add all this in the next version of 
>>>>>>>>>>> the
>>>>>>>>>>>    protocol;
>>>>>>>>>>>
>>>>>>>>>>> 2) Add the RequestID element to a full SKSML response (with 
>>>>>>>>>>> the key)
>>>>>>>>>>>    and add the new Polling Request and the Pending Response 
>>>>>>>>>>> messages
>>>>>>>>>>>    in 2.0;
>>>>>>>>>>>
>>>>>>>>>>> 3) Add the new messages in 1.0, but delay the 1.0 
>>>>>>>>>>> standard.        Right, now, if we assume we want to add the 
>>>>>>>>>>> Error/Message Codes    and Standard Messages to the 
>>>>>>>>>>> specification, that is going to take    at least a month, and 
>>>>>>>>>>> then we have to go through a TC vote (I think)
>>>>>>>>>>>    and a 15-day Public Review period.  We would then be right 
>>>>>>>>>>> where we
>>>>>>>>>>>    are now in terms of the process.
>>>>>>>>>>>
>>>>>>>>>>>    Since I have heard positive responses to the need for 
>>>>>>>>>>> adding standard
>>>>>>>>>>>    codes/messages, it looks like we're going to have to go 
>>>>>>>>>>> through this
>>>>>>>>>>>    45-50 day delay anyway, so we could use the opportunity to 
>>>>>>>>>>> include
>>>>>>>>>>>    the Polling Request/Pending Response message to the protocol.
>>>>>>>>>>>
>>>>>>>>>>> What do you all think?
>>>>>>>>>>>
>>>>>>>>>>> Arshad
>>>>>>>>>>>
>>>>>>>>>>> ----- Original Message -----
>>>>>>>>>>> From: "Tomas Gustavsson" <tomas@primekey.se>
>>>>>>>>>>> To: "Arshad Noor" <arshad.noor@strongauth.com>
>>>>>>>>>>> Cc: "Anil Saldhana" <Anil.Saldhana@redhat.com>, 
>>>>>>>>>>> ekmi@lists.oasis-open.org
>>>>>>>>>>> Sent: Thursday, October 2, 2008 9:42:22 AM (GMT-0800) 
>>>>>>>>>>> America/Los_Angeles
>>>>>>>>>>> Subject: Re: [ekmi] Request ID or entire request in sksml 
>>>>>>>>>>> response
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> It's a common approach in other protocols to allow both 
>>>>>>>>>>> methods, either synchronous or asynchronous. When using the 
>>>>>>>>>>> asynchronous mode the server   just returns the requestId in 
>>>>>>>>>>> the reply with a "pending" status, and optionally some time 
>>>>>>>>>>> interval when the client should check back.
>>>>>>>>>>> The polling type message from the client is definitely the 
>>>>>>>>>>> way to go I think.
>>>>>>>>>>>
>>>>>>>>>>> This is how both SCEP and CMP (I think) work, and it's common 
>>>>>>>>>>> in PKI since some people keep insisting on using off-line CAs 
>>>>>>>>>>> and such unnecessary things. Or they keep very strict network 
>>>>>>>>>>> separation with an RA/proxy in between so polling is needed.
>>>>>>>>>>>
>>>>>>>>>>> I'm not suggesting that we implement this polling in the 
>>>>>>>>>>> first version of the protocol, but It might be a good idea to 
>>>>>>>>>>> keep it in the roadmap for future revisions. After all, we 
>>>>>>>>>>> don't know if if there is really need for it, and I'm against 
>>>>>>>>>>> bloating the protocol if we don't have to.
>>>>>>>>>>>
>>>>>>>>>>> But...
>>>>>>>>>>> If we return the requestId in the response now, a future 
>>>>>>>>>>> revision might only have to define the polling message? Since 
>>>>>>>>>>> there is already a status in the response that could be used 
>>>>>>>>>>> to send PENDING back to the client right?
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Tomas
>>>>>>>>>>>
>>>>>>>>>>> Arshad Noor wrote:
>>>>>>>>>>>> See below for comments and some additional questions.
>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>
>>>>>>>>>>>> Anil Saldhana wrote:
>>>>>>>>>>>>> The example of an email usage was just an illustration of 
>>>>>>>>>>>>> possibilities of transport.  Inline answers:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Arshad Noor wrote:
>>>>>>>>>>>>>> Interesting requirement, Anil.  This leads to more questions:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 1) Should SKSML then be sent using SOAP over SMTP, or 
>>>>>>>>>>>>>> using just
>>>>>>>>>>>>>>    S/MIME?
>>>>>>>>>>>>> Are we not relying on ws-security? That will provide the 
>>>>>>>>>>>>> message level security.
>>>>>>>>>>>>     Yes we are, but the moment you bring up SMTP you'll find 
>>>>>>>>>>>> a lot
>>>>>>>>>>>>     of people who are going to say why aren't we using S/MIME
>>>>>>>>>>>>     (something that has been around for over 15 years). 
>>>>>>>>>>>> Sending SOAP
>>>>>>>>>>>>     over SMTP certainly is technically feasible and provides 
>>>>>>>>>>>> the
>>>>>>>>>>>>     same level of security as SOAP over HTTP, so that isn't the
>>>>>>>>>>>>     issue.  Just trying to figure out what answer we as a TC 
>>>>>>>>>>>> have
>>>>>>>>>>>>     when someone poses this question to us.
>>>>>>>>>>>>
>>>>>>>>>>>>>> 2) How should the SKS server respond under the following 
>>>>>>>>>>>>>> conditions?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>    a) When the mail message is unsigned spam;
>>>>>>>>>>>>>>    b) When the mail message is signed spam;
>>>>>>>>>>>>>>    c) When the mail message is legitimate SKSML, but 
>>>>>>>>>>>>>> signed with
>>>>>>>>>>>>>>       an invalid certificate?
>>>>>>>>>>>>> What if it is a controlled environment?
>>>>>>>>>>>>     I should've clarified that by "spam", in this context, I 
>>>>>>>>>>>> meant
>>>>>>>>>>>>     any e-mail that did not contain a valid SKSML message.
>>>>>>>>>>>>
>>>>>>>>>>>>>> 3) Are there other transports we should be considering 
>>>>>>>>>>>>>> besides HTTP
>>>>>>>>>>>>>>    and SMTP?
>>>>>>>>>>>>> Why tie the spec to any transport?
>>>>>>>>>>>>     Good point.  We're not doing that in the current DRAFT, 
>>>>>>>>>>>> so we
>>>>>>>>>>>>     should continue that practice.
>>>>>>>>>>>>
>>>>>>>>>>>>> I do not understand what difficulties arise in sending some 
>>>>>>>>>>>>> id about the request back in the response :).  I am just 
>>>>>>>>>>>>> looking at usage in an asynchronous manner such as Async WS.
>>>>>>>>>>>>> http://java.sun.com/blueprints/webservices/using/webservbp3.html 
>>>>>>>>>>>>>
>>>>>>>>>>>>     No difficulty at all, Anil.  The SKMS architecture does 
>>>>>>>>>>>> have
>>>>>>>>>>>>     a request ID assigned to each request.  I just didn't think
>>>>>>>>>>>>     that a client might be interested in that information.
>>>>>>>>>>>>
>>>>>>>>>>>>     Since the business use-case is to have the clients get keys
>>>>>>>>>>>>     asynchronously (essentially to not have the application sit
>>>>>>>>>>>>     there and wait for a key), here is another way of 
>>>>>>>>>>>> solving the
>>>>>>>>>>>>     problem (which is supported in StrongKey, but is not 
>>>>>>>>>>>> emphasized
>>>>>>>>>>>>     because it did not have any bearing on the standards 
>>>>>>>>>>>> effort):
>>>>>>>>>>>>
>>>>>>>>>>>>     The KeyCachePolicy essentially tells clients how long 
>>>>>>>>>>>> they may
>>>>>>>>>>>>     cache keys, as well as how frequently to check with the SKS
>>>>>>>>>>>>     server for updates to policy.
>>>>>>>>>>>>
>>>>>>>>>>>>     While one tends to think of the business application 
>>>>>>>>>>>> using the
>>>>>>>>>>>>     Symmetric Key Client Library (SKCL) to "manage" this cache,
>>>>>>>>>>>>     technically, there is nothing to prevent a little utility
>>>>>>>>>>>>     linked to the SKCL whose sole job is to manage the 
>>>>>>>>>>>> cache.  It
>>>>>>>>>>>>     can be configured to run periodically and update the cache
>>>>>>>>>>>>     with new/used keys as defined by the KCP.
>>>>>>>>>>>>
>>>>>>>>>>>>     Since this "KCP-Utility" will run independently of the 
>>>>>>>>>>>> business
>>>>>>>>>>>>     application, in essence, even though the KCP-Utility makes
>>>>>>>>>>>>     synchronous SKSML calls, the business application gets 
>>>>>>>>>>>> the keys
>>>>>>>>>>>>     "asynchronously".  That is, when it needs a key, it 
>>>>>>>>>>>> calls the
>>>>>>>>>>>>     SKCL; the SKCL checks the cache, and lo & behold, there 
>>>>>>>>>>>> is a key
>>>>>>>>>>>>     always over there.
>>>>>>>>>>>>
>>>>>>>>>>>>     The business application never has to wait synchronously 
>>>>>>>>>>>> for the
>>>>>>>>>>>>     SKS server to respond to a request, because the SKCL 
>>>>>>>>>>>> will always
>>>>>>>>>>>>     find it in the local cache.  The KCP-Utility can be 
>>>>>>>>>>>> configured
>>>>>>>>>>>>     to run as frequently as desired on the client, so that 
>>>>>>>>>>>> it is
>>>>>>>>>>>>     always making synchronous requests of the SKS server, but
>>>>>>>>>>>>     providing the keys to the business-application 
>>>>>>>>>>>> asynchronously.
>>>>>>>>>>>>
>>>>>>>>>>>>     Does this design address the business problem you have?
>>>>>>>>>>>>
>>>>>>>>>>>>     Another way of dealing with this business requirement is 
>>>>>>>>>>>> for
>>>>>>>>>>>>     the business application to call the SKCL and make the 
>>>>>>>>>>>> request.
>>>>>>>>>>>>     (It would have to be a different API method in the SKCL 
>>>>>>>>>>>> that
>>>>>>>>>>>>     would returns a flag indicating if a key is available 
>>>>>>>>>>>> locally
>>>>>>>>>>>>     in the cache for use).  The business-application then 
>>>>>>>>>>>> goes onto
>>>>>>>>>>>>     doing whatever it does while waiting for the key, but
>>>>>>>>>>>>     periodically, it calls the SKCL to see if the key is 
>>>>>>>>>>>> available.
>>>>>>>>>>>>     If it is, then the application makes the normal SKCL 
>>>>>>>>>>>> call which
>>>>>>>>>>>>     returns the key from the local cache.
>>>>>>>>>>>>
>>>>>>>>>>>>     In both cases, this does not require modifying the 
>>>>>>>>>>>> current DRAFT
>>>>>>>>>>>>     of the SKSML and does not have to require supporting asynch
>>>>>>>>>>>>     communications for the protocol.
>>>>>>>>>>>>
>>>>>>>>>>>>     I have nothing against asynchronous communications, 
>>>>>>>>>>>> Anil; I'm
>>>>>>>>>>>>     just trying to keep the protocol simple and finding 
>>>>>>>>>>>> other ways
>>>>>>>>>>>>     that can solve the problem.
>>>>>>>>>>>>
>>>>>>>>>>>>     If you - and others - believe that it should be in the 
>>>>>>>>>>>> protocol,
>>>>>>>>>>>>     then adding the request ID to the response is easy 
>>>>>>>>>>>> enough.  But,
>>>>>>>>>>>>     we will then have to add a new message-type for polling 
>>>>>>>>>>>> the SKS
>>>>>>>>>>>>     server with an existing request ID.  Alternatively, we 
>>>>>>>>>>>> have to
>>>>>>>>>>>>     modify the SKCL to receive asynchronous responses from 
>>>>>>>>>>>> the SKS
>>>>>>>>>>>>     server (will businesses be open to that?  It will mean 
>>>>>>>>>>>> having
>>>>>>>>>>>>     to open up firewall ports on the client to allow SKS 
>>>>>>>>>>>> messages
>>>>>>>>>>>>     to reach the SKCL asynchronously).
>>>>>>>>>>>>
>>>>>>>>>>>> Arshad
>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Arshad
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Anil Saldhana wrote:
>>>>>>>>>>>>>>> Hi Arshad,
>>>>>>>>>>>>>>>  at least two use cases come into my mind.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> a) In enterprise software, typically transport is the 
>>>>>>>>>>>>>>> variant.  So I should be able to send sksml requests via 
>>>>>>>>>>>>>>> smtp for example. :) With JMS for example, I may
>>>>>>>>>>>>>>> get a response later and the only thing that I will have 
>>>>>>>>>>>>>>> is either the request id or the optional request element.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> b) With clients in low bandwidth and tough terrain, such 
>>>>>>>>>>>>>>> as hand held devices, you cannot always rely on 
>>>>>>>>>>>>>>> synchronous communication.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I would at least like to have the request id sent back 
>>>>>>>>>>>>>>> from the response. That should be sufficient for clients.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>> Anil
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Arshad Noor wrote:
>>>>>>>>>>>>>>>> Hi Anil,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Can you provide a business scenario where this is 
>>>>>>>>>>>>>>>> necessary and
>>>>>>>>>>>>>>>> where synchronous communication with the SKS server does 
>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>> address the problem.  Thanks.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Arshad
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Anil Saldhana wrote:
>>>>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>>>>  I would like to open the discussion to the use case of 
>>>>>>>>>>>>>>>>> asynchronous/batch requests for keys.  This will 
>>>>>>>>>>>>>>>>> require that we need to return a request id or the 
>>>>>>>>>>>>>>>>> entire request (which can be an optional element) in 
>>>>>>>>>>>>>>>>> the response.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>>>> Anil
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe from this mail list, you must leave the OASIS TC that
>>>> generates this mail.  Follow this link to all your TCs in OASIS at:
>>>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]