И всё же, можно ли извлечь закрытый ключ из смарт-карты?


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

Так кто же прав, а кто нет? Стоп, но есть же ещё третья группа.

А третьи примирительно говорят, что в данном вопросе, дьявол кроется в деталях, и именно из-за этих деталей могут правы один или другие.

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

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

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

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

Зная ответы на эти вопросы, Вы сможете сказать можно или нельзя извлечь закрытый ключ из смарт-карты.

Место генерации криптопары зависит от программного обеспечения, работающего со смарт-картой, например, от крипто-сервис провайдеров (Crypto Service Provider, сокращённо CSP).

Например, при использовании проприетарных SCP, которые обычно устанавливаются вместе с драйверами на смарт-карту, генерация крипто-пары происходит в смарт-карте. В случае генерации криптопары в смарт-карте, закрытый ключ будет неизвлекаемым.
А в случае использование сторонних SCP, генерация обычно происходит на стороне компьютера, и только потом уже импортируется в смарт-карту.
Обратите внимание, что при описании примеров, использую слово «обычно» — так как есть и другие настройки, которые влияют на место генерации криптопары.

Самый известный и распространённый криптопровайдер в России, это, наверное, КриптоПро SCP (сразу оговорюсь, что это моё личное субъективное мнение). Так вот, при использовании смарт-карты совместно с КриптоПро SCP, генерация происходит на стороне компьютера, после чего происходит импорт на смарт-карту. При этом при работе с закрытым ключом, он извлекается из смарт-карты в память компьютера.

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

Нет комментариев