<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Attestation on Corebaseit — POS · EMV · Payments · AI · Telecommunications</title><link>https://corebaseit.com/tags/attestation/</link><description>Recent content in Attestation on Corebaseit — POS · EMV · Payments · AI · Telecommunications</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>contact@corebaseit.com (Vincent Bevia)</managingEditor><webMaster>contact@corebaseit.com (Vincent Bevia)</webMaster><lastBuildDate>Mon, 15 Jun 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://corebaseit.com/tags/attestation/index.xml" rel="self" type="application/rss+xml"/><item><title>What Makes a Payment Terminal Secure: SmartPOS vs SoftPOS</title><link>https://corebaseit.com/corebaseit_posts/what-makes-a-payment-terminal-secure/</link><pubDate>Mon, 15 Jun 2026 10:00:00 +0200</pubDate><author>contact@corebaseit.com (Vincent Bevia)</author><guid>https://corebaseit.com/corebaseit_posts/what-makes-a-payment-terminal-secure/</guid><description>&lt;p>In the POS systems I have worked on, &amp;ldquo;is this terminal secure?&amp;rdquo; almost never has a hardware-only answer. The card read is one boundary. The PIN entry is another. So are key storage, the EMV kernel, the backend that finalizes the transaction, and the logic that recovers a payment after a crash. A terminal is secure when each of those boundaries is controlled, from the moment the card or phone is presented until the payment is authorized, finalized, and logged.&lt;/p>
&lt;p>That framing matters more now because two very different devices both call themselves &amp;ldquo;terminals.&amp;rdquo; A traditional SmartPOS is purpose-built, certified hardware. A SoftPOS turns an ordinary phone into an acceptance device. They solve the same business problem and they do not share the same security model.&lt;/p>
&lt;p align="center">
&lt;img src="https://corebaseit.com/diagrams/secure-pos.png" alt="A payment terminal is only as secure as its entire system. The security boundaries run from card or device presented, to PIN and CVM entry, EMV kernel and transaction logic, key storage and cryptography, backend authorization and finalization, and logging, reconciliation, and recovery. Two trust models compared: SmartPOS uses hardware-rooted trust (certified PCI PTS POI hardware, secure PIN entry environment, tamper-resistant secure boot and signed firmware, protected key storage such as DUKPT) and is trusted by construction; SoftPOS uses system-rooted, continuous trust (certified PCI MPoC payment SDK, device attestation every transaction, app hardening and runtime protections, backend monitoring and risk controls) and is untrusted until verified on every transaction. The card-data boundary: card data is captured only by approved components, and P2PE encrypts it at the point of acceptance and keeps it unreadable until a secure decryption environment. What decides if a transaction is actually safe: authorized by issuer, finalized with acquirer or PSP, idempotent with no duplicates, recoverable after crash or network loss, and logged and reconciled. Takeaway: security comes from controlling every trust boundary, and the real security boundary is the complete acceptance system." style="max-width: 1024px; width: 100%;" />
&lt;/p>
&lt;h2 id="two-trust-models">Two trust models
&lt;/h2>&lt;p>A SmartPOS starts from hardware trust. Security is rooted in a certified point-of-interaction (POI) device: tamper resistance, a secure PIN entry environment, protected key storage, secure boot, and signed firmware. PCI PTS POI is the standard family that defines those device-level requirements for protecting PINs, account data, and other sensitive data captured at the point of interaction.&lt;/p>
&lt;p>A SoftPOS starts from the opposite assumption. The device is a commercial off-the-shelf (COTS) phone that may be rooted, hooked, screen-recorded, running an overlay, or sitting on an unpatched OS build. There is no tamper-resistant enclosure to lean on. Trust has to be built in software and confirmed continuously: a certified payment SDK, runtime attestation, app hardening, restricted data exposure, and backend monitoring. PCI MPoC (Mobile Payments on COTS) is the current PCI SSC framework for this, and it consolidates the earlier SPoC and CPoC models while supporting both PIN and contactless cardholder data entry on the same COTS device. I develop this shift from hardware-rooted to system-rooted trust in depth in &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 5 (Trusted POS Architectures in the COTS Era).&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Dimension&lt;/th>
&lt;th>SmartPOS&lt;/th>
&lt;th>SoftPOS&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Root of trust&lt;/td>
&lt;td>Certified hardware (PCI PTS POI)&lt;/td>
&lt;td>Certified software + device attestation (PCI MPoC)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PIN entry&lt;/td>
&lt;td>Secure PIN pad, tamper-protected&lt;/td>
&lt;td>PIN-on-glass under strict software controls&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Device assumption&lt;/td>
&lt;td>Trusted by construction&lt;/td>
&lt;td>Untrusted until verified, every transaction&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Main failure surface&lt;/td>
&lt;td>Physical attack, firmware, estate management&lt;/td>
&lt;td>OS compromise, overlays, repackaging, integration&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Deployment cost and speed&lt;/td>
&lt;td>Higher cost, slower rollout&lt;/td>
&lt;td>Lower cost, fast rollout&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Neither model is automatically secure. They move the hard problems to different places.&lt;/p>
&lt;h2 id="the-card-data-boundary">The card-data boundary
&lt;/h2>&lt;p>A secure terminal ensures that PAN, track-equivalent data, EMV tags, cryptograms, and sensitive authentication data are captured only by approved components.&lt;/p>
&lt;p>On SmartPOS, certified hardware and signed firmware own that capture. On SoftPOS, the payment SDK and its certified EMV component must own the NFC and payment flow. The merchant&amp;rsquo;s business app should orchestrate the payment, never handle raw card data, and never become the security boundary itself. This is the single most common architecture mistake I see in COTS acceptance: a business app that reaches too far into the payment flow &amp;ldquo;for convenience&amp;rdquo; and quietly expands PCI scope. The layered separation that keeps the business app out of the payment boundary is the subject of &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 6 (POS Application Architecture), under the &amp;ldquo;security by design&amp;rdquo; and &amp;ldquo;separation of concerns&amp;rdquo; principles.&lt;/p>
&lt;p>P2PE (point-to-point encryption) reinforces this boundary by encrypting account data at the point of acceptance and keeping it unreadable until it reaches a secure decryption environment. A validated P2PE solution can reduce merchant PCI scope, but only with approved devices, controlled key management, and no clear cardholder data in the merchant environment.&lt;/p>
&lt;h2 id="pin-cvm-and-the-pin-on-glass-question">PIN, CVM, and the PIN-on-glass question
&lt;/h2>&lt;p>PIN entry is one of the most sensitive operations a terminal performs. On hardware terminals, it depends on PCI PTS-approved PIN entry devices, secure key injection, and encrypted PIN blocks. I have written separately about how those encrypted PIN blocks move between key domains in &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/pin-translation/" >PIN translation&lt;/a>, and why &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/pin_still_matters_in_card_present_payments/" >PIN still matters in card-present payments&lt;/a>.&lt;/p>
&lt;p>PIN-on-glass on a SoftPOS is not &amp;ldquo;just draw a keypad.&amp;rdquo; It is a certified design that combines input randomization, screen and overlay protection, runtime integrity checks, secure cryptography, and backend monitoring of the PIN data path. The older SPoC standard was built specifically for software-based PIN entry on COTS devices; MPoC now absorbs that use case into a broader model. The practical rule: a custom keypad inside an ordinary app is not equivalent to secure PIN entry, no matter how it looks. The full online-PIN path — ISO 9564 PIN block formats, HSM custody, and TR-31 key blocks — is covered in &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 11 (HSMs and PIN Blocks).&lt;/p>
&lt;h2 id="key-protection-across-the-lifecycle">Key protection across the lifecycle
&lt;/h2>&lt;p>A terminal must protect cryptographic keys through their whole life, not just at rest.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Stage&lt;/th>
&lt;th>Requirement&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Generation&lt;/td>
&lt;td>Strong entropy, approved process&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Injection / provisioning&lt;/td>
&lt;td>Secure channel, HSM-backed&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Storage&lt;/td>
&lt;td>Hardware-backed or otherwise protected&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Use&lt;/td>
&lt;td>Keys never exposed unnecessarily&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Rotation&lt;/td>
&lt;td>Controlled renewal and revocation&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Destruction&lt;/td>
&lt;td>Secure deletion or invalidation&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Audit&lt;/td>
&lt;td>Traceability of key lifecycle events&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>On hardware terminals this is typically anchored in DUKPT key management with HSM-backed injection; I cover the mechanics in &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/dukpt-key-derivation/" >DUKPT key derivation&lt;/a> and, at book length, in &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 10 (DUKPT Key Management) and Ch. 9 (Cryptography Foundations). On Android SoftPOS, the Android Keystore helps: it can keep key material non-exportable and perform cryptographic operations outside the app process. That is a real protection, but a limited one. Keystore stops a compromised app from extracting a key. It does not stop that app from misusing the key while it runs. Payment-grade key security still needs certified SDK design, attestation, and HSM-backed payment key management behind it.&lt;/p>
&lt;h2 id="device-integrity-and-attestation">Device integrity and attestation
&lt;/h2>&lt;p>For SoftPOS, the question is not &amp;ldquo;was this device safe at onboarding?&amp;rdquo; It is &amp;ldquo;can this device be trusted right now, for this transaction?&amp;rdquo; That is the core difference from hardware: trust is a runtime property, not a manufacturing one.&lt;/p>
&lt;p>Typical runtime checks include root and jailbreak detection, bootloader and OS patch state, debugger and hooking detection, emulator detection, app signature validation, screen-overlay detection, and attestation freshness. Each addresses a specific risk: privileged attacker control, modified firmware, known vulnerabilities, runtime manipulation, repackaged apps, and PIN or UI capture.&lt;/p>
&lt;p>Attestation is necessary, but it is a signal, not a verdict. It can be stale, vendor-dependent, incomplete, or bypassed in some threat models, especially across a fragmented Android ecosystem. It earns its place only when paired with app hardening, transaction limits, secure distribution, and backend risk controls.&lt;/p>
&lt;h2 id="emv-correctness-is-a-security-property-too">EMV correctness is a security property, too
&lt;/h2>&lt;p>It is tempting to treat EMV as a reliability concern and cryptography as the security concern. In production they are the same concern. Wrong application selection can affect routing and acceptance. Incorrect CVM processing changes whether a PIN, on-device CVM, signature, or no verification is used. Mishandled cryptograms weaken the issuer&amp;rsquo;s authentication evidence. The cryptogram is the part that makes a chip transaction hard to clone, which I explain in &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/emv-cryptograms-arqc/" >EMV cryptograms and the ARQC&lt;/a>.&lt;/p>
&lt;p>EMV approval levels frame this: L1 covers the physical and contactless interface, L2 covers kernel transaction logic, and L3 covers end-to-end integration with the acquirer, processor, and scheme. EMVCo&amp;rsquo;s L1/L2 testing checks whether devices and form factors meet the specifications for performance and compatibility, and contactless approval requires validating the proximity coupling device, the entry point, and at least one kernel. Approval is not a security certification, but a terminal with strong encryption can still fail in production if its kernel behavior, contactless timing, or CVM handling is wrong. For the full certification picture, see &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/l3-certification-paths-ctap-smartpos-softpos/" >L3 certification paths&lt;/a>, and &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 3 (EMV Principles) and Ch. 17 (Testing and Certification).&lt;/p>
&lt;h2 id="many-payment-failures-are-state-machine-failures">Many payment failures are state-machine failures
&lt;/h2>&lt;p>Here is the part that gets underweighted: a terminal can be cryptographically perfect and still cause financial harm. A large share of real incidents are not data theft. They are transaction-state failures.&lt;/p>
&lt;p>The questions that decide whether a transaction is actually safe are operational: Was it authorized? Was it finalized with the acquirer or PSP? Was a reversal needed? Did the result get back to the merchant app? Can the outcome be recovered after a crash or network loss? Is the merchant reference idempotent?&lt;/p>
&lt;p>Three patterns cause most of the damage I have seen:&lt;/p>
&lt;ul>
&lt;li>Returning &amp;ldquo;approved&amp;rdquo; to a calling app before backend finalization, which creates reconciliation gaps and duplicate charges. This is acute in app-to-app flows where a business app launches a Tap to Pay app and trusts the local intent result instead of the backend.&lt;/li>
&lt;li>Weak idempotency, so a retry becomes a second authorization or capture.&lt;/li>
&lt;li>Poor recovery logic, so an app crash after authorization but before finalization leaves an unknown outcome.&lt;/li>
&lt;/ul>
&lt;p>These are the same lifecycle issues behind &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/partial_approvals_and_how_terminals/" >partial approvals&lt;/a> and &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/reversals-refunds-chargebacks-payment-lifecycle/" >reversals, refunds, and chargebacks&lt;/a>, and they get harder when the link drops, which is why &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/offline-emv-vs-store-and-forward/" >offline and store-and-forward&lt;/a> handling has to be designed, not improvised. Transport encryption with TLS, certificate validation, and mutual authentication protects the channel. It does nothing for finalization discipline, idempotency, or reconciliation. I treat the transaction as a finite state machine for exactly this reason in &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Ch. 6 (deterministic state management), Ch. 13 (Pre-Authorization and Completion Flows), and Ch. 14 (Offline and Store-and-Forward).&lt;/p>
&lt;h2 id="confirmed-facts-vs-interpretation">Confirmed facts vs interpretation
&lt;/h2>&lt;p>Separating what the standards say from what I conclude from them:&lt;/p>
&lt;p>Confirmed (per the cited standards):&lt;/p>
&lt;ul>
&lt;li>PCI PTS POI defines security requirements for devices that protect PINs, account data, and sensitive payment data at the point of interaction.&lt;/li>
&lt;li>PCI MPoC supports mobile payment acceptance on COTS devices and combines aspects of SPoC and CPoC, including PIN and contactless entry on the same device.&lt;/li>
&lt;li>PCI SSC has set a sunset direction for SPoC and CPoC during 2026, pointing entities toward MPoC. Confirm the exact dates against the current PCI SSC announcement before you plan around them.&lt;/li>
&lt;li>EMV L1/L2 testing assesses whether devices and form factors meet EMV specifications for performance and compatibility.&lt;/li>
&lt;li>P2PE protects account data from acceptance to secure decryption.&lt;/li>
&lt;li>The Android Keystore can keep key material non-exportable and outside the app process during cryptographic operations.&lt;/li>
&lt;/ul>
&lt;p>Interpretation (mine):&lt;/p>
&lt;ul>
&lt;li>SmartPOS security is primarily hardware-rooted; SoftPOS security is system-rooted and continuous.&lt;/li>
&lt;li>For new SoftPOS programs, MPoC is the practical target unless an acquirer or payment brand requires another path during transition.&lt;/li>
&lt;li>EMV correctness is as important as cryptographic strength.&lt;/li>
&lt;li>&amp;ldquo;Approved&amp;rdquo; is not &amp;ldquo;safely completed&amp;rdquo; unless finalization, reconciliation, and recovery are handled.&lt;/li>
&lt;li>A secure terminal architecture has to include operational resilience, not only data protection.&lt;/li>
&lt;/ul>
&lt;h2 id="the-takeaway">The takeaway
&lt;/h2>&lt;p>A payment terminal is not secure because it has a chip reader or NFC. It is secure because every trust boundary is controlled: card read, PIN and CVM, EMV logic, keys, device integrity, backend finalization, and recovery. SmartPOS gets there from certified hardware. SoftPOS gets there by building and continuously verifying trust on a device it does not control.&lt;/p>
&lt;p>The terminal is one part of the story. The real security boundary is the complete acceptance system. If you are designing one, the first question is not &amp;ldquo;which device?&amp;rdquo; It is &amp;ldquo;where is the trust boundary, and what happens to a transaction after approval?&amp;rdquo;&lt;/p>
&lt;h2 id="references">References
&lt;/h2>&lt;p>Primary reference (this post is built on it):&lt;/p>
&lt;ul>
&lt;li>Bevia, V. &lt;em>Point-of-Sale Systems Architecture: A Practical Guide to Secure, Certifiable POS Systems&lt;/em>. &lt;a class="link" href="https://corebaseit.com/books/point-of-sale-systems-architecture/" >Book page&lt;/a>. Chapters most relevant here:
&lt;ul>
&lt;li>Ch. 3 — EMV Principles&lt;/li>
&lt;li>Ch. 5 — Trusted POS Architectures in the COTS Era (SmartPOS vs SoftPOS trust models)&lt;/li>
&lt;li>Ch. 6 — POS Application Architecture (security by design, the payment trust boundary, deterministic state)&lt;/li>
&lt;li>Ch. 9 — Cryptography Foundations&lt;/li>
&lt;li>Ch. 10 — DUKPT Key Management&lt;/li>
&lt;li>Ch. 11 — HSMs and PIN Blocks (ISO 9564 PIN blocks, online PIN, TR-31 key blocks)&lt;/li>
&lt;li>Ch. 13 — Pre-Authorization and Completion Flows&lt;/li>
&lt;li>Ch. 14 — Offline and Store-and-Forward&lt;/li>
&lt;li>Ch. 17 — Testing and Certification (EMV L1/L2/L3)&lt;/li>
&lt;li>Ch. 18 — Deployment and Ongoing Compliance&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>External standards and sources:&lt;/p>
&lt;ul>
&lt;li>PCI SSC, &lt;em>PCI PTS POI Security Requirements&lt;/em>. &lt;a class="link" href="https://www.pcisecuritystandards.org/" target="_blank" rel="noopener"
>pcisecuritystandards.org&lt;/a>&lt;/li>
&lt;li>PCI SSC, &lt;em>Mobile Payments on COTS (MPoC)&lt;/em>. &lt;a class="link" href="https://www.pcisecuritystandards.org/" target="_blank" rel="noopener"
>pcisecuritystandards.org&lt;/a>&lt;/li>
&lt;li>PCI SSC, &lt;em>Software-based PIN Entry on COTS (SPoC)&lt;/em> and &lt;em>Contactless Payments on COTS (CPoC)&lt;/em> — programs transitioning to MPoC.&lt;/li>
&lt;li>PCI SSC, &lt;em>Point-to-Point Encryption (P2PE)&lt;/em> and &lt;em>PCI DSS&lt;/em>.&lt;/li>
&lt;li>EMVCo, &lt;em>EMV Level 1 and Level 2 Testing&lt;/em> and &lt;em>Contactless Product Approval Process&lt;/em>. &lt;a class="link" href="https://www.emvco.com/" target="_blank" rel="noopener"
>emvco.com&lt;/a>&lt;/li>
&lt;li>OWASP, &lt;em>Mobile Application Security Verification Standard (MASVS)&lt;/em>. &lt;a class="link" href="https://mas.owasp.org/" target="_blank" rel="noopener"
>mas.owasp.org&lt;/a>&lt;/li>
&lt;li>Android Developers, &lt;em>Android Keystore system&lt;/em>. &lt;a class="link" href="https://developer.android.com/privacy-and-security/keystore" target="_blank" rel="noopener"
>developer.android.com&lt;/a>&lt;/li>
&lt;li>A. Mehr Nezhad et al., &amp;ldquo;SoK: Security of EMV Contactless Payment Systems,&amp;rdquo; 2025 (systematization of contactless EMV attack vectors). Verify the canonical citation before publication.&lt;/li>
&lt;/ul></description></item></channel></rss>