2015-07-07 1 views
0

Я хочу зашифровать некоторые Data с помощью ключа шифрования от SmartCard.Могу ли я получить ключ смарт-карты от аппаратного обеспечения и расшифровать?

Есть ли способ достичь этого? Я хочу красить шифрование с карты на сервере linux и своевременно внести изменения.

Я что-то прочитал о OpenSC, это помогает мне в некотором роде?

ответ

0

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

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

+0

Думаю, она ничего не говорит об асимметричных ключах, верно? Она должна скорее использовать симметричные ключи со случайным IV, прикрепленным к зашифрованному сообщению ... – vojta

0

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

Но простой (профанированный) на ваш вопрос - да - вы можете получить доступ к ключу, и вы можете расшифровать; Более важный вопрос - какой ключ вы можете получить, и что вы на самом деле делаете для дешифрования/шифрования или подписания?

Существует только два способа, которыми Вы можете сделать шифрование с помощью SC:

  1. выполнения операции шифровать (отправить APDU) до различных нокаутов (ключ объекта): RSA, ECC KO или ключ SM, все они личные ключи вы не можете прочитать с карты, но вы можете использовать PSO (PERFORM SECURITY OPERATION);
  2. сделайте это самостоятельно, используя открытый ключ, извлеченный из объекта CA (сертификата);

Объекты CA хранятся в общедоступном разделе карты, поэтому любой может прочитать его, и вам не нужна аутентификация для доступа к публичному разделу, естественно; KO находятся в частном разделе, поэтому вам сначала нужно получить к нему доступ, выполнив аутентификацию на карте (проверьте PIN-код);

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

Смежные вопросы