Skip to content
academia.sh

Unit 02 of 02

Security and External Services

Encrypted storage and the Keystore, network security configuration, authentication flows, app signing, analytics and crash reporting, remote configuration, and in-app purchases and ads.

Published Updated

Lessons

  1. 01 Encrypted Storage and the Keystore A secret the app writes is encrypted with a key in the keystore; if the key is bound to user authentication, it is invalidated when the lock screen is removed and the record can no longer be read. The lesson measures how many copies of a written secret reach the next read. 15 min read
  2. 02 Network Security Configuration Network security configuration decides on cleartext traffic, trusted certificate sources, and domain-specific rules. The lesson measures how many copies of a request blocked as cleartext reached the server, and the outcome of a connection that does not match a pinned certificate. 14 min read
  3. 03 Authentication Flows Biometric authentication opens a gate on the device, while account-based sign-in gives the server an access token and a refresh token. The lesson measures how many copies reach the server when concurrent requests start the same refresh twice, and how single flight changes that. 15 min read
  4. 04 App Signing Every released version is signed with a signing key, and the device installs an update only if it comes from the same certificate as the installed app. The lesson measures how many copies of a released version reached the installed app on the device, and what happens to a version signed with a different key. 15 min read
  5. 05 Analytics and Crash Reporting Analytics events and crash reports travel from an upload queue to the server; if the response is lost, the client retries the same event. The lesson measures how many copies of a sent event reached the server, how a bounded queue drops the oldest events, and why deduplication does not change the delivery. 14 min read
  6. 06 Remote Configuration In remote configuration, the app fetches values from the server and activates them in a separate step. The lesson measures the last value winning for a key fetched twice before activation, the first value being superseded, and a value that is fetched but not activated being lost. 15 min read
  7. 07 In-App Purchases and Ads In an in-app purchase, a purchase that is not acknowledged is redelivered every time the platform queries purchases. The lesson measures an unacknowledged purchase arriving duplicated, an acknowledged one arriving once, and a refunded one being lost; it then gathers the delivery of the 14 lessons in a single table. 10 min read

Start typing to search.

↑↓ ↵ Esc navigate · open · close