Education
keeplearnin: Learning Platform for Organisations and Instructors
Our learning product that brings courses, live classes, mentoring, certificates and corporate training into one platform. Built on MicroFrame; not live yet.
Bu sayfa Türkçe olarak da mevcut.
A PKCS#11 middleware and client platform that makes physical smart cards usable from ordinary enterprise applications — hardware-backed authentication, digital signing and certificate management.
Where a signature has to rest on a hardware-held key — and hardware is exactly where application developers stop. PKCS#11 readers, drivers and card form factors differ per vendor, and bridging them into a business application, a browser flow or an existing PKI is specialist work that most product teams are not equipped to take on.
We built the bridge once, as middleware with an open integration surface. Applications call a stable interface for signing, certificate and verification operations; the middleware absorbs the differences between readers and card vendors and speaks to existing IAM and PKI infrastructure — so hardware-backed identity becomes something an application can adopt rather than something it has to specialise in.
The platform provides smart card-based authentication and digital signature capability built on the PKCS#11 standard, integrating physical smart card hardware with the software layer to give high-security enterprise and government applications hardware-backed identity.
It covers digital signing, certificate management, encrypted communication and secure document verification. Its architecture is deliberately open for integration with existing enterprise applications and IAM/PKI systems, and it is built for signing flows in e-Government, fintech and legal document processes. Whether a signature is legally valid depends on the certificate and the certificate service provider used, not on the middleware alone.
PKCS#11 is a standard, which misleads people into expecting uniformity. What actually differs between vendors is nearly everything an application would have to handle:
The middleware normalizes all of it into a small, explicit set of outcomes, and treats anything that could consume a PIN attempt as non-retryable by policy rather than leaving that judgement to the caller. That single rule is the difference between a support queue full of locked cards and one that is not.
A hardware-held private key is non-extractable by design, so there is no “fetch the key and sign locally” path — every signature is a round trip to a card that is slow relative to software cryptography and can be physically removed mid-operation. The API is therefore asynchronous and cancellable, and hashing is done on the host wherever the card supports signing a pre-computed digest, so what crosses the reader interface is a digest rather than a document. A long document is never streamed to a card, and a signature is not a function that blocks a UI thread for an unpredictable interval.
A legally meaningful signature is over a defined structure — what was signed, with which certificate, and the signed attributes that go with it — not over a raw file. The middleware builds that structure on the host and asks the card only for the raw cryptographic operation over the resulting digest. Keeping the format on the host side means the differences between cards cannot change what a signature actually covers, and the signature format can be adapted without touching the hardware layer.
Chain validation is the easy half. The hard half is that revocation is time-dependent and the two ways of checking it have opposite weaknesses: OCSP gives a fresh answer but adds a live network dependency on a responder that can be slow or unavailable, while a CRL works without one but is only as current as its issue window. The client does both — OCSP with CRL fallback — because either alone fails in a way the other covers.
The validation result is recorded along with the evidence it was based on. A verification that cannot be reproduced later is not a verification, and this matters most in the case that actually arises: a signature made while a certificate was valid must still verify after that certificate has expired, which means validation is always anchored to a point in time rather than asked in the present tense.
Page script cannot talk to a PKCS#11 module, and no amount of wanting it to changes that. So the browser path is a page requesting a signature, an extension relaying the request, and a locally running native component that owns the module and the reader. That indirection forces a decision that is easy to skip: the local component has to authenticate the origin making the request and show the user what is about to be signed. Without both, any page open in the browser can ask a card sitting in a reader to sign something the user never saw — the card cannot tell the difference, so the host has to.
Reader and driver stacks differ per operating system even where the underlying smart card interface is common, so module loading and device access are isolated behind one internal interface and the rest of the desktop client is the same code on every platform. Card-based authentication is handed to the identity layer as a completed proof rather than running as a parallel login, so a card session and a password session end up in the same session model with the same lifetime rules.
Education
Our learning product that brings courses, live classes, mentoring, certificates and corporate training into one platform. Built on MicroFrame; not live yet.
Software Platform
MicroFrame is the ready-made foundation for software teams: identity, tenancy, payments, subscriptions, notifications and audit as ready components, in the cloud or on your own servers.
Consumer and Family
A baby page where memories, the family album, visitor notes and invitations collect, from pregnancy to first steps. Live on web, iOS and Android; built on MicroFrame and live about four months after the first commit.
Let's discuss how we can help bring your ideas to life.