@motebit/crypto 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts.d.ts +3 -3
- package/dist/credentials.d.ts +25 -0
- package/dist/credentials.d.ts.map +1 -1
- package/dist/hardware-attestation.d.ts +30 -0
- package/dist/hardware-attestation.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2965 -2555
- package/package.json +2 -2
- package/dist/artifacts.js +0 -1158
- package/dist/artifacts.js.map +0 -1
- package/dist/credential-anchor.js +0 -246
- package/dist/credential-anchor.js.map +0 -1
- package/dist/credentials.js +0 -209
- package/dist/credentials.js.map +0 -1
- package/dist/hardware-attestation.js +0 -345
- package/dist/hardware-attestation.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/signing.js +0 -314
- package/dist/signing.js.map +0 -1
- package/dist/suite-dispatch.js.map +0 -1
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hardware attestation — verify that a motebit's Ed25519 identity key
|
|
3
|
-
* is bound to a hardware-backed ECDSA P-256 key held in a platform
|
|
4
|
-
* trust anchor (Apple Secure Enclave today; TPM / Play Integrity /
|
|
5
|
-
* DeviceCheck as future additive adapters).
|
|
6
|
-
*
|
|
7
|
-
* ## Why this exists
|
|
8
|
-
*
|
|
9
|
-
* Motebit's identity key is Ed25519, stored in the OS keyring on
|
|
10
|
-
* desktop and in equivalent app-sandboxed stores on mobile/web. That
|
|
11
|
-
* key is *software-custody*: the private bytes are readable by any
|
|
12
|
-
* process running as the user. The moat thesis — "accumulated trust
|
|
13
|
-
* that a third party can verify" — is categorically weaker without a
|
|
14
|
-
* hardware root. Hardware attestation bridges the gap without forcing
|
|
15
|
-
* a cryptosuite migration: a separate hardware-native keypair (Apple
|
|
16
|
-
* Secure Enclave generates ECDSA P-256) signs a canonical claim that
|
|
17
|
-
* binds itself to the Ed25519 identity. The identity stays where it
|
|
18
|
-
* is; the hardware signature is *additional* evidence a verifier can
|
|
19
|
-
* rank against.
|
|
20
|
-
*
|
|
21
|
-
* Same shape as FIDO / WebAuthn attestation — the platform root key
|
|
22
|
-
* is distinct from the user-facing identity, and one attests the
|
|
23
|
-
* other.
|
|
24
|
-
*
|
|
25
|
-
* ## Receipt format (`platform: "secure_enclave"`)
|
|
26
|
-
*
|
|
27
|
-
* attestation_receipt = base64url(canonical_body_json) + "." +
|
|
28
|
-
* base64url(ecdsa_p256_signature_der)
|
|
29
|
-
*
|
|
30
|
-
* canonical_body_json = JCS-canonicalized JSON of:
|
|
31
|
-
* {
|
|
32
|
-
* version: "1",
|
|
33
|
-
* algorithm: "ecdsa-p256-sha256",
|
|
34
|
-
* motebit_id: string,
|
|
35
|
-
* device_id: string,
|
|
36
|
-
* identity_public_key: Ed25519 hex lowercase,
|
|
37
|
-
* se_public_key: P-256 compressed-point hex lowercase,
|
|
38
|
-
* attested_at: unix ms,
|
|
39
|
-
* }
|
|
40
|
-
*
|
|
41
|
-
* The P-256 signature is over `SHA-256(canonical_body_json)` — standard
|
|
42
|
-
* ECDSA-on-SHA256. The verifier recovers the SE public key from
|
|
43
|
-
* `body.se_public_key` (self-contained; zero relay contact), verifies
|
|
44
|
-
* the signature, then checks that `body.identity_public_key` equals the
|
|
45
|
-
* Ed25519 key the credential subject is claimed for.
|
|
46
|
-
*
|
|
47
|
-
* ## Non-goals in v1
|
|
48
|
-
*
|
|
49
|
-
* - Other platforms (TPM / DeviceCheck / Play Integrity) — each
|
|
50
|
-
* returns `valid: false` + a named-missing-adapter error. Additive
|
|
51
|
-
* platform adapters plug in behind the same result shape.
|
|
52
|
-
* - Revocation — claims expire with their parent credential's
|
|
53
|
-
* expiry. No separate revocation channel.
|
|
54
|
-
* - Chain-of-trust verification — the SE public key is the
|
|
55
|
-
* self-asserted root in v1. Future platform adapters verify the
|
|
56
|
-
* platform's own attestation chain (Apple's root CA, Google's
|
|
57
|
-
* verified-boot chain, etc.) as glucose per the metabolic
|
|
58
|
-
* principle.
|
|
59
|
-
*
|
|
60
|
-
* Permissive floor (Apache-2.0), no I/O, deterministic. Safe to run in any
|
|
61
|
-
* environment that can parse UTF-8 JSON.
|
|
62
|
-
*/
|
|
63
|
-
import { canonicalJson, fromBase64Url } from "./signing.js";
|
|
64
|
-
import { verifyP256EcdsaSha256 } from "./suite-dispatch.js";
|
|
65
|
-
/**
|
|
66
|
-
* Verify a hardware-attestation claim.
|
|
67
|
-
*
|
|
68
|
-
* - `claim` — the `HardwareAttestationClaim` taken from a credential's
|
|
69
|
-
* `credentialSubject.hardware_attestation`.
|
|
70
|
-
* - `expectedIdentityPublicKeyHex` — the Ed25519 public key (hex) the
|
|
71
|
-
* verifier believes owns the credential. Comes from the credential
|
|
72
|
-
* issuance path (typically the subject's DID pubkey).
|
|
73
|
-
* - `verifiers` — optional injection of platform-specific verifiers for
|
|
74
|
-
* claims other than `secure_enclave`. Consumers pass
|
|
75
|
-
* `{ deviceCheck: deviceCheckVerifier(...) }` from
|
|
76
|
-
* `@motebit/crypto-appattest` to enable App Attest verification. When
|
|
77
|
-
* a claim's platform has no verifier wired, the dispatcher returns a
|
|
78
|
-
* stub `valid: false, errors: [{message:"adapter not yet shipped"}]`
|
|
79
|
-
* so verification remains fail-closed by default.
|
|
80
|
-
* - `deviceCheckContext` — VC-subject fields (motebit_id / device_id /
|
|
81
|
-
* attested_at) lifted from the credential subject; threaded to the
|
|
82
|
-
* injected `deviceCheck` verifier so it can re-derive the JCS body
|
|
83
|
-
* Apple signed over. Ignored for every other platform.
|
|
84
|
-
*
|
|
85
|
-
* Zero throws — every failure lands as `valid: false` with a structured
|
|
86
|
-
* reason so callers can render consistent audit output. The
|
|
87
|
-
* secure_enclave path remains synchronous; device_check (and any other
|
|
88
|
-
* injected adapter) may return a Promise, so callers that dispatch
|
|
89
|
-
* through the `verify()` entrypoint get `await`ed results.
|
|
90
|
-
*/
|
|
91
|
-
export function verifyHardwareAttestationClaim(claim, expectedIdentityPublicKeyHex, verifiers, deviceCheckContext) {
|
|
92
|
-
const platform = claim.platform;
|
|
93
|
-
const errors = [];
|
|
94
|
-
switch (platform) {
|
|
95
|
-
case "secure_enclave":
|
|
96
|
-
return verifySecureEnclaveClaim(claim, expectedIdentityPublicKeyHex);
|
|
97
|
-
case "software":
|
|
98
|
-
// Truthful "this key is not hardware-backed" claim — valid in
|
|
99
|
-
// the sense of "no deception," but offers no hardware signal. The
|
|
100
|
-
// semiring scores it as `0.1` (see `@motebit/semiring`). Report
|
|
101
|
-
// as `valid: false` for the hardware-verification channel: the
|
|
102
|
-
// claim doesn't prove hardware, and the caller should score it
|
|
103
|
-
// via the semiring, not treat it as attested.
|
|
104
|
-
errors.push({
|
|
105
|
-
message: "platform `software` is a no-hardware sentinel; no verification channel",
|
|
106
|
-
});
|
|
107
|
-
return { valid: false, platform: "software", errors };
|
|
108
|
-
case "device_check":
|
|
109
|
-
if (verifiers?.deviceCheck) {
|
|
110
|
-
return dispatchInjected(platform, verifiers.deviceCheck(claim, expectedIdentityPublicKeyHex, deviceCheckContext));
|
|
111
|
-
}
|
|
112
|
-
errors.push({
|
|
113
|
-
message: `platform \`${platform}\` verifier not wired — pass { deviceCheck: deviceCheckVerifier(...) } from @motebit/crypto-appattest to enable`,
|
|
114
|
-
});
|
|
115
|
-
return { valid: false, platform, errors };
|
|
116
|
-
case "tpm":
|
|
117
|
-
if (verifiers?.tpm) {
|
|
118
|
-
return dispatchInjected(platform, verifiers.tpm(claim, expectedIdentityPublicKeyHex, deviceCheckContext));
|
|
119
|
-
}
|
|
120
|
-
errors.push({
|
|
121
|
-
message: `platform \`${platform}\` verifier not wired — pass { tpm: ... } via the verifiers parameter to enable`,
|
|
122
|
-
});
|
|
123
|
-
return { valid: false, platform, errors };
|
|
124
|
-
case "play_integrity":
|
|
125
|
-
if (verifiers?.playIntegrity) {
|
|
126
|
-
return dispatchInjected(platform, verifiers.playIntegrity(claim, expectedIdentityPublicKeyHex, deviceCheckContext));
|
|
127
|
-
}
|
|
128
|
-
errors.push({
|
|
129
|
-
message: `platform \`${platform}\` verifier not wired — pass { playIntegrity: ... } via the verifiers parameter to enable`,
|
|
130
|
-
});
|
|
131
|
-
return { valid: false, platform, errors };
|
|
132
|
-
case "webauthn":
|
|
133
|
-
if (verifiers?.webauthn) {
|
|
134
|
-
return dispatchInjected(platform, verifiers.webauthn(claim, expectedIdentityPublicKeyHex, deviceCheckContext));
|
|
135
|
-
}
|
|
136
|
-
errors.push({
|
|
137
|
-
message: `platform \`${platform}\` verifier not wired — pass { webauthn: webauthnVerifier(...) } from @motebit/crypto-webauthn to enable`,
|
|
138
|
-
});
|
|
139
|
-
return { valid: false, platform, errors };
|
|
140
|
-
default:
|
|
141
|
-
errors.push({
|
|
142
|
-
message: `unknown platform \`${claim.platform}\` — not in the declared enum`,
|
|
143
|
-
});
|
|
144
|
-
return { valid: false, platform: null, errors };
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Normalize the injected verifier's return shape into the canonical
|
|
149
|
-
* `HardwareAttestationVerifyResult`. Injected leaves may return a
|
|
150
|
-
* richer shape (e.g. `@motebit/crypto-appattest`'s
|
|
151
|
-
* `DeviceCheckVerifyResult` carries `attestation_detail`); the
|
|
152
|
-
* canonical fields are lifted out here so the outer VC verify path
|
|
153
|
-
* always sees the same shape.
|
|
154
|
-
*/
|
|
155
|
-
async function dispatchInjected(platform, result) {
|
|
156
|
-
const awaited = await Promise.resolve(result);
|
|
157
|
-
return {
|
|
158
|
-
valid: awaited.valid,
|
|
159
|
-
platform,
|
|
160
|
-
errors: awaited.errors ?? [],
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
// ── Secure Enclave path ──────────────────────────────────────────────
|
|
164
|
-
function verifySecureEnclaveClaim(claim, expectedIdentityPublicKeyHex) {
|
|
165
|
-
const errors = [];
|
|
166
|
-
const platform = "secure_enclave";
|
|
167
|
-
if (claim.key_exported === true) {
|
|
168
|
-
// An exported hardware key no longer uniquely holds the material;
|
|
169
|
-
// the signed receipt is historical evidence only. We still verify
|
|
170
|
-
// the signature — it's still meaningful — but the result's caller
|
|
171
|
-
// should score it with the lower semiring value (see
|
|
172
|
-
// `scoreAttestation` in @motebit/semiring: exported → 0.5). We do
|
|
173
|
-
// not short-circuit as invalid — that would conflate "key was
|
|
174
|
-
// exported" with "attestation fraudulent."
|
|
175
|
-
}
|
|
176
|
-
if (!claim.attestation_receipt) {
|
|
177
|
-
errors.push({
|
|
178
|
-
message: "secure_enclave claim missing `attestation_receipt`",
|
|
179
|
-
});
|
|
180
|
-
return { valid: false, platform, errors };
|
|
181
|
-
}
|
|
182
|
-
const parts = claim.attestation_receipt.split(".");
|
|
183
|
-
if (parts.length !== 2) {
|
|
184
|
-
errors.push({
|
|
185
|
-
message: `attestation_receipt must be 2 base64url parts separated by '.'; got ${parts.length}`,
|
|
186
|
-
});
|
|
187
|
-
return { valid: false, platform, errors };
|
|
188
|
-
}
|
|
189
|
-
const [bodyB64, sigB64] = parts;
|
|
190
|
-
let bodyBytes;
|
|
191
|
-
let sigBytes;
|
|
192
|
-
try {
|
|
193
|
-
bodyBytes = fromBase64Url(bodyB64);
|
|
194
|
-
sigBytes = fromBase64Url(sigB64);
|
|
195
|
-
}
|
|
196
|
-
catch (err) {
|
|
197
|
-
errors.push({
|
|
198
|
-
message: `base64url decode failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
199
|
-
});
|
|
200
|
-
return { valid: false, platform, errors };
|
|
201
|
-
}
|
|
202
|
-
let bodyJson;
|
|
203
|
-
try {
|
|
204
|
-
bodyJson = JSON.parse(new TextDecoder().decode(bodyBytes));
|
|
205
|
-
}
|
|
206
|
-
catch (err) {
|
|
207
|
-
errors.push({
|
|
208
|
-
message: `body JSON parse failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
209
|
-
});
|
|
210
|
-
return { valid: false, platform, errors };
|
|
211
|
-
}
|
|
212
|
-
const bodyCheck = parseSecureEnclaveBody(bodyJson);
|
|
213
|
-
if (bodyCheck.kind === "error") {
|
|
214
|
-
errors.push({ message: bodyCheck.reason });
|
|
215
|
-
return { valid: false, platform, errors };
|
|
216
|
-
}
|
|
217
|
-
const body = bodyCheck.body;
|
|
218
|
-
if (body.version !== "1") {
|
|
219
|
-
errors.push({
|
|
220
|
-
message: `unsupported body version '${body.version}' (expected '1')`,
|
|
221
|
-
});
|
|
222
|
-
return { valid: false, platform, errors };
|
|
223
|
-
}
|
|
224
|
-
if (body.algorithm !== "ecdsa-p256-sha256") {
|
|
225
|
-
errors.push({
|
|
226
|
-
message: `unsupported body algorithm '${body.algorithm}' (expected 'ecdsa-p256-sha256')`,
|
|
227
|
-
});
|
|
228
|
-
return { valid: false, platform, errors };
|
|
229
|
-
}
|
|
230
|
-
// Re-canonicalize the body and hash — the signed bytes are what the
|
|
231
|
-
// signer actually signed. The body we parsed is the source of truth
|
|
232
|
-
// for *fields*, but the signed bytes must match the on-wire body
|
|
233
|
-
// bytes exactly (JCS is deterministic, but the signer might have
|
|
234
|
-
// produced the body with trailing whitespace etc. — we verify
|
|
235
|
-
// against the as-received bytes, not our re-canonicalization).
|
|
236
|
-
let sigValid;
|
|
237
|
-
try {
|
|
238
|
-
sigValid = verifyP256EcdsaSha256(body.se_public_key, bodyBytes, sigBytes);
|
|
239
|
-
}
|
|
240
|
-
catch (err) {
|
|
241
|
-
errors.push({
|
|
242
|
-
message: `p-256 verification crashed: ${err instanceof Error ? err.message : String(err)}`,
|
|
243
|
-
});
|
|
244
|
-
return { valid: false, platform, errors };
|
|
245
|
-
}
|
|
246
|
-
if (!sigValid) {
|
|
247
|
-
errors.push({
|
|
248
|
-
message: "p-256 signature does not verify against body + se_public_key",
|
|
249
|
-
});
|
|
250
|
-
return { valid: false, platform, errors };
|
|
251
|
-
}
|
|
252
|
-
// Identity-key binding check — the attestation body names which
|
|
253
|
-
// Ed25519 key this hardware claim is for. The verifier has the
|
|
254
|
-
// expected key from the credential's issuance context.
|
|
255
|
-
if (body.identity_public_key.toLowerCase() !== expectedIdentityPublicKeyHex.toLowerCase()) {
|
|
256
|
-
errors.push({
|
|
257
|
-
message: `identity_public_key mismatch: body names ${body.identity_public_key.slice(0, 16)}…, expected ${expectedIdentityPublicKeyHex.slice(0, 16)}…`,
|
|
258
|
-
});
|
|
259
|
-
return { valid: false, platform, errors };
|
|
260
|
-
}
|
|
261
|
-
return {
|
|
262
|
-
valid: true,
|
|
263
|
-
platform,
|
|
264
|
-
se_public_key: body.se_public_key,
|
|
265
|
-
attested_at: body.attested_at,
|
|
266
|
-
errors: [],
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
function parseSecureEnclaveBody(raw) {
|
|
270
|
-
if (raw === null || typeof raw !== "object") {
|
|
271
|
-
return { kind: "error", reason: "body is not a JSON object" };
|
|
272
|
-
}
|
|
273
|
-
const r = raw;
|
|
274
|
-
const fields = [
|
|
275
|
-
"version",
|
|
276
|
-
"algorithm",
|
|
277
|
-
"motebit_id",
|
|
278
|
-
"device_id",
|
|
279
|
-
"identity_public_key",
|
|
280
|
-
"se_public_key",
|
|
281
|
-
"attested_at",
|
|
282
|
-
];
|
|
283
|
-
for (const f of fields) {
|
|
284
|
-
if (!(f in r)) {
|
|
285
|
-
return { kind: "error", reason: `body missing required field '${f}'` };
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
if (typeof r.version !== "string" ||
|
|
289
|
-
typeof r.algorithm !== "string" ||
|
|
290
|
-
typeof r.motebit_id !== "string" ||
|
|
291
|
-
typeof r.device_id !== "string" ||
|
|
292
|
-
typeof r.identity_public_key !== "string" ||
|
|
293
|
-
typeof r.se_public_key !== "string" ||
|
|
294
|
-
typeof r.attested_at !== "number") {
|
|
295
|
-
return { kind: "error", reason: "body field types invalid" };
|
|
296
|
-
}
|
|
297
|
-
return {
|
|
298
|
-
kind: "ok",
|
|
299
|
-
body: {
|
|
300
|
-
version: r.version,
|
|
301
|
-
algorithm: r.algorithm,
|
|
302
|
-
motebit_id: r.motebit_id,
|
|
303
|
-
device_id: r.device_id,
|
|
304
|
-
identity_public_key: r.identity_public_key,
|
|
305
|
-
se_public_key: r.se_public_key,
|
|
306
|
-
attested_at: r.attested_at,
|
|
307
|
-
},
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
// ── Test helper — mint a valid SE receipt from an in-process P-256 key ─
|
|
311
|
-
/**
|
|
312
|
-
* Test-only helper — encode a canonical body + signature into the
|
|
313
|
-
* receipt format. Tests that have a P-256 private key (via
|
|
314
|
-
* `@noble/curves/p256`) can call `signBytes` themselves, then hand the
|
|
315
|
-
* resulting body + signature to this helper to produce a well-formed
|
|
316
|
-
* receipt that `verifyHardwareAttestationClaim` will accept. Production
|
|
317
|
-
* callers MUST mint receipts via the Rust Secure Enclave bridge —
|
|
318
|
-
* never through this function.
|
|
319
|
-
*/
|
|
320
|
-
export function encodeSecureEnclaveReceiptForTest(bodyBytes, sigBytes) {
|
|
321
|
-
return `${toBase64Url(bodyBytes)}.${toBase64Url(sigBytes)}`;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Test-only helper — build a canonical body JSON's bytes. Use with
|
|
325
|
-
* `encodeSecureEnclaveReceiptForTest` to produce a full receipt for
|
|
326
|
-
* verification tests. Canonicalization matches what production would
|
|
327
|
-
* emit.
|
|
328
|
-
*/
|
|
329
|
-
export function canonicalSecureEnclaveBodyForTest(body) {
|
|
330
|
-
const full = {
|
|
331
|
-
version: "1",
|
|
332
|
-
algorithm: "ecdsa-p256-sha256",
|
|
333
|
-
...body,
|
|
334
|
-
};
|
|
335
|
-
return new TextEncoder().encode(canonicalJson(full));
|
|
336
|
-
}
|
|
337
|
-
function toBase64Url(bytes) {
|
|
338
|
-
// Match the conventions in signing.ts — base64url, no padding.
|
|
339
|
-
let binary = "";
|
|
340
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
341
|
-
binary += String.fromCharCode(bytes[i]);
|
|
342
|
-
}
|
|
343
|
-
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
344
|
-
}
|
|
345
|
-
//# sourceMappingURL=hardware-attestation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hardware-attestation.js","sourceRoot":"","sources":["../src/hardware-attestation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|