Not sure if this is the place to start this discussion or the UC site but this needs to addressed. This is the newest post/information I could find on the UC site http://www.ubercart.org/forum/support/15985/july_1_2010_will_visa_blackl...

After spending hours reading up on PA-DSS I'm a bit confused about using Paypal WPS vs storing "card holder data" At first I though that using WPS or a Secure Hosted Payment Form (Like Authorize.net SIM) would be enough to circumvent PA-DSS but UC is still gathering card holder data to determine the cost of shipping and then stores this data which can be viewed under "Orders" page. Now I'm wondering if storing the Name and Address but not the CC info of the customer puts UC into an application that will have to be PA-DSS certified? Also I had a hard time tracking down what is "card holder data"

I think the only way we could avoid this is if UC would just require the Country/Province/State/Postal(zip) codes to determine shipping costs (might not be accurate) and then use WPS or any other secure hosted payment form (Like Authorize.net SIM) to collect and store the user address data. Then the UC store admin would have to get the address from the payment processor. For me this isn't a problem having to get customer data from the CC processor as long as the customers payment gets processed seamlessly.

We need to get more ideas how to use secure hosted payment forms to get UC out of the scope of PA-DSS certification as of now anyone using UC unless its been heavily customised will be breaching PCI-DSS/PA-DSS and could/will get in trouble with VISA/MC/payment processor or their bank and possibly getting fined and losing their merchant account.

As of right now I don't think I can use UC which sucks as I'm gonna go live next week and I'm sure a lot of people using UC might not be aware to the PCI/PA-DSS requirements.

Comments

TR’s picture

...as of now anyone using UC unless its been heavily customised will be breaching PCI-DSS/PA-DSS...

This is absolutely not true.

PA-DSS doesn't apply to Ubercart because Ubercart as an open source application is considered to be equivalent to custom code (i.e., equivalent to an in-house developed application). PA-DSS is for code that is being sold and for hosted payment solutions, but specifically does not apply to in-house applications.

That does not exempt you from PCI standards. However, PCI compliance is not something that can be guaranteed by *any* cart software, because it depends on many things like your hardware, network, and internal company policies and practices. Ubercart does nothing that I know of to prevent you from being PCI compliant, but can't in and of itself provide you with PCI compliance. And if in the future something is found in Ubercart that prevents PCI compliance, it will be fixed. However, I know of several shops using Ubercart that have gone through a full PCI compliance review, and we have yet to receive any reports of problems.

end user’s picture

I don't think OSS/GPL is still free from being PA-DSS tested/complaint. From reading here http://pciguru.wordpress.com/2010/04/10/open-source-pa-dss-certification/ if OSS/GPL's software is considered in house/custom software it'll fall onto the end user to make sure it is PCI-DSS compliant which will means either code review by a certified party or use an application level firewall which I don't know if that will run on a shared hosting server.

So seems even though UC might itself not have to be PA-DSS tested/certified it sill is not good for the end user as for the cost of the extra steps needed for in house application testing people will probably choose a commercial cart and save on the money that was needed to the code audit and or firewall which means diminishing user base for UC

I think UC really needs a sticky on the UC site or documentation to give new/excising users and good start/explanation what using UC means for PCI/PA-DSS.

Damien Tournoud’s picture

Ubercart is definitely in the scope of PA-DSS. It fits in neither of the categories of software that are explicitly excluded from the scope of PA-PSS:

  • "payment applications developed for and sold to a single customer for the sole use of that customer. [...] Note that such an application (which may be referred to as a “bespoke” application) is sold to only one customer (usually a large merchant or service provider), and it is designed and developed according to customer-provided specifications."
  • "payment applications developed by merchants and service providers if used only in-house"

A merchant that processes credit card information through Ubercart will be infringing PCI DSS because it is using an application that is not PCI PA-DSS, but this *only* applies if you are processing cardholder data, defined as (from the PCI Glossary): "At a minimum, cardholder data consists of the full PAN. Cardholder data may also appear in the form of the full PAN plus any of the following: cardholder name, expiration date and/or service code".

As long as you are using a payment provider with an hosted payment page, and that no credit card information is ever transmitted and stored on your system, you don't have to worry about PCI compliance.

end user’s picture

Ok here some more.

Say a cart does this

  • Collects user name and address to calculate shipping charges then stores that data locally not transmitting it anyway to PayPal.
  • The user is then sent to PayPal WPS
  • They enter their CC info on the PayPal site to pay
  • PalPal verifies that the payment was successful and sends the signal back two my cart that payment is successful. No user name or address info is sent anyway between the two systems.
  • The cart marks that cart paid and confirmation emails are sent out.

Since both user and cc data did not interact with each other in any way and the user data was never transmitted between the two system would the name and address apply as "card holder data"?

TR’s picture

@Damien Tournoud:
I disagree. Ubercart is not a "Payment Application" as defined by PA-DSS. That does not exempt any site using Ubercart from PCI compliance: Ubercart *is* subject to PCI as I said, but it is only one component of PCI compliance. It is not covered by PA-DSS for the reason I stated above - it is considered an in-house application by the PA-DSS standard. And by the PA-DSS standard that means that evaluation of PCI compliance of a site will include a code review of all software used by the site, including Ubercart (and including Drupal, by the way...).

But as I said the cart is only a small portion of PCI compliance, and no cart can guarantee PCI compliance because there are too many aspects of PCI compliance that are not within the control of the cart. Cart software can guarantee NON-compliance, if for example it stores credit card data, but cart software can't guarantee compliance. As far as I know, Ubercart does nothing that will jeopardize PCI compliance. Again, I know a number of sites that have undergone this review and none that I know of has had to change Ubercart's code in order to achieve PCI compliance. If any review *did* mandate a change in Ubercart, we would make that change in the Ubercart distribution.

It is certainly NOT true that simply using Ubercart will violate your contractual obligations to your payment processor.

The only time you don't have to worry about PCI compliance is if you are using a hosted payment method, for example PayPal Website Payments Standard, where credit card information is passed directly from the customer's browser to the payment provider. If you are using a payment gateway, where the customer sends the card information to the store's website and the store's website then transmits that information directly to the payment provider, you *do* have to worry about PCI compliance. Even if the store's website doesn't save the card information locally. But proving PCI compliance is something that *must* be done by each merchant - the shopping cart software *cannot* assure compliance.

@future assassin: If you're using PayPal WPS, you don't have to worry about PCI compliance.

Damien Tournoud’s picture

@TR: I would highly recommend you read more about PCI DSS and PCI PA-DSS. There are good resources around the net, so I will not answer in detail here.

Just to clarify one thing: Ubercart does indeed embed a Payment application. As defined by PCI, a Payment application is:

"Any application that stores, processes, or transmits cardholder data as part of authorization or settlement."

In Ubercart, the payment application is all that code that handles credit card validation, pseudo-cryptography and authorization.

In the post-PA-DSS world, merchants that wish to process credit card data directly will have to only use PCI PA-DSS compliant payment applications. But because everything in Drupal shares the same memory space (and as a consequence any module can intercept card data easily), the whole Drupal site would have to be certified, which is not possible. As a consequence, in a PA-DSS world no Ubercart user will be able to process credit card without infringing their own PCI DSS requirements.

TR’s picture

@Damien Tournoud: Everything I've said above is consistent with the PA-DSS specification and with the information on the web in the broader (non-Drupal) open source community. Let me reiterate that there are Ubercart/Drupal shops that have been certified by a PA-QSA to be PCI DSS compliant. This directly contradicts your conclusion that "...no Ubercart user will be able to process credit card without infringing their own PCI DSS requirements." I suggest you do your own reading, including learning from some people who have actually gone through this process with Drupal and Ubercart. One example can be found at https://docs.google.com/present/view?id=dfd4vgps_0dvb822c8 . That was two years ago, and they have maintained their certification since even in the face of the new PCI requirements. I attended that session and also talked with the presenter afterwards to learn more details. She and her team will be at DrupalCamp Colorado again this year, and since you will be there I suggest you talk to them too. Perhaps we can all get together for a BOF session.

Any Drupal module accepting on-site payments must of necessity "process cardholder data" as defined by PCI. Therefore, according to your statements, each Drupal cart module - in fact each payment gateway module, not just the cart - must spend tens of thousands of dollars on PA-DSS certification. Furthermore, since PA-DSS certification must be done before each and every release (no non-certified releases like -dev releases would be permitted), must be reviewed at least quarterly, and includes auditing of the development process and procedures to an extent that's not possible with Drupal modules, this is an on-going expense and a standard that effectively excludes open source cart projects. The only voices on the web advocating that are vendors who sell cart software and who are threatened by open source solutions. I disagree strongly with that interpretation. However, neither you nor I are lawyers, and our interpretations are irrelevant in the face of the established precedent that I described in my first paragraph.

Damien Tournoud’s picture

If you re-read #6, you will see that I'm talking in the future tense. What is discussed here is the "post PA-DSS world", also known as "Phase V" of Visa's "Payment Application Security Mandates". The original deadline was July 1, 2010, but most of the gateways in the US are still not enforcing this yet (some in Europe are starting).

Conclusions from two years ago are just not relevant. In a post deadline world: "Acquirers must ensure their merchants and agents use only PABP-compliant [ie. PA-DSS-compliant] applications."

Any Drupal module accepting on-site payments must of necessity "process cardholder data" as defined by PCI. Therefore, according to your statements, each Drupal cart module - in fact each payment gateway module, not just the cart - must spend tens of thousands of dollars on PA-DSS certification.

Yes, that's *exactly* what it means.

brandonratz’s picture

Subscribing...

Daeluin’s picture

subscribing

fivestarstravel’s picture

subscribing.

I'd also like to hear more comment on whether it is possible to make UC compliant going forward ("post PA-DSS world/Phase V"). Implementation requirements and estimated time-lines would be helpful.

I am strongly in favor of seeking voluntary financial contributions from the installed userbase to develop and maintain PCI/DSS compliance going forward. Many businesses have already invested time and money in UC integration and development, therefore I believe they are de-facto stakeholders. I think a suggested donation of between $100 and $1000 per merchant would not be onerous.

I gladly welcome the opportunity to support my mission critical open-source projects in this manner since I am not a coder.

Finally, if not UC, then what are the options for Drupal users? I would like to stay oss, and I feel committed to Drupal.

torgosPizza’s picture

Subscribing.

TWD’s picture

PA-DSS doesn't apply to Ubercart because Ubercart as an open source application

If so TR, why did Zen Cart go through the expense and trouble of getting PA-DSS certification?
Zen Cart is totally open source.
So your explanation doesn't make sense.

http://www.zen-cart.com/showthread.php?191335-PA-DSS-Certification

or go to

https://www.pcisecuritystandards.org/approved_companies_providers/valida...

and search "Application" "Zen Cart"

end user’s picture

Problem is Zencart is a standalone shopping cart which I'd imagine would be much easier to certify but Ubercart or any other Drupal module is part of Drupal therefore Drupal itself would have to be certified along with the module because each one has access to the CC data.

The idea behind PCI/PA is good but the way I see that it was implemented to extort money out of companies and merchants.

Last time I read each major version of the software has to be recertified and $$$$$$$ forked over for the certification. I'\d also imagine all Zencart modules would have to be certified in order for Zencart to stay certified if you use it.

Besides where are you going to fine the $20K+ needed to the certification. You think enough UC/DC users would donate, not likely.

Best thing to do would be to create more payment modules for processors that offer secure hosted payment forms.

Also read that some banks/merchant providers now charge extra of you run non PA-DSS software. Yah another way to extort money an the idea behind PCI goes out the window. Don't want to run a PA-DSS certified cart, oh well just pay us $20 more per month.

TWD’s picture

I think the point here is that there is an urban myth about open source being exempt from PA-DSS requirements.

It's not.

As per the PA-DSS definition:
“Payment Applications” refer broadly to all payment applications that store, process, or
transmit cardholder data as part of authorization or settlement, where these payment
applications are sold, distributed, or licensed to third parties.

The fact that Zen Cart have gone to the trouble of getting PA-DSS official certification
is surely solid evidence of the fact.

longwave’s picture

Version: 6.x-2.4 » 7.x-3.x-dev
Category: support » feature
Status: Active » Postponed

I don't think there is much else that can be added here. Ubercart will not become PA-DSS compliant unless someone is willing to pay for certification; the maintainers are volunteers and simply do not have the free time or money to do so.

I guess such certification would be a "feature", so marking as such.