Podpora vývojářů

Diskuzní server pro podporu tvorby aplikací pro transakční část PVS.
Vítá vás Podpora vývojářů Přihlásit se | Připojit | Nápověda
v Vyhledat

Problém při registraci certifikátem na USB tokenu

Poslední příspěvek 12-15-2009, 21:28 od admin. Počet odpovědí: 12
Řadit příspěvky: Předchozí Další
  •  12-01-2009, 10:59 1396

    Problém při registraci certifikátem na USB tokenu

    Používám osobní kvalifikovaný certifikát vydaný Českou poštou a používám ho i v modulu elektronického podání pro podepisování a šifrování.

    Chtěl jsem se přihlásit tímto certifikátem a zaregistrovat si vhodné služby (ČSSZ, daňová správa, celní správa, testovací služba 0-té úrovně). Poté, co jsem zvolil certifikát, zadal známé údaje shodné se známými údaji při přihlašování identifikátorem a heslem (které bez problémů funguje), obdržel jsem následující chybové hlášení:

    "Registrace či přihlášení ke službě se nezdařilo. Prosím, opakujte akci se správně zvolenými službami a známými údaji"

    Situace se opakovala, i když jsem se omezil na pokus zaregistrovat pouze službu 0-té úrovně.

    Po delší komunikaci s podporou, kde jsem si pouze ověřil, že nastavení mého PC je správné, jsem učinil pokus:

    na svém PC používám osobní kvalifikovaný certifikát vydaný Českou poštou a uložený na USB tokenu iKey4000 - výsledek = výše uvedené chyba

    Zkusil jsem použít kolegův osobní kvalifikovaný certifikát - ten je signovaný I.CA a umístěný na čipové kartě typu GemPC USB-SL. A tady vše bez problémů prošlo.

    Předpokládám problém v podepisovacím modulu (jak bylo zmíněno ver. 1.0.5.1103), ale nevím.

    Má někdo vhodnou zkušenost ? POkud je můj předpoklad správný, tedy admin ?
  •  12-01-2009, 15:29 1397v odpovědi na1396

    Re: Problém při registraci certifikátem na USB tokenu

    Tento problém jsme již před časem řešili. Podrobným zkoumáním jsme zjistili, že CSP dodávané s USB Tokenem není kompatibilní s CrypoAPI a proto není funkční. Tj. je nutné se obrátit na dodavatele HW a požadovat opravenou verzi CSP.
  •  12-02-2009, 9:59 1399v odpovědi na1397

    Re: Problém při registraci certifikátem na USB tokenu

    Děkuji za bleskovou reakci, pokusím se tak učinit.
  •  12-07-2009, 15:31 1403v odpovědi na1399

    Re: Problém při registraci certifikátem na USB tokenu

    Po několikadenním ping-pongu s helpdeskem České pošty helpdesk-es@cpost.cz; jsem obdržel toto vyjádření:

    vyjádření řešitele:
    *********************************
    Na CD, které je společně s tokenem je verze 7.0.2

    S verzí CSP se nic neudělá. Tato verze funguje na tisících PC. Všiml jsem
    si, že stránky https://bezpecne.dev.gov.cz/registrationWizard.aspx používají
    komponentu Capicom. I tam je token naprosto bez problémů použitelný.

    **********************************

    Ve všech ostatních případech , kromě popsaného, se token zachová korektně.
    Můžete mi nějak přiblížit Vámi řešený problém, abych se pokusil přijít na to, co je špatně. Podle České pošty je vše kolem tokenu v pořádku a chyba je někde u mě. Bylo by případně možno získat odkaz na někoho, s nímž se problém řešil ?
  •  12-07-2009, 20:23 1404v odpovědi na1403

    Re: Problém při registraci certifikátem na USB tokenu

    Zkuste, prosím, zda se vám podaří udělat registraci na testovací větvi TRA PVS (http://bezpecne.dev.gov.cz) pro službu Ministerstva financí nebo pro službu 0-té úrovně.
  •  12-08-2009, 10:02 1405v odpovědi na1404

    Re: Problém při registraci certifikátem na USB tokenu

    Nepodaří. To jsem samozřejmě zkoušel ještě předtím, než jsem začal volat o pomoc. Registrace dopadne pro všechny služby stejně: nechá mě dojít až do poslední fáze (potvrzení známých údajů), pak se zamyslí a vyhlásí chybu: "Registrace či přihlášení ke službě se nezdařilo. Prosím, opakujte akci se správně zvolenými službami a známými údaji" i u testovací služby, kde problém s identifikátorem asi ani nemůže nastat. Zkoušel jsem i na různých PC (Win XP SP3, Win Vista Home) a výsledek je stále stejný.
  •  12-10-2009, 9:36 1407v odpovědi na1405

    Re: Problém při registraci certifikátem na USB tokenu

    Problém analyzujeme. Ještě dotaz. Měl jste již někdy s tímto konkrétním certifikátem vytvořenou registraci, kterou jste následně smazal?
  •  12-10-2009, 13:08 1408v odpovědi na1407

    Re: Problém při registraci certifikátem na USB tokenu

    pokud se pamatuji, tak ne. Ale zcela jist si nejsem, pokusy s registrací certifikátem jsem prováděl již před nějakou dobou. Pochybuji ale, že bych úspěšnou registraci mazal. Vrátil jsem se k tomu až teď a ani přihlášení ani registrace neprošla.
  •  12-10-2009, 13:17 1409v odpovědi na1408

    Re: Problém při registraci certifikátem na USB tokenu

    V rámci řešení problému jsem si nechal vystavit na firmu osobní kvalifikovaný zaměstnanecký certifikát do souboru, abych obešel potřebu použít USB token. Naimportoval jsem soubor p12 do systému a při pokusu o registraci jsem dopadl zcela stejně jako při použití tokenu. Předtím jsem provedl 2 pokusy s certifikáty uloženými na čipových kartách signovanými ale I.CA autoritou (moje jsou od PostSignum, v tom je jediný rozdíl) - registrace v těchto případech prošla bez problémů
  •  12-10-2009, 14:40 1410v odpovědi na1409

    Re: Problém při registraci certifikátem na USB tokenu

    Prověřoval jsem registraci a a objevil jsem toto:
    podařilo se mi někdy v minulosti registrovat se jako občan pomocí certifikátu na ostré větvi bezpecne.podani.gov.cz a registrace je stále funkční (díky řešení jiného pracovního problému jsem na to již zapomněl).
    Zjistil jsem, že pokud v testovací větvi použiji stejný RandomID pro Testovací službu 0-té úrovně v kterékoliv větvi (Občan, Organizace,...) - dojde ke kolizi a registrace neproběhne !
    Pokud jsem odstranil registraci v ostré verzi a zkusil se registrovat v testovací pomocí certifikátu na tokenu, vše proběhlo O.K.
    Jde tedy spíše o logickou chybu v klíči DB registrací, kdy by asi měla skupina Certifikát + ZnáméÚdajeProSlužbu být dotříděna větví (Občan, Organizace,...) nebo by mělo být ve vhodném místě upozornění, že toto je problém. A podle všeho se ovlivňují ostrá a testovací větev (viz výše uvedené) - což asi také není úplně O.K.
  •  12-10-2009, 15:42 1412v odpovědi na1410

    Re: Problém při registraci certifikátem na USB tokenu

    Ostrá a testovací větev se v žádném případě neovlivňují. To je pouze shoda okolností, protože jsme pro některé specifické případy, kam jste spadl i vy, objevili problém v konfiguraci testovací větve. Problém jsme odstranili a proto se vám podařilo přihlásit.
  •  12-15-2009, 11:57 1416v odpovědi na1412

    Re: Problém při registraci certifikátem na USB tokenu

    Měl bych ještě dotaz, tentokrát z jiného soudku, který byl už částečně řešen (http://bezpecne.dev.gov.cz/diskuze/forums/thread/416.aspx):
    převzal jsem modul pro Elektronické podání po kolegovi a zde je funkční podání pomocí identifikátoru a hesla. Jak jsem zjistil, při vytváření podání např DPH tímto způsobem není vůbec použita kakonizace a přesto vše proběhne v pořádku.
    Doplňuji přihlašování certifikátem a neustále dostávám zpět chybu 1046 The supplied user credentials failed validation for the requested service. Sender not autheticated: Authentication failedAuthentication failed. Podle všeho je certifikát do zprávy vložen správně, podepisování se děje stejnou fcí jako v případě identifikátoru (nyní bez vložení certifikátu) - napadá mě už jen problém v kanonizaci. Na fóru jsou ale různé názory. Chtěl bych se tedy zeptat na to, zda:
    1. Je možné, aby to byl problém kanonizace
    2. Jaký je postup serveru při zpracování zprávy (zda se hash ověřuje tok, že si server vytvoří z dekryptované zprávy svůj hash a ten porovnává ze zaslaným - pak asi zdroj chyby)
    nebo jaké by mohly být příčiny chyby 1046

    pro ilustraci přikládám chybnou zprávu:

    *********


    2.0


    MF_DS_EDP
    request
    submit

    XML



    7SPNDF27B8LB

    W3Csigned







    /GovTalkMessage/Body



    n6gZcOFgLmwJM8gvKyr7IaPlOtU=


    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




    CZ123456789







    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



    *******

    XML se sice zobrazuje podivně, ale v úpravách vidím obsah správně

    Děkuji předem za jakoukoliv informaci
  •  12-15-2009, 21:28 1417v odpovědi na1416

    Re: Problém při registraci certifikátem na USB tokenu

    Dobrý den,

    v případě, že se přihlašujete s pomocí identifikátoru a hesla, pak kanonizace není nutná. Správně provedená kanonizace je nezbytná pouze v případě, že se používá přihlášení s pomocí certifikátu. Přihlášení certifikátem je založeno na standardu XML DSIG a proto je kanonizace nezbytná. Z vašeho vloženého příkladu není vůbec možné poznat, zda máte správně sestavenou GovTalk obálku. Následující příklad ukazuje jak má vypadat GovTalk obálka, která je použita pro přihlášení certifikátem. Elementy SignatureValue a X509Certificate jsou pro čitelnost zkráceny.

    <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">

    <EnvelopeVersion>2.0</EnvelopeVersion>

    <Header>

    <MessageDetails>

    <Class>MF_DS_EDP</Class>

    <Qualifier>request</Qualifier>

    <Function>submit</Function>

    <CorrelationID></CorrelationID>

    </MessageDetails>

    <SenderDetails>

    <IDAuthentication>

    <SenderID />

    <Authentication>

    <Method>W3Csigned</Method>

    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

    <SignedInfo>

    <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

    <Reference URI="">

    <Transforms>

    <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">

    <XPath>/GovTalkMessage/Header/MessageDetails/Class</XPath>

    </Transform>

    </Transforms>

    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

    <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>

    </Reference>

    </SignedInfo>

    <SignatureValue>UpBkQt1csmUGignrDuJ7tT/3..lBKK2RLbsLhADwsXMwgn8gnW2+RLkp1Pyw==</SignatureValue>

    </Signature>

    </Authentication>

    </IDAuthentication>

    <X509Certificate>MIIGwjCCBaqgAw..pYuPdYJlkrQenKuRyj</X509Certificate>

    </SenderDetails>

    </Header>

    <GovTalkDetails>

    <Keys>

    <Key Type="dic">CZ12345678</Key>

    </Keys>

    <GatewayAdditions>

    <Flags>

    <TimestampVersion>xmldsig</TimestampVersion>

    </Flags>

    </GatewayAdditions>

    </GovTalkDetails>

    <Body>

    <Test />

    </Body>

    </GovTalkMessage>

    Následující ukázka kódu v C# naznačuje, jak je možné v prostředí .NET Framework 3.5 SP1 vytvořit takovou zprávu.

    public void XW3CSign(string Subject, String DigestMethod)

    {

    try

    {

    _GovTalkMessage.PreserveWhitespace = true;

    X509Certificate2 x509cert = null;

    //find sender signing certificate

    try

    {

    x509cert = FindCertBySubject(Subject);

    if (x509cert == null) throw null;

    }

    catch (Exception ex)

    {

    throw new Exception("Signing certificate has not been found in repository", ex);

    }

    if (!x509cert.HasPrivateKey)

    {

    throw new Exception("Signing certificate doesn't contain private key");

    }

    // Create a SignedXml object.

    SignedXml signedXml = new SignedXml(_GovTalkMessage);

    // Add the key to the SignedXml document

    signedXml.SigningKey = x509cert.PrivateKey;//rsaKey;

    // Create a reference to be signed.

    Reference reference = new Reference("");

    switch (DigestMethod.ToUpper())

    {

    case "SHA1":

    {

    reference.DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1";

    break;

    }

    case "SHA256":

    {

    reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256";

    break;

    }

    case "SHA384":

    {

    reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha384";

    break;

    }

    case "SHA512":

    {

    reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha512";

    break;

    }

    default:

    {

    reference.DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1";

    break;

    }

    }

    // Get xpath transform

    XmlNode xnode = _GovTalkMessage.CreateElement("XPath");

    xnode.InnerText = "/GovTalkMessage/Header/MessageDetails/Class";

     

    XmlDsigXPathTransform xpathTrans = new XmlDsigXPathTransform();

    XmlNodeList xlist = xnode.SelectNodes(".");

    xpathTrans.LoadInnerXml(xlist);

    // Add an xpath transformation to the reference.

    reference.AddTransform(xpathTrans);

    // Add the reference to the SignedXml object.

    signedXml.AddReference(reference);

    string SignMethod;

    SignMethod = DigestMethod;

    switch (SignMethod.ToUpper())

    {

    case "SHA1":

    {

    signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1";

    break;

    }

    case "SHA256":

    {

    signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";

    break;

    }

    case "SHA384":

    {

    signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384";

    break;

    }

    case "SHA512":

    {

    signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512";

    break;

    }

    default:

    {

    signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1";

    break;

    }

    }

     

    // Compute the signature.

    signedXml.ComputeSignature();

    //insert Signature into govtalk envelope

    XmlNode xroot = _GovTalkMessage.SelectSingleNode(xPathAuthentication,xNM);

    if (xroot != null)

    {

    xnode = _GovTalkMessage.ImportNode(signedXml.GetXml(), true);

    xroot.AppendChild(xnode);

    //insert X509 certificate

    this.X509Certificate = Convert.ToBase64String(x509cert.GetRawCertData());

    }

    }

    catch (Exception ex)

    {

    throw new Exception(ex.Message);

    }

    }

    public static X509Certificate2 FindCertBySubject(string Subject)

    {

    X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

    store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

     

    X509Certificate2Collection certs = store.Certificates;

    certs = certs.Find(X509FindType.FindBySubjectDistinguishedName, Subject, false);

    if (certs.Count > 0)

    {

    return certs[0];

    }

    return null;

    }

     

Zobrazit jako kanál RSS ve formátu XML