Электронные наличные как технология.

Поделиться

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

Число реально функционирующих систем электронной наличности мало. Это связано со сложностью создания соответствующего алгоритмического аппарата и трудоемкостью его программной реализации. Опыт показал, что модельные системы электронной наличности реализуются достаточно легко, но написание практической системы, обслуживающей большое число платежей и устойчивой к мошенничеству требует длительного труда большого коллектива высококвалифицированных математиков и программистов. В своем рассмотрении я опирался на действующие системы: emoney (www.digicash.com) и PayCash (www.paycash.ru).

Исторически, большинство платежных инструментов, в том числе и дистанционных, связано с неким банковским счетом. И карточки, и система SWIFT, и многие Интернет системы (www.payment.ru , www.cyberplat.ru ) базируются на обычном банковском счете. При этом , по сути, представляют собой команды банку перевести такую-то сумму на такой-то счет.

Эта система совсем неплоха, но определенные недостатки по сравнению с обычными деньгами в ней есть. Во-первых, любой платеж тем или иным образом ссылается на счет в целом и, перехватив и расшифровав отдельный платеж, преступник получает доступ к счету в целом. Во-вторых, все эти платежи можно отследить. При этом возникаю проблемы не только для преступников. Например, если Вы покупаете по карточке много лекарств, Вам может быть отказано в продаже страхового полиса. В-третьих, все эти системы основаны на полном доверии к банку, а иногда и к магазину, где Вы совершаете покупку. Помимо проблемы доверия по каждой конкретной сделке, мы возвращаемся к проблеме доверия общества к банкам в целом. Она может состоять в том, что отдельный банк разорится, или в том, что банки, в силу своих интересов, используют аккумулированные у них средства для действий, не совпадающих с интересами страны и, в конечном итоге, вкладчиков. В четвертых, счет можно арестовать, заблокировать, то есть, говоря юридическим языком, избирательно преследовать держателя. В пятых деньги можно перевести с карточки, но не на карточку.

Эти причины побудили аналитиков и разработчиков создать программные и аппаратные системы , максимально эмулирующие в Интернете оборот обычных наличных. Грань между этими системами провести довольно трудно. Очевидно, что любая программная система может быть закодирована в специализированном микропроцессоре (смарт-карте) и снабжена дополнительными аппаратными средствами защиты. Договоримся, что программной системой мы будем называть систему, защита которой сохраняется при любых попытках просмотра и модификации ее программного кода. Для аппаратных систем, в свою очередь, предполагается, что имеется некий элемент (модуль ROM, например), в который данные может записывать, считывать и модифицировать только авторизированный изготовитель.

Описание развития технологии в ее реальном историческом аспекте является очень объемным предметом для самостоятельного исследования. Поэтому, отвлекаясь от реальной истории событий, представим себя на месте разработчиков Интернет-Банка, которые хотят максимально близко имитировать в Интернете оборот обычных купюр.

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

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

Для того чтобы ему в этом помешать, используются разнообразные способы защиты. Можно представить себе ситуацию, когда каждая купюра лично подписывается председателем Центробанка его уникальной подписью. Однако такой способ плох. Во-первых, он очень трудоемок для председателя. Во-вторых, он «симметричен», то есть для установления подлинности подписи требуются примерно такие же усилия, как и для ее изготовления. Кроме этого, он беззащитен против качественного копирования. Поэтому в реальных купюрах используются механизмы защиты (водяные знаки, полоски и прочее) которые являются «асимметричными» по отношению к процедуре проверки и защищены от копирования. Например, водяной знак крайне трудно изготовить или скопировать, но очень легко проверить его достоверность.

В случае с компьютером, у нас есть два инструмента для обеспечения таких свойств. Близким аналогом бумажного решения являются аппаратные решения, в которых эти свойства определяются процедурой изготовления (например, Mondex, www.mondex.com ). Такие системы обладают многими преимуществами: они просты с алгоритмической точки зрения, компактны, ориентированы на денежные транз в автономном (без участия третьей стороны) режиме. В то же время, в такой системе как Mondex, защита данных основана на общем для всех платежных карточек секретном ключе и взлом одной карточки означает взлом всей системы в целом.

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

Для начала, естественно, нужно изготовить сам носитель, то есть файл, который будет содержать информацию, что он, файл, есть купюра, достоинством в 1 рубль, серийный номер такой-то, выпущенный Интернет-Банком таким-то и тогда-то. Плюс, любая информация, которую Банк сочтет нужным поместить. После этого изготовляется определенное число таких файлов, с разными номерами и номиналами и Банк почти готов к проведению эмиссии.

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

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

При этом обычно применяется так называемая слепая подпись, позволяющая подписывать анонимные купюры (врезка 2). Такие купюры не позволяют Банку проследить, какому конкретно пользователю была выдана данная купюра.

Таким образом, на данном механизме можно строить систему электронных наличных. В простейшем случае Некто приносит в Интернет-Банк один рубль и получает взамен файл, зашифрованный на закрытом ключе банка, в котором написано, предъявитель сего в любой момент может получить в Интернет-Банке один рубль. Далее этот Некто может купить что-либо в Интернет-магазине, послав ему в качестве оплаты этот файл. Магазин может легко убедиться, что это — действительно деньги, расшифровав его на открытом ключе (для этого даже не нужно выходить в Интернет). После этого Магазин в любой момент может заплатить этим файлом дальше или обналичить его в Интернет-Банке.

К сожалению, в таком виде схема неработоспособна, потому что не решает задачи защиты от копирования. Действительно, в отсутствие аппаратной защиты все файлы одинаковы и никто не может помешать обладателю купюры неограниченно богатеть при помощи команды copy. Или просто послав файл по Интернет для оплаты в три места сразу. При этом, в силу анонимности, найти держателя невозможно.

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

Наиболее простыми для понимания являются online-решения. Простейшая схема — одноразовые купюры. При этом каждая купюра живет один цикл оплаты: деньги с обычного банковского счета клиента (или наличные) конвертируются в электронную купюру и передаются клиенту — клиент передает купюру получателю, например Интернет-продавцу -продавец передает купюру в Банк — купюра конвертируется в деньги на обычном банковском счету продавца. При каждом платеже получатель немедленно связывается с Банком и сообщает данные о полученной купюре. Эти данные заносятся в базу данных использованных купюр. При попытке покупателя заплатить этой же купюрой второй раз, соответствующий получатель получает от Банка ответ, что платеж недействителен.

На практике, каждый раз конверировать купюры не очень удобно, поэтому используются гибридные системы. Например, в PayCash, клиент, при подключении к системе, открывает один или несколько счетов в Интернет-Банке. Такие счета аналогичны обычным банковским, с той разницей что для них оговорена операция конвертации в электронные наличные и обратно. По мере надобности, клиент дает команду Банку, после чего происходит конвертация необходимой суммы в электронные наличные, размещенные у клиента на компьютере Затем они передаются продавцу. В процессе платежа они конвертируются обратно в реальные деньги и кладутся на счет продавца. Использованная при этом электронная купюра заносится в базу данных Банка и запрещается к дальнейшему использованию.

Очевидно, все эти сложности возникаю при отсутствии доверия между участниками платежа. В противном случае, можно просто передать файл с одного компьютера на другой и стереть его из компьютера платящей стороны. Отметим, что система считает законным владельцем того, кто первый предъявил данную купюру в Банк.

Более экзотичным является метод offline-верификации. Действительно, альтернативой мгновенному контролю операции является возможность в случае мошенничества впоследствии однозначно и доказательно определить мошенника. Такой подход, например, широко применяется в системах кредитных карточек. В случае электронных денег это использование затруднено анонимностью участников. Чтобы обойти эту сложность были предложены модели, в которых купюра, при вторичном предъявлении, теряет свою анонимность. Это позволяет Банку отследить мошенника. К сожалению, используемая в этом методе математика достаточно сложна и до конца не отработана. Интересующихся я могу отослать к списку оригинальных публикаций (http://www.cwi.nl/ftp/brands/@@README ).

Отметим, что все платежи протоколируются сторонами. Это дает возможность всегда подтвердить факт платежа перед третьей стороной. При этом в системе PayCash в любом платеже задействованы три секретных ключа, покупателя, продавца и Банка. Поэтому система являются устойчивыми не только к попыткам мошенничества со стороны аутсайдеров или участников платежа, но и к попыткам мошенничества со стороны Банка или совместного мошенничества Банка и одного из участников.

Следует сказать, что файлы очень близки к деньгам, иногда даже ближе, чем хотелось бы. Это, вероятно, является неизбежной расплатой за указанные преимущества. Например, электронные наличные можно украсть, вместе с компьютером, или просто скопировав. При этом, разумеется, пострадавший может обратиться в Банк с просьбой наложит арест на купюры с данными номерами. Но при этом он должен будет представить веские доказательства, что купюры были его собственностью, что означает потерю анонимности.

Очевидно, все эти сложности скрыты от пользователя. Для работы с электронными наличными он устанавливает у себя программу-Кошелек, которая умеет выполнять несколько простых операций, а именно

— Хранить файлы-монетки

— Получать их от другого Кошелька

— Проверять подлинность

— Передавать их в другой Кошелек

Конкретная организация Кошелька зависит от системы. В PayCash используется метафора платежных книжек. Каждая платежная книжка соответствует отделению реального кошелька в котором лежит определенная сумма электронных наличных в одной из 255 поддерживаемых системой валют. Далее, Кошелек позволяет открывать в Банке произвольное количество независимых счетов. При открытие счета являются пустыми. Занеся на них реальные деньги, клиент дает при помощи Кошелька команду перечислить нужную сумму в нужной валюте на одну их платежных книжек в виде электронных наличных. При платеже Кошелек плательщика связывается с Кошельком продавца и переводит ему соответствующую сумму. Кошелек продавца передает эту сумму Банку. Последний, после верификации, кладет эти деньги на одни из счетов продавца и высылает Кошельку продавца подтверждение платежа.

При этом Кошелек, очевидно, может поддерживать большое число сервисных функций — автоматически обслуживать запросы, предупреждать о совершении операций. Отдельной темой является защита Кошелька как программы от несанкционированного доступа. Впрочем, вообще говоря, Кошелек есть некая база данных, и никаких оригинальных идей для функционирования не требует.

Таким образом, система электронных наличных позволяет на базе открытых аппаратных и телекоммуникационных решений создавать защищенные платежные системы с уникальными свойствами. Сейчас эти системы пробивают себе дорогу в жизнь. При этом четко наметилось направления интегрирования таких систем в торговые и контрактные системы. Этот процесс происходит довольно болезненно. Определенную роль ет и непривычность самой протоколов с разделенными секретами. С функциональной точки зрения, такие системы резко уменьшают роль общественных гарантов (банков, госструктур, нотариатов) при совершении сделок, что порождает известное противодействие их продвижению. Однако общий социальный процесс индивидуализации общественных процессов не оставляет нам выбора. В современном обществе роль больших формальных структур неизбежно падает. Все больше людей участвует в производстве и управлении, не выходя из дома. Такая децентрализация и распределение производственных и управленческих функций неизбежно должна найти свой эквивалент в децентрализации и распределении банковских и платежных систем.

Врезка 1. Электронная подпись.

Электронные подписи тесно связаны с асимметричными алгоритмами шифрования. Такие алгоритмы еще называют схемами с разделяемыми ключами. До недавнего времени все шифрование, начиная от простейшей замены каждой буквы на следующую по алфавиту и кончая DES, были схемами с общим ключом. Иными словами, для расшифровки и зашифровки использовался один и тот же ключ, и шифровальщик всегда имел возможность сам расшифровать свое сообщение. Такие шифры можно сравнить с сейфом, который и открывается и запирается одним и тем же ключом. Более общо, по шифрующему ключу путем несложных преобразований можно определить расшифровывающий ключ и наоборот. В середине восьмидесятых была предложена идея шифрования с разделяемыми ключами. Такую схему можно сравнить с сейфом, который запирается одним ключом, а отпирается другим, причем по одному ключу невозможно восстановить другой. Точнее, такое восстановление можно сделать сколь угодно трудоемким. Применение таких систем чрезвычайно широко, от систем наблюдения на территории противника до в орлянку по телефону, но наиболее практически распространенной является система электронной подписи.

Предположим, что Банк изготовил один закрывающий ключ (он именуется закрытым и лежит в укромном месте), и открывающий ключ, который на веревочке повешен в общедоступном месте, причем достоверно известно, что этот ключ парен закрывающему ключу, лежащему в Банке. Чтобы послать сообщение от своего имени Банк помещает его в сейф, запирает закрытым ключом и передает Вам. Вы идете на площадь и пробуете открыть сейф открытым ключом. Если он подходит, Вы можете быть уверены, что закрыт сейф был именно в Банке и его содержимое исходит именно от Банка.

Применительно к компьютеру это еще проще. Банк пишет любой текст, зашифровывает его на закрытом ключе и передает Вам. Если Вы хотите убедиться, что текст исходит именно от Банка, Вы идете на его Web-сайт, берете открытый ключ и расшифровываете текст.

Хочу подчеркнуть, что по открытому ключу невозможно восстановить закрытый.

Врезка 2

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

Пусть Некто, желая анонимно получить чек на 5 долларов, выписывает его, кладет в конверт и вместе с 5 долларами приносит в Банк. У конверта есть одна хитрость — внутренняя сторона его сделана из копирки. Банк, получив 5 долларов, берет печать с надписью «банк гарантирует этот чек к оплате в размере 5 долларов» и со всей силы бьет по конверту. При этом печать через копирку оттискивается на чеке, его удостоверяя, но банк не видит чека и не может проследить его путь. Далее клиент разрывает конверт и достает анонимный чек заверенный Банком.

В компьютерном методе слепой подписи роль конверта, в котором спрятан чек, играет некое математическое преобразование

Подписываемый файл представляет собой набор цифр-байтов, назовем его A. Слепая подпись превращает каждый байт (точнее, некоторые последовательности байтов) в другой, зашифрованный на закрытом ключе (я, как написано в начале, полностью игнорирую технологические тонкости). Если для подписи-шифрования используется алгоритм RSA, то это преобрадование происходит по правилам, описанным на www.rsa.com:

RSA(А) -> A’

Математики показали, что если байт, перед шифрованием по RSA, умножить на некое число N, то результат шифрования будет отличаться, разумеется от исходного:

RSA(NА) -> A» не равное A’

Но, если этот результат поделить на число N, то мы получим тот же результат, что и в начале

A»/N -> A’

Или

RSA(NA)/N = RSA(A)

Иными словами, операция шифрования и умножения происходят независимо друг от друга.

Такое свойство позволяет устроить слепую подпись так. Клиент изготавливает у себя на компьютере банкноту в пять долларов по установленному образцу с уникальным номером и умножает все байты в файле на одному лишь ему известное число. Тем самым он прячет их в конверт. Затем он дает команду Банку списать с его счета пять долларов и подписать присланный файл. Банк подписывает его слепой подписью для пятидолларовых купюр и отсылает обратно. Отметим, что Банк не знает секретного числа и не видит, какой изначальный файл он подписывает. Далее получатель делит все числа в полученном файле на N (распечатывает конверт), получая в результате анонимную электронную банкноту в 5 долларов, подписанную Банком.

Более точное описание учитывает, что данные методы оперируют не с байтами, а с их последовательностями. Более подробную информацию можно найти, например, на http://ganges.cs.tcd.ie/mepeirce/Project/double.html или http://193.78.226.2/news/archive/encrypt.html

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

Похожие обзоры

Хоть кто-то из аукционов рад успехам прошлого года

По мнению владельцев онлайн-а Meshok.ru, 2007 год стал "годом...

Как отмыть миллион? Как отдать миллион?

Ну вот и дожили! ГИБДД создает сеть "электронных киосков"...

Мифы и реальность онлайновой видеорекламы

По мере того, как сектор онлайновой рекламы становится все...

Как оценить надежность продавца на аукционе eBay

Аукцион www.ebay.com посещают тысячи людей, заинтересованных в приобретении...

У Mail.ru появится двойник в украинском Интернете – под доменом Mail.ua будет расположен новый почтовый сервис

По словам А. Ольшанского, президента компании "Интернет Консалтинг Групп",...

Интернет увеличивает ценность телерекламы

В последние несколько лет главенствующим стало мнение, что интернет...
spot_img