1.6. StrongName —
02400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32
E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B72 3
CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622
CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293:
FullTrust
1.7. StrongName - 00000000000000000400000000000000: FullTrust
1.8. StrongName -
00240000048000009400000006020000002400005253413100040000010001007508D0780C56AF85BA< /code>
1BAD6D88E2C653E0A836286682C18134CC989546C1143252795A791F042238040F5627CCC1590ECEA 3
0A9CD4780F5F0B29B55C375D916A33FD46B14582836E346A316BA27CD555B8F715377422EF589770E5
A5346A00BAABB70EF36774DFBCB17A30B67C913384E62A1C762CF40AFE6F1F605CCF406ECF:
FullTrust
Success
Для доступа к строгому имени в сборке можно применить утилиту secutil.exe
с файлом манифеста сборки. Воспользуемся secutil.exe
для просмотра данных устойчивого имени нашей сборки. Мы добавим параметр -hex
, чтобы открытый ключ был показан в шестнадцатеричном представлении (как в caspol.exe
), и аргумент strongname
, определяющий, что мы хотим увидеть строгое имя. Введите эту команду, и появится листинг, содержащий открытый ключ устойчивого имени, имя сборки и версию сборки.
secutil.exe -hex -strongname securityapp10.exe
Microsoft (R) .NET Framework SecUtil 1.0.xxxx.x
Copyright (c) Microsoft Corp 1999-2001. All rights reserved.
Public Key =
0x002400000480000094000000060200000024000052534131000400000100010x7508D0780C56AF85B Al
BAD6P88E2C653E0A836286682C18134CC988546C1143252795A791F042238040F5627CCC1590ECE
A30A9CD4780F5F0B29B55C375D916A33FD46B14582836E346A316BA27CD555B8F715377422EF589770
E5A5346AOOBAABB70EF36774DFBCB17A30B67C913384E62A1C762CF40AFE6F1F605CCF406ECF
Name = SecurityApp10
Version = 1.0.513.28751
Success
Можно заметить, что по умолчанию устанавливаются два строгих имени групп кода. Одно из них является ключом устойчивого имени кода Microsoft, а второй ключ устойчивого имени предназначен для частей .NET, представленных для стандартизации в ЕСМА, над которыми Microsoft имеет значительно меньший контроль.
Распространение кода с помощью сертификатов
В последнем разделе было рассмотрено, как можно применять уникальное устойчивое (строгое) имя к сборке, чтобы системный администратор мог явно предоставить сборкам полномочия, которые соответствуют этому устойчивому имени с помощью группы доступа к коду. Этот метод управления политикой системы безопасности может быть весьма эффективным, но иногда необходимо работать на более высоком уровне, где администратор политики системы безопасности предоставляет полномочия на основе издателя программного обеспечения, а не каждого отдельного программного компонента.
Чтобы предоставить информацию об издателе программного обеспечения, мы используем цифровые сертификаты и подписываем сборки, чтобы потребители программного обеспечения могли проверить идентичность издателя программного обеспечения. В коммерческой среде мы получаем сертификаты от таких компаний как Verisign или Thawte.
Преимущество покупки сертификата от внешнего поставщика перед созданием своего собственного состоит в том, что он предоставляет высокие уровни надежности в своей идентичности; поставщик действует как надежная третья сторона. Однако в целях тестирования .NET включает утилиту командной строки, которую можно использовать для создания тестового сертификата. Процесс создания сертификатов и их использование для публикации программного обеспечения является сложным, но чтобы дать представление о том, что сюда вовлечено, мы разберем пример, не вдаваясь в подробности.
Представим, что мы являемся компанией ABC Corporation, и создадим сертификат для нашего программного продукта 'ABC Suite'. Прежде всего необходимо создать тестовый сертификат, для чего вводим команду:
makecert -sk ABC -n 'CN=ABC Corporation' abccorptest.cer
Эта команда создает тестовый сертификат с именем 'ABC Corporation' и сохраняет его в файле abccorptest.cer
. Аргумент -sk
ABC создает расположение контейнера ключа, который используется криптографией с открытым ключом.
Чтобы подписать сборку с помощью сертификата, применяется утилита signcode.exe
с файлом сборки, содержащим манифест сборки. Часто простейшим способом подписать сборку является использование утилиты signcode.exe
в ее режиме мастера. Для запуска мастера введите signcode.exe
без параметров:

Если нажать кнопку Next, вам будет предложено определить, где находится файл, который надо подписать. Для сборки подписывается файл, содержащий манифест.

Если нажать кнопку Next и выбрать режим Custom в следующем окне, будет предложено определить сертификат, который должен использоваться для подписи сборки. Нажав Select from File и указав файл abccorptest.cer
, увидите экран подтверждения:
