Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > WinAPI
Перезагрузить страницу Работа со Smart Card Reader
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
Question Работа со Smart Card Reader - 23.06.2011, 10:20

Здравствуйте, великие Гуру.
Передо мной стоит задача: "Необходимо считать данные с 'чиповонного' удостоверения личности или водительских прав"(такие данные как фио, дата рождения, адрес и т.д).Очень много искал информацию на данную тему но к сожалению толком не чего не нашел. У меня имееться устройство "Smart Card Reader CI691". Пишу я на Delphi. Последовательность работы с ридером следующая:
1) Инициализация ридера
2) Инициализация карты
3) Открытия карты для чтения(или для чтения и записи).
Все выше перечисленные пункты у меня получилось сделать. Возникает следующая проблема, обмен информацией между ПК и картой осуществляется с помощью команд APDU(Application Protocol Data Unit), подскажите пожалуйста где можно почитать о данных командах, как их правильно задавать,в каком виде закодированные данные и как их декадировать.
Всем большое СПАСИБО!!!
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 23.06.2011, 11:43

Если у Вас серьезная разработка, то проблема обычно решается заказом/покупкой соответствующей документации у правообладателя. С заключением договора о нераспространении.
Если же Вы (или Ваше руководство) решили заняться мелким хакингом, то остается только по крупицам фильтровать интернет и экспериментировать, экспериментировать..
Ответить с цитированием
  (#3 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию 24.06.2011, 08:16

Большое спасибо Alexiski за ответ.Я понимаю что не все сразу, в то же время есть же какие то общепринятые команды, и ответы полученные на эти команды, хотя бы для того что бы получить информацию в кодированном виде.Или для каждой смарт карты они индивидуальны? Большое всем спасибо. Буду ждать от вас любой информации.
Ответить с цитированием
  (#4 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Спасите, помогите.... - 28.06.2011, 08:35

Товарищи, неужели не кто не сталкивался с подобным? Правда очень нужно... Помогите развить молодой талант Правда все уже перерыл, аж кругом голова... Но не че по данной теме не нашел.... Всем спасибо кто не оставит меня погибать....
Ответить с цитированием
  (#5 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию smart card - 11.07.2011, 08:45

Товарищи поймите данная информация не являться конфиденциальной, она в принципе вся описана на самом уд. личности. Я не занимаюсь не чем противозаконным....
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 11.07.2011, 23:55

1) Информация, возможно, и не конфиденциальная, но персональная - соответственно, любая попытка ее машинной обработки попадает под соответствующий ФЗ, это Вы должны понимать для начала.
2) Вопрос, собственно, не в закрытости информации, а в закрытости интерфейсов карты. Я Вам уже писал, что обычно такая информация передается с заключением договора о нераспространении. В открытом доступе ее может просто не быть.
3) Вы уверены, что знание интерфейса Вам поможет? Там нет никакой криптозащиты?

PS. Чтобы не вводить никого в заблуждение - у меня нет такой информации.
Ответить с цитированием
  (#7 (permalink)) Старый
AcerExtensa AcerExtensa вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.11.2007
По умолчанию 15.07.2011, 15:01

Не знаю, может что-то изменилось, но с покон веков использовались CTAPI для чтения/записи чип-карт... На сколько я понял вам ето бля банковских карт? Вам нужна структура записей на карте... она стандартизированна(в большинстве случаев) ФИО. возраст, адресс, номер в открытой форме, остальная информация шифрованна и финкция для авторизации зашифроанна, для расшифровки и получения информации нужно подать команду на карту, получить запрос на пароль, вернуть пароль и читать данные.... в общем все ето описанно в CTAPI(CT-API)... и актуально для европы(стандартизация структуры данных и последовательность чтения)
Ответить с цитированием
  (#8 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Смарт карты - 18.07.2011, 13:54

Большое спасибо AcerExtensa, по поводу банковских смарт карт действительно много информации, и общие данные считать без проблем, но мне необходимо считать информацию, как я уже писал выше с удостоверения личности и водительских прав, опять же повторюсь с данных документов мне не нужна какая то сверх секретная информация, которая является защищенной и приследуется за взлом по закону, вся это информация которую мне нужно получить ее можно без проблем прочитать глазами(такие данные как фио, адрес и.т.д). Но работа с данным видом смарт карт не похоже на банковские смарт карты. Друзья помогите:]
Ответить с цитированием
  (#9 (permalink)) Старый
AcerExtensa AcerExtensa вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.11.2007
По умолчанию 18.07.2011, 19:02

Давай по очереди:
1. Ты можеш прочесть данные в бинарном виде с карты?
2. Ты не можеш их расшифровать, так сказать?
Ответить с цитированием
  (#10 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Смарт карты - 19.07.2011, 08:10

Уважаемый(-ая) AcerExtensa, у мя получилось:
1) инициализировать смард ридер (CI691)
2) инициализировать карту
3) я получил с нее кое- какие данные, вот они
__________________________________________________ _______________
SMART CARD INFO

ICC STATE
ATR STRING ................... 3B 77 18 00 00 4B 41 53 41 4B 49 44
ICC PRESENCE ................. 2
ICC INTERFACE STATUS ......... 255
ICC TYPE PER ATR ............. 1
CURRENT IO STATE ............. < no info >

PROTOCOL
DEFAULT DATA RATE ............ 10080
MAX DATA RATE ................ 312500
ASYNC PROTOCOL TYPES ......... 3
DEFAULT CLK .................. 3750
MAX CLK ...................... 7500
MAX IFSD ..................... 254
SYNC PROTOCOL TYPES .......... < no info >

IFD PROTOCOL
CURRENT PROTOCOL TYPE ........ 1
CURRENT CLK .................. 3750
CURRENT F .................... 372
CURRENT D .................... 12
CURRENT N .................... 0
CURRENT W .................... 10
CURRENT IFSC ................. 0
CURRENT IFSD ................. 254
CURRENT BWT .................. 0
CURRENT CWT .................. 0
CURRENT EBC ENCODING ......... 0
EXTENDED BWT ................. < no info >
__________________________________________________ __________
, но мне кажется это не то что нужно, скорее всего это информация о ПО смард ридера.
4) Теперь для получения данных в бинарном виде используются так называемые APDU (Application Protocol Data Unit) команды(5-ти байтовые), на которые ридер должен дать ответ, так вот я и застопорился на этих командах, я не знаю как правильно их посылать... Вот я и прошу скинуть ссылочку где можно будет об этом что нибдуь почитать более детально, я нашел много инфы, но она вся поверхностная.. Всем большое спасибо!!!!!
Ответить с цитированием
  (#11 (permalink)) Старый
AcerExtensa AcerExtensa вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.11.2007
По умолчанию 19.07.2011, 14:28

CTAPI документация:
CTAPI11EN.pdf

фрэймворк для работы с картами: opensc

выложи код, как ты пытаешся читать...
Ответить с цитированием
  (#12 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Смарт карты - 19.07.2011, 16:57

//.................................................Э то основная процедура которая должна вернуть бинарник

procedure bt_SendClick(Sender: TObject);
begin
label2.caption := Bin2HexExt(pcsc.GetResponseFromCard(Hex2Bin(adpu_c omand)), true, true);
end;

//.....Эта функция если правильно передать в нее APdu команду выдаст ответ.Функция SCardTransmit берется со стандартной библиотеки winscard.dll

function GetResponseFromCard(const APdu: string): string;
var
RetVar : cardinal;
SBuf : string;
SLen : cardinal;
RBuf : string;
RLen : cardinal;
Ppci : Pointer;
begin
SBuf := APdu;
RBuf := StringOfChar(#0,MAXAPDULENGTH);
if Length(SBuf) <= MAXAPDULENGTH then
begin
case FAttrProtocol of
SCARD_PROTOCOL_T0 : Ppci := @SCARD_PCI_T0;
SCARD_PROTOCOL_T1 : Ppci := @SCARD_PCI_T1;
else Ppci := nil;
end;
SLen := Length(APdu);
RLen := Length(RBuf);
RetVar := SCardTransmit(FCardHandle, Ppci, Pointer(SBuf), SLen, nil, Pointer(RBuf), @RLen);
if RetVar = SCARD_S_SUCCESS then
begin
Result := Copy(RBuf,1,RLen);
end else
begin
Result := '';
if Assigned(FOnError) then FOnError(Self, esTransmit, RetVar);
end;
end;
end;


//...... Эта функция и должна дать мне бинарник, но поскольку GetResponseFromCard не дает правильного ответа, соответственно и преборозовать не чего не получаеться....

function Hex2Bin(input: string): string;
var
hex, output: string;
loop : integer;
begin
for loop := 1 to Length(input) do if Pos(input[loop], hexchars) > 0 then hex := hex + AnsiUpperCase(input[loop]);
loop := 1;
if Length(hex) > 0 then
repeat
output := output + Chr(StrToInt('$'+Copy(hex,loop,2)));
loop := loop + 2;
until loop > Length(hex);
Result := output;
end;
-------------------------------------------------
Пишу я на дельфи....
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
AcerExtensa AcerExtensa вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.11.2007
По умолчанию 20.07.2011, 13:59

эм, используй тэги форматирования.

попробуй это из консоли... посмотри что она скажет.
Вложения
Тип файла: zip SCardTest.zip (4.8 Кб, 1009 просмотров)
Ответить с цитированием
  (#14 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Смарт карты - 20.07.2011, 14:15

Спасибо AcerExtensa, я воспользовался вашей программой но она к сожаленияю выдало сообщения что нет соединения с картой(CAN`T CONNECT TO SAMRT CARD). Может с моей картой что то не так?
Ответить с цитированием
  (#15 (permalink)) Старый
ДмитрийР ДмитрийР вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.06.2011
По умолчанию Смарт карты - 20.07.2011, 15:35

Попытался считать еще с 2 смарт карты(а именно водительских удостоверений) такая же история
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
all in 1 card reader Gendos Электроника 0 06.04.2012 23:12
Adobe Reader джон вэй Любые вопросы от новичков 0 30.08.2011 22:39
Подключение e book reader к ПК Сильвер Носители информации 0 26.04.2011 23:06
Не работает card reader Маша2011 Любые вопросы от новичков 8 14.03.2011 16:15
Помогите с поиском драйвера card reader max9000 Драйвера 7 09.01.2011 16:25
VGA-SWITCH-CARD vlad555 Любые вопросы от новичков 24 31.12.2010 01:16
VGA-SWITCH-CARD vlad555 Материнские платы 0 27.12.2010 12:46
Smart Device Project в Visual Studio 2008 работа с графикой gradient89 Visual Basic 0 14.12.2009 18:41
ИБП Ippon Smart Power Pro 1400 и Smart Winner 1500 increative Коммерческий раздел 0 22.05.2009 20:23
Foxit Reader klemmm Софт и программы 2 24.02.2009 15:47
KeyLog Reader 2.0.6 Д-ж=о12 Разное 0 25.07.2008 03:55



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов