Почему общие смарт-карты, такие как SLE5528, почти всегда ограничены объемом доступной памяти <16 КБ и очень медленным 8-битным процессором? Что является ограничивающим фактором, который делает технологически / экономически невозможным повышение этих ограничений?
РЕДАКТИРОВАТЬ: Может быть, я должен дать некоторые дополнительные сведения о том, почему я задаю этот вопрос. Для работающего клиента мы должны были интегрировать модуль смарт-карт, который в основном действовал как хранилище ключей (аналогично тому, которое вы можете использовать в библиотеках программирования высокого уровня, таких как PKCS11). Мы постоянно выходили за пределы этого устройства (не можем сохранить больше нескольких ключей, не можем сохранить ни один ключ размером больше 1 КБ, нужно подождать не менее 5 секунд перед получением списка ключей и т. Д.). Единственный человек в конце нашего поставщика, которого я мог найти, был продавец, который дал мне ответ «Вот так работают смарт-карты». Не похоже, что на рынке нет реального рынка для хранения ключей RSA размером> 4K. Я хотел бы знать реальную причину этого.
источник
Ответы:
Это дополнительная цена, вызванная функциями безопасности, которые повышают цену. Технически вы не можете сравнить энергонезависимую память смарт-карт с обычной флэш-памятью или памятью EEPROM. Например, можно открыть обычную флэш-память, прикрепить провода к матрице и прочитать содержимое памяти. Со смарт-картами это не должно быть возможным (или более реалистично: оно должно быть настолько сложным и дорогим, что оно того не стоит).
То же самое верно для процессора. Процессоры смарт-карт имеют массу встроенных функций безопасности, которые вообще не требуются для обычных процессоров. Например, они не должны пропускать какую-либо информацию о коде, который они выполняют, по величине потребляемого ими тока, или что-либо пропускать из-за радиочастотного излучения.
Тем не менее, все эти жалюзи боковых каналов имеют цену не только в стоимости производства, но и в вычислительной производительности. Просто важнее быть в безопасности, чем быть быстрым.
Тем не менее, смарт-карты с большим объемом памяти доступны. Вы можете купить их с объемом памяти более 100 КБ. Они дорогие, хотя.
Рекомендация в комментариях об изменении ключей с RSA на ECC очень хорошая. Размер ключа ECC по сравнению с RSA при том же уровне безопасности значительно меньше. Таким образом, вы получаете больше от своей ограниченной энергонезависимой памяти. ECC также, вероятно, будет быстрее.
источник
Так работают смарткарты. Если вам нужна флешка, вы знаете, где ее найти.
Смарт-карты предназначены для безопасности. Они предназначены для защиты от взлома . Они предназначены для того, чтобы хранить секреты и совершать самоубийства, а не раскрывать свои секреты. Вы не можете (с разумными усилиями, за исключением недостатков реализации) извлечь данные из них или клонировать их.
Смарт-карты (должны быть) разработаны таким образом, что если вы попытаетесь обойти программный интерфейс и напрямую прочитать их память, вы не сможете. Единственными внешними интерфейсами являются силовые и последовательные линии. Все остальное находится внутри клетки Фарадея (для противодействия измерениям выбросов), которая защищена слоем агрессивных химикатов (я думаю, кислот), так что если вы попытаетесь проделать дыру в защитном слое, чип (особенно память) будет быть поврежденным до невозможности восстановления.
Чип спроектирован так, чтобы получать постоянную мощность, чтобы избежать утечки информации из-за энергопотребления . Это также разработано, чтобы позволить операциям занимать постоянное время. Таким образом, чипы смарт-карт не имеют аппаратных оптимизаций, таких как конвейеры команд или управление питанием, для уменьшения тепловыделения. Чипы смарт-карт часто содержат детали, которые фактически не служат какой-либо цели, чтобы сделать выбросы и потребляемую мощность более постоянными или более сложными для анализа, а также затруднить обратный инжиниринг.
Некоторые вещи делают смарт-карты медленнее, чем не чувствительные к безопасности чипы. Поскольку у смарт-карт нет собственного источника питания, им приходится довольно часто выполнять запись во флэш-память - они не могут позволить себе кэшировать данные в ОЗУ. В противном случае противник может отрезать власть в выгодные (для него) времена. Программное обеспечение должно использовать алгоритмы постоянного времени (чтобы избежать атак по времени ), а не самый быстрый алгоритм. Программное обеспечение должно быть написано с избыточностью, на случай, если противник направит лазер на карту, чтобы перевернуть несколько битов в памяти и привести программное обеспечение в состояние, которое не должно было быть достижимым (да, это настоящая атака).
Такие меры безопасности имеют свою стоимость. Кроме того, поскольку атаки продолжают улучшаться, дизайн чипов должен идти в ногу. Большинство типов чипов становятся все более и более мощными в соответствии с законом Мура, но при использовании смарт-карт технические усовершенствования в основном поглощаются необходимостью противостоять новым атакам.
Там являются карты , которые поддерживают 4k ключей RSA. Но они необычные. Несколько лет назад была выпущена Java Card 3 для поддержки почти всех функций языка Java; Я думаю, что карта, способная сделать это, будет способна подписывать с 4k RSA. Но на самом деле они этого не сделали, отчасти потому, что технические усовершенствования выполняются за счет усиления защиты, а отчасти потому, что многие инженерные усовершенствования были сделаны в бесконтактных картах, которые требуют меньшего энергопотребления и более быстрого времени отклика.
Но рынка 4К RSA не так много. Когда смарт-карты достигли этой точки, ECC стал широко доступным. Вы можете получить тот же уровень безопасности, что и 4k RSA, с гораздо меньшими ключами ECC. Единственным недостатком перехода с RSA на ECC является поддержка алгоритма во всей вашей инфраструктуре, но встраиваемые устройства, такие как смарт-карты, являются самой сложной частью: почти все, что на стороне сервера поддерживает ECC в наши дни.
Если вам действительно нужно что-то более мощное, существуют USB-ключи с «реальной» вычислительной мощностью, которые могут хранить криптографические ключи и выполнять криптографические операции с интерфейсом PKCS # 11. Эти ключи не имеют такого же физического сопротивления, как типичная PKCS # 11. Это компромисс между безопасностью и производительностью.
Дальнейшее чтение:
источник