OASIS Digital Signature Services eXtended (DSS-X) TC

 View Only
Expand all | Collapse all

self-describing DSS-X instances

  • 1.  self-describing DSS-X instances

    Posted 01-24-2018 11:48
    Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales


  • 2.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-24-2018 13:57
    Hi Andreas, Were can I find the 2.0 XML schema? I would like to check whether a "Remote Signature" profile with message-level integrity protection could be easily defined against the new 2.0 proposal. Kind Regards, Frank. On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 3.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-24-2018 14:50
    Hi Frank, good to see you re-joined DSS-X! Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too. Greetings, Andreas > Hi Andreas, > > > Were can I find the 2.0 XML schema? > > I would like to check whether a "Remote Signature" profile with > message-level integrity protection could be easily defined against the > new 2.0 proposal. > > > Kind Regards, > Frank. > > > On 01/24/2018 12:47 PM, Andreas Kuehne wrote: >> Hi all, >> >> >> the current version of the base schema includes a set of types to to >> self-decribe the DSS-X server instance (e.g. the DescriptionType). There >> are similiar concepts around, a popular one is HATEOS. >> >> So I would consider to separate this topic from the DSS-X specification. >> Like the TLS details included in core version 1.0 that outdated quickly >> the evolving area of instance meta information may render our >> specification effort useless. >> >> >> What's your view on this? >> >> Greetings, >> >> Andreas >> > -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales Attachment: scheme_18.01.24_15.34.47.zip Description: Zip compressed data Attachment: dss-core-v2.0-18.01.24_15.34.47.docx Description: Binary data <?xml version="1.0" encoding="UTF-8"?><schema xmlns=" http://www.w3.org/2001/XMLSchema" ; xmlns:cg=" http://ws.openecard.org/chipgateway" ; xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:es=" http://trustable.eu/enrichSchema" ; xmlns:xs=" http://www.w3.org/2001/XMLSchema" ; xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:annox=" http://annox.dev.java.net" ; xmlns:jxb=" http://java.sun.com/xml/ns/jaxb" ; xmlns:xjc=" http://java.sun.com/xml/ns/jaxb/xjc" ; targetNamespace=" http://ws.openecard.org/chipgateway" ; elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0" jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc"> <!-- =============================== --> <!-- Version / Date --> <!-- =============================== --> <!-- 27.02.2016 --> <!-- =============================== --> <!-- =============================== --> <!-- Basic Types and Elements --> <!-- =============================== --> <import namespace="urn:oasis:names:tc:dss:2.0:base:schema" schemaLocation="oasis-dss-base-schema-v2.0-os.xsd"/> <element name="CertificateFilter" type="cg:CertificateFilterType"/> <complexType name="CertificateFilterType"> <sequence> <element name="Policy" type="string" maxOccurs="1" minOccurs="0"/> <element name="Issuer" type="string" maxOccurs="1" minOccurs="0"/> <element name="KeyUsage" type="cg:KeyUsageType" maxOccurs="1" minOccurs="0"/> </sequence> </complexType> <element name="CertificateInfo" type="cg:CertificateInfoType"/> <complexType name="CertificateInfoType"> <sequence> <element name="DIDName" type="cg:NameType"/> <element name="Algorithm" type="string"/> <element name="Certificate" type="base64Binary" maxOccurs="unbounded" minOccurs="1"/> <element name="UniqueSSN" type="string"/> </sequence> </complexType> <element name="ConnectionHandle" type="cg:ConnectionHandleType"/> <complexType name="ConnectionHandleType"> <sequence> <element name="CardType" type="anyURI"/> <element name="SlotHandle" type="hexBinary" maxOccurs="1" minOccurs="0"/> </sequence> </complexType> <simpleType name="KeyUsageType"> <restriction base="string"> <enumeration value="AUTHENTICATION"/> <enumeration value="SIGNATURE"/> <enumeration value="ENCRYPTION"/> </restriction> </simpleType> <simpleType name="NameType"> <restriction base="normalizedString"> <minLength value="1"/> <maxLength value="255"/> <whiteSpace value="collapse"/> </restriction> </simpleType> <complexType name="ResponseType"> <sequence> <element name="Result" type="dsb:ResultType"/> </sequence> </complexType> <element name="TokenInfo" type="cg:TokenInfoType"/> <complexType name="TokenInfoType"> <sequence> <element ref="cg:ConnectionHandle" maxOccurs="1" minOccurs="0"/> <element name="HasProtectedAuthPath" type="boolean" maxOccurs="1" minOccurs="0"/> <element name="NeedsPinForCertAccess" type="boolean" maxOccurs="1" minOccurs="0"/> <element name="NeedsPinForPrivateKeyAccess" type="boolean" maxOccurs="1" minOccurs="0"/> <element name="Algorithm" type="string" maxOccurs="unbounded" minOccurs="0"/> </sequence> </complexType> <!-- =============================== --> <!-- HelloRequest / -Response --> <!-- =============================== --> <element name="HelloRequest" type="cg:HelloRequestType"/> <complexType name="HelloRequestType"> <sequence> <element name="Challenge" type="hexBinary"/> <element name="Version" type="string"/> <element name="SessionIdentifier" type="string"/> </sequence> </complexType> <element name="HelloResponse" type="cg:HelloResponseType"/> <complexType name="HelloResponseType"> <complexContent> <extension base="cg:ResponseType"> <sequence maxOccurs="1" minOccurs="0"> <element name="Signature" type="base64Binary"/> <element name="MinimumVersion" type="string" maxOccurs="1" minOccurs="0"/> <element name="DownloadAddress" type="anyURI" maxOccurs="1" minOccurs="0"/> <element name="WebOrigin" type="string" maxOccurs="unbounded" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <!-- =============================== --> <!-- GetCommand / -Response --> <!-- =============================== --> <element name="GetCommand" type="cg:GetCommandType"/> <complexType name="GetCommandType"> <sequence> <element name="SessionIdentifier" type="string"/> <element ref="cg:TokenInfo" maxOccurs="unbounded" minOccurs="0"> </element> </sequence> </complexType> <element name="Command" type="cg:CommandType"/> <complexType name="CommandType"> <choice> <element ref="cg:ListTokensRequest"/> <element ref="cg:ListCertificatesRequest"/> <element ref="cg:SignRequest"/> <element ref="cg:Terminate"/> </choice> </complexType> <!-- =============================== --> <!-- ListTokens --> <!-- =============================== --> <element name="ListTokensRequest" type="cg:ListTokensRequestType"/> <complexType name="ListTokensRequestType"> <sequence> <element name="MaxWaitSeconds" type="positiveInteger"/> <element name="TokenInfo" type="cg:TokenInfoType" maxOccurs="unbounded" minOccurs="1"/> </sequence> </complexType> <element name="ListTokensResponse" type="cg:ListTokensResponseType"/> <complexType name="ListTokensResponseType"> <complexContent> <extension base="cg:ResponseType"> <sequence> <element name="SessionIdentifier" type="string"/> <element name="TokenInfo" type="cg:TokenInfoType" maxOccurs="unbounded" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <!-- =============================== --> <!-- ListCertificates --> <!-- =============================== --> <element name="ListCertificatesRequest" type="cg:ListCertificatesRequestType"/> <complexType name="ListCertificatesRequestType"> <sequence> <element name="MaxWaitSeconds" type="positiveInteger"/> <element name="SlotHandle" type="hexBinary"/> <element name="PIN" type="string" maxOccurs="1" minOccurs="0"/> <element name="CertificateFilter" type="cg:CertificateFilterType" maxOccurs="unbounded" minOccurs="0"/> </sequence> </complexType> <element name="ListCertificatesResponse" type="cg:ListCertificatesResponseType"/> <complexType name="ListCertificatesResponseType"> <complexContent> <extension base="cg:ResponseType"> <sequence maxOccurs="1" minOccurs="1"> <element name="SessionIdentifier" type="string"/> <element name="RetryCounter" type="nonNegativeInteger" maxOccurs="1" minOccurs="0"/> <element ref="cg:CertificateInfo" maxOccurs="unbounded" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <!-- =============================== --> <!-- Sign --> <!-- =============================== --> <element name="SignRequest" type="cg:SignRequestType"/> <complexType name="SignRequestType"> <sequence> <element name="MaxWaitSeconds" type="positiveInteger"/> <element name="SlotHandle" type="hexBinary"/> <element name="DIDName" type="cg:NameType"/> <element name="PIN" type="string" maxOccurs="1" minOccurs="0"/> <element name="Message" type="hexBinary"/> </sequence> </complexType> <element name="SignResponse" type="cg:SignResponseType"/> <complexType name="SignResponseType"> <complexContent> <extension base="cg:ResponseType"> <sequence> <element name="SessionIdentifier" type="string"/> <element name="RetryCounter" type="nonNegativeInteger" maxOccurs="1" minOccurs="0"/> <element name="Signature" type="base64Binary" maxOccurs="1" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <!-- =============================== --> <!-- Terminate --> <!-- =============================== --> <element name="Terminate" type="cg:TerminateType"/> <complexType name="TerminateType"> <complexContent> <extension base="cg:ResponseType"> <sequence> <element name="SessionIdentifier" type="string" maxOccurs="1" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> </schema>

    Attachment(s)



  • 4.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-26-2018 14:17
    Hi Andreas, Hereby some feedback on the XML schema and such. Why change AnyType exactly? Kind Regards, Frank. OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd ; lineNumber: 1; columnNumber: 703; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? Had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd ; lineNumber: 1; columnNumber: 555; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd ; lineNumber: 23; columnNumber: 579; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd ; lineNumber: 1; columnNumber: 705; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank, good to see you re-joined DSS-X! Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too. Greetings, Andreas Hi Andreas, Were can I find the 2.0 XML schema? I would like to check whether a Remote Signature profile with message-level integrity protection could be easily defined against the new 2.0 proposal. Kind Regards, Frank. On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be Attachment: dss.wsdl Description: application/wsdl


  • 5.  AW: [dss-x] self-describing DSS-X instances

    Posted 01-26-2018 18:48
    Hi Frank,   thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact.   I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx.   Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _ and _ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType?   The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome!   Greetings,   Andreas   Von: dss-x@lists.oasis-open.org [mailto:dss-x@lists.oasis-open.org] Im Auftrag von Frank Cornelis Gesendet: Freitag, 26. Januar 2018 15:16 An: dss-x@lists.oasis-open.org Betreff: Re: [dss-x] self-describing DSS-X instances   Hi Andreas,   Hereby some feedback on the XML schema and such. Why change AnyType exactly?   Kind Regards, Frank.   OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd ; lineNumber: 1; columnNumber: 703; Unsupported binding namespace "http://annox.dev.java.net" . Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc" ? Had to remove:     xmlns:annox= "http://annox.dev.java.net"     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd ; lineNumber: 1; columnNumber: 555; Unsupported binding namespace "http://annox.dev.java.net" . Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc" ? So had to remove:     xmlns:annox= "http://annox.dev.java.net"     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd ; lineNumber: 23; columnNumber: 579; Unsupported binding namespace "http://annox.dev.java.net" . Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc" ? So had to remove:     xmlns:annox= "http://annox.dev.java.net"     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd ; lineNumber: 1; columnNumber: 705; Unsupported binding namespace "http://annox.dev.java.net" . Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc" ? So had to remove:     xmlns:annox= "http://annox.dev.java.net"     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc"     On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank,   good to see you re-joined DSS-X!   Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too.   Greetings,   Andreas Hi Andreas,     Were can I find the 2.0 XML schema?   I would like to check whether a "Remote Signature" profile with message-level integrity protection could be easily defined against the new 2.0 proposal.     Kind Regards, Frank.     On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all,     the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS.   So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless.     What's your view on this?   Greetings,   Andreas         --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 6.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-28-2018 11:17
    Hi Andreas, Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. See: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS And: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? Kind Regards, Frank. Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < kuehne@trustable.de > het volgende geschreven: Hi Frank,   thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact.   I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx.   Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _ and _ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType?   The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome!   Greetings,   Andreas   Von:   dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ]   Im Auftrag von   Frank Cornelis Gesendet:   Freitag, 26. Januar 2018 15:16 An:   dss-x@lists.oasis-open.org Betreff:   Re: [dss-x] self-describing DSS-X instances   Hi Andreas,   Hereby some feedback on the XML schema and such. Why change AnyType exactly?   Kind Regards, Frank.   OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd ; lineNumber: 1; columnNumber: 703; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? Had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd ; lineNumber: 1; columnNumber: 555; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd ; lineNumber: 23; columnNumber: 579; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd ; lineNumber: 1; columnNumber: 705; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc     On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank,   good to see you re-joined DSS-X!   Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too.   Greetings,   Andreas Hi Andreas,     Were can I find the 2.0 XML schema?   I would like to check whether a Remote Signature profile with message-level integrity protection could be easily defined against the new 2.0 proposal.     Kind Regards, Frank.     On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all,     the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS.   So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless.     What's your view on this?   Greetings,   Andreas         --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 7.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-29-2018 09:02
    Hi, As one of the goals of DSS 2 is Support other transport formats than SOAP. , message-level security becomes a critical feature I guess. SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. I did some more experiments with message-level security. While this could be added in DSS 1, see:     https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf section 2.2 Browser POST, due to the AnyType being a base64 in Core 2:     <dss:SignRequest xmlns:dsb= urn:oasis:names:tc:dss:2.0:base:schema xmlns:dss= urn:oasis:names:tc:dss:1.0:core:schema xmlns:ds= http://www.w3.org/2000/09/xmldsig# >     <dss:OptionalInputs>         <dsb:Other>             <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value>         </dsb:Other>     </dss:OptionalInputs> </dss:SignRequest> it becomes impossible to express this. XML Signatures work at the DOM level, so we really need to be able to add alien-namespace XML elements. Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example:     https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. What am I missing here? I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. Kind Regards, Frank. On 01/28/2018 12:16 PM, Frank Cornelis wrote: Hi Andreas, Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. See: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS And: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? Kind Regards, Frank. Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < kuehne@trustable.de > het volgende geschreven: Hi Frank,   thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact.   I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx.   Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _ and _ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType?   The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome!   Greetings,   Andreas   Von:   dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ]   Im Auftrag von   Frank Cornelis Gesendet:   Freitag, 26. Januar 2018 15:16 An:   dss-x@lists.oasis-open.org Betreff:   Re: [dss-x] self-describing DSS-X instances   Hi Andreas,   Hereby some feedback on the XML schema and such. Why change AnyType exactly?   Kind Regards, Frank.   OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd ; lineNumber: 1; columnNumber: 703; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? Had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd ; lineNumber: 1; columnNumber: 555; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd ; lineNumber: 23; columnNumber: 579; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd ; lineNumber: 1; columnNumber: 705; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc     On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank,   good to see you re-joined DSS-X!   Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too.   Greetings,   Andreas Hi Andreas,     Were can I find the 2.0 XML schema?   I would like to check whether a Remote Signature profile with message-level integrity protection could be easily defined against the new 2.0 proposal.     Kind Regards, Frank.     On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all,     the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS.   So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless.     What's your view on this?   Greetings,   Andreas         --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 8.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-29-2018 13:03
    Hi, Played some more with the new AnyType and new OptionalInputsSignType. I discovered another interesting side-effect of the new structure. If the previous OptionalInputs contained n elements in a request (DOM elements, or if JAXB recognized the type, JAXB elements), you had to iterate over n items to know exactly what you received. But because the new OptionalInputsSignType is an xs:choice, I can no longer iterate over it in JAXB. I basically have to query _every_ possible element's getter defined within the JAXB instance to know what exactly it is that I have received to make sure that I didn't receive an element that I don't support within my implementation. For the moment thus, this forces me to query 16 getter methods. This touches upon an interesting feature that is missing: a mustUnderstand attribute. If we look at two successful specs that provide extension mechanisms, SOAP and X509, they both support a way to express importance of an extension:     SOAP has the mustUnderstand attribute on Header child elements     X509 has critical on the extension DSS Core does not offer this feature, while it can be interesting to be able to express this within the context of for example critical security extensions. This would lead to something like the following (so instead of restricting, opening the extension points even further with a maxOccurs unbounded on Optional element): <xs:complexType name= Root2Type >         <xs:annotation>             <xs:documentation>                 A new structure where you can express must understand semantics.             </xs:documentation>         </xs:annotation>         <xs:sequence>             <xs:element name= Optional type= tns:Any2Type minOccurs= 0 maxOccurs= unbounded />         </xs:sequence>     </xs:complexType>         <xs:complexType name= Any2Type >         <xs:sequence>             <xs:any processContents= lax minOccurs= 0 maxOccurs= unbounded />         </xs:sequence>         <xs:attribute name= mustUnderstand type= xs:boolean use= required />     </xs:complexType> Kind Regards, Frank. On 01/29/2018 10:02 AM, Frank Cornelis wrote: Hi, As one of the goals of DSS 2 is Support other transport formats than SOAP. , message-level security becomes a critical feature I guess. SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. I did some more experiments with message-level security. While this could be added in DSS 1, see:     https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf section 2.2 Browser POST, due to the AnyType being a base64 in Core 2:     <dss:SignRequest xmlns:dsb= urn:oasis:names:tc:dss:2.0:base:schema xmlns:dss= urn:oasis:names:tc:dss:1.0:core:schema xmlns:ds= http://www.w3.org/2000/09/xmldsig# >     <dss:OptionalInputs>         <dsb:Other>             <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value>         </dsb:Other>     </dss:OptionalInputs> </dss:SignRequest> it becomes impossible to express this. XML Signatures work at the DOM level, so we really need to be able to add alien-namespace XML elements. Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example:     https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. What am I missing here? I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. Kind Regards, Frank. On 01/28/2018 12:16 PM, Frank Cornelis wrote: Hi Andreas, Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. See: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS And: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? Kind Regards, Frank. Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < kuehne@trustable.de > het volgende geschreven: Hi Frank,   thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact.   I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx.   Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _ and _ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType?   The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome!   Greetings,   Andreas   Von:   dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ]   Im Auftrag von   Frank Cornelis Gesendet:   Freitag, 26. Januar 2018 15:16 An:   dss-x@lists.oasis-open.org Betreff:   Re: [dss-x] self-describing DSS-X instances   Hi Andreas,   Hereby some feedback on the XML schema and such. Why change AnyType exactly?   Kind Regards, Frank.   OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd ; lineNumber: 1; columnNumber: 703; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? Had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd ; lineNumber: 1; columnNumber: 555; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd ; lineNumber: 23; columnNumber: 579; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId:   file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd ; lineNumber: 1; columnNumber: 705; Unsupported binding namespace   http://annox.dev.java.net . Perhaps you meant   http://java.sun.com/xml/ns/jaxb/xjc ? So had to remove:     xmlns:annox= http://annox.dev.java.net     jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc     On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank,   good to see you re-joined DSS-X!   Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too.   Greetings,   Andreas Hi Andreas,     Were can I find the 2.0 XML schema?   I would like to check whether a Remote Signature profile with message-level integrity protection could be easily defined against the new 2.0 proposal.     Kind Regards, Frank.     On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all,     the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS.   So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless.     What's your view on this?   Greetings,   Andreas         --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 9.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-29-2018 14:49
    Hi Frank, let me explain my view on the 'extension' mechanism: To me the use of an xs:any as a way to extend a given schema is more a flaw than a feature. The implementor of the spec is left on his own parsing something unknown and trying to make sense of it. No schema-generated object models helps along and all types of interpretation problems show up an runtime! As we write a specification we MUST specify the structure! So my approach to this flexibility problem is to create specific schemes including all elements. This eases the implementation of clients a lot and puts just a little more effort upon the server. In your case it is perfectly valid to define a profile that adds a ds:signature element into the OptionalInputs. And the server offers a WSDL refereing to a scheme where this ds:signature element is explicitly mentioned in the OptionalInputs. Nevertheless we came to the conclusion that directly embedding a ds:signature into the SOAP / DSSRequest message isn't  a good idea due to namespace leakage and canonicalization side effects. BAse64 encoding eases the pain here. So I strongly reject the need for 'alien' namespace inclusions. The namespaces must all be known. And this isn't a restriction as sender and receiver are obliged to know them, anyway! Yes, the overall amount of parsing may increase. But you surely won't complain that there is a distinct parsing step to read a X.509 certificate within an XML message. Now there are some additional parsing required for XML within XML. This is a disadvantage but it enables a clear distinction between the 'DSS object model' and the different transport syntaxes. The processing of a request should be the same regardless of the usage of XML, JSON or whatever. E.G a XAdES object will be transferred in the same manner, always. And can be accessed at the same spot in the object model, always. This comes with the dis-advantage but avoids inter-dependencies between architectural layers. Therefore the UBL approach of 'any' representations in different syntaxes helps with our problem: A semantic 'any' may hold any content, but a XML any is limited to XML, a JSON 'object' limited to JSON, and so forth. Greetings, Andreas     > Hi, > > > As one of the goals of DSS 2 is "Support other transport formats than > SOAP.", message-level security becomes a critical feature I guess. > > SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A > non-SOAP binding requires message-level security, obviously by means > of XML signatures. > > > I did some more experiments with message-level security. While this > could be added in DSS 1, see: > > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > > section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: > >     <dss:SignRequest > xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" > xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" > xmlns:ds=" http://www.w3.org/2000/09/xmldsig#" ;> >     <dss:OptionalInputs> >         <dsb:Other> > <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >         </dsb:Other> >     </dss:OptionalInputs> > </dss:SignRequest> > > it becomes impossible to express this. > > XML Signatures work at the DOM level, so we really need to be able to > add "alien-namespace" XML elements. > > > Besides the XML Signature issue, the parsing of additional profiles > becomes a two-pass operation. > > In Core 1, you could add your additional profiles within your WSDL by > means of a simple import. See example: > >     https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > > Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse > your additional profiles in one go. > > With the Core 2, you parse a first time towards base64, and then you > have to run a second JAXB unmarshalling against this. From a > usability/performance point-of-view, this becomes really painful. > > >> The structures intended to be supported by a client or a server >> system MUST be known to be implementable. But the usual tools for >> schema support leave the task of handling the content of an any type >> to the developer. Without extensive testing problems with unexpected >> content may occur at runtime, even while using typed languages. >> > An AnyType of unknown namespace (in the context of the parser like > JAWS/JAXB) simply results in a DOM element, as it should be. I don't > see the problem here. > > Even if one would acknowledge this as a problem, doing a base64 is not > solving anything at all. The problem remains. > > > > What am I missing here? > > > I'm already managed to use Jackson for JSON Schema compilation in > Java. Will play a bit with this AnyType stuff to see if the above > issues could be resolved in a generic way to keep both XML and JSON > happy. > > > > Kind Regards, > Frank. > > > > On 01/28/2018 12:16 PM, Frank Cornelis wrote: >> Hi Andreas, >> >> >> Still have to get acquainted with the JSON Schema specs/tooling, but >> it seems like OASIS UBL solved a similar problem where both their XML >> and JSON have extension points, and their XML does it via xsd:any. >> See: >> http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS >> >> And: >> http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS >> >> >> >> BTW: In my “sandbox” project here, as part of my message-level >> security experiments, I also had to give the new Core 2 XSD a 2.0 >> namespace to be able to compile both Core 1 and Core 2 within the >> same Java Maven project. Core 2 will eventually receive a new >> namespace I guess? >> >> >> Kind Regards, >> Frank. >> >>> Op 26 jan. 2018, om 19:47 heeft Andreas Kühne <kuehne@trustable.de >>> < mailto:kuehne@trustable.de >> het volgende geschreven: >>> >>> Hi Frank, >>> thank you for your feedback! >>> Yes, it’s an advantage to provide a sample WSDL as implementor’s >>> support. But due to the support of current frameworks the WSDL >>> slides towards being a derived artefact. >>> I was assuming that the binding and the ‘annox’ namespaces, leaking >>> thru from prior processing steps, are just irrelevant here. >>> Interesting to see that these declarations do cause problems. Now >>> I’ll drop them before reaching the final schema stage. Surprisingly >>> no way to drop namespace declarations that are defined in the >>> incoming document using XSLT … had to fall back to RegEx. >>> Regarding the AnyType: >>> The handy use case of putting some random XML fragment into an >>> AnyType cannot be supported by the JSON syntax and vice versa. So >>> the only feasible approach to transport arbitrary data _/and/_ >>> supporting multiple syntaxes is to use some base64 encoded >>> container. And we already have a fully featured Base64DataType >>> defined in DSS (with a content describing MIME type attribute, >>> support for references and attachments). So why not align all usages >>> to the Base64DataType? >>> The biggest pain point of the current multi-syntax approach is the >>> effect on foreign schemes. As outlined in the new core draft, >>> section 2.6, some well-respected features of XML cannot easily be >>> mapped to e.g. JSON. So my current approach is to rewrite the >>> referenced schemes and replace the XML specifics. Yes, bad approach >>> but I don’t know of any better! Proposals welcome! >>> Greetings, >>> Andreas >>> *Von:*dss-x@lists.oasis-open.org < mailto:dss-x@lists.oasis-open.org > >>> [ mailto:dss-x@lists.oasis-open.org]*Im Auftrag von*Frank Cornelis >>> *Gesendet:*Freitag, 26. Januar 2018 15:16 >>> *An:*dss-x@lists.oasis-open.org < mailto:dss-x@lists.oasis-open.org > >>> *Betreff:*Re: [dss-x] self-describing DSS-X instances >>> >>> Hi Andreas, >>> >>> Hereby some feedback on the XML schema and such. >>> >>> Why change AnyType exactly? >>> >>> Kind Regards, >>> Frank. >>> >>> OASIS DSS Core 2 Remarks >>> ======================== >>> >>> xml.xsd is missing from the ZIP. >>> >>> Always found it funny that there was no proper SOAP binding defined. >>> See attachment for a first shot at it. >>> >>> >>> === oasis-dss-core-schema-v1.0-os.xsd >>> >>> When trying to compile with JAX-WS I get: >>> org.xml.sax.SAXParseException; >>> systemId:file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd >>> <file://home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd>; >>> lineNumber: 1; columnNumber: 703; Unsupported binding >>> namespace" http://annox.dev.java.net" ; < http://annox.dev.java.net/ >. >>> Perhaps you meant" http://java.sun.com/xml/ns/jaxb/xjc" ; >>> < http://java.sun.com/xml/ns/jaxb/xjc >? >>> Had to remove: >>>     xmlns:annox=" http://annox.dev.java.net" ; >>> < http://annox.dev.java.net/ > >>>     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> >>> === oasis-dss-base-schema-v2.0-os.xsd >>> >>> Same error here: >>> org.xml.sax.SAXParseException; >>> systemId:file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd >>> <file://home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd>; >>> lineNumber: 1; columnNumber: 555; Unsupported binding >>> namespace" http://annox.dev.java.net" ; < http://annox.dev.java.net/ >. >>> Perhaps you meant" http://java.sun.com/xml/ns/jaxb/xjc" ; >>> < http://java.sun.com/xml/ns/jaxb/xjc >? >>> So had to remove: >>>     xmlns:annox=" http://annox.dev.java.net" ; >>> < http://annox.dev.java.net/ > >>>     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> >>> === xmldsig-core-schema.xsd >>> >>> This does not seem to be the original XMLDSig XML schema. >>> Same error here: >>> org.xml.sax.SAXParseException; >>> systemId:file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd >>> <file://home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd>; >>> lineNumber: 23; columnNumber: 579; Unsupported binding >>> namespace" http://annox.dev.java.net" ; < http://annox.dev.java.net/ >. >>> Perhaps you meant" http://java.sun.com/xml/ns/jaxb/xjc" ; >>> < http://java.sun.com/xml/ns/jaxb/xjc >? >>> So had to remove: >>>     xmlns:annox=" http://annox.dev.java.net" ; >>> < http://annox.dev.java.net/ > >>>     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> >>> === oasis-sstc-saml-schema-protocol-1.1.xsd >>> >>> This does not seem to be the original SAML 1.1 XML schema. >>> org.xml.sax.SAXParseException; >>> systemId:file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd >>> <file://home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd>; >>> lineNumber: 1; columnNumber: 705; Unsupported binding >>> namespace" http://annox.dev.java.net" ; < http://annox.dev.java.net/ >. >>> Perhaps you meant" http://java.sun.com/xml/ns/jaxb/xjc" ; >>> < http://java.sun.com/xml/ns/jaxb/xjc >? >>> So had to remove: >>>     xmlns:annox=" http://annox.dev.java.net" ; >>> < http://annox.dev.java.net/ > >>>     jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> >>> On 01/24/2018 03:49 PM, Andreas Kuehne wrote: >>>> Hi Frank, >>>> good to see you re-joined DSS-X! >>>> Attached id the current core document reflecting our latest >>>> discussions >>>> regarding the dss:AnyType. In this version the AnyType is replaced >>>> by a >>>> Base64DataType. >>>> As you are interested in Remote Signing I added the schema of the >>>> ChipGateway profile, too. >>>> Greetings, >>>> Andreas >>>>> Hi Andreas, >>>>> Were can I find the 2.0 XML schema? >>>>> I would like to check whether a "Remote Signature" profile with >>>>> message-level integrity protection could be easily defined against >>>>> the >>>>> new 2.0 proposal. >>>>> Kind Regards, >>>>> Frank. >>>>> On 01/24/2018 12:47 PM, Andreas Kuehne wrote: >>>>>> Hi all, >>>>>> the current version of the base schema includes a set of types to to >>>>>> self-decribe the DSS-X server instance (e.g. the >>>>>> DescriptionType). There >>>>>> are similiar concepts around, a popular one is HATEOS. >>>>>> So I would consider to separate this topic from the DSS-X >>>>>> specification. >>>>>> Like the TLS details included in core version 1.0 that outdated >>>>>> quickly >>>>>> the evolving area of instance meta information may render our >>>>>> specification effort useless. >>>>>> What's your view on this? >>>>>> Greetings, >>>>>> Andreas >>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> 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  ; >>> >>> >>> >>> --  >>> Frank Cornelis >>> e-Contract.be < http://e-Contract.be >  BVBA >>> https://www.e-contract.be < https://www.e-contract.be/ > >> > -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales


  • 10.  AW: [dss-x] self-describing DSS-X instances

    Posted 01-29-2018 15:55
    Hi Frank, I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” is not true in general. Depending on the specific security requirements, a suitable TLS-channel without any message level security might be sufficient. Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. BR, Detlef Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis Gesendet: Montag, 29. Januar 2018 10:02 An: dss-x <dss-x@lists.oasis-open.org> Betreff: Re: [dss-x] self-describing DSS-X instances Hi, As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. I did some more experiments with message-level security. While this could be added in DSS 1, see: https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" http://www.w3.org/2000/09/xmldsig#" ;> <dss:OptionalInputs> <dsb:Other> <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> </dsb:Other> </dss:OptionalInputs> </dss:SignRequest> it becomes impossible to express this. XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. What am I missing here? I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. Kind Regards, Frank. On 01/28/2018 12:16 PM, Frank Cornelis wrote: Hi Andreas, Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. See: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS And: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? Kind Regards, Frank. Op 26 jan. 2018, om 19:47 heeft Andreas Kühne <kuehne@trustable.de> het volgende geschreven: Hi Frank, thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! Greetings, Andreas Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis Gesendet: Freitag, 26. Januar 2018 15:16 An: dss-x@lists.oasis-open.org Betreff: Re: [dss-x] self-describing DSS-X instances Hi Andreas, Hereby some feedback on the XML schema and such. Why change AnyType exactly? Kind Regards, Frank. OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? Had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank, good to see you re-joined DSS-X! Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too. Greetings, Andreas Hi Andreas, Were can I find the 2.0 XML schema? I would like to check whether a "Remote Signature" profile with message-level integrity protection could be easily defined against the new 2.0 proposal. Kind Regards, Frank. On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 11.  Re: AW: [dss-x] self-describing DSS-X instances

    Posted 01-29-2018 16:27
    Hi Detlef, Depending on the specific security requirements, a suitable TLS-channel without any message level security might be sufficient. Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature. Kind Regards, Frank. On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: Hi Frank, I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” is not true in general. Depending on the specific security requirements, a suitable TLS-channel without any message level security might be sufficient. Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. BR, Detlef Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis Gesendet: Montag, 29. Januar 2018 10:02 An: dss-x <dss-x@lists.oasis-open.org> Betreff: Re: [dss-x] self-describing DSS-X instances Hi, As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. I did some more experiments with message-level security. While this could be added in DSS 1, see: https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" http://www.w3.org/2000/09/xmldsig#" ;> <dss:OptionalInputs> <dsb:Other> <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> </dsb:Other> </dss:OptionalInputs> </dss:SignRequest> it becomes impossible to express this. XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. What am I missing here? I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. Kind Regards, Frank. On 01/28/2018 12:16 PM, Frank Cornelis wrote: Hi Andreas, Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. See: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-AND-DECLARATIONS And: http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Business-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS-AND-DECLARATIONS BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? Kind Regards, Frank. Op 26 jan. 2018, om 19:47 heeft Andreas Kühne <kuehne@trustable.de> het volgende geschreven: Hi Frank, thank you for your feedback! Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. Regarding the AnyType: The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! Greetings, Andreas Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis Gesendet: Freitag, 26. Januar 2018 15:16 An: dss-x@lists.oasis-open.org Betreff: Re: [dss-x] self-describing DSS-X instances Hi Andreas, Hereby some feedback on the XML schema and such. Why change AnyType exactly? Kind Regards, Frank. OASIS DSS Core 2 Remarks ======================== xml.xsd is missing from the ZIP. Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. === oasis-dss-core-schema-v1.0-os.xsd When trying to compile with JAX-WS I get: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? Had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-dss-base-schema-v2.0-os.xsd Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === xmldsig-core-schema.xsd This does not seem to be the original XMLDSig XML schema. Same error here: org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" === oasis-sstc-saml-schema-protocol-1.1.xsd This does not seem to be the original SAML 1.1 XML schema. org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? So had to remove: xmlns:annox=" http://annox.dev.java.net" ; jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" On 01/24/2018 03:49 PM, Andreas Kuehne wrote: Hi Frank, good to see you re-joined DSS-X! Attached id the current core document reflecting our latest discussions regarding the dss:AnyType. In this version the AnyType is replaced by a Base64DataType. As you are interested in Remote Signing I added the schema of the ChipGateway profile, too. Greetings, Andreas Hi Andreas, Were can I find the 2.0 XML schema? I would like to check whether a "Remote Signature" profile with message-level integrity protection could be easily defined against the new 2.0 proposal. Kind Regards, Frank. On 01/24/2018 12:47 PM, Andreas Kuehne wrote: Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas --------------------------------------------------------------------- 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 -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be


  • 12.  AW: AW: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 07:59
      |   view attached
    Good Morning Frank,   >> Depending on the specific security requirements, a suitable >> TLS-channel without any message level security might be sufficient. >> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. >   >SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature.   with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session by handing over the Response to the SP. See Section 3.1 and Figure 5 in http://www.ecsec.de/pub/SAMLizing-ECC.pdf .   BR,   Detlef           Kind Regards,   Frank.     On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: > Hi Frank, >   > I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” > is not true in general. >   > Depending on the specific security requirements, a suitable > TLS-channel without any message level security might be sufficient. > Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. >   > BR, >   Detlef >   >   > Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im > Auftrag von Frank Cornelis > Gesendet: Montag, 29. Januar 2018 10:02 > An: dss-x < dss-x@lists.oasis-open.org > > Betreff: Re: [dss-x] self-describing DSS-X instances >   > Hi, >   > As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. > SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. >   > I did some more experiments with message-level security. While this could be added in DSS 1, see: >      > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: >      <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" http://www.w3.org/2000/09/xmldsig# "> >      <dss:OptionalInputs> >          <dsb:Other> >              <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >          </dsb:Other> >      </dss:OptionalInputs> > </dss:SignRequest> > it becomes impossible to express this. > XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. >   > Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. > In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: >      https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. > With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. >   > The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. > An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. > Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. >   >   > What am I missing here? >   >   > I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. >   >   >   > Kind Regards, > Frank. >   >   > On 01/28/2018 12:16 PM, Frank Cornelis wrote: > Hi Andreas, >   >   > Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. > See: >             > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A > ND-DECLARATIONS > And: >             > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- > AND-DECLARATIONS >   >   > BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? >   >   > Kind Regards, > Frank. >   >   > Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < kuehne@trustable.de > het volgende geschreven: >   > Hi Frank, >   > thank you for your feedback! > Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. >   > I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. >   > Regarding the AnyType: > The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? >   > The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! >   > Greetings, >   > Andreas >   > Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im > Auftrag von Frank Cornelis > Gesendet: Freitag, 26. Januar 2018 15:16 > An: dss-x@lists.oasis-open.org > Betreff: Re: [dss-x] self-describing DSS-X instances >   > Hi Andreas, >   > Hereby some feedback on the XML schema and such. > Why change AnyType exactly? >   > Kind Regards, > Frank. >   > OASIS DSS Core 2 Remarks > ======================== >   > xml.xsd is missing from the ZIP. >   > Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. >   >   > === oasis-dss-core-schema-v1.0-os.xsd >   > When trying to compile with JAX-WS I get: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " http://annox.dev.java.net ". Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc "? > Had to remove: >      xmlns:annox=" http://annox.dev.java.net " >      jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >   > === oasis-dss-base-schema-v2.0-os.xsd >   > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " http://annox.dev.java.net ". Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc "? > So had to remove: >      xmlns:annox=" http://annox.dev.java.net " >      jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >   > === xmldsig-core-schema.xsd >   > This does not seem to be the original XMLDSig XML schema. > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " http://annox.dev.java.net ". Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc "? > So had to remove: >      xmlns:annox=" http://annox.dev.java.net " >      jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >   > === oasis-sstc-saml-schema-protocol-1.1.xsd >   > This does not seem to be the original SAML 1.1 XML schema. > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " http://annox.dev.java.net ". Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc "? > So had to remove: >      xmlns:annox=" http://annox.dev.java.net " >      jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >   >   > On 01/24/2018 03:49 PM, Andreas Kuehne wrote: > Hi Frank, >   > good to see you re-joined DSS-X! >   > Attached id the current core document reflecting our latest > discussions regarding the dss:AnyType. In this version the AnyType is > replaced by a Base64DataType. > As you are interested in Remote Signing I added the schema of the > ChipGateway profile, too. >   > Greetings, >   > Andreas > Hi Andreas, >   >   > Were can I find the 2.0 XML schema? >   > I would like to check whether a "Remote Signature" profile with > message-level integrity protection could be easily defined against the > new 2.0 proposal. >   >   > Kind Regards, > Frank. >   >   > On 01/24/2018 12:47 PM, Andreas Kuehne wrote: > Hi all, >   >   > the current version of the base schema includes a set of types to to > self-decribe the DSS-X server instance (e.g. the DescriptionType). > There are similiar concepts around, a popular one is HATEOS. >   > So I would consider to separate this topic from the DSS-X specification. > Like the TLS details included in core version 1.0 that outdated > quickly the evolving area of instance meta information may render our > specification effort useless. >   >   > What's your view on this? >   > Greetings, >   > Andreas >   >   >   >   >   >   >   >   > --------------------------------------------------------------------- > 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 >   >   >     -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be     --------------------------------------------------------------------- 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  


  • 13.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 08:38
    Hi folks, doing an non-representative data evaluation of the projects I've seen in the last years I can't remember any to use SOAP and WSS. But _all_ rely on TLS in some way by using client certificates, some flavor of bearer header, even BasicAuth. Common to all these architectures is the intent to keep the security concern strictly separated from the payload. Frank, what do you expect the DSS core should include? Or would it be possible to sort out e.g. authentication relevant mechanism into dedicated profiles? Greetings, Andreas > Good Morning Frank, > > > >>> Depending on the specific security requirements, a suitable >>> TLS-channel without any message level security might be sufficient. >>> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. >> SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature. > > > with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) > one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or > Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session > > by handing over the Response to the SP. See Section 3.1 and Figure 5 in http://www.ecsec.de/pub/SAMLizing-ECC.pdf . > > > > BR, > > Detlef > > > > > > > > > > > > > > Kind Regards, > > > > Frank. > > > > > > On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: > >> Hi Frank, >> I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” >> is not true in general. >> Depending on the specific security requirements, a suitable >> TLS-channel without any message level security might be sufficient. >> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. >> BR, >> Detlef >> Von: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org [ < mailto:dss-x@lists.oasis-open.org > mailto:dss-x@lists.oasis-open.org ] Im >> Auftrag von Frank Cornelis >> Gesendet: Montag, 29. Januar 2018 10:02 >> An: dss-x < < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org> >> Betreff: Re: [dss-x] self-describing DSS-X instances >> Hi, >> As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. >> SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. >> I did some more experiments with message-level security. While this could be added in DSS 1, see: >> >> < https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf >> section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: >> <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" < http://www.w3.org/2000/09/xmldsig# > http://www.w3.org/2000/09/xmldsig#" ;> >> <dss:OptionalInputs> >> <dsb:Other> >> <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >> </dsb:Other> >> </dss:OptionalInputs> >> </dss:SignRequest> >> it becomes impossible to express this. >> XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. >> Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. >> In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: >> < https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl >> Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. >> With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. >> The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. >> An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. >> Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. >> What am I missing here? >> I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. >> Kind Regards, >> Frank. >> On 01/28/2018 12:16 PM, Frank Cornelis wrote: >> Hi Andreas, >> Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. >> See: >> >> < http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A >> ND-DECLARATIONS >> And: >> >> < http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- >> AND-DECLARATIONS >> BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? >> Kind Regards, >> Frank. >> Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < < mailto:kuehne@trustable.de > kuehne@trustable.de> het volgende geschreven: >> Hi Frank, >> >> thank you for your feedback! >> Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. >> >> I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. >> >> Regarding the AnyType: >> The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? >> >> The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! >> >> Greetings, >> >> Andreas >> >> Von: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org [ < mailto:dss-x@lists.oasis-open.org > mailto:dss-x@lists.oasis-open.org ] Im >> Auftrag von Frank Cornelis >> Gesendet: Freitag, 26. Januar 2018 15:16 >> An: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org >> Betreff: Re: [dss-x] self-describing DSS-X instances >> >> Hi Andreas, >> >> Hereby some feedback on the XML schema and such. >> Why change AnyType exactly? >> >> Kind Regards, >> Frank. >> >> OASIS DSS Core 2 Remarks >> ======================== >> xml.xsd is missing from the ZIP. >> Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. >> === oasis-dss-core-schema-v1.0-os.xsd >> When trying to compile with JAX-WS I get: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >> Had to remove: >> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> === oasis-dss-base-schema-v2.0-os.xsd >> Same error here: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> === xmldsig-core-schema.xsd >> This does not seem to be the original XMLDSig XML schema. >> Same error here: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> === oasis-sstc-saml-schema-protocol-1.1.xsd >> This does not seem to be the original SAML 1.1 XML schema. >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> >> >> On 01/24/2018 03:49 PM, Andreas Kuehne wrote: >> Hi Frank, >> >> good to see you re-joined DSS-X! >> >> Attached id the current core document reflecting our latest >> discussions regarding the dss:AnyType. In this version the AnyType is >> replaced by a Base64DataType. >> As you are interested in Remote Signing I added the schema of the >> ChipGateway profile, too. >> >> Greetings, >> >> Andreas >> Hi Andreas, >> >> >> Were can I find the 2.0 XML schema? >> >> I would like to check whether a "Remote Signature" profile with >> message-level integrity protection could be easily defined against the >> new 2.0 proposal. >> >> >> Kind Regards, >> Frank. >> >> >> On 01/24/2018 12:47 PM, Andreas Kuehne wrote: >> Hi all, >> >> >> the current version of the base schema includes a set of types to to >> self-decribe the DSS-X server instance (e.g. the DescriptionType). >> There are similiar concepts around, a popular one is HATEOS. >> >> So I would consider to separate this topic from the DSS-X specification. >> Like the TLS details included in core version 1.0 that outdated >> quickly the evolving area of instance meta information may render our >> specification effort useless. >> >> >> What's your view on this? >> >> Greetings, >> >> Andreas >> >> >> >> >> --------------------------------------------------------------------- >> 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 > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > -- > > Frank Cornelis > > e-Contract.be BVBA > > < https://www.e-contract.be > https://www.e-contract.be > > > > > > --------------------------------------------------------------------- > > 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 > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > > -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales


  • 14.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 09:02
    Hi Andreas, Within the context of using DSS over SOAP, we have WS-Security/WS-SecurityPolicy to properly protect the integrity of the messages between RP and DSS instances. So in the context of SOAP, no need to define something new. What I’m focussing on is using DSS messages over a Browser POST binding. Even with TLS in place, here the DSS messages pass in clear text over the User Agent and can be easily manipulated if no integrity protection mechanism has been implemented. So what I’m trying to do is to define a profile to provide such mechanism for Browser POST bindings. Ideally this would be a profile, as the core is already pretty loaded. Kind Regards, Frank. > Op 30 jan. 2018, om 09:37 heeft Andreas Kuehne <kuehne@trustable.de> het volgende geschreven: > > Hi folks, > > doing an non-representative data evaluation of the projects I've seen in > the last years I can't remember any to use SOAP and WSS. But _all_ rely > on TLS in some way by using client certificates, some flavor of bearer > header, even BasicAuth. Common to all these architectures is the intent > to keep the security concern strictly separated from the payload. > > Frank, what do you expect the DSS core should include? Or would it be > possible to sort out e.g. authentication relevant mechanism into > dedicated profiles? > > Greetings, > > Andreas > >> Good Morning Frank, >> >> >> >>>> Depending on the specific security requirements, a suitable >>>> TLS-channel without any message level security might be sufficient. >>>> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. >>> SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature. >> >> >> with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) >> one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or >> Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session >> >> by handing over the Response to the SP. See Section 3.1 and Figure 5 in http://www.ecsec.de/pub/SAMLizing-ECC.pdf . >> >> >> >> BR, >> >> Detlef >> >> >> >> >> >> >> >> >> >> >> >> >> >> Kind Regards, >> >> >> >> Frank. >> >> >> >> >> >> On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: >> >>> Hi Frank, >>> I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” >>> is not true in general. >>> Depending on the specific security requirements, a suitable >>> TLS-channel without any message level security might be sufficient. >>> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. >>> BR, >>> Detlef >>> Von: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org [ < mailto:dss-x@lists.oasis-open.org > mailto:dss-x@lists.oasis-open.org ] Im >>> Auftrag von Frank Cornelis >>> Gesendet: Montag, 29. Januar 2018 10:02 >>> An: dss-x < < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org> >>> Betreff: Re: [dss-x] self-describing DSS-X instances >>> Hi, >>> As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. >>> SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. >>> I did some more experiments with message-level security. While this could be added in DSS 1, see: >>> >>> < https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf >>> section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: >>> <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" < http://www.w3.org/2000/09/xmldsig# > http://www.w3.org/2000/09/xmldsig#" ;> >>> <dss:OptionalInputs> >>> <dsb:Other> >>> <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >>> </dsb:Other> >>> </dss:OptionalInputs> >>> </dss:SignRequest> >>> it becomes impossible to express this. >>> XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. >>> Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. >>> In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: >>> < https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl >>> Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. >>> With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. >>> The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. >>> An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. >>> Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. >>> What am I missing here? >>> I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. >>> Kind Regards, >>> Frank. >>> On 01/28/2018 12:16 PM, Frank Cornelis wrote: >>> Hi Andreas, >>> Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. >>> See: >>> >>> < http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >>> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A >>> ND-DECLARATIONS >>> And: >>> >>> < http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >>> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- >>> AND-DECLARATIONS >>> BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? >>> Kind Regards, >>> Frank. >>> Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < < mailto:kuehne@trustable.de > kuehne@trustable.de> het volgende geschreven: >>> Hi Frank, >>> >>> thank you for your feedback! >>> Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. >>> >>> I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. >>> >>> Regarding the AnyType: >>> The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? >>> >>> The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! >>> >>> Greetings, >>> >>> Andreas >>> >>> Von: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org [ < mailto:dss-x@lists.oasis-open.org > mailto:dss-x@lists.oasis-open.org ] Im >>> Auftrag von Frank Cornelis >>> Gesendet: Freitag, 26. Januar 2018 15:16 >>> An: < mailto:dss-x@lists.oasis-open.org > dss-x@lists.oasis-open.org >>> Betreff: Re: [dss-x] self-describing DSS-X instances >>> >>> Hi Andreas, >>> >>> Hereby some feedback on the XML schema and such. >>> Why change AnyType exactly? >>> >>> Kind Regards, >>> Frank. >>> >>> OASIS DSS Core 2 Remarks >>> ======================== >>> xml.xsd is missing from the ZIP. >>> Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. >>> === oasis-dss-core-schema-v1.0-os.xsd >>> When trying to compile with JAX-WS I get: >>> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >>> Had to remove: >>> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >>> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> === oasis-dss-base-schema-v2.0-os.xsd >>> Same error here: >>> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >>> So had to remove: >>> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >>> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> === xmldsig-core-schema.xsd >>> This does not seem to be the original XMLDSig XML schema. >>> Same error here: >>> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >>> So had to remove: >>> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >>> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> === oasis-sstc-saml-schema-protocol-1.1.xsd >>> This does not seem to be the original SAML 1.1 XML schema. >>> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " < http://annox.dev.java.net > http://annox.dev.java.net" ;. Perhaps you meant " < http://java.sun.com/xml/ns/jaxb/xjc > http://java.sun.com/xml/ns/jaxb/xjc" ;? >>> So had to remove: >>> xmlns:annox=" < http://annox.dev.java.net > http://annox.dev.java.net" ; >>> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >>> >>> >>> On 01/24/2018 03:49 PM, Andreas Kuehne wrote: >>> Hi Frank, >>> >>> good to see you re-joined DSS-X! >>> >>> Attached id the current core document reflecting our latest >>> discussions regarding the dss:AnyType. In this version the AnyType is >>> replaced by a Base64DataType. >>> As you are interested in Remote Signing I added the schema of the >>> ChipGateway profile, too. >>> >>> Greetings, >>> >>> Andreas >>> Hi Andreas, >>> >>> >>> Were can I find the 2.0 XML schema? >>> >>> I would like to check whether a "Remote Signature" profile with >>> message-level integrity protection could be easily defined against the >>> new 2.0 proposal. >>> >>> >>> Kind Regards, >>> Frank. >>> >>> >>> On 01/24/2018 12:47 PM, Andreas Kuehne wrote: >>> Hi all, >>> >>> >>> the current version of the base schema includes a set of types to to >>> self-decribe the DSS-X server instance (e.g. the DescriptionType). >>> There are similiar concepts around, a popular one is HATEOS. >>> >>> So I would consider to separate this topic from the DSS-X specification. >>> Like the TLS details included in core version 1.0 that outdated >>> quickly the evolving area of instance meta information may render our >>> specification effort useless. >>> >>> >>> What's your view on this? >>> >>> Greetings, >>> >>> Andreas >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> 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 > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >> >> >> -- >> >> Frank Cornelis >> >> e-Contract.be BVBA >> >> < https://www.e-contract.be > https://www.e-contract.be >> >> >> >> >> >> --------------------------------------------------------------------- >> >> 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 > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >> >> >> >> > > -- > Andreas Kühne > phone: +49 177 293 24 97 > mailto: kuehne@trustable.de > > Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 > > Director Andreas Kühne > > Company UK Company No: 5218868 Registered in England and Wales > > > > --------------------------------------------------------------------- > 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 >


  • 15.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 08:45
    Hi Detlef, I quickly went through the article. Funny to notice that the User itself is not considered an attacker. The messages pass in clear text over his User Agent and can be very easily modified. In the context of SAML Browser POST with bearer tokens, an attacker will almost never focus on the transport layer, as he can target the protocol at the User Agent level much easier (see your Figure 5). I have performed several of such attacks in the past. Signature wrapping, … you name it. Check my commits at: https://github.com/OWASP/OWASP-WebScarab/commits/master Believe me, this is really low hanging fruit. And besides, an entity authentication with proper TLS-binding is still very hard to implement in practice. Protocols like SAML Browser POST really require message-level security, maybe enhanced with some TLS-binding if technically possible. with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method= urn:oasis:names:tc:SAML:2.0:cm:bearer”)  one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or  Response Maybe I still need some more coffee, but I really cannot believe that you wrote the above!!! Am I missing something else here but coffee? Kind Regards, Frank. Op 30 jan. 2018, om 08:58 heeft Dr. Detlef Hühnlein < detlef.huehnlein@ecsec.de > het volgende geschreven: Good Morning Frank,   >> Depending on the specific security requirements, a suitable   >> TLS-channel without any message level security might be sufficient.   >> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. >   >SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature.   with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method= urn:oasis:names:tc:SAML:2.0:cm:bearer”)   one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or   Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session   by handing over the Response to the SP. See Section 3.1 and Figure 5 in   http://www.ecsec.de/pub/SAMLizing-ECC.pdf   .   BR,   Detlef     <image001.png>       Kind Regards,   Frank.     On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: > Hi Frank, >   > I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” > is not true in general. >   > Depending on the specific security requirements, a suitable   > TLS-channel without any message level security might be sufficient.   > Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. >   > BR, >   Detlef >   >   > Von:   dss-x@lists.oasis-open.org   [ mailto:dss-x@lists.oasis-open.org ] Im   > Auftrag von Frank Cornelis > Gesendet: Montag, 29. Januar 2018 10:02 > An: dss-x < dss-x@lists.oasis-open.org > > Betreff: Re: [dss-x] self-describing DSS-X instances >   > Hi, >   > As one of the goals of DSS 2 is Support other transport formats than SOAP. , message-level security becomes a critical feature I guess. > SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. >   > I did some more experiments with message-level security. While this could be added in DSS 1, see: >        >   https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: >      <dss:SignRequest xmlns:dsb= urn:oasis:names:tc:dss:2.0:base:schema xmlns:dss= urn:oasis:names:tc:dss:1.0:core:schema xmlns:ds= http://www.w3.org/2000/09/xmldsig# > >      <dss:OptionalInputs> >          <dsb:Other> >              <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >          </dsb:Other> >      </dss:OptionalInputs> > </dss:SignRequest> > it becomes impossible to express this. > XML Signatures work at the DOM level, so we really need to be able to add alien-namespace XML elements. >   > Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. > In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: >        https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. > With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. >   > The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. > An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. > Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. >   >   > What am I missing here? >   >   > I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. >   >   >   > Kind Regards, > Frank. >   >   > On 01/28/2018 12:16 PM, Frank Cornelis wrote: > Hi Andreas, >   >   > Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. > See: >               >   http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A > ND-DECLARATIONS > And: >               >   http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- > AND-DECLARATIONS >   >   > BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? >   >   > Kind Regards, > Frank. >   >   > Op 26 jan. 2018, om 19:47 heeft Andreas Kühne < kuehne@trustable.de > het volgende geschreven: >   > Hi Frank, >     > thank you for your feedback! > Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. >     > I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. >     > Regarding the AnyType: > The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? >     > The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! >     > Greetings, >     > Andreas >     > Von:   dss-x@lists.oasis-open.org   [ mailto:dss-x@lists.oasis-open.org ] Im   > Auftrag von Frank Cornelis > Gesendet: Freitag, 26. Januar 2018 15:16 > An:   dss-x@lists.oasis-open.org > Betreff: Re: [dss-x] self-describing DSS-X instances >     > Hi Andreas, >     > Hereby some feedback on the XML schema and such. > Why change AnyType exactly? >     > Kind Regards, > Frank. >     > OASIS DSS Core 2 Remarks > ======================== >   > xml.xsd is missing from the ZIP. >   > Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. >   >   > === oasis-dss-core-schema-v1.0-os.xsd >   > When trying to compile with JAX-WS I get: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? > Had to remove: >      xmlns:annox= http://annox.dev.java.net >      jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc >   > === oasis-dss-base-schema-v2.0-os.xsd >   > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? > So had to remove: >      xmlns:annox= http://annox.dev.java.net >      jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc >   > === xmldsig-core-schema.xsd >   > This does not seem to be the original XMLDSig XML schema. > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? > So had to remove: >      xmlns:annox= http://annox.dev.java.net >      jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc >   > === oasis-sstc-saml-schema-protocol-1.1.xsd >   > This does not seem to be the original SAML 1.1 XML schema. > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace http://annox.dev.java.net . Perhaps you meant http://java.sun.com/xml/ns/jaxb/xjc ? > So had to remove: >      xmlns:annox= http://annox.dev.java.net >      jxb:version= 2.1 jxb:extensionBindingPrefixes= annox xjc >     >     > On 01/24/2018 03:49 PM, Andreas Kuehne wrote: > Hi Frank, >     > good to see you re-joined DSS-X! >     > Attached id the current core document reflecting our latest   > discussions regarding the dss:AnyType. In this version the AnyType is   > replaced by a Base64DataType. > As you are interested in Remote Signing I added the schema of the   > ChipGateway profile, too. >     > Greetings, >     > Andreas > Hi Andreas, >     >     > Were can I find the 2.0 XML schema? >     > I would like to check whether a Remote Signature profile with   > message-level integrity protection could be easily defined against the   > new 2.0 proposal. >     >     > Kind Regards, > Frank. >     >     > On 01/24/2018 12:47 PM, Andreas Kuehne wrote: > Hi all, >     >     > the current version of the base schema includes a set of types to to   > self-decribe the DSS-X server instance (e.g. the DescriptionType).   > There are similiar concepts around, a popular one is HATEOS. >     > So I would consider to separate this topic from the DSS-X specification. > Like the TLS details included in core version 1.0 that outdated   > quickly the evolving area of instance meta information may render our   > specification effort useless. >     >     > What's your view on this? >     > Greetings, >     > Andreas >     >     >     >   >   >   >   >     > --------------------------------------------------------------------- > 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 >   >   >     -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be     --------------------------------------------------------------------- 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


  • 16.  AW: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 09:22
    Hi Frank, how about “security relies both on the security of the TLS-channel and the signature of the Assertion/ Response, if these data flow through the User Agent”? … The latter is for example not true in the Artifact Binding. BR, dh Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis Gesendet: Dienstag, 30. Januar 2018 09:45 An: dss-x <dss-x@lists.oasis-open.org> Betreff: Re: [dss-x] self-describing DSS-X instances Hi Detlef, I quickly went through the article. Funny to notice that the User itself is not considered an attacker. The messages pass in clear text over his User Agent and can be very easily modified. In the context of SAML Browser POST with bearer tokens, an attacker will almost never focus on the transport layer, as he can target the protocol at the User Agent level much easier (see your Figure 5). I have performed several of such attacks in the past. Signature wrapping, … you name it. Check my commits at: https://github.com/OWASP/OWASP-WebScarab/commits/master Believe me, this is really low hanging fruit. And besides, an entity authentication with proper TLS-binding is still very hard to implement in practice. Protocols like SAML Browser POST really require message-level security, maybe enhanced with some TLS-binding if technically possible. with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or Response Maybe I still need some more coffee, but I really cannot believe that you wrote the above!!! Am I missing something else here but coffee? Kind Regards, Frank. Op 30 jan. 2018, om 08:58 heeft Dr. Detlef Hühnlein <detlef.huehnlein@ecsec.de> het volgende geschreven: Good Morning Frank, >> Depending on the specific security requirements, a suitable >> TLS-channel without any message level security might be sufficient. >> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. > >SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature. with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session by handing over the Response to the SP. See Section 3.1 and Figure 5 in http://www.ecsec.de/pub/SAMLizing-ECC.pdf . BR, Detlef <image001.png> Kind Regards, Frank. On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: > Hi Frank, > > I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” > is not true in general. > > Depending on the specific security requirements, a suitable > TLS-channel without any message level security might be sufficient. > Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. > > BR, > Detlef > > > Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im > Auftrag von Frank Cornelis > Gesendet: Montag, 29. Januar 2018 10:02 > An: dss-x <dss-x@lists.oasis-open.org> > Betreff: Re: [dss-x] self-describing DSS-X instances > > Hi, > > As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. > SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. > > I did some more experiments with message-level security. While this could be added in DSS 1, see: > > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf > section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: > <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" http://www.w3.org/2000/09/xmldsig#" ;> > <dss:OptionalInputs> > <dsb:Other> > <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> > </dsb:Other> > </dss:OptionalInputs> > </dss:SignRequest> > it becomes impossible to express this. > XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. > > Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. > In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: > https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl > Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. > With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. > > The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. > An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. > Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. > > > What am I missing here? > > > I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. > > > > Kind Regards, > Frank. > > > On 01/28/2018 12:16 PM, Frank Cornelis wrote: > Hi Andreas, > > > Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. > See: > > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A > ND-DECLARATIONS > And: > > http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi > ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- > AND-DECLARATIONS > > > BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? > > > Kind Regards, > Frank. > > > Op 26 jan. 2018, om 19:47 heeft Andreas Kühne <kuehne@trustable.de> het volgende geschreven: > > Hi Frank, > > thank you for your feedback! > Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. > > I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. > > Regarding the AnyType: > The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? > > The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! > > Greetings, > > Andreas > > Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im > Auftrag von Frank Cornelis > Gesendet: Freitag, 26. Januar 2018 15:16 > An: dss-x@lists.oasis-open.org > Betreff: Re: [dss-x] self-describing DSS-X instances > > Hi Andreas, > > Hereby some feedback on the XML schema and such. > Why change AnyType exactly? > > Kind Regards, > Frank. > > OASIS DSS Core 2 Remarks > ======================== > > xml.xsd is missing from the ZIP. > > Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. > > > === oasis-dss-core-schema-v1.0-os.xsd > > When trying to compile with JAX-WS I get: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? > Had to remove: > xmlns:annox=" http://annox.dev.java.net" ; > jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" > > === oasis-dss-base-schema-v2.0-os.xsd > > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? > So had to remove: > xmlns:annox=" http://annox.dev.java.net" ; > jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" > > === xmldsig-core-schema.xsd > > This does not seem to be the original XMLDSig XML schema. > Same error here: > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? > So had to remove: > xmlns:annox=" http://annox.dev.java.net" ; > jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" > > === oasis-sstc-saml-schema-protocol-1.1.xsd > > This does not seem to be the original SAML 1.1 XML schema. > org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? > So had to remove: > xmlns:annox=" http://annox.dev.java.net" ; > jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" > > > On 01/24/2018 03:49 PM, Andreas Kuehne wrote: > Hi Frank, > > good to see you re-joined DSS-X! > > Attached id the current core document reflecting our latest > discussions regarding the dss:AnyType. In this version the AnyType is > replaced by a Base64DataType. > As you are interested in Remote Signing I added the schema of the > ChipGateway profile, too. > > Greetings, > > Andreas > Hi Andreas, > > > Were can I find the 2.0 XML schema? > > I would like to check whether a "Remote Signature" profile with > message-level integrity protection could be easily defined against the > new 2.0 proposal. > > > Kind Regards, > Frank. > > > On 01/24/2018 12:47 PM, Andreas Kuehne wrote: > Hi all, > > > the current version of the base schema includes a set of types to to > self-decribe the DSS-X server instance (e.g. the DescriptionType). > There are similiar concepts around, a popular one is HATEOS. > > So I would consider to separate this topic from the DSS-X specification. > Like the TLS details included in core version 1.0 that outdated > quickly the evolving area of instance meta information may render our > specification effort useless. > > > What's your view on this? > > Greetings, > > Andreas > > > > > > > > > --------------------------------------------------------------------- > 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 > > > -- Frank Cornelis e-Contract.be BVBA https://www.e-contract.be --------------------------------------------------------------------- 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


  • 17.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-30-2018 09:26
    Hi Detlef, Yes! :) Kind Regards, Frank. > Op 30 jan. 2018, om 10:21 heeft Dr. Detlef Hühnlein <detlef.huehnlein@ecsec.de> het volgende geschreven: > > Hi Frank, > > how about “security relies both on the security of the TLS-channel and the signature of the Assertion/ Response, > if these data flow through the User Agent”? … The latter is for example not true in the Artifact Binding. > > BR, > dh > > > > Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Frank Cornelis > Gesendet: Dienstag, 30. Januar 2018 09:45 > An: dss-x <dss-x@lists.oasis-open.org> > Betreff: Re: [dss-x] self-describing DSS-X instances > > Hi Detlef, > > > I quickly went through the article. Funny to notice that the User itself is not considered an attacker. The messages pass in clear text over his User Agent and can be very easily modified. In the context of SAML Browser POST with bearer tokens, an attacker will almost never focus on the transport layer, as he can target the protocol at the User Agent level much easier (see your Figure 5). I have performed several of such attacks in the past. Signature wrapping, … you name it. Check my commits at: > https://github.com/OWASP/OWASP-WebScarab/commits/master > Believe me, this is really low hanging fruit. And besides, an entity authentication with proper TLS-binding is still very hard to implement in practice. > > Protocols like SAML Browser POST really require message-level security, maybe enhanced with some TLS-binding if technically possible. > > with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) > one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or > Response > > Maybe I still need some more coffee, but I really cannot believe that you wrote the above!!! > Am I missing something else here but coffee? > > > Kind Regards, > Frank. > > > Op 30 jan. 2018, om 08:58 heeft Dr. Detlef Hühnlein <detlef.huehnlein@ecsec.de> het volgende geschreven: > > Good Morning Frank, > >>> Depending on the specific security requirements, a suitable >>> TLS-channel without any message level security might be sufficient. >>> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently >powerful attacker. >> >> SAML is actually a good example. SAML Browser POST binding messages pass via the web browser, where you could perform a MITM despite SSL >between browser and both RP/IdP. That's why SAML Browser POST response messages are being secured via an XML signature. > > with respect to SAML (in the Web Browser SSO Profile with SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer”) > one should keep in mind, that the security effectively relies on the security of the TLS-channel and not the signature of the Assertion or > Response, because a MitM-attacker can sit in the channel between the User and the SP and just hijack the session > by handing over the Response to the SP. See Section 3.1 and Figure 5 in http://www.ecsec.de/pub/SAMLizing-ECC.pdf . > > BR, > Detlef > > > <image001.png> > > > > Kind Regards, > > Frank. > > > On 01/29/2018 04:54 PM, Dr. Detlef Hühnlein wrote: >> Hi Frank, >> >> I think that your statement below “A non-SOAP binding requires message-level security, obviously by means of XML signatures.” >> is not true in general. >> >> Depending on the specific security requirements, a suitable >> TLS-channel without any message level security might be sufficient. >> Most real world systems which use SAML or OpenID Connect only use bearer tokens, which could be intercepted and misused by a sufficiently powerful attacker. >> >> BR, >> Detlef >> >> >> Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im >> Auftrag von Frank Cornelis >> Gesendet: Montag, 29. Januar 2018 10:02 >> An: dss-x <dss-x@lists.oasis-open.org> >> Betreff: Re: [dss-x] self-describing DSS-X instances >> >> Hi, >> >> As one of the goals of DSS 2 is "Support other transport formats than SOAP.", message-level security becomes a critical feature I guess. >> SOAP security is covered by WS-Security/WS-SecurityPolicy and such. A non-SOAP binding requires message-level security, obviously by means of XML signatures. >> >> I did some more experiments with message-level security. While this could be added in DSS 1, see: >> >> https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf >> section 2.2 Browser POST, due to the AnyType being a base64 in Core 2: >> <dss:SignRequest xmlns:dsb="urn:oasis:names:tc:dss:2.0:base:schema" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns:ds=" http://www.w3.org/2000/09/xmldsig#" ;> >> <dss:OptionalInputs> >> <dsb:Other> >> <dsb:Value>d2hlcmUgZG8gSSBwdXQgbXkgWE1MIHNpZ25hdHVyZT8=</dsb:Value> >> </dsb:Other> >> </dss:OptionalInputs> >> </dss:SignRequest> >> it becomes impossible to express this. >> XML Signatures work at the DOM level, so we really need to be able to add "alien-namespace" XML elements. >> >> Besides the XML Signature issue, the parsing of additional profiles becomes a two-pass operation. >> In Core 1, you could add your additional profiles within your WSDL by means of a simple import. See example: >> https://www.e-contract.be/sites/dssp/dssp-specs/dssp-ws.wsdl >> Feeding this to JAXWS/JAXB made it possible for JAXB to actually parse your additional profiles in one go. >> With the Core 2, you parse a first time towards base64, and then you have to run a second JAXB unmarshalling against this. From a usability/performance point-of-view, this becomes really painful. >> >> The structures intended to be supported by a client or a server system MUST be known to be implementable. But the usual tools for schema support leave the task of handling the content of an any type to the developer. Without extensive testing problems with unexpected content may occur at runtime, even while using typed languages. >> An AnyType of unknown namespace (in the context of the parser like JAWS/JAXB) simply results in a DOM element, as it should be. I don't see the problem here. >> Even if one would acknowledge this as a problem, doing a base64 is not solving anything at all. The problem remains. >> >> >> What am I missing here? >> >> >> I'm already managed to use Jackson for JSON Schema compilation in Java. Will play a bit with this AnyType stuff to see if the above issues could be resolved in a generic way to keep both XML and JSON happy. >> >> >> >> Kind Regards, >> Frank. >> >> >> On 01/28/2018 12:16 PM, Frank Cornelis wrote: >> Hi Andreas, >> >> >> Still have to get acquainted with the JSON Schema specs/tooling, but it seems like OASIS UBL solved a similar problem where both their XML and JSON have extension points, and their XML does it via xsd:any. >> See: >> >> http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-XML-SCHEMA-FRAGMENTS-A >> ND-DECLARATIONS >> And: >> >> http://docs.oasis-open.org/ubl/Business-Document-NDR/v1.1/csprd01/Busi >> ness-Document-NDR-v1.1-csprd01.html#S-EXTENSION-JSON-SCHEMA-FRAGMENTS- >> AND-DECLARATIONS >> >> >> BTW: In my “sandbox” project here, as part of my message-level security experiments, I also had to give the new Core 2 XSD a 2.0 namespace to be able to compile both Core 1 and Core 2 within the same Java Maven project. Core 2 will eventually receive a new namespace I guess? >> >> >> Kind Regards, >> Frank. >> >> >> Op 26 jan. 2018, om 19:47 heeft Andreas Kühne <kuehne@trustable.de> het volgende geschreven: >> >> Hi Frank, >> >> thank you for your feedback! >> Yes, it’s an advantage to provide a sample WSDL as implementor’s support. But due to the support of current frameworks the WSDL slides towards being a derived artefact. >> >> I was assuming that the binding and the ‘annox’ namespaces, leaking thru from prior processing steps, are just irrelevant here. Interesting to see that these declarations do cause problems. Now I’ll drop them before reaching the final schema stage. Surprisingly no way to drop namespace declarations that are defined in the incoming document using XSLT … had to fall back to RegEx. >> >> Regarding the AnyType: >> The handy use case of putting some random XML fragment into an AnyType cannot be supported by the JSON syntax and vice versa. So the only feasible approach to transport arbitrary data _and_ supporting multiple syntaxes is to use some base64 encoded container. And we already have a fully featured Base64DataType defined in DSS (with a content describing MIME type attribute, support for references and attachments). So why not align all usages to the Base64DataType? >> >> The biggest pain point of the current multi-syntax approach is the effect on foreign schemes. As outlined in the new core draft, section 2.6, some well-respected features of XML cannot easily be mapped to e.g. JSON. So my current approach is to rewrite the referenced schemes and replace the XML specifics. Yes, bad approach but I don’t know of any better! Proposals welcome! >> >> Greetings, >> >> Andreas >> >> Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im >> Auftrag von Frank Cornelis >> Gesendet: Freitag, 26. Januar 2018 15:16 >> An: dss-x@lists.oasis-open.org >> Betreff: Re: [dss-x] self-describing DSS-X instances >> >> Hi Andreas, >> >> Hereby some feedback on the XML schema and such. >> Why change AnyType exactly? >> >> Kind Regards, >> Frank. >> >> OASIS DSS Core 2 Remarks >> ======================== >> >> xml.xsd is missing from the ZIP. >> >> Always found it funny that there was no proper SOAP binding defined. See attachment for a first shot at it. >> >> >> === oasis-dss-core-schema-v1.0-os.xsd >> >> When trying to compile with JAX-WS I get: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-core-schema-v1.0-os.xsd; lineNumber: 1; columnNumber: 703; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? >> Had to remove: >> xmlns:annox=" http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> >> === oasis-dss-base-schema-v2.0-os.xsd >> >> Same error here: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-dss-base-schema-v2.0-os.xsd; lineNumber: 1; columnNumber: 555; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> >> === xmldsig-core-schema.xsd >> >> This does not seem to be the original XMLDSig XML schema. >> Same error here: >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/xmldsig-core-schema.xsd; lineNumber: 23; columnNumber: 579; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> >> === oasis-sstc-saml-schema-protocol-1.1.xsd >> >> This does not seem to be the original SAML 1.1 XML schema. >> org.xml.sax.SAXParseException; systemId: file:/home/fcorneli/dssp-2/src/wsdl/oasis-sstc-saml-schema-protocol-1.1.xsd; lineNumber: 1; columnNumber: 705; Unsupported binding namespace " http://annox.dev.java.net" ;. Perhaps you meant " http://java.sun.com/xml/ns/jaxb/xjc" ;? >> So had to remove: >> xmlns:annox=" http://annox.dev.java.net" ; >> jxb:version="2.1" jxb:extensionBindingPrefixes="annox xjc" >> >> >> On 01/24/2018 03:49 PM, Andreas Kuehne wrote: >> Hi Frank, >> >> good to see you re-joined DSS-X! >> >> Attached id the current core document reflecting our latest >> discussions regarding the dss:AnyType. In this version the AnyType is >> replaced by a Base64DataType. >> As you are interested in Remote Signing I added the schema of the >> ChipGateway profile, too. >> >> Greetings, >> >> Andreas >> Hi Andreas, >> >> >> Were can I find the 2.0 XML schema? >> >> I would like to check whether a "Remote Signature" profile with >> message-level integrity protection could be easily defined against the >> new 2.0 proposal. >> >> >> Kind Regards, >> Frank. >> >> >> On 01/24/2018 12:47 PM, Andreas Kuehne wrote: >> Hi all, >> >> >> the current version of the base schema includes a set of types to to >> self-decribe the DSS-X server instance (e.g. the DescriptionType). >> There are similiar concepts around, a popular one is HATEOS. >> >> So I would consider to separate this topic from the DSS-X specification. >> Like the TLS details included in core version 1.0 that outdated >> quickly the evolving area of instance meta information may render our >> specification effort useless. >> >> >> What's your view on this? >> >> Greetings, >> >> Andreas >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> 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 >> >> >> > > -- > Frank Cornelis > e-Contract.be BVBA > https://www.e-contract.be > > > --------------------------------------------------------------------- > 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 > >


  • 18.  AW: [dss-x] self-describing DSS-X instances

    Posted 01-27-2018 15:06
    Hi Andreas, as a service may support different calls, profiles and options it would be good to have some standardised mechanism, which allows the server to announce its capabilities and on the other hand the client to discover the set of supported features. The "canonical way of informing the client" might be different for the different types of service technologies. Examples include for 1) REST: 1.1) HATEOAS ( https://en.wikipedia.org/wiki/HATEOAS ) 1.2) WADL for REST-based services 1.3) YAML-based OpenAPI (Swagger) specification 2) WSDL for SOAP-based services 3) yet another (probably XML-based) <Info> structure deposited at a well-known location. While it might be good shift such recommendation to an annex or separate document, we should IMHO address this somehow. BR, Detlef -----Ursprüngliche Nachricht----- Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Andreas Kuehne Gesendet: Mittwoch, 24. Januar 2018 12:48 An: dss-x <dss-x@lists.oasis-open.org> Betreff: [dss-x] self-describing DSS-X instances Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales --------------------------------------------------------------------- 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


  • 19.  Re: [dss-x] self-describing DSS-X instances

    Posted 01-27-2018 17:14
    Hi, We had to solve a similar problem with our DSS profile: https://www.e-contract.be/sites/dssp/dssp-specs/dssp-specs-1.5.1.pdf Where we have a single services composed out of two end-points: one SOAP and one Browser-POST based. To make it easier for a developer to keep track of these two endpoints on a per-service base, we let each DSS instance expose an OASIS SAML 2.0 Metadata document with a custom descriptor. See section 3.11 Metadata of our spec document. Using OASIS SAML 2.0 Metadata for this also made sense since a lot of our customers already were using our SAML/WS-Federation based identity provider, which also provides SAML 2.0 Metadata for auto-config purposes. Kind Regards, Frank. Op 27 jan. 2018, om 16:05 heeft Dr. Detlef Hühnlein < detlef.huehnlein@ecsec.de > het volgende geschreven: Hi Andreas, as a service may support different calls, profiles and options it would be good to have some standardised mechanism, which allows the server to announce its capabilities and on the other hand the client to discover the set of supported features. The canonical way of informing the client might be different for the different types of service technologies. Examples include for 1) REST: 1.1) HATEOAS ( https://en.wikipedia.org/wiki/HATEOAS ) 1.2) WADL for REST-based services 1.3) YAML-based OpenAPI (Swagger) specification 2) WSDL for SOAP-based services 3) yet another (probably XML-based) <Info> structure deposited at a well-known location. While it might be good shift such recommendation to an annex or separate document, we should IMHO address this somehow. BR,  Detlef -----Ursprüngliche Nachricht----- Von: dss-x@lists.oasis-open.org [ mailto:dss-x@lists.oasis-open.org ] Im Auftrag von Andreas Kuehne Gesendet: Mittwoch, 24. Januar 2018 12:48 An: dss-x < dss-x@lists.oasis-open.org > Betreff: [dss-x] self-describing DSS-X instances Hi all, the current version of the base schema includes a set of types to to self-decribe the DSS-X server instance (e.g. the DescriptionType). There are similiar concepts around, a popular one is HATEOS. So I would consider to separate this topic from the DSS-X specification. Like the TLS details included in core version 1.0 that outdated quickly the evolving area of instance meta information may render our specification effort useless. What's your view on this? Greetings, Andreas -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales --------------------------------------------------------------------- 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 --------------------------------------------------------------------- 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