Question

J'ai été jeté dans le monde des signatures numériques XML avec un projet iOS sur lequel je travaille; J'ai besoin de vérifier la signature numérique d'une affirmation SAML.

J'ai beaucoup lu sur la validation des signatures XML, et je pense que j'obtiens les bases de la façon dont il signe le digest avec la clé privée et je peux le vérifier avec la clé publique (qui devrait être dans le certificat X509 inclus) donc je Peut être certain de la source du jeton SAML.

J'ai trouvé une bibliothèque C, xmlsec, cela semble avoir beaucoup de code dont j'ai besoin pour vérifier la signature et j'ai travaillé pour essayer de l'implémenter. Cependant, je n'ai pas pu le comprendre. D'après ce que je comprends, je suis presque sûr que je devrais compiler la bibliothèque avec mon code. J'ai copié la source dans mon projet, mais je reçois des erreurs pendant la compilation sur les choses qui ne sont pas définies.

Avant de passer d'innombrables heures à descendre ce chemin, j'ai pensé que j'atteindre la communauté et voir si quelqu'un a eu une expérience de vérification d'une signature numérique XML et s'il pourrait donner un aperçu de la mise en œuvre dans un projet iOS.

Pour ce que ça vaut, voici un morceau de l'affirmation SAML que j'obtiens du service de connexion unique:

<?xml version="1.0" encoding="UTF-16"?>
<saml:Assertion ID="oQ2YZuHBspA_f91HM8o3.o6ZZla" IssueInstant="2011-05-06T00:51:40.733Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<saml:Issuer>[...]</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
        <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
        <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
        <ds:Reference URI="#oQ2YZuHBspA_f91HM8o3.o6ZZla">
            <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </ds:Transforms>
            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
            <ds:DigestValue>zj4pCHBNMln+28Jq/v1YIScfiuw=</ds:DigestValue>
        </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>[...]</ds:SignatureValue>
    <ds:KeyInfo>
        <ds:X509Data>
            <ds:X509Certificate>MIIDVjCCAj6gAwIBAgIGAS67wkWCMA0GCSqGSIb3[...]7bgf</ds:X509Certificate>
        </ds:X509Data>
        <ds:KeyValue>
            <ds:RSAKeyValue>
                <ds:Modulus>[...]</ds:Modulus>
                <ds:Exponent>AQAB</ds:Exponent>
            </ds:RSAKeyValue>
        </ds:KeyValue>
    </ds:KeyInfo>
</ds:Signature>

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top