Sažetak | Kriptografija javnog ključa je krucijalan mehanizam u današnjoj komunikaciji. Opisuje postupak digitalnog potpisa, pruža praktičan i elegantan mehanizam dogovora oko digitalnih ključeva, potrebnih za sigurnu komunikaciju. Ideja parova ključeva (jedan ključ se drži privatnim, drugi javnim) omogućuje stvaranje servisa i protokola koji uključuju povjerenje, integritet, stvaranje mnogih kriptografskih primitiva.
Infrastruktura javnog ključa (PKI), budući da je osnova sigurnosne infrastrukture, implementira veliki broj komponenti i servisa; repozitorij certifikata, protokole upravljanja certifikatima, protokole upravljanja ključevima, kriptografske operacije, autentikaciju, enkripciju i mnoge druge. Istina je da sva okruženja ne zahtjevaju korištenje svih komponenti, ali cilj PKI dizajnirati kao nezavisnu infrastrukturu koja se može, barem konceptualno, primjeniti u veliki broj okruženja. Implementacijom PKI-a velikog broja komponenti povećava sigurnost sustava, servisi i komponente koje nisu potrebne za dani sustav se vrlo lako mogu isključiti.
Autentikacija, integritet i povjerenje su osnovni sigurnosni servisi koje jedan PKI pruža. Ti servisi omogućuju korisnicima dokazivanje da su to stvarno oni i pruža korisnicima sigurnost u očuvanje njihovih podataka.
Kako bi se ostvarili traženi aspekti sigurnosti, koriste se X.509 sigurnosni standardi kako bi se odžali integritet i povjerljivost samog certifikata. X.509 predstavlja globalno prihvaćene standarde za izdavanje i upravljanje certifikatima, gdje veliku ulogu o ostvarivanju toga ima repozitorij certifikata CA. CA je odgovoran za izdavanje certifikata sukladno dogovorenim strategijama izdavanja. Također može biti odgovoran za registraciju korisnika, iako se ta funkcija često predaje registrirajućoj ovlasti (RA). Implementacijom jednog ili više RA povećava skalabilnost PKI-a.
Životni ciklus jednog certifikata se opisuje CMP metodom i sastoji se od nekoliko stadija:
Inicijalizacija: uključuje registraciju korisnika, stvaranja parova ključeva i izradu certifikaca.
Izdavanje certifikata: predstavlja fazu u kojoj se certifikat koristi za povratak ključa, provjeru valjanosti certifikata i obnovu ključa.
Otkazivanje certifikata: u ovom stadiju se opisuju opozivi i isteknuća certifikata.
Prilikom implementacije u stvarni sustav treba voditi računa o mnogim faktorima prilikom odabira sigurnostnih parametara. Za određene potrebe je dovoljno koristiti slabije enrkipcijske algoritme kako bi se povećao performans sustava, dok se za bitnije aspekte sustava isplati koristiti snažnije algoritme, na štetu performansa. Iako se danas najviše koriste RSA algoritmi za uspostavu ključa, noviji ECDSA algoritmi predstavljaju sigurnije algoritme s boljim perofrmansom. Također RSA algoritam razmjene ključeva ne podržava unaprijednu tajnost, zbog čega opet ECDSA ima prednost.
Kako bi se što kvalitetnije ilustrirao životni ciklus certifikata, koristi se OpenSSL alat, koji sadrži brojne mogućnosti konfiguracije, korištenja i testiranja. Pomoću OpenSSL-a, u ovome radu je stvoren vlastiti PKI, na kojem se vrši i praktična primjena rada. U svrhu ostvarivanja praktične primjene, uz OpenSSL alat se koristi i Erlang pomoću kojeg su napravljeni serveri i klijenti u simulaciji izdavanja i korištenja digitalnih certifikata.
Mogućnosti testiranja OpenSSL alatom su prikazane na testiranju podrške sigurnosnih protokola web stranice FER-a. Analizom se može vidjeti da FER za ovjeru i potvrdu valjanosti certifikata koristi najnovije protokole, te da pruža adekvatnu sigurnost za današnje standarde. |
Sažetak (engleski) | Public key cryptography (PKI) has a crucial impact in any form of communication today. It describes process of digital signature, allows for practical and elegant mechanism of key negotiation, necessary for secure communication. Intent of using key pairs (keeping one key private, other public) enables creation of services and protocols which include trust, integrity and generation of cryptographic primitives.
PKI, being core of any secure infrastructure, supports and deploys large number of components and services; certificate authorities (CA), certificate management protocols, key management protocols, cryptographic operations, authentication, encryption and many other. Even though not all environments require implementation of all of the presented components, PKI is still designed to be independent infrastructure applicable, at least conceptually, into various systems. Deployment of rich component PKI increases security of given environment and unnecessary services and components can easily be turned off.
Authentication, integrity and confidentiality are main features any PKI offers. They allow end entities to prove hey are really themselves and to keep their important data safe.
In order to accomplish these traits, X.509 standards are widely used. In accordance with X.509 standards, CA plays a major role in certificate issuance. CA is the only component that can actually issue valid certificate. It can also be responsible for end-entity registration process, although that task falls to registration authorities (RA). Deployment of multiple RAs increases systems scalability.
Certificate lifecycle consists of few phases:
Initialization: includes user registration, key par generation and certificate creation.
Certificate issuance: descibres a phase in which certificate is used for key return, validity check and key history.
Certificate revokement: this phase describes revocation and expirement of certificates.
Deployment requires careful thinking be allied in deciding how to configure security parameters. For certain cases, using weaker encryption algorithms proves to be a good choice for smaller systems, because the performance aspect remains intact. For more important aspects of system, stronger algorithms are preferred, even at the cost of performance. Even though RSA is the most used algorithm today, ECDSA is taking over with better performance and security parameters. RSA doesn't support forward secrecy which makes ECDSA logical choice.
For best illustration of certificate life cycle, OpenSSL tool offers many options for configuring, executing and testing environments. PKI used in this thesis is made using mentioned tool. Simulation of described processes were done using OpenSSL and Erlang language.
OpenSSL tool was also used to test security parameters of desired web page, showing that the latest technologies in TLS were being used. |