В каком виде хранятся CVV2 коды и пин-коды банковских карт

qwerty225

в базе данных банка?

tanya70

в защищенном

Andrey48

в целочисленном

qwerty225

По какому алгоритму обычно в банках кодируется пин и CVV код? они хранятся как интовое число без шифрации?

Andrey48

рандомом скорее всео

qwerty225

а как потом происходит проверка пина на корректоность?

xTracertx

они хранятся в виде результата хеш-функции
соответственно при вводе к введенному пину применятеся та же функция и результат сравнивается с тем, что в базе.
Бля я КО или реально уровень МГУ УПАЛ?

qwerty225

А алгоритм хэширования общеизвестен как правило?

xTracertx

я не знаю - значит не общеизвестен :grin:

qwerty225

ну так ты наверное и алгоритм хэширования пароля для оракла не знаешь, но тем неменее пароль на оракл из 4х букв ломается за долю секкунды.
В общем в каждом банке алгоритм хэширования свой и держится в строжайшем секрете или нет?

elena144

Начни с чтения http://habrahabr.ru/blogs/infosecurity/93507/

qwerty225

Так, начал читать про пин, интересно.
А про CVV2 что скажешь? мне даже более про него интересно, чем про пин

qwerty225

ой еблан :grin: в твоей ссылке нету ответа на первый пост :p

Kraft1

ты с какого факультета?
написано ведь, алгоритм проприетарный, значит банк может хранить эти цифры в любой форме

qwerty225

Это я и сам знаю, меня интересует как обычно их хранят
есть кто нить ваще на форуме кто в банке работает? а то гадание на гуще какое то получается
особоенно интересно было бы узнать про Сбер

xTracertx

в сбере XOR

Kraft1

Зачем вообще банку хранить число, которое можно получить хешированием из имеющихся данных?

bogdan02

CVV2 нигде не хранится, это запрещено.

Vlad128

Ахуенный тред :crazy:

bogdan02

ага, в слюни.

qwerty225

Рейли права, код хранится только в корпорации VISA

vova2187

Рейли не права, ведь код генерит банк
Generation of card security codes
CVC1, CVV1, CVC2 and CVV2 values are generated when the card is issued. The values are calculated by encrypting the bank card number (also known as the primary account number or PAN expiration date and service code with encryption keys (often called Card Verification Key or CVK) known only to the issuing bank, and decimalising the result.[6][7]

qwerty225

Зачем вообще банку хранить число, которое можно получить хешированием из имеющихся данных?
очевидно чтоб каждый раз не хешировать его при каждом запросе очевидно?

bogdan02

права.
проверить ее можно тут: http://www.pcisecuritystandards.org/documents/pa-dss_v2.pdf
вкратце:

"генерить" и "хранить" это две большие разницы, в особенности, в случае алгоритмов асимметричного шифрования.

qwerty225

Это я читал.
Где и как происходит проверка CVV2 на валидность ПО ТВОЕМУ ?

bogdan02

компанией-владельцем (производителем) карты (VISA/MC/AMEX etc. насчет как --- знаю только, что в собственно проверке card number участвует Luhn algorithm, а авторизация в целом --- классическими асимметричными алгоритмами с сохраненными заранее парой не публичных ключей.
проведи исследование, должно достаточно просто найтись =)

qwerty225

а как VISA провоодит проверку, если код геренит банк с одному ему известным ключом?
"with encryption keys (often called Card Verification Key or CVK) known only to the issuing bank"

bogdan02

http://www.visacemea.com/ac/ais/uploads/AIS_Guide_0610_Data_...
а вообще, все даже проще же:
The VISA CVV service generate callable service calculates a 1- to 5-byte value through the DES-encryption of the PAN, the card expiration date, and the service code using two data-encrypting keys or two MAC keys. The VISA CVV service verify callable service calculates the CVV by the same method, compares it to the CVV supplied by the application (which reads the credit card's magnetic stripe) in the CVV_value, and issues a return code that indicates whether the card is authentic. (c)

bogdan02

а, ребяты, я тормоз.
на вики вот здесь, во-видимому, написано не совсем верно:
CVC1, CVV1, CVC2 and CVV2 values are generated when the card is issued. The values are calculated by encrypting the bank card number (also known as the primary account number or PAN expiration date and service code with encryption keys (often called Card Verification Key or CVK) known only to the issuing bank, and decimalising the result.[6][7]
по ссылкам [6] и [7] говорят, что существует два стандартизированных сервиса --- e.g., VISA CVV Service generate callable service и VISA CVV service verify callable service. чем каждый из них занимается, думаю, понятно из названий, и тот, который generate как раз должен знать все необходимые секретные данные для инициализации DESа, которым шифруются данные карты для получения CVV.
т.е., да --- CVV какбы генерит банк, но на деле он просто предоставляет данные сервисам производителя карты.

qwerty225

CVV какбы генерит банк, но на деле он просто предоставляет данные сервисам производителя карты.
данные карты и свой ключ?

bogdan02

только данные карты, ключ есть у Service generate callable

qwerty225

То есть на вики ошибка - по сути не банк генерит код. Банк только держить его в БД чтоб напечатать принтером на карточку?

bogdan02

да, IBMу мне как-то доверяется больше, чем вики, которая на него ссылается.
банк пинает VISA CVV Service generate callable service, секьюрно высылает ему данные карты (дата окончания действия, номер и еще некоторую информацию, аутентифицирующую сам банк VISA CVV Service generate callable service генерит TripleDESом (или что там у них) некое значение и возвращает его банку, банк выдает его конечному пользователю и _только_ ему вместе с карточкой.
более того, банк обязан, согласно первому документу про PA-DSS, удалить все данные про все CVV, включая тот, что на магнитной ленте.

qwerty225

да, всё верно, какое то время код лежит в базе в открытом виде. и после выпуска карты удаляется

bogdan02

а вот, что бывает, когда некоторые считают, что "какое-то время" --- понятие растяжимое и не следуют стандартам.
it was reported that between 25 and 26 December was entirely stolen by the database system, including credit card numbers and CVV-code customers paying in a variety of Internet products and services through Chronopay.
а с чего вдруг такой интерес, позвольте поинтересоваться?

qwerty225

да сей интерес возбудил сосед по блоку, он в банке работает и пришёл с работы сегодня с вопросом, почему он в своих базах данных нигде не видел этих кодов

lena1978

это лишь один из алгоритмов, применение стало легальным после послабления стандартов. хэш пина (pvv) записан на карте и передается в авторизационый центр вместе с пин-блоком. поэтому можно не хранить его в бд, а сравнивать вычисленный по пину с тем, что на карте.
а еще можно дружно пофантазировать на тему как работает в банках смена пина через терминалы и по телефону

lena1978

а еще вопрос. я присобачил на сайте мегафона карточку к счету при этом вводил номер карты, срок действия и cvc2. теперь когда у меня баланс становится ниже определенной суммы идет автоматическое пополнение с карты. вопрос, нарушает ли вся эта схема требования pci-dss?

lena1978

еще вопрос, когда такую шнягу сделает себе OnLime? А то сижу как дура третий день с телефона.

den81

it was reported that between 25 and 26 December was entirely stolen by the database system, including credit card numbers and CVV-code customers paying in a variety of Internet products and services through Chronopay.
Это не очень качественный вброс. Увели домен chronopay.com и ключи сертификатов. То, что было выложено походило не на часть БД, а на лог того, что вводилось самим пользователем. Но, конечно, фейл очень знатный.

semute

более того, банк обязан, согласно первому документу про PA-DSS, удалить все данные про все CVV
очевидно, что и банк, и любой продавец может как угодно сам зашифровать CVV коды в каких-то своих таблицах (или сложить не шифруя в отдельную таблицу так что никто не узнает?
А даже если сложить эти коды в открытом виде в ту же таблицу, где хранится инфа о картах, - неужели это как-то проверяют какие-то аудиторы?

komarov

Хочешь с платежной системой работать - будешь платить безопасникам за проверку соответствия требованиям PCI DSS, да.

lena1978

в мастеркарде такого нет. ключи генерит сам банк. и мастеркард о них ничего не знает в общем случае. в частном же случае мастеркард может оказывать услугу стендин-авторизации, т.е. авторизации на стороне мастеркарда, тогда в мастер передаются банковские ключи.

meles

они хранятся в виде результата хеш-функции
соответственно при вводе к введенному пину применятеся та же функция и результат сравнивается с тем, что в базе.
Бля я КО или реально уровень МГУ УПАЛ?
хэш функция от 3-4 значного целочисленного числа? бред
нахождения искомого числа по хэшу решается перебором за доли секунды
а это противоречит определению хэша

bogdan02

да ладно, смешно даже не это, глянь на количество плюсегов: есть целых 10 флокальных анонимусов, которые либо всерьез посчитали, что ахтох зачетно пошутил, либо всерьез согласились с его постом.
и я даже не знаю, что хуже ^_____^

GeorgeL

Хочешь с платежной системой работать - будешь платить безопасникам за проверку соответствия требованиям PCI DSS, да.
А в чём смысл запрета на хранение CVV2?
ведь можно складировать коды , если уж так хочется, на отдельный винчестер и носить с ссобой. и никакой аудит его не выявит.
Поясните, знающие люди

qwerty225

Итак, давай подытожим, дабы подзакрытить тему с чистой совестью.
CVV2 хранится ТОЛЬКО в
1) банке дня три пока делают карту(чтоб напечатать на карте этот код)
2) на серверах виза всё время действия карты (годы где каждую секунду происходит верификация карт со всего мира (это миллиарды транзакций)
3) ограниченное время (минут 10) на сервере магазина, пока через него идет транзакция
4) на винчестерах недобросовестных админов, которые потом сливают инфу кардерам.
и
1) код генерит сама Visa, исключительно своими ключами и просто передаёт в банк его для печати.
2) в статье на вики ошибка соотвественно - генерит не банк и не своим ключом
Я прав?

bogdan02

) "три дня" ты придумал сам, в стандарте есть только "deleted immediately after use".
2) нет, они не хранятся там, они _вычисляются_ по запросу известным алгоритмом, инициализирующимся известными только производителю карты ключами.
3) про точное время ничего не знаю, возможно. по сути, его не нужно хранить для того, чтобы просто секьюрно передать.
4) угу, да. только каждая транзакция, проходящая, по мнению владельца карты, через чужие руки, достаточно легко оспаривается у производителя карты.
есть еще отдельные ситуации, когда ключи для генерации могут быть переданы кому-либо еще, они тоже регулируются стандартом и подпадают под "deleted immediately after use" из PA-DSS или непосредственно под PCI-DSS.
весь смысл CVV2 в том, что он существует только на карточке как дополнительный уровень защиты (не foolproof, разумеется его нет в записи магнитной ленты, он никогда не передается при ее сканировании.
компания, которая занимается техническим обеспечением процесса, по идее, как раз они и должны иметь доступ к ключам не только VISA, но и MC/AmeX: http://www.primefactors.com/products/BCSS/index.html

qwerty225

угу, да. только каждая транзакция, проходящая, по мнению владельца карты, через чужие руки, достаточно легко оспаривается у производителя карты.
4) то бишь я дам карту другу, он купит билет на поезд себе, а я потом отсужу деньги обратно?
2) речь идет про визу (проихводитель карты)?
и это верно на 100% ?
"1) код генерит сама Visa, исключительно своими ключами и просто передаёт в банк его для печати.
2) в статье на вики ошибка соотвественно - генерит не банк и не своим ключом"

bogdan02

да, если ты сможешь доказать, что карту у тебя украли (ты был в Караганде, транзакция была из Бобруйска, блабла).
1) код генерит сама Visa, исключительно своими ключами и просто передаёт в банк его для печати.
это имеет какое-то специфическое значение? наверняка, это другое юридическое лицо, типа этих PrimeFactors, потому что для обеспечения работы процессов, вовлекающих сложные криптопротоколы и высокий уровень секьюрности, нужны отдельные, узкоспециальные компании. это не банки однозначно, и не сама Visa, это партнерская компания, прошедшая узкоспециальный аудит по стандартам, который разработала Visa. в чем смысл вопроса?

qwerty225

ну это тогда проще простого. ради покуппки на 20 000 я и сам доеду до караганды и там бомжа попрошу что нить купить за бутылку водки
а
2) в статье на вики ошибка соотвественно - генерит не банк и не своим ключом"?

bogdan02

ну это тогда проще простого. ради покуппки на 20 000 я и сам доеду до караганды и там бомжа попрошу что нить купить за бутылку водки
отследить, что ты таки доехал до Караганды не сложнее, чем узнать, откуда пришла транзакция.
да, в статье на вики однозначно ошибка, сами банки не занимаются этим, все несколько сложнее.

qwerty225

отследить, что ты таки доехал до Караганды не сложнее, чем узнать, откуда пришла транза
Это бред. я уже скинул данные кредитки другу из Украины. щас он там своего знакмого попросить что нить купить, а я легко отспорю транзакцию?

Zatto-1

конечно не оспоришь, банк заявит что у него есть заключение аудиторов о том, что они выполнили требования безопасности по удалению CVV, а значит CVV есть только у тебя, и если ты не успел заявить о краже карты до транзакции, значит вся вина на тебе, т.к. ты не выполнил условия договора с банком ("... в случае краже незамедлительно сообщить банку...").
ну а дальше — как решит следствие и суд. если докажешь что имело место мошенничество, то бабло могут вернуть (вроде как у райфа в случаях со скриммерами было так).

bogdan02

для тебя есть целая история абьюза: "http://en.wikipedia.org/wiki/Buyer's_remorse", Friendly fraud

qwerty225

А так как фраудеры именно так и делают, то в 99% случаев деньги никак не вернуть верно?
и фраза " только каждая транзакция, проходящая, по мнению владельца карты, через чужие руки, достаточно легко оспаривается у производителя карты."
не верная

bogdan02

во всяких омериках Friendly Fraud и Buyer's remorse весьма больные проблемы, на эту тему даже было что-то и в Сауспарке, и в Симпсонах, так что я бы не стала столько уверена насчет "99%".

“On average, merchants in the digital-goods segment attribute one-third of their total fraud loss to friendly fraud, while online gaming merchants attribute 24 percent of their total fraud loss to this method.”
такой статистики бы не было, если бы фраза была неверна.
и это, можно я уже пойду: все ответы на твои вопросы есть в гугле, честно --- только что проверяла!

qwerty225

ну ок, вот друг уже купил там что то себе.
каков твой прогноз - насколько легко мне щас удастся оспорить транзакцию?

semute

кстати, если мерчант не хранит инфу о CVV2, то как технически осуществляется recurring billing (например, месячный доступ на порносайт с продлением) с российских карт?
(российских - потому что наши банки при проведении транзакции требуют CVV2)

bogdan02


The example provided by the industry professionals I spoke with was a merchant with a website that sells subscription products. A customer comes to the website and purchases a subscription to the product. The ongoing invoices for the customer's subscription are then automatically rebilled by the shopping cart on a monthly basis. The initial order, placed directly by the customer on the website, would include the CVV2 number. This initial transaction triggers the customer's automated monthly subscription. Since retaining the CVV2 number is prohibited, it won't be included in the customer's ongoing monthly orders.
However, since the customer provided this number with the original transaction, the merchant has a "paper trail" they can follow to confirm the validity of the customer's credit card. The initial order placed by the customer can reinforce the validity of future automated transactions. In this scenario, the CVV2 number's primary function isn't as an anti-fraud device; but as a liability device, legitimizing the future transactions.
For guidelines for recurring transactions for internet merchants, refer to page 51 of Visa's Rules for Visa Merchants document, available at: http://www.orionps.com/pdfs/VISA%20rules%20for%20merchants.p...
с райффом близзардовский пеймент гейтвей работал вполне нормально, cvv2 требовался только один раз.
нигде, вообще _нигде_ не написано, что cvv2 обязателен для каждой транзации, а не только для собственно аутентификации, которая добровольно-обязательна.
на форумах одного из гейтвеев http://www.authorize.net/ пишут, что cvv/ccv нужны только для первой транзакции.
но какбы это не мешает существовать большому количеству мерчантов, которые нарушают стандарт/не пользуются гейтвеями/системами авторизации/whatever, про это активно пишут и жалуются.

semute

нигде, вообще _нигде_ не написано, что cvv2 обязателен для каждой транзации
это естественно :)
всё всегда зависит только от политики банка - если он захочет, он может не проверять cvv2 даже при первой транзакции
но всё-таки много банков в россии (мб не все) требуют банальной верификации cvv2 при любой транзакции, тогда рекурринг транзакции не пройдут
(что было у меня - при этом транзакции не проходили, а услуга оставалась :cool: (по недосмотру, видимо) )

bogdan02

ты хитрый. то, что они не проходили же подтверждает, что пеймент гейтвей тоже не хранил cvv2. т.е., ответ на твой вопрос --- "никак не осуществляется", ок %)
(что было у меня - при этом транзакции не проходили, а услуга оставалась (по недосмотру, видимо) )
ухты. а адрес порносайта и название банка не подскажешь?

qwerty225

ухты. а адрес порносайта и название банка не подскажешь?
+1
пиздё**жь имхо

bogdan02

может, и не пиздеж, достаточно в одном месте забыть проверить ответ от гейтвея и ок. вполне правдоподобно, в особенности, когда ты не ждешь, что это особенный, российский банк.

Jakov

еще вопрос, когда такую шнягу сделает себе OnLime? А то сижу как дура третий день с телефона.
бррр
третий день?
после оплаты онлайма инет дают через 3 часа
олатить онлайм можно без комиссии с яндекс.денег
на яндекс.деньги без комиссии можно например из альфабанка покласть

lena1978

неоткуда мне покласть. нет у меня карты с ибанком. каждый день прохожу мимо банкомата, где можно без комиссии покласть и забываю. до сих пор с телефона.

KazantesDmitry

где каждую секунду происходит верификация карт со всего мира (это миллиарды транзакций)
Миллиарды в секунду? :smirk: