dbsc-toolkit 2.14.0 → 2.14.1
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/core/index.d.ts +0 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/protect-policy.d.ts +0 -32
- package/dist/core/protect-policy.d.ts.map +1 -1
- package/dist/core/protect-policy.js.map +1 -1
- package/dist/express/index.d.ts +0 -7
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/index.js +0 -2
- package/dist/express/index.js.map +1 -1
- package/dist/express/require-proof.d.ts.map +1 -1
- package/dist/express/require-proof.js +1 -62
- package/dist/express/require-proof.js.map +1 -1
- package/dist/fastify/index.d.ts +0 -3
- package/dist/fastify/index.d.ts.map +1 -1
- package/dist/fastify/index.js +0 -2
- package/dist/fastify/index.js.map +1 -1
- package/dist/fastify/require-proof.d.ts.map +1 -1
- package/dist/fastify/require-proof.js +1 -45
- package/dist/fastify/require-proof.js.map +1 -1
- package/dist/hono/index.d.ts +0 -3
- package/dist/hono/index.d.ts.map +1 -1
- package/dist/hono/index.js +0 -2
- package/dist/hono/index.js.map +1 -1
- package/dist/hono/require-proof.d.ts.map +1 -1
- package/dist/hono/require-proof.js +1 -43
- package/dist/hono/require-proof.js.map +1 -1
- package/dist/koa/require-proof.d.ts.map +1 -1
- package/dist/koa/require-proof.js +1 -47
- package/dist/koa/require-proof.js.map +1 -1
- package/dist/nestjs/index.d.ts.map +1 -1
- package/dist/nestjs/index.js +1 -40
- package/dist/nestjs/index.js.map +1 -1
- package/dist/nextjs/require-proof.d.ts.map +1 -1
- package/dist/nextjs/require-proof.js +1 -43
- package/dist/nextjs/require-proof.js.map +1 -1
- package/dist/node/index.d.ts +0 -3
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +0 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/require-proof.d.ts.map +1 -1
- package/dist/node/require-proof.js +1 -55
- package/dist/node/require-proof.js.map +1 -1
- package/dist/sveltekit/index.d.ts +0 -3
- package/dist/sveltekit/index.d.ts.map +1 -1
- package/dist/sveltekit/index.js +0 -2
- package/dist/sveltekit/index.js.map +1 -1
- package/dist/sveltekit/require-proof.d.ts +3 -8
- package/dist/sveltekit/require-proof.d.ts.map +1 -1
- package/dist/sveltekit/require-proof.js +3 -62
- package/dist/sveltekit/require-proof.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/protocol/native-proof-guard.d.ts +0 -58
- package/dist/core/protocol/native-proof-guard.d.ts.map +0 -1
- package/dist/core/protocol/native-proof-guard.js +0 -60
- package/dist/core/protocol/native-proof-guard.js.map +0 -1
|
@@ -1,51 +1,5 @@
|
|
|
1
|
-
import { verifyBoundProof, noBindingReason,
|
|
1
|
+
import { verifyBoundProof, noBindingReason, DbscVerificationError, } from "../core/index.js";
|
|
2
2
|
import { getDbscSession, DBSC_INTERNAL } from "./index.js";
|
|
3
|
-
function freshProofScope(internal) {
|
|
4
|
-
return {
|
|
5
|
-
secure: internal?.secure ?? true,
|
|
6
|
-
...(internal?.cookieScope !== undefined && { cookieScope: internal.cookieScope }),
|
|
7
|
-
...(internal?.cookieDomain !== undefined && { cookieDomain: internal.cookieDomain }),
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* The native fresh-proof handshake for `node:http`. Returns `true` to let the
|
|
12
|
-
* request through, `false` after writing a 403 (either the challenge or a
|
|
13
|
-
* rejection). Mirrors the Express path with raw header/cookie plumbing.
|
|
14
|
-
*/
|
|
15
|
-
async function runNativeFreshProof(req, res, sessionId, storage, internal) {
|
|
16
|
-
const scope = freshProofScope(internal);
|
|
17
|
-
const cookieName = challengeCookieName(scope);
|
|
18
|
-
const responseHeader = readSessionResponseHeader(req.headers);
|
|
19
|
-
const expectedJti = parseCookieHeader(req.headers.cookie)[cookieName];
|
|
20
|
-
const result = await guardNativeProof({ sessionId, secSessionResponseHeader: responseHeader, expectedJti }, storage);
|
|
21
|
-
if (result.kind === "pass")
|
|
22
|
-
return true;
|
|
23
|
-
res.setHeader("Content-Type", "application/json");
|
|
24
|
-
if (result.kind === "reject") {
|
|
25
|
-
res.statusCode = 403;
|
|
26
|
-
res.end(JSON.stringify({ error: result.error, code: result.code }));
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
// challenge: ask Chrome to re-prove with the hardware key.
|
|
30
|
-
const header = buildChallengeHeader(result.jti, sessionId);
|
|
31
|
-
res.setHeader(CHALLENGE_HEADER, header);
|
|
32
|
-
res.setHeader(LEGACY_CHALLENGE_HEADER, header);
|
|
33
|
-
const parts = [
|
|
34
|
-
`${cookieName}=${result.jti}`,
|
|
35
|
-
"HttpOnly",
|
|
36
|
-
"Path=/",
|
|
37
|
-
"SameSite=Lax",
|
|
38
|
-
`Max-Age=${FRESH_PROOF_CHALLENGE_TTL_MS / 1000}`,
|
|
39
|
-
];
|
|
40
|
-
if (scope.secure)
|
|
41
|
-
parts.push("Secure");
|
|
42
|
-
if (scope.cookieDomain !== undefined)
|
|
43
|
-
parts.push(`Domain=${scope.cookieDomain}`);
|
|
44
|
-
res.setHeader("Set-Cookie", parts.join("; "));
|
|
45
|
-
res.statusCode = 403;
|
|
46
|
-
res.end();
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
3
|
async function readRawBody(req) {
|
|
50
4
|
const cached = req["__dbscRawBody"];
|
|
51
5
|
if (Buffer.isBuffer(cached))
|
|
@@ -87,14 +41,6 @@ export function requireProof(opts = {}) {
|
|
|
87
41
|
res.end(JSON.stringify({ error: "requireProof: storage unavailable — run dbsc() before the guard, or pass { storage }" }));
|
|
88
42
|
return false;
|
|
89
43
|
}
|
|
90
|
-
if (freshProofActive({
|
|
91
|
-
tier,
|
|
92
|
-
boundEnabled: internal?.boundEnabled,
|
|
93
|
-
freshProof: opts.freshProof,
|
|
94
|
-
allowDbscWithoutProof: opts.allowDbscWithoutProof,
|
|
95
|
-
})) {
|
|
96
|
-
return runNativeFreshProof(req, res, session.sessionId, storage, internal);
|
|
97
|
-
}
|
|
98
44
|
const allowDbscWithoutProof = opts.allowDbscWithoutProof ?? (internal?.boundEnabled === false ? true : undefined);
|
|
99
45
|
if (tier === "dbsc" && allowDbscWithoutProof)
|
|
100
46
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-proof.js","sourceRoot":"","sources":["../../src/node/require-proof.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"require-proof.js","sourceRoot":"","sources":["../../src/node/require-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,6 @@ export interface DbscInternal {
|
|
|
8
8
|
secure: boolean;
|
|
9
9
|
boundEnabled: boolean;
|
|
10
10
|
replayCache?: ProofReplayCache;
|
|
11
|
-
/** Cookie scope, so the freshProof guard writes the challenge cookie correctly. */
|
|
12
|
-
cookieScope?: CookieScope;
|
|
13
|
-
cookieDomain?: string;
|
|
14
11
|
}
|
|
15
12
|
export declare const DBSC_INTERNAL: unique symbol;
|
|
16
13
|
export interface DbscSvelteKitOptions extends DbscOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sveltekit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAsBL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sveltekit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAsBL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AACD,eAAO,MAAM,aAAa,EAAE,OAAO,MAAkD,CAAC;AActF,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAqCD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAoP7D"}
|
package/dist/sveltekit/index.js
CHANGED
|
@@ -311,8 +311,6 @@ export function dbscHandle(opts) {
|
|
|
311
311
|
secure,
|
|
312
312
|
boundEnabled: bound,
|
|
313
313
|
...(replayCache !== undefined && { replayCache }),
|
|
314
|
-
...(cookieScope !== undefined && { cookieScope }),
|
|
315
|
-
...(cookieDomain !== undefined && { cookieDomain }),
|
|
316
314
|
};
|
|
317
315
|
event.locals.dbsc = dbscSession;
|
|
318
316
|
return resolve(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sveltekit/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sveltekit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,11 @@ import { type RequireProofOptions } from "../core/index.js";
|
|
|
5
5
|
* or a form action, after `dbscHandle` has populated `event.locals.dbsc`:
|
|
6
6
|
*
|
|
7
7
|
* export async function POST(event) {
|
|
8
|
-
*
|
|
9
|
-
* if (challenge) return challenge; // freshProof 403 — return it
|
|
8
|
+
* await requireProof()(event);
|
|
10
9
|
* // ... reached only from the bound device
|
|
11
10
|
* }
|
|
12
11
|
*
|
|
13
|
-
*
|
|
14
|
-
* or rejection) — return it from your handler. Otherwise returns `void`, and
|
|
15
|
-
* throws a SvelteKit `error(403)` when there is no binding or the bound proof
|
|
16
|
-
* fails. The `Response` path is only reached on a native `dbsc` session with
|
|
17
|
-
* `freshProof` active (default when the polyfill is off).
|
|
12
|
+
* Throws a SvelteKit `error(403)` when there is no binding or the proof fails.
|
|
18
13
|
*/
|
|
19
|
-
export declare function requireProof(opts?: RequireProofOptions): (event: RequestEvent) => Promise<
|
|
14
|
+
export declare function requireProof(opts?: RequireProofOptions): (event: RequestEvent) => Promise<void>;
|
|
20
15
|
//# sourceMappingURL=require-proof.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-proof.d.ts","sourceRoot":"","sources":["../../src/sveltekit/require-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"require-proof.d.ts","sourceRoot":"","sources":["../../src/sveltekit/require-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,IAC3C,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAwClD"}
|
|
@@ -1,66 +1,16 @@
|
|
|
1
1
|
import { error } from "@sveltejs/kit";
|
|
2
|
-
import { verifyBoundProof,
|
|
2
|
+
import { verifyBoundProof, DbscVerificationError, } from "../core/index.js";
|
|
3
3
|
import { DBSC_INTERNAL } from "./index.js";
|
|
4
|
-
/**
|
|
5
|
-
* Runs the native fresh-proof handshake. Returns a `Response` (403 challenge or
|
|
6
|
-
* rejection) for the caller to return, or `null` to let the request proceed.
|
|
7
|
-
* Returned as a Response rather than thrown so the challenge header + cookie ride
|
|
8
|
-
* the 403 cleanly (SvelteKit's `error()` would drop them).
|
|
9
|
-
*/
|
|
10
|
-
async function runNativeFreshProof(event, sessionId, storage, internal) {
|
|
11
|
-
const scope = {
|
|
12
|
-
secure: internal?.secure ?? true,
|
|
13
|
-
...(internal?.cookieScope !== undefined && { cookieScope: internal.cookieScope }),
|
|
14
|
-
...(internal?.cookieDomain !== undefined && { cookieDomain: internal.cookieDomain }),
|
|
15
|
-
};
|
|
16
|
-
const cookieName = challengeCookieName(scope);
|
|
17
|
-
const responseHeader = readSessionResponseHeader(Object.fromEntries(event.request.headers));
|
|
18
|
-
const expectedJti = parseCookieHeader(event.request.headers.get("cookie") ?? undefined)[cookieName];
|
|
19
|
-
const result = await guardNativeProof({ sessionId, secSessionResponseHeader: responseHeader, expectedJti }, storage);
|
|
20
|
-
if (result.kind === "pass")
|
|
21
|
-
return null;
|
|
22
|
-
if (result.kind === "reject") {
|
|
23
|
-
return new Response(JSON.stringify({ error: result.error, code: result.code }), {
|
|
24
|
-
status: 403,
|
|
25
|
-
headers: { "content-type": "application/json" },
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
const header = buildChallengeHeader(result.jti, sessionId);
|
|
29
|
-
const cookieParts = [
|
|
30
|
-
`${cookieName}=${result.jti}`,
|
|
31
|
-
"HttpOnly",
|
|
32
|
-
"Path=/",
|
|
33
|
-
"SameSite=Lax",
|
|
34
|
-
`Max-Age=${FRESH_PROOF_CHALLENGE_TTL_MS / 1000}`,
|
|
35
|
-
];
|
|
36
|
-
if (scope.secure)
|
|
37
|
-
cookieParts.push("Secure");
|
|
38
|
-
if (scope.cookieDomain !== undefined)
|
|
39
|
-
cookieParts.push(`Domain=${scope.cookieDomain}`);
|
|
40
|
-
return new Response(null, {
|
|
41
|
-
status: 403,
|
|
42
|
-
headers: {
|
|
43
|
-
[CHALLENGE_HEADER]: header,
|
|
44
|
-
[LEGACY_CHALLENGE_HEADER]: header,
|
|
45
|
-
"set-cookie": cookieParts.join("; "),
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
4
|
/**
|
|
50
5
|
* The route guard for SvelteKit. `await` it at the top of a `+server` handler
|
|
51
6
|
* or a form action, after `dbscHandle` has populated `event.locals.dbsc`:
|
|
52
7
|
*
|
|
53
8
|
* export async function POST(event) {
|
|
54
|
-
*
|
|
55
|
-
* if (challenge) return challenge; // freshProof 403 — return it
|
|
9
|
+
* await requireProof()(event);
|
|
56
10
|
* // ... reached only from the bound device
|
|
57
11
|
* }
|
|
58
12
|
*
|
|
59
|
-
*
|
|
60
|
-
* or rejection) — return it from your handler. Otherwise returns `void`, and
|
|
61
|
-
* throws a SvelteKit `error(403)` when there is no binding or the bound proof
|
|
62
|
-
* fails. The `Response` path is only reached on a native `dbsc` session with
|
|
63
|
-
* `freshProof` active (default when the polyfill is off).
|
|
13
|
+
* Throws a SvelteKit `error(403)` when there is no binding or the proof fails.
|
|
64
14
|
*/
|
|
65
15
|
export function requireProof(opts = {}) {
|
|
66
16
|
return async (event) => {
|
|
@@ -74,15 +24,6 @@ export function requireProof(opts = {}) {
|
|
|
74
24
|
if (!storage) {
|
|
75
25
|
throw error(500, "requireProof: storage unavailable — add dbscHandle to hooks.server.ts, or pass { storage }");
|
|
76
26
|
}
|
|
77
|
-
if (freshProofActive({
|
|
78
|
-
tier,
|
|
79
|
-
boundEnabled: internal?.boundEnabled,
|
|
80
|
-
freshProof: opts.freshProof,
|
|
81
|
-
allowDbscWithoutProof: opts.allowDbscWithoutProof,
|
|
82
|
-
})) {
|
|
83
|
-
const blocked = await runNativeFreshProof(event, session.sessionId, storage, internal);
|
|
84
|
-
return blocked ?? undefined;
|
|
85
|
-
}
|
|
86
27
|
const allowDbscWithoutProof = opts.allowDbscWithoutProof ?? (internal?.boundEnabled === false ? true : undefined);
|
|
87
28
|
if (tier === "dbsc" && allowDbscWithoutProof)
|
|
88
29
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-proof.js","sourceRoot":"","sources":["../../src/sveltekit/require-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"require-proof.js","sourceRoot":"","sources":["../../src/sveltekit/require-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAgD,MAAM,YAAY,CAAC;AAEzF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4B,EAAE;IACzD,OAAO,KAAK,EAAE,KAAmB,EAAiB,EAAE;QAClD,MAAM,OAAO,GAAI,KAAK,CAAC,MAAkC,CAAC,IAAwC,CAAC;QACnG,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAI,OAAmD,CAAC,aAAa,CAA6B,CAAC;QACjH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,GAAG,EAAE,4FAA4F,CAAC,CAAC;QACjH,CAAC;QAED,MAAM,qBAAqB,GACzB,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtF,IAAI,IAAI,KAAK,MAAM,IAAI,qBAAqB;YAAE,OAAO;QAErD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC;QACjF,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,gBAAgB,CACpB;gBACE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,WAAW;gBACX,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;gBAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;gBACxB,QAAQ,EAAE,IAAI;gBACd,SAAS;gBACT,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1F,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;aAClF,EACD,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbsc-toolkit",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.1",
|
|
4
4
|
"description": "Server-side Device Bound Session Credentials (DBSC) for Node.js — Express, Fastify, Hono and Next.js adapters — plus a Web Crypto polyfill for Firefox, Safari, and older Chromium. Cookie-theft protection on every modern browser.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { CookieScope, CookieScopeOptions } from "../cookies/options.js";
|
|
2
|
-
import type { StorageAdapter } from "../types.js";
|
|
3
|
-
/** Shared TTL for the `__Host-dbsc-challenge` cookie the handshake round-trips. */
|
|
4
|
-
export declare const FRESH_PROOF_CHALLENGE_TTL_MS: number;
|
|
5
|
-
export interface FreshProofScope {
|
|
6
|
-
secure: boolean;
|
|
7
|
-
cookieScope?: CookieScope;
|
|
8
|
-
cookieDomain?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Resolve whether the native fresh-proof handshake should run for this request.
|
|
12
|
-
* Default on when the polyfill is off (no bound key to verify per request);
|
|
13
|
-
* the explicit `freshProof` option overrides; an explicit `allowDbscWithoutProof:
|
|
14
|
-
* true` forces relax. Adapters call this so the policy is identical everywhere.
|
|
15
|
-
*/
|
|
16
|
-
export declare function freshProofActive(args: {
|
|
17
|
-
tier: string;
|
|
18
|
-
boundEnabled: boolean | undefined;
|
|
19
|
-
freshProof: boolean | undefined;
|
|
20
|
-
allowDbscWithoutProof: boolean | undefined;
|
|
21
|
-
}): boolean;
|
|
22
|
-
/** The challenge cookie name for a given scope (`__Host-dbsc-challenge` / `dbsc-challenge`). */
|
|
23
|
-
export declare function challengeCookieName(scope: CookieScopeOptions): string;
|
|
24
|
-
export interface NativeProofGuardRequest {
|
|
25
|
-
sessionId: string;
|
|
26
|
-
/** The `Secure-Session-Response` JWS the browser sent on retry, if any. */
|
|
27
|
-
secSessionResponseHeader: string | undefined;
|
|
28
|
-
/** The challenge JTI the browser was previously handed (from the challenge cookie). */
|
|
29
|
-
expectedJti: string | undefined;
|
|
30
|
-
}
|
|
31
|
-
export type NativeProofGuardResult =
|
|
32
|
-
/** Proof verified against the native key; let the request through. */
|
|
33
|
-
{
|
|
34
|
-
kind: "pass";
|
|
35
|
-
}
|
|
36
|
-
/** No proof yet (or no prior challenge). Send 403 + this challenge so Chrome refreshes and retries. */
|
|
37
|
-
| {
|
|
38
|
-
kind: "challenge";
|
|
39
|
-
jti: string;
|
|
40
|
-
}
|
|
41
|
-
/** A proof was sent but failed verification. Reject; do not re-challenge (avoids loops). */
|
|
42
|
-
| {
|
|
43
|
-
kind: "reject";
|
|
44
|
-
error: string;
|
|
45
|
-
code: string;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Framework-agnostic core of `requireProof({ freshProof: true })` on a native
|
|
49
|
-
* `dbsc` session. Drives the W3C 403-challenge handshake: when no proof is
|
|
50
|
-
* present it issues a challenge for the adapter to return as 403 +
|
|
51
|
-
* `Secure-Session-Challenge`; when a proof is present it verifies it against the
|
|
52
|
-
* stored native key by reusing `handleRefresh` (single source of truth for
|
|
53
|
-
* native-proof verification — including challenge single-use and demoting the
|
|
54
|
-
* session to `none` on a bad signature). A stolen cookie cannot produce a valid
|
|
55
|
-
* proof, so it ends up rejected per request.
|
|
56
|
-
*/
|
|
57
|
-
export declare function guardNativeProof(req: NativeProofGuardRequest, storage: StorageAdapter): Promise<NativeProofGuardResult>;
|
|
58
|
-
//# sourceMappingURL=native-proof-guard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-proof-guard.d.ts","sourceRoot":"","sources":["../../../src/core/protocol/native-proof-guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,mFAAmF;AACnF,eAAO,MAAM,4BAA4B,QAAgB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5C,GAAG,OAAO,CAIV;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAErE;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,uFAAuF;IACvF,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,sBAAsB;AAChC,sEAAsE;AACpE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,uGAAuG;GACrG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACpC,4FAA4F;GAC1F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { handleRefresh } from "./refresh.js";
|
|
2
|
-
import { issueChallenge } from "./challenge.js";
|
|
3
|
-
import { cookieNames } from "../cookies/options.js";
|
|
4
|
-
import { DbscVerificationError } from "../errors.js";
|
|
5
|
-
/** Shared TTL for the `__Host-dbsc-challenge` cookie the handshake round-trips. */
|
|
6
|
-
export const FRESH_PROOF_CHALLENGE_TTL_MS = 5 * 60 * 1000;
|
|
7
|
-
/**
|
|
8
|
-
* Resolve whether the native fresh-proof handshake should run for this request.
|
|
9
|
-
* Default on when the polyfill is off (no bound key to verify per request);
|
|
10
|
-
* the explicit `freshProof` option overrides; an explicit `allowDbscWithoutProof:
|
|
11
|
-
* true` forces relax. Adapters call this so the policy is identical everywhere.
|
|
12
|
-
*/
|
|
13
|
-
export function freshProofActive(args) {
|
|
14
|
-
if (args.tier !== "dbsc")
|
|
15
|
-
return false;
|
|
16
|
-
if (args.allowDbscWithoutProof === true)
|
|
17
|
-
return false;
|
|
18
|
-
return args.freshProof ?? args.boundEnabled === false;
|
|
19
|
-
}
|
|
20
|
-
/** The challenge cookie name for a given scope (`__Host-dbsc-challenge` / `dbsc-challenge`). */
|
|
21
|
-
export function challengeCookieName(scope) {
|
|
22
|
-
return cookieNames(scope).challenge;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Framework-agnostic core of `requireProof({ freshProof: true })` on a native
|
|
26
|
-
* `dbsc` session. Drives the W3C 403-challenge handshake: when no proof is
|
|
27
|
-
* present it issues a challenge for the adapter to return as 403 +
|
|
28
|
-
* `Secure-Session-Challenge`; when a proof is present it verifies it against the
|
|
29
|
-
* stored native key by reusing `handleRefresh` (single source of truth for
|
|
30
|
-
* native-proof verification — including challenge single-use and demoting the
|
|
31
|
-
* session to `none` on a bad signature). A stolen cookie cannot produce a valid
|
|
32
|
-
* proof, so it ends up rejected per request.
|
|
33
|
-
*/
|
|
34
|
-
export async function guardNativeProof(req, storage) {
|
|
35
|
-
// No proof header, or no prior challenge to verify against → issue one and ask
|
|
36
|
-
// the browser to refresh. Chrome signs it with the hardware key and retries.
|
|
37
|
-
if (!req.secSessionResponseHeader || !req.expectedJti) {
|
|
38
|
-
const challenge = await issueChallenge(req.sessionId, storage);
|
|
39
|
-
return { kind: "challenge", jti: challenge.jti };
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
await handleRefresh({
|
|
43
|
-
sessionId: req.sessionId,
|
|
44
|
-
secSessionResponseHeader: req.secSessionResponseHeader,
|
|
45
|
-
expectedJti: req.expectedJti,
|
|
46
|
-
}, storage);
|
|
47
|
-
return { kind: "pass" };
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
// Proof present but invalid (forged/expired/replayed). handleRefresh already
|
|
51
|
-
// consumed the challenge and, on a bad signature, demoted the session to
|
|
52
|
-
// `none`. Reject without re-challenging so a broken or hostile client can't
|
|
53
|
-
// loop; the next request sees `none` and 403s at the tier check.
|
|
54
|
-
if (err instanceof DbscVerificationError) {
|
|
55
|
-
return { kind: "reject", error: err.message, code: err.code };
|
|
56
|
-
}
|
|
57
|
-
throw err;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=native-proof-guard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-proof-guard.js","sourceRoot":"","sources":["../../../src/core/protocol/native-proof-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,mFAAmF;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAQ1D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAKhC;IACC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;AACxD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAkBD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,OAAuB;IAEvB,+EAA+E;IAC/E,6EAA6E;IAC7E,IAAI,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CACjB;YACE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;YACtD,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,EACD,OAAO,CACR,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6EAA6E;QAC7E,yEAAyE;QACzE,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|