Форум Сообщества Аналитиков
Общий раздел => Примеры => Тема начата: Mishko от 12 Октября 2014, 11:10:56
-
Уважаемые корифеи, покритикуйте пожалуйста диаграмму. Спасибо.
-
Во-первых, в реальности процесс выглядит совсем не так.
Банкоматы всегда проверяют ПИН в режиме онлайн (то есть отсылают его на хост, а не спрашивают у карты, верный ли он). Участник "карта" при этом вообще выпадает из сценария.
Банкомат не обращается к хосту несколько раз для проверки суммы и "блокировок", это делается одним запросом. А хост уже сообщает результат всех необходимых проверок в коде ответа (этих кодов там несколько десятков). Но зачем вообще описывать эти детали, которые зависят от конкретного протокола взаимодействия банкомата с хостом? Возможно, вам дали какой-то учебный сценарий, описанный текстом? Тогда нужно приложить и его, чтобы было с чем сравнивать.
Во-вторых, что понимается под возвратом "меню"? Что в меню входит и почему оно является возвратом на сообщение "ввести пин"?
-
Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).
Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.
-
В дополнение.
1. Я бы разделил активности (столбики) по отдельным операциям. Например, первая же операция у клиента (вводи пина) должна закончится передачей пина. А у банкомата, соответственно, начаться. И закончится передачей доступных опций (примечание: а доступные опции таки зависят от того, чью карту в него засунули). Вторая активность клиента начнется получением "меню", и завершится отправкой введенной суммы.
А у банкомата вообще все - одна сплошная активность. Это непорядок.
2. По-моему, клиент забыл:
а) сунуть карту;
б) забрать наличные.
-
Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.
Банкомат лучше разбить на две системы: пин клавиатуру и прочее.
Между банкоматом и процессингом банка еще что-то должно быть. Ну банкомат то необязательно этого же банка.
HSM еще добавьте.
Но начать лучше с того, как пользователь взаимодействует с банкоматом. Подойдите к реальному банкомату и последовательно запишите сценарий. Включая вставку карты и забор чека.
-
Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).
Тогда лучше не фантазировать о том, что происходит в невидимой системе, а описать видимый сценарий взаимодействия пользователя с банкоматом. Банк можно оставить для единственной операции "авторизация" (или "проверка запроса"), чтобы показать, что банкомат не принимает решения о выдаче наличных, а пересылает его в банк.
Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.
А ещё надо не забыть вставить карту (и вынуть её).
-
Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.
Выдача наличных по картам EMV всегда выполняется с онлайн проверкой ПИНа. Я точно не знаю, чьё это требование - скорее всего, платёжных систем.
Есть ещё карты типа электронного кошелька (были такие Сберкарта и Золотая Корона - возможно, и где-то и сейчас ещё живы). В этих системах ПИН проверяет карта. Но в этом случае нет авторизации в банке.
Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором).
В зависимости от вида операции и суммы, могут выбираться разные методы, а также их комбинации (теоретически можно заставить пользователя два раза ввести ПИН и ещё расписаться на чеке, хотя в реальной жизни это вряд ли имеет смысл). При этом учитываются и правила, записанные на карте, и возможности терминала.
Для операции "выдача наличных" всегда прописывается правило "онлайн пин". Я за всё время работы с картами EMV ни разу не видел исключений.
-
Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН
...
* Банкомат передает финансовую операцию с присланным HSM-ом случайным числом карте на подпись
* Карта подписывает дайджест операции при помощи ключа, счетчика и случайного числа
* Карта отправляет сообщение с подписью
...
* HSM валидирует подпись
онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.
> Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором
Угу. И еще примерно с десяток способов... Из экзотики - проверка отпечатка пальца, проводимая картой...
-
Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН
онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.
Нет, в случае с онлайн верификацией ПИН-блок полностью формируется ПИН-клавиатурой. Карта в этом процессе вообще не участвует.
-
Спасибо всем за комментарии.
-
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.
Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно :-\
-
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.
Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно
-
Тогда с учетом общей критики наверное так :-\
-
Тогда с учетом общей критики наверное так :-\
Не плохо!
-
Тогда с учетом общей критики наверное так :-\
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так. Некоторую странность диаграммы можно усмотреть в том, что заканчивается она двумя возвратами на один и тот же call. Разумно было бы либо делать один возврат, либо вообще не моделировать взаимодействие с экземпляром действующего лица сообщениями типа call и reply. И финальная рекомендация. Ради Марса, не рисуйте экзекьюшн спецификации на диаграммах последовательности. Их отсутствие почти всегда ни на что не влияет, а присутствие, как правило, провоцирует нарушения стандарта.
-
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так. Некоторую странность диаграммы можно усмотреть в том, что заканчивается она двумя возвратами на один и тот же call. Разумно было бы либо делать один возврат, либо вообще не моделировать взаимодействие с экземпляром действующего лица сообщениями типа call и reply. И финальная рекомендация. Ради Марса, не рисуйте экзекьюшн спецификации на диаграммах последовательности. Их отсутствие почти всегда ни на что не влияет, а присутствие, как правило, провоцирует нарушения стандарта.
а что такое экзекьюшн спецификации?
-
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так.
а если это просто успешный сценарий, частная диаграмма последовательности.
-
Тогда переименовываем тему в "диаграмма последовательности процесса успешного снятия денег в банкомате".
Экзэкьюшн-спек (https://www.uml-diagrams.org/sequence-diagrams.html#execution) на uml-diagrams.org
-
Тогда переименовываем тему в "диаграмма последовательности процесса успешного снятия денег в банкомате".
Ну это к автору :)
Экзэкьюшн-спек (https://www.uml-diagrams.org/sequence-diagrams.html#execution) на uml-diagrams.org
Как изменчив мир!