DigiDoc teegid - Java teek - jdigidoc (ver 3.12.0-785)

JDigiDoc on programeerimiskeeles Java loodud teek. 

Uute arenduste jaoks on soovitav kasutada uut DigiDoc4j digiallkirjastamise teeki. 

Antud teek pakub funktsionaalsust DIGIDOC-XML 1.3 ja BDOC 2.1 formaadis (time-mark ehk ajamärgendiga allkirjad) digitaalselt allkirjastatud failide loomiseks, lugemiseks, allkirjastamiseks, kehtivuskinnituse hankimiseks ja allkirjade ning kehtivuskinnituste kontrolliks. BDOC 2.1 ajatempliga allkirjad (ASiC-E) ei ole toetatud. Lisaks digiallkirjastamisele pakub JDigiDoc ka krüpteerimist ja dekrüpteerimist vastavalt XML-ENC standardile

Teegiga seotud info on leitav GitHub keskkonnas github.com/open-eid/jdigidoc, kus on kättesaadav teegi lähtekood koos commit ajalooga. Olulisemad teegi versioonid fikseeritakse vastava lähtekoodi tag väärtusega, samuti avalikustatakse vastavad binaarpakid

JDigiDoc teegi kasutamiseks on vajalik JDK/JRE 1.6 või uuem. Vaata JDigiDoc dokumentatsioonist sõltuvusi teistest teekidest. 

JDigiDoc teegi dokumentatsioon (.PDF) (uuendatud 02.2016)

Toeperioodi algusUute arenduste lõppToeperioodi lõppLaiendatud toeperiood 
200306.201506.2016kokkuleppelLisainfo

 

Konfiguratsioonifailis on viited testsertifikaatidele aga testsertifikaadid tuleb paigaldada eraldi, selleks vajalik .jar fail on kättesaadav siit.

Oluline on, et teegi kasutamisel LIVE-rakendustes oleks testsertifikaadid eemaldatud, kuna teek ei anna test-allkirjadega varustatud failide puhul hoiatust, et tegemist on test-allkirjadega.

Pakk sisaldab binaari, lähtekoodi, käsurea utiliiti, Sertifitseerimiskeskuse sertifikaate (www.sk.ee/certs), dokumentatsiooni

Versioon Avaldatud Muudatuse info Laadi alla
3.12.0-785 25.02.2016 Muudatuste nimekiri (ingl. k.) Laadi alla 
3.11.0-778 13.08.2015 Muudatuste nimekiri (ingl. k.) Laadi alla 
3.10.0-777 11.03.2015 Muudatuste nimekiri (ingl. k.) Laadi alla 
3.9 07.07.2014
  • Kasutatud coverity.com staatilise analüüsi vahendit lähtekoodi vigade ja turvaaukude leidmiseks.
  • Viidud läbi koodi ülevaatus, eemaldati aegunud kood, puhastati lib/ kataloog ning eemaldati ebavajalikud sõltuvused.  
  • Uuendatud jdigidoc.cfg konfiguratsioonifaili vaikimisi seadeid ning eemaldatud üleliigsed ja vähekasutatud  kirjed.
  • Lisatud uued käsud jdigidoc.java utiliiti, mida on võimalik kasutada näidiskoodina allkirjade loomiseks veebilehitsejas. -ddoc-calc-sign käsku saab kasutada allkirjastatava räsi arvutamiseks ning siis teha tegelik allkirja arvutamine juba veebis allkirjastamise mooduliga (plug-in). -ddoc-add-sign-value käsku saab kasutada signatuuri väärtuse (nt. veebis allkirjastamise mooduli (plug-in) poolt välja arvutatud) lisamiseks DDOC või BDOC dokumendile.
  • Lisatud tugi X509IssuerName elemendi väärtuse jaoks, mis on loodud vanema CDigiDoc teegi versiooniga (ei vasta RFC2253 standardile).
  • Täiustatud DDOC ja BDOC failide valideerimist. Lisatud kontroll, et allkirjastaja sertifikaadi andmed oleksid vastavusesX509SerialNumber ja X509IssuerName elementide sisuga.
  • Täiustatud BDOC failide valideerimist:
    • Lisatud kontroll, kas allkirjastatud andmefaili mime-tüübi väärtus manifest.xml failis ja signatures*.xml faili <DataObjectFormat><MimeType> elemendis kattuvad.
    • Täiustatud manifest.xml faili sisu ning andmefaili viidete vastavuse kontrolli.
    • Täiustatud andmefaili asukoha valideerimist. Nüüd kontrollitakse, et andmefailid oleksid samas BDOC konteineris.
    • Lisatud kontroll, mille puhul antakse viga, kui mimetype fail on konteineris olemas, kuid selle sisu puudub. 
  • Täiustatud BDOC failide valideerimist ECDSA algoritmiga (elliptilised kurvid) tehtud allkirjadega: 
    • Tagastatakse veakood 129 kui räsi arvutamisel on kasutatud SHA-1 algoritmi.
    • Parandatud ECDSA SHA-512 allkirjastamismeetodi defineerimise viga, mis puudutas allkirja loomist ja valideerimist kasutades antud meetodit.
    • Parandatud ECDSA räsi arvutamist allkirja loomisel ja valideerimisel. Lisatud puuduvad ECDSA allkirja meetodite definitsioonid  SignedInfo.calculateDigest() meetodisse.
  • Täiustatud BDOC dokumendi andmefaili mime-tüübi käsitlemist. Kui BDOC konteineri parsimise ajal ei leita BDOC konteinerist allkirja, siis kopeeritakse andmefaili mime-tüübi väärtus manifest.xml-ist signatures*.xml faili <DataObjectFormat><MimeType> elementi.
  • Täiustatud BDOC andmefaili käsitlemist. Vaikimisi määratakse andmefaili ID väärtus BDOC konteineris andmefaili nime järgi. BDOC dokumentide puhul ei tohiks kasutada ID-sid kujul “ID<seq_no>”.
  • Täiustatud SignedDoc.addDataFile() meetodit BDOC failide jaoks. Meetod lisab nüüd faili jaoks ka manifest.xml kirje kui seda enne ei olnud.
  • Parandatud BDOC dokumentide <SigPolicyHash><DigestMethod> elemendi Algorithm atribuudi väärtuse parsimist. Varem väärtust ei suudetud lugeda ja väärtuseks seati NULL.
  • Täiustatud DDOC failide valideerimist:
    • Lisatud DDOC failides mittetoetatud <Transforms> elementide kontroll.
    • Täiustatud andmefaili ContentType elemendi omaduste kontrolli. Seal tuleks kasutada EMBEDDED_BASE64, sest teised väärtused pole vaikimisi toetatud.
  • Eemaldatud EMBEDDED sisu tüübiga (andmefail on lisatud puhta XML-ina) DDOC failide tugi. Eemaldatud CONTENT_EMBEDDEDkonfiguratsiooniparameeter, muudetud seotud meetodite staatuseks „deprecated“ sh. DataFile klassi meetodid setBody(byte[], String), setBody(Node), getInitialCodepage() ja setInitialCodepage(String).
  • Lisatud jdigidoc.java utiliidi käsud -ddoc-rm-df ja -ddoc-rm-sig, mis võimaldavad testida andmefailide ja allkirjade eemaldamist BDOC ja DDOC failidelt.
  • Täiustatud allkirja lisamise ja eemaldamise piiranguid vigaste failide korral (sh. failid, mis on kehtivad hoiatusega). Allkirjade lisamiseks ja eemaldamiseks piiranguid ei tehta v.a. juhul kui BDOC failide koostamisel on kasutatud SHA-1 räsifunktsiooni või failid on vanas formaadis (DIGIDOC-XML 1.0, 1.1, 1.2; BDOC 1.0).
  • Täiustatud vigade käsitlemist andmefailide ja allkirjade eemaldamisel kasutades SignedDoc.removeDataFile(int) ja SignedDoc.removeSignature(int) meetodeid. Tagastatakse erind kui vastava indeksiga andmefaili/allkirja ei leitud ja eemaldamine ebaõnnestus.
  • Parandatud DDOC ja BDOC failide parsimise viga kui faili loeti InputStream klassi kaudu ning m_fileName muutuja ei olnud määratud.
  • Muudetud DigiDocFactory.readSignedDocFromStreamOfType(InputStream, boolean) meetodi staatuseks „deprecated“, selle asemel tuleb kasutada DigiDocFactory.readSignedDocOfType(String, boolean, List).
  • ArrayList andmetüüp muudeti List-iks DigiDocFactory klassi meetodites readSignedDocOfType(), readSignedDocFromStreamOfType() ning DigiDocVerifyFactory klassi meetodites verifyManifestEntries(), verifySignatureValue(), verifySignersCerificate(), verifySigningTime(), verifySignatureOCSP(), verifySignature(), verifySignaturePolicies() ja parseDN().
  • Täiustatud vigade käsitlemist SignedDoc.getSignature(int) ja SignedDoc.getDataFile(int) meetodites. Meetodid tagastavad väärtuse NULL kui puudub antud järjekorranumbrile vastav andmefail ja allkiri.  
  • Muudetud DataFile.getDigest() ja DataFile.getDigestType() meetodite käitumist. Allkirjastatud BDOC dokumentide korral tagastatakse nende meetodite korral alati NULL, sest korraga võib ühes konteineris kasutada andmefaili räsi leidmiseks erinevaid räsifunktsioone ja sellest tulenevalt ei saa tagastada konkreetset väärtust. Reference.getDigestAlgorithm() ja Reference.getDigestValue() meetodeid tuleks kasutada iga allkirja korral eraldi. Allkirjastamata DDOC dokumentide korral tagastab getDigestType() meetod alati SHA-1 ja allkirjastamata BDOC dokumentide korral SHA-256 (ehk vaikimisi räsi algoritm).
  • Eemaldatud DataFile.setDigestType() meetod. DDOC failide korral on lubatud ainult SHA-1. BDOC dokumentide puhul kasutage iga allkirja jaoks Reference.setDigestAlgorithm(String) meetodit.
  • Parandatud jutumärkide käsitlemist ClaimedRole ja SignatureProductionPlace elementides allkirjastamisel ja allkirja valideerimisel. Jutumärke ei asendata kanoniseerimise käigus vastavalt „Canonical XML Version 1.0“ spetsifikatsioonile. Märkus: muudatuse tulemusena võivad 3.9 teegi versiooniga moodustatud failid, mis sisaldavad jutumärke mainitud XML elementides, olla ühildumatud 3.8 teegi versiooniga
  • Parandatud erimärkide <, >, ja ja reavahetus (CR) käsitlemist X509IssuerName ja ResponderID elementides. Nüüd asendatakse antud erimärgid kanoniseerimise käigus vastavalt „Canonical XML Version 1.0“ spetsifikatsioonile. Märkus: muudatuse tulemusena võivad 3.9 teegi versiooniga moodustatud failid, mis sisaldavad antud erimärke mainitud XML elementides, olla ühildumatud 3.8 teegi versiooniga.
  • Muudetud jdigidoc.cfg seadistuste faili SIGN_OCSP_REQUESTS parameetri vaikeväärtus “false”-ks. Nüüd eeldatakse vaikimisi, et kasutatakse IP põhist OCSP juurdepääsu ning päringuid ei pea allkirjastama.
  • Lisatud veakood 163 (ERR_OCSP_UNAUTHORIZED), mis tagastatakse  BouncyCastleNotaryFactory.getConfirmation() meetodi poolt kui kasutajal puuduvad õigused kasutamaks OCSP teenust.  
  • Muudetud checkCertificate(), checkCertificateOcspOrCrl(), checkCertOcsp() ja sendCertOcsp() sertifikaadi kontrollimise meetodite klass BouncyCastleNotaryFactory’s mittesoovitatuks.
  • Muudetud mitte toetatud BouncyCastleNotaryFactory.getConfirmation() meetodid „deprecated“ staatusesse. Kasutage meetodeidgetConfirmation(Signature, X509Certificate, X509Certificate, X509Certificate, String) või getConfirmation(Signature, byte[], X509Certificate, X509Certificate, X509Certificate, String, String, String, String, String).
  • Täiustatud vigade käsitlemist OCSP päringu tegemisel. Kontrollitakse, et allkirjastaja sertifikaat ja selle CA ei oleks NULL.
  • Parandatud logimise NullPoinerException viga, mis esines allkirja valideermisel, kui allkirjal puudus OCSP kinnitus.
  • Muudetud mittesoovitatuks andmete pakkimise funktsionaalsus CDOC krüpteerimise protsessi ajal. Vaikimisi ei pakita andmeid kunagi. Eemaldatud DENC_COMPRESS_MODE parameeter konfiguratsioonifailist. BDOC failid peavad olema krüpteeritud ilma pakkimiseta ning neid ei tohiks lisada enne krüpteerimist DDOC konteinerisse.
  • Parandatud mittelubatud tähemärkide esinemise probleem BDOC allkirja <EncapsulatedX509Certificate> elemendi Id atribuudi väärtuses. Viga tekkis allkirjastamise käigus Leedu CA puhul, kui allkirjastaja CA sertifikaadi CN väärtus sisaldas erimärke. Allkirjastamise käigus luuakse nüüd mainitud Id atribuut kujul „S<allkirja_id>-CA_CERT<jrk_nr>“
  • Parandatud BDOC ja DDOC allkirjade valideerimist juhul, kui allkirjastaja CA sertifikaadi DN väärtus sisaldab mitut sama identifikaatoriga andmevälja. Probleem esines mõnede Läti CA ahelast välja antud sertifikaatide puhul.
  • Parandatud DDOC allkirjade valideerimist spetsiifilise signatuuri väärtuse puhul, millel on 13-baidine SHA-1 prefiks ja allkirjastatud räsi esimene bait on 0x00. Eelnevalt tagastati sellise signatuuri valideerimise tulemusena ekslikult veateade „Invalid signature asn.1 prefix with 0x00 byte“ (veakood 174). 
  • Tehtud parandused jdigidoc.java utiliitprogrammi krüpteerimise käskudesse. CDOC dokumendi EncryptionProperty atribuudid „OriginalMimeType“, „orig_file“, „Filename“ ja EncryptedData atribuut „MimeType“ seatakse nüüd vastavalt CDOC 1.0 spetsifikatsioonile.
N/A
3.8.1.709 28.02.14
  • Lisatud võimalus lisada BDOC konteinerile andmefail mälus paiknevast baidijadast, selleks saab kasutada meetodit DataFile.setBody(byte[] data).
  • Lisatud jdigidoc.java utiliitprogrammile -ddoc-add-mem käsk, mis võimaldab lisada DDOC või BDOC konteinerile andmefaili mälus paiknevast baidijadast (meetodi DataFile.setBody(byte[] data) kaudu).
  • Muudetud DataFile.setBody(byte[] data) meetodi käitumist DDOC konteinerile andmefaili lisamisel - nüüd konverteeritakse meetodile etteantud sisendandmed alati base64 kodeeringusse. Kui sisendandmed on juba base64 vormingus, siis tuleks kasutada meetodit DataFile.setBodyAsData(byte[] data, boolean b64, long len), et vältida topelt base64 kodeeringu tekkimist.
  • Lisatud meetod DataFile.setBodyAsData(byte[] data, boolean b64, long len), mille abil on võimalik lisada DDOC konteinerile andmefaili sisu mälus paiknevast baidijadast. Kui boolean-tüüpi sisendparameetri väärtus on "true", siis sisendandmeid ei konverteerita base64 kodeeringusse.
  • Parandatud andmefaili räsiväärtuse arvutamise viga, mis tekkis DDOC konteineri koostamisel, kui kasutati meetodit DataFile.setBase64Body(byte[]).
  • Täiustatud ajutiste failide haldamist teegis - lisatud võimalus vältida ajutiste failide kirjutamist failisüsteemi, selleks tuleb jdigidoc.cfg konfiguratsioonifailis seada parameetri DIGIDOC_MAX_DATAFILE_CACHED väärtuseks negatiivne täisarv.
  • Parandatud BDOC vormingus allkirjade Reference elemendi verifitseerimise viga, mis ilmnes, kui konteiner verifitseeriti enne selle kirjutamist väljundfaili või -jadasse.
  • Parandatud BDOC konteineris mimetype faili pakkimise põhimõtet, mimetype faili ei pakita kokku konteineri moodustamisel.
  • Parandatud käsitlemata veaolukord, mis ilmnes OCSP kehtivuskinnituse lisamisel, kui OCSP serveri sertifikaadi väljaandja ei olnud usaldatud sertifikaatide nimekirjas.
  • Täiustatud kiipkaardi slot objektide haldamist PKCS11 mooduli kaudu allkirjastamisel, krüptograafilisi objekte otsitakse nüüd ainult nendest slottidest, kus objekti olemasolu on eelnevalt tuvastatud.
  • DigiDocService veebiteenusega seotud funktsionaalsus JDigiDoc teegis ei ole täies mahus toetatud ja on määratud "deprecated" seisundisse. Lisatud @deprecated annotatsioonid DigiDocServiceFactory klassile ja selle meetoditele, eemaldatud -mid-sign ja -dss-server-test1 käsud jdigidoc.java utiliitprogrammist ning Mobiil-ID kirjed konfiguratsioonifailist.

DDOC/BDOC/CDOC turvaparandused:

  • Teegist on eemaldatud tugi DDOC, BDOC ning CDOC failides sisalduda võiva XML sisu parsimisele dokumenditüübi (DTD) üksuste deklaratsioonides. Tegemist on turvakohandusega, vältimaks "XML Entity Expansion" tüüpi rünnakuid DigiDoc failide parsimisel teenusserveris. Spetsiifilise sisuga DigiDoc failisisu abil ja paikamata JDigiDoc teegi kaudu on võimalik teenusserverit näiteks üle koormata.
  • Arendajad peaksid arvestama järgmist:

a) JDigiDoc võib kasutusel olla erinevates süsteemides.
b) Süsteemides võib olla kasutusel muidki "XML Entity Expansion" ärakasutamist võimaldavaid teeke.
c) Tegemist pole mitte JDigiDoc tarkvaraveaga, vaid liiga laiast standardist tulenevate väärkasutusriskidega.
d) Võimaliku väärkasutuse ulatus konkreetses serveris oleneb ennekõike serveri ja installatsiooni turvakindlusest, mitte konkreetsest kurisisust DigiDoc failis.

Teadaolevad vead:

  • BDOC-i verifitseerimisel ei kuvata viga, kui on olemas korrektne andmefail aga manifest.xml ei sisalda kirjet selle andmefaili kohta.
  • BDOC-i verifitseerimine ei kuva viga, kui mimetype fail on tühi.
  • Spetsiifilise signatuuri väärtuse puhul, millel on 13-baidine SHA-1 prefiks ja allkirjastatud räsi esimene bait on 0x00, tagastatakse allkirja valideerimise tulemusena ekslikult veateade „Invalid signature asn.1 prefix with 0x00 byte“ (veakood 174).
N/A
3.8.0.667 18.12.13
  • Parendatud allkirjastaja serditee valideerimist, lisatud kontroll, kas kõigi ahela sertide kehtivusperiood sisaldab allkirja loomisaega (välja producedAt väärtus OCSP vastuses).
  • Parandatud räsikoodi režiimis loodud DDOC-failide valideerimine (kasutab DigiDocService).
  • Lisatud API meetod DigiDocGenFactory.isTestCard(X509Certificate), et tuvastada, kas sert on SK väljastatud testsert. Tuvastamiseks võrreldakse sertifitseerimispoliitika OID-väärtusi.
  • Muudetud DigiDoci failide valideerimisprotsessi parandamatu tõrke avastamisel. Kui ei ole võimalik parsida sisendfaili XML-i struktuuri, siis valideerimisprotsess katkestatakse ja tagastatakse erind.
  • Muudetud allkirjastaja rolli ja resolutsiooni andmete töötlemist DigiDoci dokumendis. Allkirjastamise käigus luuakse DDOC- ja BDOC-dokumentide jaoks ainult üks element <ClaimedRole>. See element saab sisaldada üksnes allkirjastaja rolli või rolli ja resolutsiooni ühendatuna üheks stringiks kujul „roll/resolutsioon”.
  • Lisatud uus API meetod Signature.verify (SignedDoc, ArrayList), et võimaldada ühte allkirjaobjekti eraldi paremini valideerida. Selle meetodi abil saab eristada üksikallkirja valideerimisvigu ülejäänud DigiDoci dokumendist.
  • Väheoluliste tehniliste vigade esinemisel allkirjastatud DigiDoci failis kasutatakse valideerimistulemust „VALID WITH WARNINGS” (hoiatustega kehtiv), mis tähendab, et fail on õiguslikult kehtiv, kuid edasisi muudatusi (allkirjade lisamine/eemaldamine) piiratakse. Soovitatav on realiseerida „VALID WITH WARNINGS” (hoiatustega kehtiv) valideerimise staatuse kasutamine dokumentatsioonis esitatud kirjelduste kohaselt. Hoiatuste süsteem on teostatud utiliitprogrammis jdigidoc.java (samaselt töölauarakendusega DigiDoc3 Client), hoiatusolukorrad hõlmavad alljärgnevat:
    • puudub DDOC-faili elemendi <DataFile> atribuut xmlns (veakood 173);
    • DigiDoci faili vorming on ametlikult tunnustatust vanem, s.t fail on DDOC 1.0, 1.1, 1.2 või BDOC 1.0 (veakood 177);
    • puudub DDOC-faili elemendi <X509IssuerName> või <X509SerialNumber> atribuut xmlns (veakood 176);
    • BDOC-failis on kasutatud ametlikult tunnustatust nõrgemat lühendi loomise meetodit (veakood 129);
    • allkiri on loodud testsertifikaadi abil (veakood 178).
  • Muudetud DigiDoci faili valideerimistulemuse olekute prioriteete.
  • Lisatud veakoodid 172 (ERR_DF_NAME), 173 (ERR_DF_INV_HASH_GOOD_ALT_HASH), 174 (ERR_SIGVAL_00), 175 (ERR_TRANSFORMS), 176 (ERR_ISSUER_XMLNS), 177 (ERR_OLD_VER), 178 (ERR_TEST_SIGNATURE).
  • Muudetud utiliitprogrammi jdigidoc.java käsu -ddoc-validate prindiväljundit, parandatud probleem, et ettevõtte sertide puhul ei prinditud registrikoodi.
  • Eemaldatud utiliitprogrammist jdigidoc.java käsk -ddoc-list. Käsul -ddoc-validate on sama funktsioon ja kasutada tuleb seda käsku.
  • Muudetud vaikekataloog, kuhu suurte sisendfailide töötlemisel salvestatakse ajutised failid. Vaikimisi kasutatakse nüüd parameetri java.io.tmpdir väärtust. Vaikekataloogi muutmiseks tuleb failis jdigidoc.cfg määrata parameeter DIGIDOC_DF_CACHE_DIR.
  • Lisatud veakood 172, mis tagastatakse allkirjastatud faili parsimisel, kui andmefaili nimes esineb lubamatu märk „/” või „\”.
  • Parandatud elementide <X509IssuerName> ja <X509SerialNumber> puuduva atribuudi xmlns probleem allkirjade loomisel DDOC 1.3 failide puhul. Lisatud DDOC-faili veatöötlus juhuks, kui nendel elementidel puudub atribuut xmlns.
  • Lisatud failinime lisakontroll klassi SaxDigiDocFactory meetodisse readSignedDocOfType (String, InputStream, boolean, ArrayList).
  • Parandatud konfiguratsioonifailis jdigidoc.cfg parameetri DIGIDOC_OCSP_RESPONDER_URL väärtuse käsitlemine vaikimisi kehtiva OCSP responderi URL-ina.
  • Eemaldatud konfiguratsioonifailist jdigidoc.cfg BDOC-i konfiguratsiooniparameeter DIGIDOC_DEFAULT_DIGEST, säilitatud konfiguratsiooniparameeter DIGIDOC_DIGEST_TYPE, mis nüüd määrab vaikimisi kehtiva räsitüübi kõigi räside jaoks.
  • Eemaldatud konfiguratsioonifaili parameeter CHECK_SIGNATURE_VALUE_ASN1. Vigase ASN.1 prefiksi väärtusega allkirjaväärtusi ei loeta kehtivaks.
  • Lisatud uue CA serdi KLASS3-SK 2010 tugi.
  • Lisatud konfiguratsioonifaili jdigidoc.cfg sertide KLASS3-SK 2010 OCSP RESPONDER, EID-SK ja ESTEID-SK 2007 kirjed.
  • Eemaldatud konfiguratsioonifailist jdigidoc.cfg topeltkirjed TEST of ESTEID-SK 2011 OCSP responderi puhul.
  • Parandatud väljundvoo (output stream) vabastamine pärast faili parsimist klassi Datafile funktsioonis setOrCacheBodyAndCalcHashes.
  • Parandatud DDOC failide puhul DataFile klassis xmlHeader meetodis atribuudi digestType väärtust, nüüd on kasutusel SHA-1 (oli sha1).
  • Parandatud DDOC-i baidijärjestuse sümboli (BOM) töötlus.
  • Lisatud tugi DDOC-ile, kus DataFile id=DO.
  • Muudetud DDOC-dokumentide elemendi <DataFile> atribuudi Id väärtuse kontrolli failide XML-i struktuuri valideerimisel. Vaikimisi kontrollitakse, kas väärtus on kujul D<number> või DO, muud väärtused pole lubatud.
  • Eemaldatud BDOC 1.0 tugi.
  • Lisatud failivormingu BDOC 2.1 tugi.
  • Lisatud veatöötlus elementi <Transforms> sisaldavate BDOC-failide jaoks. Seda elementi DigiDoci teekides ei toetata.
  • Parandatud BDOC Mimetype'i töötlemine. Lisatud veatöötlus juhuks, kui konteinerist puudub Mimetype-fail. Mimetype-fail peab olema BDOC-i zip-konteineri esimene fail.
  • Lisatud BDOC-i elliptkrüptograafia (Elliptic Curve Cryptography, ECC) põhiste sertide tugi. Lisatud utiliit ListAlgorithms.java EC algoritmi koodi käideldavuse kontrollimiseks. ECC jaoks lisatud krüptoteegi BouncyCastle versioon 1.48.
  • Lisatud BDOC-i veatöötlus topelt esinevate failinimede signatures*.xml puhuks.
  • Lisatud BDOC-i veatöötlus kahe allkirja puhuks ühes failis signatures*.xml (tagastatakse veakood 75).
  • Lisatud BDOC-i ja DDOC-i veatöötlus topelt esineva andmefaili nime puhuks. Topelt andmefaili nime kasutamisel konteineris antakse kasutajale veateade.
  • Parandatud BDOC-i veatöötlus andmefaili Reference elemendi viite kontrollimiseks. Allkirjata andmefail allkirjastatud konteineris põhjustab tõrke.
  • Parandatud BDOC-i ja DDOC-i puhul konteineris oleva mitme OCSP vastuse veatöötlus.
  • Parandatud OCSP nonce välja ASN.1 prefiksi väärtuse kontrollimine allkirjade loomisel BDOC-failide puhul.
DDOC/BDOC/CDOC turvaparandused:
  • Parandatud DDOC-i <DataFile> ja <Reference> elementide vastavuse veakontrolli. See on väga oluline turbeparandus, mis mõjutab DDOC-failide verifitseerimist. Parandamata teegi puhul võidakse ekslikult õigeks lugeda kehtetu DDOC-konteiner, mis sisaldab andmefaili, millele ei viita ükski allkiri.
  • Parandatud DDOC <DataFile> elemendi DigestValue atribuudi
    verifitseerimist. See on väga oluline turbeparandus, mis mõjutab DDOC-failide verifitseerimist. Parandamata teegi puhul võidakse konteiner ekslikult õigeks lugeda.
Teadaolevad vead:
  • BDOC-i verifitseerimisel ei kuvata viga, kui on olemas korrektne andmefail aga manifest.xml ei sisalda kirjet selle andmefaili kohta.
  • BDOC- verifitseerimine ei kuva viga, kui mimetype fail on tühi.
  • DDOC failide puhul ei tööta meetod DataFile.setBase64Body(byte[]) korrektselt, kuna andmefaili räsiväärtus ei leita korrektselt. Tuleks kasutada meetodit DataFile.setBody(byte[]).
  • DDOC failide puhul ei tööta meetod DataFile.setBody(byte[]) korrektselt juhul, kui andmefaili sisu salvestatakse allkirjastamise käigus ajutisse cache faili. Antud viga on võimalik vältida, kui kommenteerida välja jdigidoc.cfg konfiguratsioonifaili parameeter DIGIDOC_MAX_DATAFILE_CACHED, siis ei tekitata ajutisi cache faile.
  • BDOC failide puhul ei ole otse baidijadast andmefaili lisamine konteinerile toetatud, andmefail tuleb lisada failisüsteemist, kasutades meetodit SignedDoc.addDataFile(File, String, String).
N/A
 3.7.2.652  22.08.13
  • Eemaldatud BDOC 1.0 formaadi tugi. BDOC 1.0 faile ei ole võimalik luua ega avada.
  • Parandatud kriitiline viga DDOC failide käsitluses. Seda viga ära kasutades on võimalik infosüsteemis üle kirjutada suvalisi faile, kui ründaja meelitab kasutaja avama spetsiaalselt vormindatud digiallkirjastatud faili.
N/A
3.7.1.537  09.04.13
  • Muudetud ilma xmlns atribuudita DDOC konteinerite käsitlust. Lisainfo.
N/A
3.7.0.459 01.2013
  • Lisatud utiliiti DDOC allkirjastamisel liidese valik - PKCS11 või PKCS12
  • Lisatud DDOC allkirjastamisel ja verifitseerimisel testahela tuvastus certificatePolicies OID väärtuse alusel
  • Parandatud DDOC allkirjastamisel ja verifitseerimisel usaldusahelas uue test OCSP teenuse sertifikaat - TEST of SK OCSP RESPONDER 2011
  • Parandatud DDOC ee.sk.digidoc.DataFile klassi m_logger välja osas - Datafile klass serialiseeritav
  • Parandatud DDOC verifitseerimisel allkirja ASN.1 prefiksi sisu kontrolli vastu SignatureMethod välja
  • Parandatud DDOC verifitseerimisel XML allkirjastamise aja välja ja nonce producedAT välja kontrolli
  • Parandatud DDOC verifitseerimisel OCSP tulemuse verifitseerimist
  • Parandatud DDOC verifitseerimisel mitme sama CN -ga ocsp responder sertifikaadi käsitlust
  • Parandatud DDOC verifitseerimist DDOC 1.0 formaadi puhul
  • Parandatud CDOC krüpteerimist encryptStream meetodiga 2048 baidise bloki suuruse korral
  • Parandatud BDOC verifitseerimist suure konteineri korral
  • Parandatud BDOC verifitseerimisel allkirjastamiselt välja jäänud faili veakäsitlust
  • Parandatud DDOC allkirjastamisel võtme kasutusala kontrolli PKCS#11 liidese puhul
  • Parandatud CDOC dekrüpteerimist stream meetodiga lahtipakkimist
  • Eemaldatud DDOC funktsioone mis pole enam kasutusel - verifyCertificate, findCAforCertificate, addCaCert, initCACerts
  • Parandatud DDOC allkirjastamisel ja verifitseerimisel XML juurelemendis xmlns peegeldamise loogikat
  • Lisatud DDOC allkirjastamisel ja verifitseerimisel HSM tugi - lisatud vastav SLOT -de kasutamise loogika
  • Lisatud CDOC dekrüpteerimisel HSM tugi - lisatud vastav SLOT -de kasutamise loogika
  • Lisatud DDOC verifitseerimisel BOM (Byte order mark) märkide tugi
  • Parandatud DDOC verifitseerimisel DDOC 1.2 formaadi tuge - paranadatud DDOC 1.2 NONCE arvutamise loogikat
  • Parandatud DDOC verifitseerimise veakäsitlust kui OCSP responder sertifikaat puudu
  • Parandatud BDOC verifitiseerimisel vale mimetype veakäsitlust
  • Parandatud DDOC verifitseerimisel vigase XML faili veakäsitlust
  • Eemaldatud DDOC allkirjastamisel tugi versioonidele 1.0, 1.1 ja 1.2. Toetatud on ainult verifitseerimine ja konteineri lahti pakkimine. Konteineri loomine, allkirja lisamine ning eemaldamine ei ole enam toetatud
  • DDOC/CDOC turvalisuse parandused:
    • Lisatud DDOC allkirjastamisel ja verifitseerimisel nonce välja ASN.1 struktuuri kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale ASN.1 struktuuriga nonce väljaga konteineri.
    • Lisatud DDOC allkirjastamisel ja verifitseerimisel allkirja väärtuse ASN.1 struktuuri kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale ASN.1 struktuuriga allkirja väärtusega konteineri.
    • Parandatud DDOC allkirjastamisel ja verifitseerimisel allkirja nonce välja kontrolli. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vale allkirja nonce välja väärtusega konteineri.
    • Eemaldatud EMBEDDED tüüpi DDOC failide tugi verifitseerimisel. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda EMBEDDED DDOC konteineri.
  • Lähtekood
  • Teadaolevad vead:
    • DDOC konteineri käsitlemisel tekib viga failide salvestamisel konteinerist või konteinerisse kui failide nimede pikkused on maksimaalsed 255 tähemärki
    • CDOC dekrüpteerimisel ei suuda käsitleda jdigidoc versioon 3.6 stream meetodil krüpteeritud faile
    • DDOC konteinerisse faili lisamisel mille suurus on üle 600 MB ei ole hiljem selle konteineri avamine enam korrektselt võimalik
N/A
3.6.0.157 05.2012

Muudatused võrreldes versiooniga 2.3.19.

  • Muudatused vastavalt ETSI Plugtesti tulemustele 
  • Muudatused vastavalt ristkasutuse testide tulemustele (jdigidoc, libdigidoc ja libdigidocpp). (DDOC, CDOC, BDOC) 
  • Eemaldatud DETACHED, DDOC 1.4 tugi
  • CDOC padding parendused 
  • Uuendatud dokumentatsioon kataloogis SK-CDD-PRG-GUIDE 
  • Uuendatud BDOC SHA-2 hash'i tugi 
  • Lisatud tarkvarapõhiste privaatvõtmete tugi
  • Muudatused API behaviour verify() ja Siganture.verify() funktsioonides 
  • Lisatud uus API decryptStreamUsingTokenType funktsioon
  • Versioonide nummerdamisel minnakse üle samale loogikale, mis teistel baastarkvara komponentidel (3.5, 3.6 ...) 
  • DDOC turvaparandused
    • Hashcode DDOC faili ehk DigiDocService teenuse vahepealse resultaatfaili verifitseerimise parendus. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda vigase nö hashcode DDOC konteineri.
    • Detached DDOC failide verifitseerimise parendus. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda detached DDOC konteineri.
    • Allkirja verifitseerimisel lisatud sertifikaadis määratud võtme kasutusala kontroll. Olulise mõjuga turvaparandus, mõjutab DDOC failide verifitseerimist. Paranduseta teegiga võib verifitseerimisel ekslikult õigeks lugeda allkirja, mis ei ole loodud korrekse sertifikaadi põhjal.
  • Lähtekood
N/A

 

Kasutatavad teegid

Sõltuvused teistest teekidest on kirjeldatud lähtekoodis LICENSE.txt failis.

Teegi kasutustingimused

Teeki levitatakse LGPL-litsentsi alusel. Teeki võib vabalt kasutada nii vabavaralistes kui kommertsrakendustes.


KÜSI ABI

Kui sa ei leidnud oma küsimusele vastust, kirjuta meie meeskonnale.



  • Vaata juhendit
  • Hinda oma arvutikasutusoskust, et saaksime anda paremaid juhiseid

         

  • Kontroll ebaõnnestus

Kuidas saame artiklit parandada, et sellest rohkem abi oleks?
Saada Sulge