ECC P-384 ยท Bluetooth ยท No Cloud

MobileProvider Zero-Trust Authentication

My flagship open-source security project. Turn any mobile device into a hardware-backed authentication token with ECC P-384 cryptography and Bluetooth transport. No cloud dependency. Optional face/fingerprint confirmation on the phone.

P-384
ECC keys
AES-256
GCM sealing
0
Cloud deps
3
Desktop OS

Your phone becomes a hardware security token

MobileProvider turns any Bluetooth phone into a hardware-backed key for your PC. Store a credential once; from then on the desktop can autofill browser logins, sign you into Windows, and lock your session when the phone walks away โ€” with the phone confirming each release by face or fingerprint. The catch that makes it safe: the phone only ever holds an encrypted copy. Your keys never leave the desktop and nothing ever touches the cloud.

📱 Mobile app stores the encrypted blob + KeyID — never a key 🖥️ Desktop service ECC P-384 + AES-256-GCM seals / unseals · holds the keys the trust anchor 🌐 browser autofill 🪟 Windows login 🧩 app SDK Bluetooth sealed blobs plaintext local only

Keys on the desktop, encrypted blobs on the phone

The desktop service is the trust anchor: it owns the ECC P-384 keys and an AES-256 master key and performs all encryption and decryption. The phone stores only the sealed blob plus a KeyID and echoes it back on request โ€” it never holds a key or any plaintext.

🔑

Key isolation

Cryptographic keys never leave the desktop. The mobile device stores only encrypted blobs + KeyID โ€” no keys, no plaintext.

🔒

ECC P-384 + AES-256-GCM

Per-entry sealed envelopes (IV + tag + ciphertext). DPAPI-protected master key at rest on the desktop.

📶

Bluetooth RFCOMM

Direct phone ↔ desktop link on channel 4. No cloud, no internet, no third party in the path.

👤

Biometric confirmation

Optional face or fingerprint on the phone before an already-stored credential is released (WINLOGIN / AUTOLOGIN).

🧩

SDK & API

C-compatible DLL / shared library. Same interface on Windows, Linux, and macOS. Powers the Credential Provider and third-party apps.

Auto-logout & inactivity lock

PING/PONG health over Bluetooth locks or logs off Windows on device loss combined with user inactivity.

🖥️

Cross-platform

Windows service + Credential Provider, Linux daemon (BlueZ/PAM), macOS launchd daemon, Android app, and browser extensions.

🧱

Length-prefixed JSON

All IPC is 4-byte LE length + JSON โ€” framing that prevents injection across pipe, socket, and Bluetooth.

$ store & retrieve a credential
SDK โ†’ Service STORECRED { username, password }
Service seal (ECC P-384 + AES-256-GCM) โ†’ { enc, KeyID }
Service โ†’ Phone CREATEENT { enc, KeyID } (phone stores blob only)
SDK โ†’ Service GETENT / WINLOGIN (later)
Phone biometric confirm (optional) โ†’ returns { enc }
Service unseal on the desktop โ†’ plaintext
[OK] the phone never saw a key or the plaintext

Why teams buy it

Enterprise-grade credential security without the enterprise baggage โ€” no dedicated hardware to buy and ship, no cloud to trust, and no per-user SaaS bill that grows forever.

🛡️

Breach-resistant by design

A stolen phone or a sniffed link exposes only encrypted blobs. Keys never leave the desktop, so there is nothing to steal on the mobile side.

📱

The phone is the token

No YubiKeys or smartcards to purchase, distribute, or replace. Every employee already carries the hardware.

☁️

No cloud, no lock-in

Self-hosted on your own machines. Your secrets never leave your devices and there is no third-party SaaS in the trust path.

📴

Works fully offline

Bluetooth-only transport โ€” ideal for air-gapped and high-security environments with no internet dependency.

🧩

One token for everything

Browser autofill, Windows sign-in, automatic session lock, and a C API to secure your own apps โ€” from a single paired phone.

🖥️

Cross-platform

Windows service + Credential Provider, Linux daemon, macOS daemon, Android app, and browser extensions โ€” one product, every desk.

👤

Biometric-gated release

Optional face or fingerprint confirmation on the phone before any stored credential is handed back to the PC.

📉

Lower total cost

No hardware-token budget, no cloud subscription, low rollout friction โ€” with proven ECC P-384 / AES-256-GCM cryptography under the hood.


Get a license

Every edition includes the desktop service, mobile app, browser extensions, and SDK. Pick the one that fits, or talk to us about a rollout.

👤

Personal

For a single user securing their own PC and phone. Full feature set, one paired device.

1 seat
Request a license
🏢

Business

Per-seat licensing for teams. Central rollout, multiple devices, priority support.

per seat
Request a quote
🏛️

Enterprise

Site licensing, deployment support, custom SDK integration, and SLAs.

custom
Contact sales
✉️ Talk to us about licensing & pricing

Get MobileProvider

📺

Windows Service

Native SCM service with Bluetooth RFCOMM, named pipe IPC, and Credential Provider integration.

v2.4.1x64
Download .msi
🐧

Linux Daemon

systemd service with BlueZ RFCOMM, PAM authentication, logind session management.

v2.4.1amd64/arm64deb/rpm
Download .deb Download .rpm
📱

Android App

Encrypted vault with biometric confirmation. API 29+. No key material stored on device.

v2.4.1APK
Download .apk
🌐

Browser Extensions

Chrome, Firefox, Edge. Native messaging bridge to local service. MV3.

v2.4.1MV3
Chrome (.zip) Firefox (.xpi) Edge (.zip)
🪄

Windows SDK

MobileProviderSDK.dll with C API header. Integrate apps with the service.

v2.4.1
Download SDK .zip
🪄

Linux SDK

libmobileprovidersdk.so.1 with header. Available in deb/rpm repositories.

v2.4.1
Download dev .deb
📷

macOS Service

launchd daemon with IOBluetooth RFCOMM, os_log, Unix domain socket IPC. macOS 13+.

v2.4.1universal
Download .pkg Install via Homebrew
🪄

macOS SDK

libmobileprovidersdk.dylib with header. Integrate with any macOS app via C API.

v2.4.1
Download SDK .zip

MobileProvider SDK & API

Integrate any application with MobileProvider security infrastructure. C-compatible API, same interface on Windows, Linux, and macOS. Build third-party tools, automate workflows, extend the platform.


19 functions โ€” complete reference

1. Connection Management

FunctionSignatureDescription
IsMobileAvailablebool IsMobileAvailable()Returns true if the service pipe/socket can be opened.
SayHelloconst char* SayHello()Sends HELLO handshake. Returns service greeting with version info.
RequestConnectionconst char* RequestConnection(const char* deviceName)Initiate Bluetooth connection to a named device.
DisconnectDeviceconst char* DisconnectDevice()Disconnect the current Bluetooth device.
Repairconst char* Repair()Trigger Bluetooth repair sequence.

2. Status & Monitoring

FunctionSignatureDescription
GetMobileStatusconst char* GetMobileStatus()Returns connection, pairing, and device state as JSON.
SetAutoLogoutconst char* SetAutoLogout(int action, int intervalMs, int timeoutCount, int btDisconnectEnabled)Configure auto-logout: action, PING interval and timeout count.
SetInactivityConfigconst char* SetInactivityConfig(int enabled, int timeoutSec)Configure inactivity lock: enable/disable and timeout.
SetConfigStorageTypeconst char* SetConfigStorageType(const char* type)Switch config backend: "file" or "registry".

3. Credential Storage

FunctionSignatureDescription
CreateEntryconst char* CreateEntry(const char* key, const char* jsonData)Create encrypted entry with P-384 + AES-256-GCM.
GetEntryconst char* GetEntry(const char* key)Retrieve and decrypt entry by ID.
DeleteEntryconst char* DeleteEntry(const char* key)Delete entry by ID from both service and mobile.
ListEntriesconst char* ListEntries()List all stored entry metadata as JSON array.
StoreCredentialsconst char* StoreCredentials(const char* username, const char* password)Validate and store Windows credentials.
GenerateCredentialconst char* GenerateCredential(const char* requestJson)Ask the phone to complete a field set (each field prefilled, user-typed, or generated on-device); returns the completed set and stores a sealed copy.
FreeStringvoid FreeString(const char* s)Securely wipe the per-thread return buffer after copying a secret-bearing reply.

4. Authentication

FunctionSignatureDescription
RequestAutologinconst char* RequestAutologin(const char* key)Trigger browser autofill with mobile biometric confirmation.
RequestWindowsLoginconst char* RequestWindowsLogin()Trigger Windows login via mobile confirmation.

5. Bluetooth Device Management

FunctionSignatureDescription
ListDevicesconst char* ListDevices()List paired Bluetooth devices.
UnpairDeviceconst char* UnpairDevice(const char* address)Unpair specific device by Bluetooth address.
UnpairAllDevicesconst char* UnpairAllDevices()Unpair all Bluetooth devices.

Wire format

All SDK communication uses 4-byte little-endian length-prefixed JSON. Same format on Windows (named pipe), Linux, and macOS (Unix domain socket).

OffsetSizeFieldDescription
04 bytesLength (LE uint32)Payload size in bytes
4N bytesJSON payloadUTF-8 encoded JSON message

Pawel Stefanski

Building zero-trust authentication systems by day, creating MorphOS applications and demoscene productions by night. CyberArk / PaloAlto engineer with 20+ years in IT.

🛡

Professional Career

From PTC, Schneider Electric, and Airbus through ING, GE, and Friend Software Labs โ€” to CyberArk / PaloAlto today. Building security infrastructure across Windows, Linux, Android, and embedded systems.

💡

MorphOS Era

In 2000 I joined the #Amigazeux developer group and started developing MorphOS applications. I was invited to join the MorphOS Team, creating Paint, Sketch, Transfer, Titler, and many more applications.

📱

Early Years

In 1996 I co-founded the Ostroleka Amiga User Group. We developed games and tools. In 1998 my demoscene career began with Nah-Kolor, creating disk magazines, music disks, videos and demos.

$ cat AUTHOR.md
Role: Cyber Security Engineer @ CyberArk / PaloAlto
Location: Warszawa, Poland
Specialty: Zero-trust security, cryptography, cross-platform systems
Flagship: MobileProvider โ€” this project
[OK] 25+ projects released across two decades

Full portfolio (enterprise work, MorphOS & demoscene projects, timeline): open the complete portfolio →