Domanda

Sono stato gettato nel mondo delle firme digitali XML con un progetto iOS su cui sto lavorando; Devo verificare la firma digitale di un'asserzione SAML.

Ho letto molto sulla convalida delle firme XML e penso di ottenere le basi su come firma il digest con la chiave privata e posso verificarlo con la chiave pubblica (che dovrebbe essere nel certificato X509 incluso) quindi io Può essere certo della fonte del token SAML.

Ho trovato un cpassone c, XMLSEC, sembra che abbia un sacco di codice di cui ho bisogno per verificare la firma e ho lavorato per cercare di implementarlo. Tuttavia, non sono stato in grado di capirlo. Da quello che ho capito, sono abbastanza sicuro che dovrei compilare la biblioteca con il mio codice. Ho copiato la fonte nel mio progetto, ma ricevo errori durante la compilazione sulle cose che non vengono definite.

Prima di passare innumerevoli ore a scendere su quel percorso, ho pensato che avrei raggiunto la comunità e vedevo se qualcuno avesse avuto esperienza di verifica di una firma digitale XML e se potevano dare informazioni sull'implementazione in un progetto iOS.

Per quello che vale, ecco un pezzo dell'affermazione SAML che sto ottenendo dal servizio di accesso singolo:

<?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>

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top