{"id":1109,"date":"2014-09-20T14:47:05","date_gmt":"2014-09-20T14:47:05","guid":{"rendered":"http:\/\/www.gmarwaha.com\/blog\/?p=1109"},"modified":"2014-10-05T03:41:04","modified_gmt":"2014-10-05T03:41:04","slug":"mobile-payments-what-is-hce","status":"publish","type":"post","link":"https:\/\/www.gmarwaha.com\/blog\/2014\/09\/20\/mobile-payments-what-is-hce\/","title":{"rendered":"Mobile Payments: What is HCE?"},"content":{"rendered":"<h4>What is HCE?<\/h4>\n<div class=\"row-fluid\" style=\"min-height:0;\">\n<div class=\"span12\" style=\"min-height:0; border-bottom:1px dotted rgba(0,0,0,0.1); margin-top:10px; margin-bottom:10px; \"><\/div>\n<\/div>\n<p>Previously, we discussed about <a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/09\/01\/mobile-payments-what-is-a-secure-element\/\">Secure Element<\/a> and how it enables payment transactions in <a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/08\/07\/mobile-payments-what-is-nfc-card-emulation-mode\/\">card-emulation<\/a> mode. We also briefly discussed that SE\u00a0is not the only choice available. Today,\u00a0we also have HCE as an alternative. HCE stands for <code>Host-based Card Emulation<\/code>.\u00a0As its name suggests, it has something to do with\u00a0<a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/08\/07\/mobile-payments-what-is-nfc-card-emulation-mode\/\">card-emulation<\/a> mode. But what does host-based mean? Before we talk about what host-based means, let&#8217;s review how things were before\u00a0HCE.<\/p>\n<p>Prior to HCE, the only way to emulate a card using a mobile <a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/08\/03\/mobile-payments-what-is-nfc\/\">NFC<\/a> device was to use a Secure Element. Let&#8217;s take the Android platform as an example. Here, the host operating system (Android in this case) and its apps do not get involved with a payment transaction at all.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1111\" src=\"http:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-ce.png\" alt=\"se-ce\" width=\"334\" height=\"301\" srcset=\"https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-ce.png 334w, https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-ce-300x270.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/p>\n<p>When a consumer holds the device over an NFC terminal, the NFC controller in the device routes all data from the reader directly to the Secure Element. The Secure Element itself performs the communication with the NFC terminal, and no Android application is ever involved in the transaction. After the transaction is complete, an Android application can query the Secure Element directly for the transaction status and notify the user. This is the approach used by <a href=\"https:\/\/www.apple.com\/iphone-6\/apple-pay\/\">ApplePay<\/a> as well<\/p>\n<p>This SE\u00a0based approach is inherently secure and that is a very big advantage. But, there are some downsides\u00a0too. The SE owner owns the key to the kingdom. All others will have to go through complex business models, partnerships, and dependencies to gain access and it makes the whole process that much more\u00a0complex and expensive. Moreover, the SE itself has only\u00a0limited storage capacity and processing speed.<\/p>\n<p>The alternative is to use Host-based Card Emulation.\u00a0Here,\u00a0the host operating system (Android) and its apps gets involved with a payment transaction.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1110\" src=\"http:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/hce-ce.png\" alt=\"hce-ce\" width=\"334\" height=\"301\" srcset=\"https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/hce-ce.png 334w, https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/hce-ce-300x270.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/p>\n<p>When a consumer holds the device over an NFC terminal, the NFC controller in the device routes all data from the reader directly to the Host CPU on which Android applications are running directly. Then, an\u00a0Android application (a Mobile Wallet) that deals with a particular payment application can do its magic and\u00a0provide for the card emulation requests and responses.<\/p>\n<p>Since the host CPU is inherently insecure, any mobile wallet worth its salt will not store the real payment credentials inside the phone. Google Wallet for example moves all such data to a hosted cloud environment, and that is where the\u00a0secure storage and secure processing takes place. In essence, we have moved the Secure Element from inside a chip to a cloud environment (HCE Cloud) instead.<\/p>\n<p>This approach has its downsides &#8211; like security and a need for data connection. This does not mean that your private information is vulnerable. We can still have a very high degree of security\u00a0using other technologies. Payment card <code>Tokenization<\/code> is one of them and we will discuss it in an upcoming post.\u00a0On the bright side,\u00a0the complex business models, partnerships and access restriction to SE can be dramatically simplified. This enables payment application issuers to easily provision to the cloud and get it over with.<\/p>\n<p>Using SE-based Card Emulation and Host-based Card Emulation is not an\u00a0either-or scenario though. Android allows both to co-exist in the same\u00a0NFC enabled device and offers\u00a0tools and technologies to work with both of them as shown in the diagram below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1112\" src=\"http:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-hce-dual-ce.png\" alt=\"se-hce-dual-ce\" width=\"367\" height=\"301\" srcset=\"https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-hce-dual-ce.png 367w, https:\/\/www.gmarwaha.com\/blog\/wp-content\/uploads\/2014\/09\/se-hce-dual-ce-300x246.png 300w\" sizes=\"auto, (max-width: 367px) 100vw, 367px\" \/><\/p>\n<p>All the above diagrams were taken from <a href=\"https:\/\/developer.android.com\/guide\/topics\/connectivity\/nfc\/hce.html\">Android developers<\/a> website.<\/p>\n<h4 style=\"margin-top: 30px;\">Mobile Payments Blog Series<\/h4>\n<div class=\"row-fluid\" style=\"min-height:0;\">\n<div class=\"span12\" style=\"min-height:0; border-bottom:1px dotted rgba(0,0,0,0.1); margin-top:10px; margin-bottom:10px; \"><\/div>\n<\/div>\n<p>Welcome to the <a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/01\/24\/mobile-payments-faq-and-not-so-faq\/\">Mobile payments FAQ and\u00a0not so FAQ<\/a>\u00a0series\u00a0and you are on FAQ\u00a0#15.\u00a0The idea behind this series is to\u00a0share and learn as much as possible about the field of mobile payments.\u00a0If you like, you can read all of the FAQs on the <a href=\"http:\/\/www.gmarwaha.com\/blog\/category\/mobile-payments\/\">Mobile Payments<\/a>\u00a0category or by visiting the <a href=\"http:\/\/www.gmarwaha.com\/blog\/mobile-payments-faq\/\">Table of contents<\/a> page.<\/p>\n<h4>Related Reading<\/h4>\n<ul>\n<li><a href=\"http:\/\/www.gmarwaha.com\/blog\/mobile-payments-faq\/\">Mobile Payments FAQ<\/a><\/li>\n<li><a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/08\/03\/mobile-payments-what-is-nfc\/\">What is NFC?<\/a><\/li>\n<li><a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/08\/07\/mobile-payments-what-is-nfc-card-emulation-mode\/\">What is NFC Card Emulation Mode?<\/a><\/li>\n<li><a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/09\/01\/mobile-payments-what-is-a-secure-element\/\">What is a Secure Element?<\/a><\/li>\n<li><a href=\"http:\/\/www.gmarwaha.com\/blog\/2014\/10\/02\/apple-pay-vs-google-wallet-the-secure-element\/\">Apple Pay vs Google Wallet : The Secure Element<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>What is HCE? Previously, we discussed about Secure Element and how it enables payment transactions in card-emulation mode. We also briefly discussed that SE\u00a0is not the only choice available. Today,\u00a0we also have HCE as an alternative. HCE stands for Host-based Card Emulation.\u00a0As its name suggests, it has something to do with\u00a0card-emulation mode. But what does host-based mean? Before we talk about what host-based means, let&#8217;s review how things were before\u00a0HCE. Prior to HCE, the only way to emulate a card using a mobile NFC device was to use a Secure Element. Let&#8217;s take the Android platform as an example. Here,... <br \/><a class=\"moretag\" href=\"https:\/\/www.gmarwaha.com\/blog\/2014\/09\/20\/mobile-payments-what-is-hce\/\">Continue reading...<\/a>","protected":false},"author":1,"featured_media":1013,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"footnotes":""},"categories":[52,54,48,49,53],"tags":[],"class_list":["post-1109","post","type-post","status-publish","format-image","has-post-thumbnail","hentry","category-emv","category-hce","category-mobile-payments","category-nfc","category-secure-element","post_format-post-format-image"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/posts\/1109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/comments?post=1109"}],"version-history":[{"count":7,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/posts\/1109\/revisions"}],"predecessor-version":[{"id":1230,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/posts\/1109\/revisions\/1230"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/media\/1013"}],"wp:attachment":[{"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/media?parent=1109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/categories?post=1109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gmarwaha.com\/blog\/wp-json\/wp\/v2\/tags?post=1109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}