A házifeladatban alkalmazandó XML struktúra



Hasonló dokumentumok
Windows biztonsági problémák

Az Informatikai és Hírközlési Minisztérium ajánlása a közigazgatásban alkalmazható. elektronikus aláírás formátumok műszaki specifikációjára

PGP. Az informatikai biztonság alapjai II.

Kriptográfiai alapfogalmak

EBT KKK2 kriptográfiai interfész specifikáció

Elektronikus aláírás. Gaidosch Tamás. Állami Számvevőszék

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

Sapientia Egyetem, Matematika-Informatika Tanszék.

(ver. 2.0) május. Igazságügyi Minisztérium OCCR Projekt

Objektum-orientált tervezés

Web-szolgáltatás szabványok

Tanúsítványkérelem készítése, tanúsítvány telepítése Lotus Domino szerveren

Dr. Beinschróth József Kriptográfiai alkalmazások, rejtjelezések, digitális aláírás

Tanúsítványkérelem készítése, tanúsítvány telepítése Apache szerveren

Az XML pénzintézeti jelentések szintaxisa és feldolgozása (XmlPj)

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

XmlGessünk 13. rész - Az XML Schema II.

SQLServer. DB Recovery modes

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

INTELLIGENT ENERGY EUROPE PROGRAMME BUILD UP SKILLS TRAINBUD. Quality label system

IP alapú távközlés. Virtuális magánhálózatok (VPN)

Adat és Információvédelmi Mesteriskola 30 MB. Dr. Beinschróth József SAJÁTOS LOGIKAI VÉDELEM: A KRIPTOGRÁFIA ALKALMAZÁSA

Titkosítás NetWare környezetben

Mailvelope OpenPGP titkosítás webes levelezéshez

Az adatfeldolgozás és adatátvitel biztonsága. Az adatfeldolgozás biztonsága. Adatbiztonság. Automatikus adatazonosítás, adattovábbítás, adatbiztonság

Best of Criptography Slides

CAS implementálása MPEG-2 TS-alapú

A Z E L E K T R O N I K U S A L Á Í R Á S J O G I S Z A B Á L Y O Z Á S A.

Az XML pénzintézeti jelentések szintaxisa és feldolgozása (XmlPj)

KR TITKOSÍTÓ PROGRAM. Felhasználói leírás. v március 12.

Általános nyomtatványok xml szerkezete. (v1.3)

DIGITÁLIS TANÚSÍTVÁNY HASZNÁLATA A REGIONÁLIS BOOKING PLATFORMON

Egészségügyi intézmények együttműködésének informatikai vonatkozásai. Fehér András

Sapientia Egyetem, Matematika-Informatika Tanszék.

M-Fájlok létrehozása MATLAB-ban

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Azt írom alá, amit a képernyőn látok?

ROS Remote Operations Service

Széchenyi István Egyetem

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Kriptográfia I. Kriptorendszerek

EN United in diversity EN A8-0206/419. Amendment

Adja meg, hogy ebben az esetben mely handshake üzenetek kerülnek átvitelre, és vázlatosan adja meg azok tartalmát! (8p)

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

TANÚSÍTVÁNY. tanúsítja, hogy a Polysys Kft. által kifejlesztett és forgalmazott

Webalkalmazás-biztonság. Kriptográfiai alapok

DIGITÁLIS TANÚSÍTVÁNY HASZNÁLATA AZ INFORMATIKAI PLATFORMON

Dr. Bakonyi Péter c.docens

Elektronikus hitelesítés a gyakorlatban

KELER KSZF Zrt. bankgarancia-befogadási kondíciói. Hatályos: július 8.

PKI: egy ember, egy tanúsítvány?

2016, Diszkrét matematika

Áttekintés a GPG/PGP-ről Mohácsi János NIIF Intézet

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Titkosítás mesterfokon. Tíz évvel a titkosítás után. Előadó: Tóthi Dóra Kovárczi Béla András

Elektronikus aláírás és titkosítás beállítása MS Outlook 2010 levelezőben

DESlock+ Használati utasítás felhasználók számára. Sicontact Kft., 2015.

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Készítette: Fuszenecker Róbert Konzulens: Dr. Tuzson Tibor, docens

Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary

Tavaszi Sporttábor / Spring Sports Camp május (péntek vasárnap) May 2016 (Friday Sunday)

- Bevándoroltak részére kiadott személyazonosító igazolvány

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant március 23.

Az Outlook levelező program beállítása tanúsítványok használatához

Adatbiztonság a gazdaságinformatikában ZH december 7. Név: Neptun kód:

Hogyan szűrjük a röntgensugarat?

Felhasználói kézikönyv

ENROLLMENT FORM / BEIRATKOZÁSI ADATLAP

Lexington Public Schools 146 Maple Street Lexington, Massachusetts 02420

Programozás 6. Dr. Iványi Péter

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Alap számológép alkalmazás

Payment Center. Rövid útmutató. Verzió 1.0.1

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Using the CW-Net in a user defined IP network

Üzleti élet Nyitás. Nagyon hivatalos, a címzettnek meghatározott rangja van, aminek szerepelnie kell

Az SSH működése 1.Az alapok SSH SSH2 SSH1 SSH1 SSH2 RSA/DSA SSH SSH1 SSH2 SSH2 SSH SSH1 SSH2 A kapcsolódás menete Man-In-The-Middle 3DES Blowfish

SSH haladóknak. SSH haladóknak

Üzleti élet Nyitás. Nagyon hivatalos, a címzettnek meghatározott rangja van, aminek szerepelnie kell

Azonosító jel: INFORMATIKA EMELT SZINTŰ GYAKORLATI VIZSGA október 16. 8:00. A gyakorlati vizsga időtartama: 240 perc

4. Előadás Titkosítás, RSA algoritmus

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA

WEBSZOLGÁLTATÁSOK BIZTONSÁGA (MODELLEZÉS SWSML-BEN)

Nyomtatványok kitöltése és előkészítése feladásra. etananyag

Trinucleotide Repeat Diseases: CRISPR Cas9 PacBio no PCR Sequencing MFMER slide-1

Constraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

Számítógépes Hálózatok. 4. gyakorlat

JNDI - alapok. Java Naming and Directory Interface

Mr. Adam Smith Smith's Plastics 8 Crossfield Road Selly Oak Birmingham West Midlands B29 1WQ

Java programozási nyelv 6. rész Java a gyakorlatban

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

KIEGÉSZÍTŽ FELADATOK. Készlet Bud. Kap. Pápa Sopr. Veszp. Kecsk Pécs Szomb Igény

Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise

Személyes adatváltoztatási formanyomtatvány - Magyarország / Personal Data Change Form - Hungary

Vállalatirányítási rendszerek

LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA II.

Átírás:

A házifeladatban alkalmazandó XML struktúra Absztrakt: A feladat egy fájl, vagy szövegkódoló készítése. Parancssorból indítható (a helyes szintaxis megadása mellett (http://www.linfo.org/standard_input.html)), és/vagy GUI-val rendelkezik, és a lent megadott követelmények szerint készít egy enkriptált fájlt. Referencia http://www.w3.org/tr/xmlenc-core/ File név konvenció Az XML Encryption szabvány tetszőleges adat (byte-sorozat) titkosítására alkalmas, de nem biztosít eszközöket a file kezeléshez. Az alkalmazások együttműködése érdekében megállapodunk az alábbi file-név konvencióban: titkosítandó file neve tetszőleges (pl. abc.def) rejtjelezett file neve a fenti minta alapján: abc_def.enc Dekódoláskor az alkalmazásnak az eredeti néven kell mentenie a nyílt állományt. Mivel több felhasználótól is jöhet üzenet a különböző felhasználóktől jövő üzenetek külön almappákba kerüljenek, a felhasználók neveivel megjelölve. Ha két azonos nevű fájl érkezik egy mappába, azt abc_1.def és abc_2.def néven kell elnevezni. Padding A titkosítandó adat nem biztos, hogy a blokkméret (16 byte) egész számú többszöröse. Padding-nek nevezzük az adat szükség szerinti kiegészítését. Ezt az OpenSSL kezeli, az XMLben nem jelenik meg erre vonatkozó információ. IV (Initial value) Az alkalmazott algoritmus (128 bites AES, CFB módban) igényel egy véletlen, egyedi, 16 byteos kezdeti értéket, amire dekódoláskor szükség van. Az IV-t nem kell titkosítani, a szokásos megoldásnak megfelelően a rejtjelezett byte-folyam elé fűzzük az XML-ben. Base64 kódolás Mivel az XML-ben nem minden byte engedélyezett, a titkosított adat (IV is) és kulcs Base64 kódolt formában kerül az XML-be. Bővebben: http://hu.wikipedia.org/wiki/base64 Megjegyzés: Ügyeljünk azza, hogy bizonyos Base64 enkóderek hajlamosak minden 72. karakter után egy sortörést (\n) rakni, ami nem tartozik az elkódolt adathoz. HA ezek a sortörések bennmaradnak a másik oldalon probléma lehet a dekódolással. EncryptedType elemtípus sémadefiníció: <complextype name='encryptedtype' abstract='true'> <sequence> <element name='encryptionmethod' type='xenc:encryptionmethodtype' minoccurs='0'/> <element ref='ds:keyinfo' minoccurs='0'/> <element ref='xenc:cipherdata'/> <element ref='xenc:encryptionproperties' minoccurs='0'/> </sequence> <attribute name='id' type='id' use='optional'/> <attribute name='type' type='anyuri' use='optional'/>

<attribute name='mimetype' type='string' use='optional'/> <attribute name='encoding' type='anyuri' use='optional'/> EncryptionMethod is an optional element that describes the encryption algorithm applied to the cipher data. If the element is absent, the encryption algorithm must be known by the recipient or the decryption will fail. Az EncryptionMethod elemet nem használjuk. Az algoritmust és a paramétereit ismertnek tekintjük. ds:keyinfo is an optional element, defined by [XML-DSIG], that carries information about the key used to encrypt the data. Subsequent sections of this specification define new elements that may appear as children of ds:keyinfo. A ds:keyinfo elemet használjuk. Ez határozza meg, hogy mi az a kulcs, amit a dekódoláshoz használni kell. Részletek lejjebb. CipherData is a mandatory element that provides the encrypted data. It must either contain the encrypted octet sequence as base64 encoded text of the CipherValue element, or provide a reference to an external location containing the encrypted octet sequence via the CipherReference element. <element name='cipherdata' type='xenc:cipherdatatype'/> <complextype name='cipherdatatype'> <choice> <element name='ciphervalue' type='base64binary'/> <element ref='xenc:cipherreference'/> </choice> A CipherData elem CiperValue elemét használjuk. EncryptionProperties can contain additional information concerning the generation of the EncryptedType (e.g., date/time stamp). Az EncryptionProperties elemet nem használjuk. Id is an optional attribute providing for the standard method of assigning a string id to the element within the document context. Az Id, Type, MimeType, Encoding attribútumokat nem használjuk. Az EcryptedType absztrakt típus, amiből az EncryptedData és az EncryptedKey elem származtatható. The EncryptedData element is the core element in the syntax. Not only does its CipherData child contain the encrypted data, but it's also the element that replaces the encrypted element, or serves as the new document root. <element name='encrypteddata' type='xenc:encrypteddatatype'/> <complextype name='encrypteddatatype'> <complexcontent> <extension base='xenc:encryptedtype'> </extension> </complexcontent> A titkosított XML file root eleme az EncryptedData lesz.

Az EncryptedKey elem elhelyezésére, valamint az abból dekódolható kulcs és az általa rejtjelezett adat összekapcsolására a szabvány több lehetőséget kínál. Mi az alábbi struktúrát használjuk: <EncryptedData...> <KeyInfo> <EncryptedKey... Recipient="a">...</EncryptedKey> <EncryptedKey... Recipient="b">...</EncryptedKey> <EncryptedKey... Recipient="c">...</EncryptedKey> </KeyInfo>... </EncryptedData> A szabvány lehetővé teszi, hogy az EncryptedKey a titkosított adatot tartalmazó EncryptedData KeyInfo elmének gyermek eleme legyen. Mi ezt a megoldást alkalmazzuk olyan módon, hogy a több címzett részére titkosított szimmetrikus kulcs egy-egy EncryptedKey elemben található. Erre utal a Recipient attribútum. The EncryptedKey element is used to transport encryption keys from the originator to a known recipient(s). It may be used as a stand-alone XML document, be placed within an application document, or appear inside an EncryptedData element as a child of a ds:keyinfo element. The key value is always encrypted to the recipient(s). <element name='encryptedkey' type='xenc:encryptedkeytype'/> <complextype name='encryptedkeytype'> <complexcontent> <extension base='xenc:encryptedtype'> <sequence> <element ref='xenc:referencelist' minoccurs='0'/> <element name='carriedkeyname' type='string' minoccurs='0'/> </sequence> <attribute name='recipient' type='string' use='optional'/> </extension> </complexcontent> A ReferenceList és CarriedKeyName elemeket nem használjuk. A Recipient attribútum a szimmetrikus kulcs rejtjelezéséhez használt publikus kulcs magánkulcs párját birtokló csapat neve. A publikus kulcsot tartalmazó file neve egyezzen meg a csapat nevével és legyen *.pem típusú. Ezt a file-t minden csapatnak fel kell helyeznie a tárgy honlapjára (az OpenSSL beszámoló idejére). A KeyInfo elemet az XML-DSIG szabvány specifikálja (http://www.w3.org/tr/2001/prxmldsig-core-20010820/): <element name="keyinfo" type="ds:keyinfotype"/> <complextype name="keyinfotype" mixed="true"> <choice maxoccurs="unbounded"> <element ref="ds:keyname"/> <element ref="ds:keyvalue"/> <element ref="ds:retrievalmethod"/> <element ref="ds:x509data"/> <element ref="ds:pgpdata"/> <element ref="ds:spkidata"/> <element ref="ds:mgmtdata"/> <any processcontents="lax" namespace="##other"/> <!-- (1,1) elements from (0,unbounded) namespaces --> </choice>

<attribute name="id" type="id" use="optional"/> Ezt a struktúrát egészíti ki az XML Encryption szabvány az EncryptedKey elemmel. Az Id attribútumot nem használjuk, a választható elemek közül pedig a KeyName elemben a szimmetrikus kulcsot titkosító kulcspárra való hivatkozást helyezünk el csapatnév.pem file-név formájában. Ellenőrzés módja: Az elkészítendő szoftver a parancssorban vagy máshogy megadott *.pem file-nevekkel (nem kell létezniük a file-oknak), fiktív (lehet fix is) rejtjelezett adatokkal létrehoz egy *.enc kiterjesztésű file-t. Megfordítva: egy valid *.enc file-ból a képernyőre kiírja a *.pem fileneveket és a rejtjelezett adatokat. A házifeladatban alkalmazandó OpenSSL parancsok A csapatok kötelesek időben egyeztetni egymással a parancsok pontos paraméterezését illetően. Kérdéseket a gyakorlatvezetőknek fel lehet tenni. Tanúsítvány elkészítése 2048 bites RSA aszimmetrikus kulcspár és tanúsítvány generálása self-signed módon, de egyébként tetszőlegesen: req -x509 -nodes -newkey A file kiterjesztése:.pem, a file neve a csapatra utaljon. Kódolás Az egyes lépésekben használt openssl függvények: 1. 16 byte-os szimmetrikus kulcs generálása: rand 2. Üzenet titkosítása szimmetrikus kulccsal: enc -aes-128-cfb Kezdeti érték (IV) alkalmazása kötelező, meghatározása tetszőleges módon történik. Az IV nyílt formában kerül befűzésre a rejtjelezett byte-folyam elé az XML struktúránál megadott módon. 3. Szimmetrikus kulcs titkosítása a publikus kulcsokkal: rsautl 4. Base64 kódolása a publikus kulcsokkal titkosított szimmetrikus kulcsnak: enc -base64

Dekódolás Az egyes lépésekben használt openssl függvények: Base64 kódolt, publikus kulccsal titkosított szimmetrikus kulcs Base64 dekódolása: enc -base64 Szimmetrikus kulcs megfejtése a privát kulccsal: rsautl -decrypt Az eredeti üzenet megfejtése: enc -aes-128-cfb Összefoglalva 1. A feladat egy olyan fájl, vagy szövegkódoló készítése, ami vagy parancssorból indítható (a helyes szintaxis megadása mellett (http://www.linfo.org/standard_input.html)!!), és/vagy GUI-val rendelkezik, és a fent megadott követelmények szerint készít egy enkriptált fájlt. 2. A GUI pluszpont, de csak ha igényes, fájlkódolás esetén további pluszpont, ha az oprendszer fájlkezelőjébe van integrálva (context menu). 3. A fájl átküldése a csapaton belül történhet: - Másolással (pendrive, e-mail) - TCP kapcsolaton keresztül (pluszpontért) 4. Az elkódolt fájlt azonban bármely másik csapatnak, vissza kell tudnia fejteni. Egyéb esetben a teljes feladatra csak fél pontszám adható plusz pontok nélkül.