Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Подписание Апплетов Используя Сертификаты RSA

Java Богатое Руководство по Интернет-приложениям > Безопасность> Подписание Апплетов Используя Сертификаты RSA

Следующие темы затрагиваются:

Введение

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

Подписание апплетов требует следующего:

  1. Подписание инструментов
  2. Пара ключей RSA и цепочка сертификата для открытых ключей
  3. Апплет и все его файлы class, связанные как файлы JAR

Подписание Инструментов

Плагин Java поддерживает формат следующих инструментов для того, чтобы подписать апплеты, используя RSA:

  1. jarsigner: Подписание инструмента, поставленного как часть SDK Java
  2. signtool: Подписание инструмента обеспечило Netscape для подписания апплетов в Навигаторе/Коммуникаторе. Для получения дополнительной информации на инструменте знака и загрузке этого, см. Средства обеспечения безопасности NSS.

Получение Сертификаты RSA

Сертификаты RSA могут быть куплены от Центра сертификации (CA), который поддерживает RSA, такой как VeriSign и Thawte. Некоторая АВАРИЯ, такая как VeriSign, реализует различные протоколы для того, чтобы выпустить сертификаты, в зависимости от определенного инструмента подписания, который Вы используете.

Получение Сертификатов С Jarsigner

Jarsigner, как известно, работает с VeriSign и сертификатами Thawte и может работать с Сертификатом Authorties. Чтобы использовать Jarsigner, чтобы подписать апплеты, используя сертификаты RSA, получите сертификаты для подписывания кода для Java от VeriSign, Thawte, или подобных сертификатов от другой АВАРИИ. Во время процесса регистрации сертификата Вас попросят обеспечить запрос подписания сертификата (CSR). Чтобы генерировать CSR, следуйте за этими шагами:

  1. Использовать keytool генерировать пару ключей RSA (использующий"-genkey -keyalg rsa"опции). Удостоверьтесь, что Ваше отличительное имя содержит все компоненты, переданные под мандат VeriSign/Thawte. Например:
    C:\Program Files\Java\jdk1.8.0\bin\keytool -genkey -keyalg rsa -alias MyCert
    Enter keystore password: *********
    What is your first and last name?
    [Unknown]: XXXXXXX YYY
    What is the name of your organizational unit?
    [Unknown]: Example Software
    What is the name of your organization?
    [Unknown]: New Technology Company
    What is the name of your City or Locality?
    [Unknown]: Cupertino
    What is the name of your State or Province?
    [Unknown]: CA
    What is the two-letter country code for this unit?
    [Unknown]: US
    Is <CN=XXXXXXX YYY, OU=Example Software, O=New Technology Company,
                    L=Cupertino, ST=CA, C=US> correct?
    [no]: yes
    
    Enter key password for <MyCert>
    (RETURN if same as keystore password): *********
    
  2. Используйте"keytool -certreq"чтобы генерировать сертификацию, подписывая запрос. Скопируйте результат и вставьте его в VeriSign/Thawte webform. Например, 
    C:\Program Files\Java\jdk1.8.0\bin\keytool -certreq -alias MyCert
    
    Enter keystore password: *********
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIBtjCCAR8CAQAwdjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwE
    AYDVQQHEwlDdXBlcnRpbm8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbX
    MxFjAUBgNVBAsTDUphdmEgU29mdHdhcmUxEzARBgNVBAMTClN0YW5sZXk
    gSG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALTgU8PovA4y59eb
    oPjY65BwCSc/zPqtOZKJlaW4WP+UhmebE+T2Mho7P5zXjGf7elo3tV5uI
    3vzgGfnhgpf73EoMow8EJhly4w/YsXKqeJEqqvNogzAD+qUv7Ld6dLOv0
    CO5qvpmBAO6mfaI1XAgx/4xU/6009jVQe0TgIoocB5AgMBAAGgADANBgk
    qhkiG9w0BAQQFAAOBgQAWmLrkifKiUYtd4ykhBtPWSwW/IKkgyfIuNMML
    dF1DH8neSnXf3ZLI32f2yXvs7u3/xn6chnTXh4HYCJoGYOAbB3WNbAoQR
    i6u6TLLOvgv9pMNUo6v1qB0xly1faizjimVYBwLhOenkA3Bw7S8UIVfdv
    84cO9dFUGcr/Pfrl3GtQ==
    -----END NEW CERTIFICATE REQUEST-----
    
  3. CA (например, VeriSign/Thawte) отправит Вам ответ сертификата (цепочка) по электронной почте. Скопируйте цепочку и сохраните ее в файле. Используйте"keytool -import"чтобы импортировать цепочку в Ваш keystore. Например:
    C:\Program Files\Java\jdk1.6.0\bin\keytool -import -alias MyCert -file VSSStanleyNew.cer
    
  4. Ваш сертификат RSA и его цепочка поддержки были проверены и импортированы в Ваш keystore. Вы теперь готовы использовать jarsigner подписать Ваш файл JAR.

Отметьте:

Следует использовать то же самое имя псевдонима для всех вышеупомянутых шагов или никакое имя псевдонима, когда значения по умолчанию имени псевдонима к "mykey".

Связывание Апплетов Java как Файлы JAR

Чтобы использовать Jarsigner, чтобы подписать апплеты с сертификатами RSA, апплеты должны быть связаны как файлы JAR. Инструмент Фляги (команда jar ...), который прибывает wiht Java SDK SE, может использоваться с этой целью. Например:

C:\Program Files\Java\jdk1.8.0\bin\jar cvf C:\TestApplet.jar .
added manifest
adding: TestApplet.class (in = 94208) (out= 20103)(deflated 78%)
adding: TestHelper.class (in = 16384) (out= 779)(deflated 95%)
Этот пример создает файл JAR C:\TestApplet.jar, и это содержит все файлы под текущим каталогом и его подкаталогами.

После того, как файл JAR создается, следует проверить его контент, используя jar оснастите снова, например,

C:\Program Files\Java\jdk1.8.0\bin\jar tvf TestApplet.jar
     0 Mon Mar 06 18:02:54 PST 2000 META-INF/
    68 Mon Mar 06 18:02:54 PST 2000 META-INF/MANIFEST.MF
 94208 Wed Mar 10 11:48:52 PST 2000 TestApplet.class
 16384 Wed Mar 10 11:48:52 PST 2000 TestHelper.class
Это гарантирует, что файлы class хранятся с надлежащим путем в пределах файла JAR.

Чтобы подписать апплет с сертификатом RSA, используя Инструмент Подписания Netscape, апплет должен быть помещен в каталог, например, C:\signdir. Инструмент Подписания Netscape свяжет это как файл JAR после процесса подписания.

Подписание Апплетов Java

Как только у Вас есть сертификаты RSA, инструмент подписания и файлы JAR апплета, Вы готовы подписать апплеты.

Подписание Апплетов Используя jarsigner

Подписать использование апплетов jarsigner, следуйте за этими шагами:

  1. Использовать jarsigner подписать файл JAR, используя учетные данные RSA в Ваших keystore, которые были сгенерированы в предыдущих шагах. Удостоверьтесь, что то же самое имя псевдонима определяется. Например,
    C:\Program Files\Java\jdk1.8.0\bin\jarsigner C:\TestApplet.jar MyCert
    Enter Passphrase for keystore: ********
    
  2. Используйте"jarsigner -verify -verbose -certs"чтобы проверить файлы фляги
    C:\Program Files\Java\jdk1.8.0\bin\jarsigner -verify -verbose
                    -certs d:\TestApplet.jar
    
    
             245 Wed Mar 10 11:48:52 PST 2000 META-INF/manifest.mf
             187 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.SF
             968 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.RSA
    smk      943 Wed Mar 10 11:48:52 PST 2000 TestApplet.class
    smk      163 Wed Mar 10 11:48:52 PST 2000 TestHelper.class
    
          X.509, CN=XXXXXXX YYY, OU=Example Software,
                    O=New Technology Company, L=Cupertino,
                    ST=CA, C=US (mycert)
          X.509, CN=New Technology Company, OU=Java Plug-in QA,
                    O=New Technology Company, L=Cupertino, ST=CA, C=US
          X.509, EmailAddress=server-certs@thawte.com,
                    CN=Thawte Server CA, OU=Certification
                    Services Division, O=Thawte Consulting cc,
                    L=Cape Town, ST=Western Cape, C=ZA
    
    
      s = signature was verified
      m = entry is listed in manifest
      k = at least one certificate was found in keystore
      i = at least one certificate was found in identity scope
    
    jar verified.
    
  3. Ваш апплет был подписан должным образом. Вы теперь готовы развернуть свой RSA подписанный апплет.

Подписание Апплетов Используя Инструмент Подписания Netscape

Чтобы подписать апплеты, используя signtool, следуйте за этими шагами:

  1. Используйте"signtool -L"чтобы определить прозвище сертификата, которое должно использоваться в подписании. Например,
    C:\signtool13WINNT40\signtool -L -d a:\cert
    using certificate directory: a:\cert
    
    S Certificates
    - ------------
      AT&T Certificate Services
      Thawte Personal Premium CA
      GTE CyberTrust Secure Server CA
      Verisign/RSA Commercial CA
      AT&T Directory Services
      BelSign Secure Server CA
      BelSign Class 1 CA
      GTIS/PWGSC, Canada Gov. Web CA
      Thawte Personal Freemail CA
      Thawte Server CA
      GTIS/PWGSC, Canada Gov. Secure CA
      MCI Mall CA
      VeriSign Class 3 Primary CA
      VeriSign Class 4 Primary CA
      KEYWITNESS, Canada CA
      BelSign Class 2 CA
      BelSign Object Publishing CA
    * Sun Microsystems, Inc.
      VeriSign Class 3 CA - Commercial Content/Software
                            Publisher - VeriSign, Inc.
      Verisign/RSA Secure Server CA
      VeriSign Class 1 Primary CA
      BBN Certificate Services CA Root 1
      Thawte Personal Basic CA
    * Sun Microsystems, Inc.'s VeriSign, Inc. ID
      CertiSign BR
      VeriSign Class 2 Primary CA
      Canada Post Corporation CA
      Integrion CA
      IBM World Registry CA
      BelSign Class 3 CA
      Uptime Group Plc. Class 1 CA
      Uptime Group Plc. Class 2 CA
      Thawte Premium Server CA
      Uptime Group Plc. Class 3 CA
      GTE CyberTrust Root CA
      Uptime Group Plc. Class 4 CA
    - ------------
    
    Certificates that can be used to sign objects
    have *'s to their left.
    
    
  2. Создайте пустой каталог. Например,
    mkdir signdir
    
  3. Поместите весь апплет файлы class в это.

  4. Используйте"signtool -Z"чтобы подписать апплет. Например,
    C:\signtool13>signtool -k "Sun Microsystems, Inc.'s VeriSign, Inc. ID"
            -d a:\cert -Z c:\TestApplet.jar c:\signdir
    using certificate directory: a:\cert
    Generating c:\signdir/META-INF/manifest.mf file..
    --> TestApplet.class
    adding c:\signdir/TestApplet.class to c:\TestApplet.jar...
            (deflated 57%)
    --> TestHelper.class
    adding c:\signdir/TestHelper.class to c:\TestApplet.jar...
            (deflated 43%)
    Generating zigbert.sf file..
    adding c:\signdir/META-INF/manifest.mf to c:\TestApplet.jar...
            (deflated 44%)
    adding c:\signdir/META-INF/zigbert.sf to c:\TestApplet.jar...
            (deflated 46%)
    adding c:\signdir/META-INF/zigbert.rsa to c:\TestApplet.jar...
            (deflated 40%)
    tree "c:\signdir" signed successfully
    
    
  5. Используйте"signtool -w"чтобы проверить архив. Например,
    C:\signtool13>signtool -w c:\TestApplet.jar -d a:\cert
    using certificate directory: a:\cert
    
    Signer information:
    
    nickname: Sun Microsystems, Inc.'s VeriSign, Inc. ID
    subject name: C=US, ST=CA, L=Palo Alto, OU=Example Software,
            CN=Sun Microsystems, OU=Digital ID Class 3 - Netscape
    Object Signing, OU="www.verisign.com/repository/RPA Incorp.
            by Ref.,LIAB.LTD(c)99", OU=VeriSign Trust Network,
            O="VeriSign, Inc."
    issuer name: CN=VeriSign Class 3 CA - Commercial Content/Software
            Publisher, OU="www.verisign.com/repository/RPA Incorp.
            by Ref.,LIAB.LTD(c)98", OU=VeriSign Trust Network,
            O="VeriSign, Inc."
    

Ваш апплет был подписан должным образом. Вы теперь готовы развернуть свой RSA подписанный апплет. См., Как Развернуть RSA Подписанные Апплеты для информации о развертывании.

Преобразование Старых Подписанных netscape Апплетов

Существующий RSA подписанные апплеты, разработанные для Netscape, может использовать Специфичные для netscape API безопасности. Эти Специфичные для netscape API не поддерживаются в Плагине Java. Вместо этого Плагин поддерживает стандартные API безопасности Java и в Навигаторе Netscape и в Internet Explorer.

Переместить Подписанные netscape апплеты, используя API безопасности Netscape, чтобы работать в Плагине Java:

  1. Прокомментируйте или удалите все netscape.security.* связанные операторы от апплета Java.
  2. Скомпилируйте и заархивируйте апплет как файл JAR.
  3. Оставьте файл JAR, используя Подпись объекта.

Это гарантирует, что RSA подписанный апплет будет работать и в Навигаторе Netscape и в Internet Explorer с Плагином Java.

Microsoft Authenticode

Authenticode является собственной технологией подписания, используемой в Microsoft Internet Explorer на Win32 для того, чтобы поддерживать подписанные апплеты в JVM IE. Authenticode не поддерживается в Плагине Java. Вместо этого Плагин Java поддерживает использование RSA подписанные апплеты и в IE и в Netscape.

Типичные проблемы

Если файл JAR не подписывается должным образом, если сертификат RSA истек, или если сертификат RSA является самосгенерированным, самоподписанным сертификатом, Плагин Java может перестать работать тихо и не раскрыться диалоговое окно безопасности. Апплет будет обработан как без знака.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами