News for hackers. Stuff that matters.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Wednesday January 22, 2014 @08:38PM (#7106557)
Now if Stripe could practice truth in advertising that would be great. SpecificallY:

"Anyone accepting credit card payments must be PCI compliant. Stripe makes it easy to do so:

Serve your payment page over SSL, i.e., the page's web address should begin with “https”, not “http”.

Use Stripe.js or Checkout to accept payment information and transmit it directly to Stripe's servers.

And you'll be PCI compliant!"

https://support.stripe.com/questions/do-i-need-to-be-pci-com...

If it were only so easy. I guess there's no need for the merchant to have a PCI program, properly implement SSL/TLS, have anti-virus, change default passwords, protect agains SQLi, XSS, command injection or any number of other flaws which would give an attacker access to modify the Stripe.js code or the DOM for the page used for the collection of card information within the merchant's same origin. Nope, none of this is necessary because Stripe says that a merchant only needs to use HTTPS & implement their Stripe.js to be PCI compliant.

It's interesting that this isn't how the PCI council sees things:

https://www.pcisecuritystandards.org/documents/Tokenization_...

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by pc on Wednesday January 22, 2014 @08:47PM (#7106581)
Hm, it looks like that support forum answer needs to be updated -- we actually support filling out PCI SAQs right from our dashboard (and automatically ask users to do so). We'll go update it.

Also, if you'd like to drop me an email at [email protected], would be happy to chat about PCI more.

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by pc on Wednesday January 22, 2014 @09:05PM (#7106639)
(Updated.)
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Thursday January 23, 2014 @01:25AM (#7107195)
Confirmed.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by JunkDNA on Wednesday January 22, 2014 @08:50PM (#7106591)
Instead of just down voting this post, it would be helpful to know what specific parts of it are incorrect. This is the first I've heard of these objections.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by Silhouette on Wednesday January 22, 2014 @10:29PM (#7106868)
These posts are probably being downvoted because they come from a new account, which has been attacking Stripe repeatedly in multiple discussions now, including making some assumptions/claims that are readily confirmed to be false (and are obviously so to anyone who's actually integrated Stripe) and citing supporting web pages that don't necessarily support the claims made.

While the PCI compliance issue may not be quite as simple as Stripe's documentation has previously implied, nobody else seems to be able to identify the kinds of serious compliance issues that patcheudor keeps implying we're all suffering from by using Stripe and following their existing advice.

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Wednesday January 22, 2014 @10:58PM (#7106925)
I am simply pointing out that unlike what is covered in the Stripe documentation, a merchant is not absolved of PCI compliance by simply implementing Stripe.js in their HTTP response & turning on SSL/TLS. The PCI DSS and related materials cover this fact quite well. This "dispute" if you could even call it that came about when Pete Keen inadvertently also over simplified the compliance issue in one of his posts, for which he has since rectified:

https://www.petekeen.net/life-of-a-stripe-charge

Subsequent discussion here:

https://news.ycombinator.com/item?id=7091788

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by pbreit on Wednesday January 22, 2014 @09:07PM (#7106644)
I think the downvotes have to do with what is a pretty serious accusation and not apparently backed up with facts. What would be helpful is if the accuser produced a better description of what he feels is out of compliance, wrong or misleading.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Wednesday January 22, 2014 @09:43PM (#7106757)
Because the PCI guidance isn't factual enough? An essay could be written about the problems with broad statements like merchants only needing to worry about the inclusion of Stripe.JS and the use of HTTPS to be PCI compliant. Luckily those already exist. This one covers it pretty well:

http://pciguru.wordpress.com/2013/06/30/developers-beware-st...

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by ricardobeat on Wednesday January 22, 2014 @10:27PM (#7106861)
That article is wrong on the technical implications, like "It may be their code, but it is executing on your server" (cc data is sent directly to Stripe's servers, never touching your own).
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Wednesday January 22, 2014 @10:53PM (#7106910)
That was maybe not quite the right language, but is easily salvageable. What the author was trying to convey is that the Stripe.js code is instantiated within the user browser by an HTTP response from the server infrastructure owned by the merchant. The actual credit-card form is delivered by the merchants server & therefore they own all the PCI DSS related controls surrounding ensuring that the payment form code delivered via their HTTP response is secured. If instead of referencing Stripe.js, the merchant instead sent the user directly to https://stripe.com/payment... and the user could validate they are at stripe.com by looking in their address bar & checking the SSL/TLS security by clicking on the lock then that's a different story and the merchant would have far less exposure to the requirements outlined in the PCI DSS.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by slexaxton on Thursday January 23, 2014 @12:01AM (#7107057)
[Stripe Developer] [edited for clarification]

I appreciate your interest in the security of Stripe, I think we definitely share the same goals here (making everything as secure as possible). However, I think there's some misunderstanding in some posts (and in the blog post):

> [...] the Stripe.js code is instantiated within the user browser by an HTTP response from the server infrastructure owned by the merchant When Stripe.js is included within the user's browser by a (mandated https, not http) request, it comes directly from Stripe's servers, not from "the server infrastructure owned by the merchant."

Stripe.js isn't served from the merchant. It comes directly from Stripe. Stripe.js helps keep payment card data away from a merchants own servers.

Keeping card data away from someone's machines doesn't mean that they don't need to comply with the Payment Card Industry Data Security Standards, but it does make things quite a bit simpler.

In most cases it means that they're eligible for one of the light-weight self-assessment questionnaires.

PCI compliance, of course, shouldn't be where people stop thinking about security though. You're absolutely right that if the pointer on the merchant's site is changed to a malicious site, that's where the payment data will go. The merchant needs to keep that pointer safe in the same way that if you're redirecting to a hosted payment form or elsewhere, you need to make sure that isn't tampered with either. (A hosted form has the advantage that at least a customer can view the SSL cert but if they don't recognize the domain (or if the domain is obscure anyway), that's not much good.)

Being compliant with the PCI standards is important but it doesn't cover all of the very, very important points of web security.

We do take security very seriously, and if you happen to find a valid security issue with our service, we pay bounties[1] for properly disclosed vulnerabilities.

If you have any other questions, or would like to wax poetic about security or PCI please don't hesitate to send the security team an email at [email protected] or to email me personally at [email protected].

[1] https://stripe.com/help/security#rewards

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Thursday January 23, 2014 @01:03AM (#7107171)
Alex, thank you for your response. I don't think my original observations about the wording of a support doc falls into a vulnerability disclosure. That doc has since been updated with enhanced guidance which addresses my original concern. As I think we all understand, the merchant must be responsible for ensuring the integrity and security of the HTTP response containing the reference to Stripe.js. After that they are absolved of the requirements surrounding the transmission, processing, and storage of the card data. As the PCI DSS states, they are ultimately responsible for their PCI compliance as the merchant.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by steven2012 on Thursday January 23, 2014 @12:29AM (#7107113)
My understanding by reading patcheudor's responses is that the issue isn't with Stripe's PCI compliance, but rather the fact that merchants that use Stripe's API need to be fully PCI compliant. According to him, using Stripe's API doesn't obviate the merchant's need to be fully PCI compliant, unless they do something like open up another window where the URL clearly shows that they are inputting a form from Stripe's own servers. Otherwise, the merchant needs to conform to full PCI compliance.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by rgbrenner on Thursday January 23, 2014 @01:01AM (#7107167)
This is my reading of his comment too.. more specifically, that since the page comes from the merchants server, the page could be modified by an attacker to alter the form to (for example) submit credit card details to another server instead of Stripe's.

I think he has a point here. Certainly if the merchants web site is compromised, Stripe's PCI compliance won't prevent or detect the loss of credit card data (since it never reached the point where Stripe could protect it).

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by pc on Thursday January 23, 2014 @03:48AM (#7107445)
> I think he has a point here. Certainly if the merchants web site is compromised, Stripe's PCI compliance won't prevent or detect the loss of credit card data (since it never reached the point where Stripe could protect it).

Yes, this is certainly true. This is why we also use the dashboard to ask the relevant questions from the PCI self-assessment questionnaires. https://support.stripe.com/questions/do-i-need-to-be-pci-com... gives a brief overview, but this discussion is making me think that we need to write something longer and more definitive. There's a lot of confusion around PCI pretty much everywhere.

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by strumptrumpet on Thursday January 23, 2014 @12:36AM (#7107124)
You're playing semantic shell games here. The user has no reasonable way of knowing that stripe.js came from stripe, and as such, there are no technical OR human controls that enforce that behavior.

In short, the fact that stripe.js is delivered from stripe DOES NOT MATTER, because the user CAN NOT reasonably validate this behavior.

I know you're not dumb over at Stripe; I have a hard time believing that you're not willfully lying. After all, "disrupting" onerous industry security standards is to your competitive advantage.

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by proksoup on Thursday January 23, 2014 @02:14AM (#7107270)
This pretty clearly demonstrates to me the problem --- the stripe developers and management themselves don't actually understand the problem.

Patch is right, you need to be PCI compliant and Stripe (despite their recent funding) is apparently misunderstanding the problem with their approach.

And frankly, PCI compliance be damned, can ya'all not see how the "redirect to page" way is more secure.

Stripe hiding behind "our code is fine, only if you get hacked is it a problem" is, quite frankly, disgusting blame redirection.

Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by pbreit on Wednesday January 22, 2014 @11:10PM (#7106956)
I read that and am still far from clear on whether or not your accusations have merit.
Re:Payments Startup Stripe (YC S10) Joins the Billion Dollar... by patcheudor on Wednesday January 22, 2014 @11:48PM (#7107030)
I think you just hit on a major issue that merchants face when it comes to the PCI DSS. Many merchants have been wrestling with the scope of PCI DSS compliance for years. They are looking for easy solutions where unfortunately there are very few. The PCI council has done a very respectable job of creating compliance guides and standards documentation. However, when it comes to implementation merchants struggle with scope. If a merchant server as an example responds with a reference to the stripe.js & that code is then executed within the browser context of the merchant domain, is that merchant server in scope for that component? I believe it is and every QSA (PCI qualified security assessor) I've had this same conversation with has come to that exact same conclusion. If Stripe consults with their QSA and they come to a different conclusion, then I would hope Stripe would share that publicly with the community. That would certainly be a ground breaking event for those of us who deal with PCI DSS on a daily basis.

In terms of accusation, my goal here is to ensure that Stripe.com and others who are working in this space are being as clear as possible with their communication, that's it. Stripe is going to address statements like the one I pointed out on their site & hopefully as an industry we can get to a point where everyone is a bit more clear on what falls in and out of PCI DSS scope.