<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Payment Systems Blog</title>
	
	<link>http://www.paymentsystemsblog.com</link>
	<description>David D. Bergert</description>
	<lastBuildDate>Wed, 02 Nov 2011 11:24:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<copyright>2007-2008 </copyright>
	<managingEditor>podcast@paymentsystemsblog.com (Dave Bergert)</managingEditor>
	<webMaster>podcast@paymentsystemsblog.com (Dave Bergert)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://www.paymentsystemsblog.com/images/pspodcast.png</url>
		<title>Payment Systems Blog</title>
		<link>http://www.paymentsystemsblog.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle />
	<itunes:summary>Payment Systems Podcast is a podcast that address the subject of Payments Systems, their operations, development, security and other experiences related to payment processing.</itunes:summary>
	<itunes:keywords>Payment Systems, ISO8583, PABP, PA-DSS, PCI, Security, Credit, Debit</itunes:keywords>
	<itunes:category text="Technology" />
	<itunes:category text="Business" />
	<itunes:category text="Technology">
		<itunes:category text="Software How-To" />
	</itunes:category>
	<itunes:author>Dave Bergert</itunes:author>
	<itunes:owner>
		<itunes:name>Dave Bergert</itunes:name>
		<itunes:email>podcast@paymentsystemsblog.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.paymentsystemsblog.com/images/pspodcast.png" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PaymentSystemsBlog" /><feedburner:info uri="paymentsystemsblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>SSL / VPN / Direct Connection connecivity options</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/3ecSCIbjkR0/</link>
		<comments>http://www.paymentsystemsblog.com/2011/11/02/ssl-vpn-direct-connection-connecivity-options/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 11:24:28 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/2011/11/02/ssl-vpn-direct-connection-connecivity-options/</guid>
		<description><![CDATA[I came across this exchange discussing connectivity when reviewing some specifications for an interface that we are writing: “Since both companies will utilize web services for the exchange of information, it is proposed that we use SSL instead of a VPN or Direct connection. SSL (https over port 443) provides security by encrypting the communications [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this exchange discussing connectivity when reviewing some specifications for an interface that we are writing:</p>
<p>“Since both companies will utilize web services for the exchange of information, it is proposed that we use SSL instead of a VPN or Direct connection. SSL (https over port 443) provides security by encrypting the communications channel. This arrangement provides all the security of a VPN or Direct connection. Plus it requires less network configuration, less maintenance, greater flexibility (in case platforms move on either end) and eliminates a VPN or direct connection as a potential point of failure.”</p>
<p>I have a lot of problems with this.</p>
<p>1) Encryption isn&#8217;t security.</p>
<p>2) I find it hard to dispute that: Direct Connection &gt; VPN &gt; SSL over internet from a general security perspective.</p>
<p>3) SSL used in this manner lacks authentication, compared to a IP SEC point-to-point VPN (AH/ESP)</p>
<p>4) Exposing a web server to the internet introduces the risk of web server vulnerabilities, application layer vulnerabilities, among others ever more recent SSL vulnerabilities[1]. (Note that source based ACL&#8217;s are not recommend here either, nor are client side certificates for authentication)</p>
<p>5) The concept of &#8220;least privilege&#8221; from a networking perspective is not followed &#8211; only two parties need to talk to each other, why open it up to the world to attempt to connect to ? Another interface stated &#8220;We restrict all traffic by third party connections to the least access needed to support business. &#8221; &lt;&#8211; I like this much better.</p>
<p>6) SSL over the internet will require our customer to expose a secure internal system to the internet, when it was designed to have very controlled network access, as compared to a VPN and general firewall rules for network control.</p>
<p>7) I haven&#8217;t discussed direct connections or leased lines, mostly due to the nature and volume of this application. Normally this is our first choice for high volume, sensitive transaction data to third parties with multiple data centers. Where we use 2 leased lines on different carriers to different data-centers.</p>
<p>My Vote for this? SSL over a VPN &#8211; (Defense in depth) Could SSL be used ? Sure but we would need to add a list of controls around its implementation and quite possibly add a layer of applications (proxy the requests) to design around this which is more work and has a higher change of configuration failure then a standard site-to-site VPN connection.</p>
<p>[1] <a href="http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/print.html">http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/print.html</a></p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/3ecSCIbjkR0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2011/11/02/ssl-vpn-direct-connection-connecivity-options/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2011/11/02/ssl-vpn-direct-connection-connecivity-options/</feedburner:origLink></item>
		<item>
		<title>Transaction Types 101</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/aX9dF_PWaGE/</link>
		<comments>http://www.paymentsystemsblog.com/2011/11/02/transaction-types-101/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 10:25:01 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[Payment]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/2011/11/02/transaction-types-101/</guid>
		<description><![CDATA[Here is a list and definitions of common payment card transaction types: Authorization The Authorization transaction is typically used by a merchant to obtain the authorization of a transaction amount as a pre-approval for the purchase of goods or services later during the fulfillment process. Authorization transactions are typically submitted for authorization and then funds [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a list and definitions of common payment card transaction types:</p>
<p><b>Authorization</b></p>
<p>The Authorization transaction is typically used by a merchant to obtain the authorization of a transaction amount as a pre-approval for the purchase of goods or services later during the fulfillment process. Authorization transactions are typically submitted for authorization and then funds are held by the issuer until that transaction is captured or the authorization is reversed or expires. An example can be found with online retailers who initiate an Authorization transaction to guaranteed funding by the card issuer prior to the shipment/delivery (i.e. fulfillment) of the goods. An “Authorization” is also referred to as an Auth-Only transaction.</p>
<p><b>Sale</b></p>
<p>A “Sale” transaction is used by merchants for the immediate purchase of goods or services. This transaction completes both the authorization and capture in a single transaction request. The Sale transaction is an Authorization and Capture transaction that if approved is automatically included for settlement.</p>
<p><b>Forced Sale</b></p>
<p>A “Forced Sale” is a transaction initiated by a merchant with the intent of forcing the posting of the transaction against the customer account without receiving prior authorization by the card issuer, or receiving a voice authorization code from the merchant acquiring call center. An example would be when a merchant&#8217;s terminal is offline, requiring the purchase of goods being completed without receiving online authorization by the card issuer. Or they received a Voice Approval. In these cases the merchant would enter the transaction details and forward this Forced Sale transaction to the card issuer with the expectation of receiving funding for the goods or services rendered. A forced sale does not require a matching authorization. Forced Sales are also known as Off-Line Sales.</p>
<p><b>Refund</b></p>
<p>A Refund allows a merchant to refund a previously settled transaction and submit the refund for processing. Refunds are only allowed for financial transactions (Sale and Captured) and are typically limited to the original authorization amount, or a lesser amount, in some cases, multiple partial refunds up to the original transaction amount. Some systems incorporate a feature called Matched Refunds. Matched Refunds must match back to an original transaction to help control fraud. “ Refunds” are also sometimes referred to as a “Credit” transaction.</p>
<p><b>Void</b></p>
<p>Void transactions can reverse transactions that have been previously authorized or approved by the card issuer and are pending settlement. Merchants will only be allowed to void transactions that are in an open batch (pending settlement). Sale or Refund transactions are the most commonly voided transaction types.</p>
<p><b>Capture</b></p>
<p>The Capture transaction will allow merchants to capture a previously authorized transaction that is pending settlement, and submit it for clearing and settlement. An example is when online retailers who initiate an Authorization transaction to reserve funds by the card issuer prior to the shipment/delivery (i.e. fulfillment) of the goods, and then once fulfillment has been completed the transaction will be captured and submitted for settlement. A “Capture” is also referred to as a Pre-Authorization Completion transaction.</p>
<p></p>
<p class="MsoNormal">
<p><!--EndFragment--></p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/aX9dF_PWaGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2011/11/02/transaction-types-101/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2011/11/02/transaction-types-101/</feedburner:origLink></item>
		<item>
		<title>ATM ADA Regulations Go Into Effect</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/3RmKv6Ol6Ug/</link>
		<comments>http://www.paymentsystemsblog.com/2011/09/16/atm-ada-regulations-go-into-effect/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 15:16:03 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/2011/09/16/atm-ada-regulations-go-into-effect/</guid>
		<description><![CDATA[Over at this link at FDR there is an excellent summary of the new ATM requirements for the Americans with Disabilities Act that goes into effect on March 2012.]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://www.firstdata.com/en_us/insights/atm-ada-regulations-go-into-effect-.html?utm_source=Social&amp;utm_medium=Twitter&amp;utm_campaign=General">this link</a> at FDR there is an excellent summary of the new ATM requirements for the Americans with Disabilities Act that goes into effect on March 2012.</p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/3RmKv6Ol6Ug" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2011/09/16/atm-ada-regulations-go-into-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2011/09/16/atm-ada-regulations-go-into-effect/</feedburner:origLink></item>
		<item>
		<title>International Merchants with EMV no longer need to have PCI Compliance validated</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/NMMz7aOI5pU/</link>
		<comments>http://www.paymentsystemsblog.com/2011/02/10/international-merchants-with-emv-no-longer-need-to-have-pci-compliance-validated/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 15:16:48 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[EMV]]></category>
		<category><![CDATA[PCI]]></category>
		<category><![CDATA[Visa]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=707</guid>
		<description><![CDATA[  From Visa Bulletin today: Visa Introduces Technology Innovation Program for Merchants﻿, Visa announces that: Effective 31 March 2011, Visa will allow qualifying merchants outside of the United  States to discontinue their annual Payment Card Industry Data Security Standard (PCI DSS) revalidation assessment.﻿ Note that this doesn&#8217;t mean that if you use EMV you are exempt [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.paymentsystemsblog.com/wp-content/uploads/2011/02/Contactless-smartcard.png" border="0" alt="Contactless-smartcard.png" width="400" height="332" /></p>
<p> </p>
<p>From Visa Bulletin today: <a href="http://usa.visa.com/download/merchants/bulletin-tip-020911.pdf">Visa Introduces Technology Innovation Program </a><a href="http://usa.visa.com/download/merchants/bulletin-tip-020911.pdf">for Merchants﻿</a>, Visa announces that:</p>
<blockquote>
<p>Effective 31 March 2011, Visa will allow qualifying merchants outside of the United  States to discontinue their annual Payment Card Industry Data Security Standard (PCI DSS) revalidation assessment.﻿</p>
</blockquote>
<p><strong>Note that this doesn&#8217;t mean that if you use EMV you are exempt from PCI Compliance </strong>(more on this below)</p>
<p>It is nice to see that Visa is rewarding investments in EMV and Card Authenication with a potential of lower PCI compliance costs:</p>
<blockquote>
<p>Many merchants have invested time and money in the purchase, deployment and enablement of EMV POS terminals. These merchants have also invested in annual PCI DSS compliance assessments, which may require the use of a Qualified  Security Assessor and can be a significant expense. Visa is introducing the Technology Innovation Program to assist merchants in reducing the costs associated with annual PCI DSS validation.﻿</p>
</blockquote>
<p>If you are a non-US merchant and perform the following you are a qualified merchant:</p>
<p>1. The merchant must have validated PCI DSS compliance previously or have submitted to Visa (via their acquirer) adefined remediation plan for achieving compliance based on a gap analysis.</p>
<p>2. The merchant must have confirmed that sensitive authentication data (i.e., the full contents of magnetic stripe CVV2 or PIN data) is not stored, as defined in the PCI DSS.</p>
<p>3. At least 75 percent of the merchant’s transaction count must originate from enabled chip-reading device terminals (i.e., contact and/or dual interface contact/contactless terminals).</p>
<p>4. The merchant must not be involved in a breach of cardholder data. A breached merchant may qualify for TIP if it has subsequently validated PCI DSS compliance.﻿</p>
<p><span style="font-size: 14px; font-weight: bold;">What about US Merchants ?</span></p>
<p>Visa has this to say about this program in the United States:</p>
<blockquote>
<p>Despite industry interest in chip and dynamic data authentication, the program is not currently available in the United States because recent debit card regulation has cast uncertainty in the marketplace. Visa Inc. may consider implementation of TIP in the United States at a later date based on evolving environmental circumstances.﻿</p>
</blockquote>
<p>I think this announcement adds a new dynamic in the form of a potential incentive as it relates to EMV adoption in the US. US Merchants may now, in the near future, have an incentive or a discount to consider for EMV implementation (assuming implementation of  EMV processing infrastructure) in the form of less annual PCI compliance validation costs in the form of on-site audits to offset implementation of new card acceptor devices and updated payment software to support EMV.</p>
<p><span style="font-size: 14px; font-weight: bold;"><strong>If I use EMV we don&#8217;t need to be PCI compliant !!!</strong></span></p>
<p>This is a fallacy that I fear that will echo. This announcement relates to the validation of compliance, not for on-going compliance to the PCI DSS, as stated by Visa below:</p>
<blockquote>
<p>Although Visa may waive the annual validation requirement for qualifying merchants, all merchants are still required to maintain on-going PCI DSS compliance. Acquirers retain full responsibility for merchants’ PCI DSS compliance, as well as responsibility for any fees, fines or penalties, which may be applicable in the event of a data breach﻿.</p>
</blockquote>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/NMMz7aOI5pU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2011/02/10/international-merchants-with-emv-no-longer-need-to-have-pci-compliance-validated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2011/02/10/international-merchants-with-emv-no-longer-need-to-have-pci-compliance-validated/</feedburner:origLink></item>
		<item>
		<title>Whats the difference between Current and Available Balance ?</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/TL4gbWIUzko/</link>
		<comments>http://www.paymentsystemsblog.com/2011/01/20/whats-the-difference-between-current-and-available-balance/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 14:16:13 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=704</guid>
		<description><![CDATA[Andy and I were having a conversation with a group that we are working with on a new project.  When discussing integration to our API, transactional sets and fields within them. One of them asked the following question: In the Balance Response message that you send us, can you tell me the difference between the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andyorrock.com">Andy</a> and I were having a conversation with a group that we are working with on a new project.  When discussing integration to our API, transactional sets and fields within them. One of them asked the following question:</p>
<blockquote>
<p>In the Balance Response message that you send us, can you tell me the difference between the &#8220;AvailableBalance&#8221; field and the &#8220;CurrentBalance&#8221; field?﻿</p>
</blockquote>
<p> </p>
<p>Our response:</p>
<p> </p>
<blockquote>
<p>Current balance is the real, financial balance.<br />Available balance is the current balance minus any holds.<br />On the open loop side&#8230;<br />An auth does a hold &#8211; it affects only available.</p>
<p>A completion releases the hold and decrements both the available and current by the final transaction amount.﻿</p>
</blockquote>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/TL4gbWIUzko" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2011/01/20/whats-the-difference-between-current-and-available-balance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2011/01/20/whats-the-difference-between-current-and-available-balance/</feedburner:origLink></item>
		<item>
		<title>Compression</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/9KF9g6wAT7w/</link>
		<comments>http://www.paymentsystemsblog.com/2010/08/29/compression/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 15:34:39 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=698</guid>
		<description><![CDATA[  Sometimes you don&#8217;t get to define the requirements, they sometimes appear to serve a higher purpose that you can&#8217;t begin to understand. All you know is that they are requirements, and there were decisions made for various reasons. Sometimes you have to play the cards that you are dealt. But it is still your [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: 200; margin-right: 200" src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/08/data.jpeg" border="0" alt="data.jpeg" width="350" height="316" /></p>
<p> </p>
<p>Sometimes you don&#8217;t get to define the requirements, they sometimes appear to serve a higher purpose that you can&#8217;t begin to understand. All you know is that they are requirements, and there were decisions made for various reasons. Sometimes you have to play the cards that you are dealt. But it is still your choice in how to play them.</p>
<p>I&#8217;m talking about message formats here, In a specific transaction processing system there are two requirements that we must adhere to:</p>
<ol>
<li>Accept a 8,000 &#8211; 10,000 bytes incoming fixed message format.</li>
<li>Log the Raw Message Request and Responses for all interface connections</li>
</ol>
<p>Regarding #1 I&#8217;d prefer to see a variable message format here instead, but I understand the need of an existing system to talk in the language this it is used to. Item #2 had me very concerned when I first heard of it, with my PCI background, I was ready to put my foot down and call people crazy &#8211; (Imagining the request to log raw messages that contained track data, pin blocks, card verification numbers)  To my surprise this was not for a financial transaction processing system but for one of a different purpose.  One that exists in a highly regulated word with data retention requirements and the need integrity of the raw transaction messages for compliance and legal reasons.</p>
<p>The challenge I had logging the raw messages where their sheer size &#8211; 10K and when you are looking at 4-6 legs of a transaction &#8211; client request, client response, endpoint request, endpoint response, and other transaction paths that sometimes seem recursive, we have 50K of logging for a single transaction &#8211; times 3 to 5 million transactions per day &#8211; that is 150 GB to 250 GB per day of logging !</p>
<p>The easiest solution was to look into compression &#8211; how much time would compressing the data stream before logging it take ? Would this impact transaction processing time ? How was the raw messages used ? If we compress the message, what needs to occur on applications on the other end, what language and platform are they written in, what is a portable algorithm ?</p>
<p>It turns out the these messages contains many repeating unused fields with default values &#8211; these compress very well:</p>
<p> </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/08/image001.png" border="0" alt="image001.png" width="605" height="596" /></p>
<p> </p>
<p>Enter <a href="http://en.wikipedia.org/wiki/Gzip">gzip</a> &#8211; On our platform Java&#8217;s <a href="http://download.oracle.com/javase/6/docs/api/java/util/zip/GZIPInputStream.html?is-external=true">GZipInputStream</a> and for our clients tools the .NET <a href="http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx">GZipStream</a>.</p>
<p>How did this work out ?</p>
<p> </p>
<pre><span style="font-family: 'courier new', monospace;">raw_size    comp_size   Compression %</span><br style="font-family: 'courier new', monospace;" /><span style="font-family: 'courier new', monospace;">------------------------------------------</span><br style="font-family: 'courier new', monospace;" /><span style="font-family: 'courier new', monospace;">3975        393         90.1    </span><br style="font-family: 'courier new', monospace;" /><span style="font-family: 'courier new', monospace;">10599       484         95.4﻿</span></pre>
<p> </p>
<p>How much disk storage and SAN space and upgrades were saved <img src='http://www.paymentsystemsblog.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Priceless.</p>
<p> </p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/9KF9g6wAT7w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2010/08/29/compression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2010/08/29/compression/</feedburner:origLink></item>
		<item>
		<title>Swiping the Card at a Customer’s location</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/_F-99seTSY0/</link>
		<comments>http://www.paymentsystemsblog.com/2010/08/29/swiping-the-card-at-a-customers-location/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 14:39:04 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=690</guid>
		<description><![CDATA[  I had the opportunity recently to visit one of our OLS.Switch customer’s retail locations. This particular customer doesn&#8217;t have a presence in the region that I work in, so I was very excited to Swipe my Card.  Probably too excited, actually, because I think I explained every line of the receipt, including the myriad [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/08/iStock_000002827883XSmall.jpg" border="0" alt="iStock_000002827883XSmall.jpg" width="425" height="282" /></p>
<table width=100% align=center>
<tbody>
</tbody>
</table>
<p> </p>
<p><span style="font-size: 14px;">I had the opportunity recently to visit one of our <a href="http://www.olsdallas.com">OLS.Switch</a> customer’s retail locations. This particular customer doesn&#8217;t have a presence in the region that I work in, so I was very excited to Swipe my Card.  Probably too excited, actually, because I think I explained every line of the receipt, including the myriad of transactions that occurred, the number of message formats, transaction types, database entities, application logic, and network connections to various internal and external endpoints to my wife, who after twenty minutes didn&#8217;t share the same level of enthusiasm that I maintained throughout the conversation. </span></p>
<p>
<p><span style="font-size: 14px;">It is always fun to know what happens &#8220;inside the box&#8221; and that which seems magical to others. When I started my career at a small Third party processor this exercise was quite common, after we did system maintenance in the middle of the early morning, we would drive to the nearest corner store or gas station to test our issuing systems and connections via performing transactions on cards that we issued for.  We even got to reward ourselves with transaction amounts over $25, as we couldn&#8217;t allow Stand-In-Processing to approve these transactions, we wanted to ensure that our Issuing system authorized these transactions. </span></p>
<p>
<p style="font-size: 14px;">It is even more exciting to have taken part in the design, development and implementation of a given transaction. The exhilaration continues when you realize that I&#8217;m only 1 of about 5 million transactions per day that our software powers here.</p>
<p><p style="font-size: 14px;">Let&#8217;s do a walkthrough of the transaction that I performed:</p>
<p style="font-size: 14px;">
<p><span style="font-size: medium;">Cashier:  Hi, Welcome. Are you enrolled in our ________ rewards program ? </span></p>
<p>Me: Yes, I don&#8217;t have my card &#8211; can you lookup by phone number ?<span style="font-family: arial, sans-serif; font-size: small;"> ﻿</span></p>
<p><span style="font-family: arial, sans-serif; font-size: small;"> </span>Cashier:  Sure  &lt;Enters in number that I provide&gt;</p>
<p><em><strong>Transaction #1 : Loyalty Card Lookup based on Phone Number also includes my point balance, level </strong></em></p>
<p>Cashier: Can you confirm your address ?,great, that&#8217;s you. Your total is $ xx.xx , Debit or Credit ?</p>
<p><span style="font-family: arial, sans-serif; font-size: small;"> </span></p>
<p>Me:  &lt;Swipes my Mastercard &gt;</p>
<p><em><strong>Transaction #2 : Transaction Market Basket Analysis, Discount calculation, interfacing to an Offering Engine, Serializing of Coupons to print on receipt for future usage and coupon validation requests. </strong></em></p>
<p><em><strong><span style="font-style: normal; font-weight: normal;"><em><strong>Transaction #3 : Credit Card Authorization </strong></em></span><br /></strong></em></p>
<p>Cashier: Thank you very much for shopping at _______, By using your _________ card you saved $ x.xx, Hope you have a nice day.</p>
<p>Me: Thank you and running outside to share the exiting world of transaction processing to my wife.</p>
<p> </p>
<p><span style="font-size: 14px;">The 20 mintues that followed including me discussing the following.</span><br /><span style="font-family: arial, sans-serif; font-size: small;"> </span></p>
<ul>
<li><span style="font-size: 14px;">The finer points of Loyalty Card Lookups, including how to return a list of cards, and how to address multiple requests as the cashier scrolls to fetch the next batch of card numbers for folks with common names, the challenges of either cardholders or cashiers using common phone numbers. </span></li>
<li><span style="font-size: medium;"><span style="font-size: 14px;">Card Type and BIN Based Routing to external endpoints and message translation from one interface to another</span></span></li>
<li><span style="font-size: medium;"><span style="font-size: 14px;">Sending large transaction requests with detailed shopping cart detail.</span></span></li>
<li><span style="font-size: medium;"><span style="font-size: 14px;">Algorithms to generate coupon numbers that are difficult to be abused by coupon generation scripts.</span></span></li>
<li><span style="font-size: medium;"><span style="font-size: 14px;">Substitution logic and the template engine to display various messages and transaction variable on to cashier receipts.</span></span></li>
<li><span style="font-size: medium;"><span style="font-size: 14px;">The various batch jobs and processes that are ran to import, extract various data to support the processes.</span></span></li>
</ul>
<p> </p>
<p>Just another day in the life of payment application software developer.</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><br /></span></p>
<p> </p>
<p> </p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/_F-99seTSY0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2010/08/29/swiping-the-card-at-a-customers-location/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2010/08/29/swiping-the-card-at-a-customers-location/</feedburner:origLink></item>
		<item>
		<title>Measuring External Duration of Endpoints</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/U0hvqAgNFkk/</link>
		<comments>http://www.paymentsystemsblog.com/2010/04/10/measuring-external-duration-of-endpoints/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:24:05 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=678</guid>
		<description><![CDATA[We performed load testing a of new application with a client recently and a recurring question repeatedly came up: &#8220;How long was the transaction in OLS.Switch and how long was it at the endpoint ?&#8221; It is an important question &#8211; one that is used to monitor application performance as well as to assist in [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/04/stopwatch.jpeg" alt="stopwatch.jpeg" border="0" style="margin: 5px; padding: 5px;0" width="87px" height="118px" align="left" /></p>
<p>We performed load testing a of new application with a client recently and a recurring question repeatedly came up: &#8220;How long was the transaction in  <a href="http://www.olsdallas.com">OLS.Switch</a> and how long was it at the endpoint ?&#8221;</p>
<p>It is an important question &#8211; one that is used to monitor application performance as well as to assist in troubleshooting purposes &#8211; and one we can clearly answer &#8211; the transaction took &#8211; a total of 5.6 seconds &#8211; and we waited up to our configured endpoint timeout of 5 seconds before we timed-out the transaction.  Or &#8211; the transaction took 156 ms &#8211;  26 ms of those against a local response simulator.</p>
<p>In our application we use a <a href="http://jpos.svn.sourceforge.net/viewvc/jpos?view=rev&#038;revision=2704">profiler</a> to trace execution time of each of our Transaction Participants: In which we see in our application logs as:</p>
<h5>A normal transaction:</h5>
<pre  name="code" class="java">
<profiler>
  open [0/0]
  parse-request [7/7]
  create-*******-tranlog [9/16]
  populate-********-tranlog [1/17]
  validate-********* [42/59]
  validate-********* [1/60]
  validate-******** [0/60]
  create-*********-request [24/84]
  query-****** [26/110]
  prepare-**********-response [40/150]
  close [6/156]
  send-response [0/156]
  end [157/157]
</profiler>
</pre>
<h5>A timed-out transaction:</h5>
<pre  name="code" class="java">
<profiler>
  open [2/2]
  parse-request [23/25]
  create-*******-tranlog [91/116]
  populate-*******-tranlog [1/117]
  validate-******* [67/184]
  validate-*******-card [31/215]
  validate-************** [1/216]
  create-********-request [32/248]
  query-******* [5000/5248]
  prepare-***********-response [67/5315]
  close [284/5599]
  send-response [0/5599]
  end [5600/5600]
</profiler>
</pre>
<p><em>(* note these traces are from a test app running on my macbook and are for illustrative purposes only *)</em></p>
<p>While we can answer the question by reviewing application logs &#8211; it is harder to perform any analysis on a series of transactions, specifically for external duration. We can do currently for total duration, however &#8211; this is valuable from the device perspective for how long a transaction took to process.</p>
<p>
Logging the external duration along with our total duration for switched-out transactions and we now have:</p>
<p><img src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/04/duration.png" alt="duration.png" align="center" border="0" width="155" height="642" /></p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/U0hvqAgNFkk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2010/04/10/measuring-external-duration-of-endpoints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2010/04/10/measuring-external-duration-of-endpoints/</feedburner:origLink></item>
		<item>
		<title>OLS is PCI Compliant</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/oaHlORDpf_s/</link>
		<comments>http://www.paymentsystemsblog.com/2010/03/25/ols-is-pci-compliant/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 12:06:30 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/?p=670</guid>
		<description><![CDATA[Just a short note to share that OLS has received word from our QSA via a &#8220;PCI Certificate of Validation&#8221; Letter for our newly launched hosted payment service offering OLS.Host. Congrats to our Operations, Systems and Security Gurus for all of their hard work on this !]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td>
<img src="http://www.paymentsystemsblog.com/wp-content/uploads/2010/03/PCI.gif" alt="PCI.gif" border="0" width="341" height="109" />
</td>
</tr>
</table>
<p>Just a short note to share that <a href="http://www.olsdallas.com">OLS</a> has received word from our QSA via a &#8220;PCI Certificate of Validation&#8221; Letter for our newly launched hosted payment service offering OLS.Host.</p>
<p>Congrats to our Operations, Systems and Security Gurus for all of their hard work on this !</p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/oaHlORDpf_s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2010/03/25/ols-is-pci-compliant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2010/03/25/ols-is-pci-compliant/</feedburner:origLink></item>
		<item>
		<title>PIN Block Formats – The Basics</title>
		<link>http://feedproxy.google.com/~r/PaymentSystemsBlog/~3/7QxI0Wbm2CQ/</link>
		<comments>http://www.paymentsystemsblog.com/2010/03/03/pin-block-formats/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:02:19 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[ATM]]></category>
		<category><![CDATA[PIN]]></category>

		<guid isPermaLink="false">http://www.paymentsystemsblog.com/2010/03/03/pin-block-formats/</guid>
		<description><![CDATA[I had a call yesterday about approved TG-3 (Which is now called TR-39 ) ANSI PIN Block Formats. The TR-39 Audit Procedures state that ISO 9564–1 Format 0 (ISO-0) and Format 3 (ISO-3) are the only approved formats: 4.1.3 X9 Approved PIN Block Formats Documented procedures exist and are followed that ensure any cleartext PIN-block [...]]]></description>
			<content:encoded><![CDATA[<p>I had a call yesterday about approved <a href="http://www.x9.org/standards/free/">TG-3</a> (Which is now called TR-39 ) ANSI PIN Block Formats.</p>
<p>The TR-39 Audit Procedures state that ISO 9564–1 Format 0 (ISO-0) and Format 3 (ISO-3) are the only approved formats:</p>
<blockquote><p><em>4.1.3 </em><span style="-webkit-text-decorations-in-effect: underline;"><em>X9 Approved PIN Block Formats</em></span><em><br />
</em></p>
<p class="MsoNormal" style="margin-bottom: 6.0pt;"><em>Documented procedures exist and are followed that ensure any cleartext PIN-block format combined with a PIN encryption process has the characteristic that, for different accounts, encryption of the same PIN value under a given encryption key does not predictably produce the same encrypted result. (Note: any cleartext PIN block, formats 0 and 3 meet this requirement, as specified in X9.8-1).</em></p>
<p><span style="font-size: 10.0pt; font-family: Arial;"><em>Reference X9.8-1 &#8211; Sec. 4(c), Sec. 6.2, Sec. 8.3.1, Sec.8.3.2, and Sec. 8.3.5</em></span><!--EndFragment--></p></blockquote>
<p>In case you are curious here are <a href="http://usa.visa.com/merchants/risk_management/cisp_pin_security.html">Visa&#8217;s PIN Security Requirements</a></p>
<blockquote><p><em>Requirement 3:<br />
</em></p>
<p><em>For online interchange transactions, PINs are only encrypted using ISO 9564–1 PIN block formats 0, 1 or 3. Format 2 must be used for PINs that are submitted from the IC card reader to the IC card. Other ISO approved formats may be used.</em></p></blockquote>
<p>This requirement further states:</p>
<blockquote><p><em>PINs enciphered using ISO format 0 or ISO format 3 must not be translated into any other PIN block format other than ISO format 0 or ISO format 3. PINs enciphered using ISO format 1 may be translated into ISO format 0 or ISO format 3,</em> <strong><em>but must not be translated back into ISO format 1.</em></strong></p></blockquote>
<p>(This last paragraph addresses an attack on Pin Blocks that can be translated in to format 1 on a HSM which would expose the clear PIN)</p>
<p><strong><br />
</strong></p>
<h3><strong>Let&#8217;s take a look at a few Pin Block formats:</strong></h3>
<p>For our examples:</p>
<p>P &#8211; PIN Number</p>
<p>F &#8211; Hex 0xF</p>
<p>A- Last 12 digits of PAN not including check digit</p>
<p>R &#8211; Random Hex Character (0-9, A-F)</p>
<p>Let us use the account number 4111111111111111 and PIN Number 1234 (examples use a PIN Length of 4 but could be 4-12 digits)</p>
<h3><strong>&#8220;Pin Pad&#8221; format or IBM 3624</strong></h3>
<p><em>PPPP FFFF FFFF FFFF</em></p>
<p>our Pin Block</p>
<p>1234 FFFF FFFF FFFF</p>
<p>Notes: Not allowed and is an old legacy method &#8211; not approved to be used.</p>
<h3><strong>ISO-0</strong></h3>
<p><strong><span style="font-weight: normal;"><em>04PP PPFF FFFF FFFF   (0 = ISO-0 Format, 4 = length of PIN)</em></span></strong></p>
<p><em>XOR with<br />
</em></p>
<p><strong><span style="font-weight: normal;"><em>0000 AAAA AAAA AAAA (Formatted PAN)</em></span><br />
</strong></p>
<p>our Pin Block:</p>
<p>0412 34FF FFFF FFFF</p>
<p>XOR</p>
<p>0000 1111 1111 1111</p>
<p>=</p>
<p>0412 25EE EEEE EEEE</p>
<p>Notes: Introduces variability in the PIN block by XOR&#8217;ing with a Formatted PAN &#8211; Best practice is to use ISO-3 instead of ISO-0 as there are attacks against ISO-0</p>
<h3><strong>ISO-1</strong></h3>
<p><strong><span style="font-weight: normal;"><em>1412 34RR RRRR RRRR</em></span> <span style="font-weight: normal;"><em>(1 = ISO-0 Format, 4 = length of PIN)</em></span><br />
</strong></p>
<p>our Pin Block:</p>
<p><strong><span style="font-weight: normal;">1412 348D 665A C5A3</span><br />
</strong></p>
<p><strong><span style="font-weight: normal;">Notes: Introduces variability in the PIN block by using Random padding chars &#8211; Best practice is not to allow HSM&#8217;s to accept or use this PIN Block format. Not allowed by TR-39 but is VISA.</span><br />
</strong></p>
<h3><strong>ISO-3</strong></h3>
<p><em>34PP PPRR RRRR RRRR (3 = ISO-3 Format, 4 = length of PIN)<br />
</em></p>
<p><em>XOR with<br />
</em></p>
<p><strong><span style="font-weight: normal;"><em>0000 AAAA AAAA AAAA (Formatted PAN)</em></span></strong></p>
<p><strong><span style="font-weight: normal;">our Pin Block:</span><br />
</strong></p>
<p>3412 34C8 CBA4 285C</p>
<p>XOR</p>
<p>0000 1111 1111 1111</p>
<p>=</p>
<p>3412 25D9 dAB5 394D</p>
<p>Notes: Introduces variability in the PIN block by using Random padding chars and  by XOR&#8217;ing with a Formatted PAN &#8211; Best practice is to use this format.</p>
<img src="http://feeds.feedburner.com/~r/PaymentSystemsBlog/~4/7QxI0Wbm2CQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.paymentsystemsblog.com/2010/03/03/pin-block-formats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.paymentsystemsblog.com/2010/03/03/pin-block-formats/</feedburner:origLink></item>
	</channel>
</rss>

