~~NOTOC~~
====== 9. Overitev ======
**Scenariji:** 3 \\
**FFI-funkcije:** ~20 \\
**Status:** Planirano
Ta kategorija obsega vse scenarije za overitvijo na osnovi certifikatov. mTLS Client-Auth, Smart Card prijava in SSO-integracija.
----
===== Scenariji =====
^ ID ^ Scenarij ^ Opis ^ Kompleksnost ^ Status ^
| [[.:mtls_client_auth|9.1]] | mTLS Client-Auth | Certifikat odjemalca za dostop do API-ja | 3/5 | Planirano |
| [[.:smartcard_login|9.2]] | Prijava s pametno kartico | PIV/PKCS#11 osnovana prijava | 4/5 | Planirano |
| [[.:sso_integration|9.3]] | SSO-integracija | SAML/OIDC s certifikati | 4/5 | Planirano |
----
===== Arhitektura overitve =====
flowchart TB
subgraph CLIENT["Odjemalec"]
CERT[Certifikat odjemalca]
KEY[Zasebni ključ]
end
subgraph AUTH["Overitev"]
TLS[TLS Handshake]
VERIFY[Preverjanje certifikata]
AUTHZ[Avtorizacija]
end
subgraph ACCESS["Dostop"]
API[API/Storitev]
USER[Uporabniški kontekst]
end
CLIENT --> TLS
TLS --> VERIFY
VERIFY --> AUTHZ
AUTHZ --> ACCESS
style VERIFY fill:#e3f2fd
style AUTHZ fill:#e8f5e9
----
===== Metode overitve =====
^ Metoda ^ Opis ^ Uporaba ^
| **mTLS** | Mutual TLS s certifikatom odjemalca | Dostop do API-ja, storitev-do-storitve |
| **Pametna kartica** | PIV/PKCS#11 kartica | Prijava na delovnem mestu |
| **FIDO2/WebAuthn** | Strojni žeton | Spletne aplikacije |
| **SSO na osnovi certifikatov** | SAML/OIDC z X.509 | Podjetniški SSO |
----
===== mTLS potek =====
sequenceDiagram
participant C as Odjemalec
participant S as Strežnik
C->>S: ClientHello
S->>C: ServerHello + ServerCert
S->>C: CertificateRequest
C->>S: ClientCert + CertificateVerify
Note over S: Validacija certifikata
S->>S: Preverjanje verige + preklica
S->>C: Finished
C->>S: API zahteva (overjena)
----
===== Panožno-specifične zahteve =====
^ Panoga ^ Metoda ^ Posebnosti ^
| **Zdravstvo** | Pametna kartica (eHBA) | Povezava gematik konektorja |
| **Energetika/SCADA** | mTLS | Identiteta naprav, IEC 62351 |
| **Avtomobilska** | Certifikat (V2X) | Psevdonimni certifikati |
| **Industrija 4.0** | mTLS + OPC UA | Identiteta strojev |
----
===== Hitri začetek s kodo =====
==== mTLS overitev odjemalca ====
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
// Nalaganje certifikata in ključa odjemalca
var clientCert = ctx.LoadCertificate("client.crt.pem");
var clientKey = ctx.LoadPrivateKey("client.key.pem", password);
// Konfiguracija HttpClient za mTLS
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(
ctx.CreateX509Certificate2(clientCert, clientKey)
);
var httpClient = new HttpClient(handler);
// Klic API-ja s certifikatom odjemalca
var response = await httpClient.GetAsync("https://api.example.com/secure/data");
==== Strežniška validacija ====
// V ASP.NET Core Startup
services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme)
.AddCertificate(options =>
{
options.AllowedCertificateTypes = CertificateTypes.All;
options.RevocationMode = X509RevocationMode.Online;
options.Events = new CertificateAuthenticationEvents
{
OnCertificateValidated = context =>
{
// Dodatna PQ-validacija
var cert = context.ClientCertificate;
var isValid = ctx.ValidateCertificate(cert, trustStore);
if (isValid)
{
// Ekstrakcija claims iz certifikata
var claims = new[] {
new Claim(ClaimTypes.Name, cert.Subject),
new Claim("cert_thumbprint", cert.Thumbprint)
};
context.Principal = new ClaimsPrincipal(
new ClaimsIdentity(claims, context.Scheme.Name)
);
context.Success();
}
return Task.CompletedTask;
}
};
});
----
===== Povezane kategorije =====
^ Kategorija ^ Povezava ^
| [[.:zertifikate:start|3. Izdaja certifikatov]] | Ustvarjanje certifikatov odjemalcev |
| [[.:tls:start|10. TLS/mTLS]] | TLS-konfiguracija |
| [[.:validierung:start|5. Validacija]] | Validacija certifikatov |
----
<< [[sl:int:pqcrypt:szenarien:signaturen:start|8. Digitalni podpisi]] | [[sl:int:pqcrypt:szenarien:start|Scenariji]] | [[.:tls:start|10. TLS/mTLS]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>kategorija overitev mtls pametna-kartica sso}}