Project notebook / Systems
DocumentedHardening iOS Device Trust Signals
I hardened iOS device-trust decisions by separating untrusted client signals from evidence verified by backend services.
What I built
- I defined server-issued nonce challenges, separated verifiable evidence from advisory device signals, and implemented rejection paths for stale, replayed and mismatched requests.
Experiments & checks
- Check nonce freshness, binding, and replay rejection at the API boundary.
- Treat instrumentation and device posture claims as advisory unless independently verified.
- Exercise outage and fallback paths for privileged actions.
Notes & limitations
Client-side device posture was being treated as stronger evidence than the backend could verify. That created room for replay and manipulated signals in high-risk decisions.
Needed to preserve user experience under partial outages while still failing closed for privileged actions.
I made the verification boundary explicit: backend evidence could inform a privileged decision, while client posture alone could not. The case study focuses on that design and its failure paths, rather than publishing private system telemetry.
Screenshots & media

Project updates
Dated notes tied to actual revisions of the site, not a simulated activity feed.
Projects index updated
Removed featured project categories and aligned the projects directory.
Site revision aadd62d
Project workspaces published
Added the project's documentation, architecture and verification views.
Site revision 67a4a50
These entries reflect published changes to this website. The website repository is private; revision IDs are not public source links.
Discuss this project
Questions, ideas, minimal reproductions and corrections are welcome. Each project has its own public GitHub Discussion.
You can read without an account; posting requires GitHub sign-in. Keep private customer information, credentials and restricted material out of public threads.
Open this project's discussion