Sentinel Gate — product requirements
Sentinel Gate is a sign-in portal that verifies a password and then a human-verification challenge bound to the account: distorted text, canvas math, a 3x3 image grid, a jigsaw slider, drag-shapes-to-outlines, rotate-upright, or a three-stage chain. Repeated failures lock the browser tab for 30 seconds. After sign-in, a security overview shows a score, the signed-in devices, an access log and recovery codes that sit behind a step-up challenge.
Problem. Account owners need a sign-in that stops scripted guessing without locking out real people, and a clear view of which devices are signed in so they can remove the ones they do not recognise.
Users
- Account owner — Sign in with a short, fair challenge and manage trusted devices afterwards.
- Security-minded user — Keep recovery codes hidden until identity is re-verified and see every sign-in event in a log.
- Operator — Be sure that wrong answers are always refused, repeated failures lock the tab, and the browser never receives the correct answers.
Goals
- Only a correct password plus a correct challenge answer signs a user in.
- Three consecutive failures lock the tab for 30 seconds, whether the failure was a password or a challenge.
- Device actions affect exactly the device the user clicked, and the security score always reflects the device list.
Out of scope
- Audio captcha (the speaker icon is decorative)
- Account recovery and password reset
- Real device fingerprinting
Contents
Password step
First step of sign-in; a correct password reveals the account’s challenge.
- Opening the portal shows the sign-in card with Username, Password and a disabled "Continue"
- Valid credentials show the challenge assigned to that account
- Message "Username or password is incorrect" with "1 of 3" and "2 of 3" on the first two failures
- The third failure locks the tab (see lockout)
Text captcha
A five-character code drawn on a noisy canvas.
- Title "Type the characters you see", stage chip "1 / 1" and a 90 s countdown
- Five characters from A–Z and 2–9 (no 0, O, 1, I or L)
- Success flashes green and opens the security overview; the access log starts with "Signed in" followed by "Challenge · text passed"
- Tooltip "Letters are not case-sensitive"
- The code typed in lowercase or UPPERCASE is accepted
- Message "That was not right — try this one"; the input is cleared and focused
- The first of three pips is filled red
- The log records a red "Challenge · text answered incorrectly" row
- Caption counts "4 refreshes left" down to "0 refreshes left" and the icon is disabled with tooltip "Refresh limit reached — answer this challenge"
- All pips stay hollow
Math captcha
A short sum drawn on a canvas.
- Title "Solve to continue"
- A wrong answer fills the first pip red and draws a new expression
- After sign-in the greeting reads "Welcome back, <first name>" with the account chip "math"
Image grid
Select every tile of a 3x3 grid that shows the named object.
- Banner "Select all squares with" and the object name; nine pictogram tiles without text
- A clicked tile shows a blue ✓ disc and clicking it again deselects it; "n selected" matches the ticks
- A correct selection that includes bottom-row tiles signs the user in and logs "Challenge · grid passed"
- Message "That was not right — try this one" and one red pip
- The new grid may show a different object
Jigsaw slider
Drag the piece into the notch of a textured picture.
- Title "Slide to complete the puzzle"; the piece follows the handle and the "Drag →" label hides while dragging
- The track turns green with ✓ and the user is signed in; log shows "Challenge · slider passed"
Drag-to-match
Drag four coloured shapes onto lookalike dashed outlines.
- Title "Drag each shape onto its outline"; at least two outlines are lookalikes (e.g. pentagon vs hexagon, square vs diamond)
- A shape glows over an outline and snaps in on drop; dragging it back to the tray empties the outline and disables "Verify" until all four are placed
- A correct mapping signs the user in and logs "Challenge · match passed"
- Swapping lookalike shapes, or placing every shape on a wrong outline, shows "That was not right — try this one"
- One pip turns red and a new set of shapes and outlines is shown
Rotate upright
Turn a tilted picture upright with ↺ and ↻.
- Title "Rotate the picture upright"; icon-only ↺ and ↻ buttons either side of a "0°" readout
- One ↻ click turns the picture 45° clockwise and the readout shows "+45°"
- Verifying an upright scene signs the user in
Chained verification
Accounts with a three-stage challenge: grid, then match, then text.
- Chip "1 / 3" with the first dot filled; passing a stage advances to "2 / 3" and "3 / 3"
- A wrong match answer shows a red pip, stays on "2 / 3" with new shapes, not back at the grid
- After the last stage the overview chip reads "grid → match → text", and the "Single-stage verification" finding is not shown
- Log order, newest first: Signed in, text passed (stage 3/3), match passed (stage 2/3), match answered incorrectly, grid passed (stage 1/3)
Attempts and lockout
Three failures lock the tab; challenges expire.
- The card becomes a lock panel with "Too many attempts. Try again in 30 s" and a ring countdown; no input is available
- Reloading keeps the lock and the remaining seconds
- When the countdown ends the empty sign-in form returns and all three pips are hollow
- Countdown turns amber below 15 s; at 0 the card shows "Expired" over a dimmed canvas with a "New challenge" button
- "New challenge" issues a fresh challenge with the timer back at 90 and no failure recorded
Security overview and devices
Score, device list, trust and revoke.
- Order: This browser, Work laptop, Phone, Tablet, Build agent
- Dots: This browser blue ring (current); Work laptop green; Phone grey; Tablet grey; Build agent green
- Filled shield (trusted) for the first three; outline shield for Tablet and Build agent
- Build agent last-seen tooltip shows a timestamp about 9 days ago
- Tooltip "Revoke"; inline confirm "Revoke Tablet? Yes / No"
- Only that row turns grey with a red "revoked" dot and a struck-through name; all others are unchanged
- Findings change from "2 untrusted devices still signed in" to "1 untrusted device still signed in" and the log shows "Device revoked · Tablet (Chrome 140)"
- Trusting Build agent fills the shield (tooltip "Trusted — click to untrust") and raises the score
- Clicking again restores the outline shield and the previous score
- A score below 100 shows an amber arc with matching findings
Recovery codes
Eight recovery codes revealed only after a step-up challenge.
- Eight blurred chips and a "Reveal" button; "Reveal" opens "Verify it’s you" with a drag-to-match challenge
- After success: eight codes in XXXX-XXXX form and a "hides in 2:00" timer
- "Hide" blurs them; "Reveal" within 2 minutes shows the same codes without a new challenge
- Without a passed step-up the codes are refused with "Verify it is you first"
Session
Sign-out and access to the signed-in area.
- "Sign out" from the avatar menu returns to the sign-in card
- Opening the overview directly redirects to the sign-in card and Back does not show it
- The overview API without a session answers 401 "Sign in first"
Non-functional requirements
- An incorrect answer through the API answers 422 "That was not right" with a new challenge id
- A replaced or expired challenge id is refused
Glossary and rules
| Attempt pips | Three dots under the challenge title; one turns red per failure. |
|---|---|
| Step-up | A fresh challenge required to view recovery codes; valid for 2 minutes. |
| Trusted device | A device the owner marked trusted; untrusted live devices lower the score. |