Cyfrowe podpisywanie pliku AIR

Elektroniczne podpisywanie plików instalacyjnych AIR za pomocą certyfikatu wystawionego przez zatwierdzony ośrodek certyfikacji (CA) stanowi istotne potwierdzenie dla użytkowników aplikacji, że aplikacja, którą instalują nie została przypadkowo lub złośliwie zmodyfikowana. Ponadto certyfikat stanowi potwierdzenie tożsamości autora podpisu. Środowisko wykonawcze AIR wyświetla nazwę wydawcy podczas instalowania pod warunkiem, że aplikacja AIR została podpisana certyfikatem zaufanym lub takim, który kieruje do certyfikatu zaufanego na komputerze instalacji:

Okno dialogowe instalacji dla aplikacji podpisanych za pomocą certyfikatu zaufanego

Jeśli aplikacja zostanie podpisana za pomocą certyfikatu samopodpisanego (lub certyfikatu, który nie wskazuje na certyfikat zaufany), wówczas użytkownik instalujący taką aplikację będzie musiał zaakceptować większe ryzyko. Okno dialogowe instalacji zawiera informację o tym dodatkowym ryzyku:

Okno dialogowe instalacji dla aplikacji podpisanych za pomocą certyfikatu podpisanego automatycznie
Ważne: Kod złośliwy może sfałszować plik AIR, korzystając z tożsamości programisty, jeśli w jakiś sposób uzyska plik magazynu kluczy do podpisywania lub wykryje klucz prywatny.

Certyfikaty do podpisywania kodu

Zabezpieczenia, ograniczenia oraz obowiązki prawne wynikające ze stosowania certyfikatów podpisujących kod zostały przedstawione w oświadczeniu CPS (Certificate Practice Statements) oraz umowach dotyczących subskrypcji wystawianych przez ośrodek certyfikacji. Więcej informacji na temat umów z ośrodkami certyfikacji, które obecnie wydają certyfikaty do podpisywania kodu dla środowiska AIR, można znaleźć na następujących stronach internetowych:

ChosenSecurity (http://www.chosensecurity.com/products/tc_publisher_id_adobe_air.htm)

ChosenSecurity CPS (http://www.chosensecurity.com/resource_center/repository.htm)

GlobalSign (http://www.globalsign.com/code-signing/index.html)

GlobalSign CPS (http://www.globalsign.com/repository/index.htm)

Thawte CPS (http://www.thawte.com/cps/index.html)

VeriSign CPS (http://www.verisign.com/repository/CPS/)

Umowa subskrybenta — VeriSign (https://www.verisign.com/repository/subscriber/SUBAGR.html)

Informacje o podpisywaniu kodu w AIR

Podpisywanie pliku AIR oznacza dołączenie podpisu elektronicznego do pliku instalacyjnego. Podpis zawiera streszczenie pakietu, które służy do weryfikacji, że plik AIR nie został zmodyfikowany od czasu jego podpisania, a ponadto zawiera informacje o certyfikacie, które służą do sprawdzenia tożsamości wydawcy.

W środowisku AIR wykorzystywana jest infrastruktura kluczy publicznych za pośrednictwem magazynu certyfikatów systemu operacyjnego — w tej strukturze określane jest, czy certyfikat może być zaufany. Komputer, na którym zainstalowana jest aplikacja AIR musi bezpośrednio ufać certyfikatowi używanemu do podpisania aplikacji AIR lub musi zaufać łańcuchowi certyfikatów łączących certyfikat z zaufanym ośrodkiem certyfikacji w celu weryfikacji informacji o wydawcy.

Jeśli plik AIR jest podpisany certyfikatem, który nie łączy się z jednym z zaufanych certyfikatów głównych (zwykle należą do nich certyfikaty samopodpisane), wówczas nie ma możliwości sprawdzenia informacji o wydawcy. Środowisko AIR może ustalić, czy pakiet AIR nie został zmodyfikowany od czasu jego podpisania, ale nie ma możliwości określenia autora pliku ani autora podpisu.

Uwaga: Użytkownik może zaufać certyfikatowi samopodpisanemu, a wówczas wszystkie aplikacje AIR podpisane tym certyfikatem będą wyświetlały wartość pola nazwy wspólnej z certyfikatu jako nazwę wydawcy. Środowisko AIR nie udostępnia użytkownikowi funkcji wyznaczenia certyfikatu jako podpisany. Certyfikat (bez klucza prywatnego) musi zostać udostępniony użytkownikowi osobno, a użytkownik musi korzystać z jednego z mechanizmów dostępnych w systemie operacyjnym lub z odpowiedniego narzędzia w celu zaimportowania certyfikatu do odpowiedniej lokalizacji w magazynie certyfikatów systemu.

Informacje o identyfikatorach wydawców AIR

Ważne: Identyfikator wydawcy nie jest używany począwszy od wersji AIR 1.5.3 i nie jest już obliczany na podstawie certyfikatu podpisującego kod. Nowe aplikacje nie potrzebują identyfikatora wydawcy i nie powinny z niego korzystać. W przypadku aktualizacji istniejących aplikacji należy określić oryginalny identyfikator wydawcy w pliku deskryptora aplikacji.

W wersjach wcześniejszych niż AIR 1.5.3 instalator aplikacji AIR generował identyfikator wydawcy podczas instalowania pliku AIR. Był to identyfikator unikalny dla certyfikatu służącego do podpisania pliku AIR. Jeśli ten sam certyfikat został wykorzystany dla wielu aplikacji AIR, wówczas identyfikator wydawcy dla każdej z tych aplikacji był taki sam. Podpisanie aktualizacji aplikacji innym certyfikatem, a czasami nawet odnowioną wersją oryginalnego certyfikatu, powodowało zmianę identyfikatora wydawcy.

W wersji AIR 1.5.3 i wersjach późniejszych ID wydawcy nie jest przypisywany przez AIR. Aplikacja opublikowana za pomocą AIR 1.5.3 może określać ciąg znaków identyfikatora wydawcy w deskryptorze aplikacji. Identyfikator wydawcy należy określić tylko w przypadku publikowania aktualizacji dla aplikacji pierwotnie opublikowanych dla wersji AIR wcześniejszych niż 1.5.3. Jeśli oryginalny identyfikator nie zostanie określony w deskryptorze aplikacji, wówczas nowy pakiet AIR nie będzie traktowany jako aktualizacja istniejącej aplikacji.

Aby ustalić oryginalny identyfikator wydawcy, należy odszukać plik publisherid w podkatalogu META-INF/AIR, w którym zainstalowana jest oryginalna aplikacja. Ciąg znaków w tym pliku jest identyfikatorem wydawcy. Deskryptor aplikacji powinien określać środowisko wykonawcze AIR 1.5.3 (lub późniejszą wersję) w deklaracji przestrzeni nazw pliku deskryptora aplikacji — tylko wówczas możliwe jest ręczne określenie identyfikatora wydawcy.

Identyfikator wydawcy — jeśli jest dostępny — jest używany do następujących celów:

  • Jako część klucza szyfrowania dla zaszyfrowanej składnicy lokalnej

  • Jako część ścieżki katalogu zapisu aplikacji

  • Jako część ciągu znaków połączenia dla połączeń lokalnych

  • Jako część ciągu znaków tożsamości używanego w celu wywołania aplikacji z interfejsem API AIR dostępnym w przeglądarce

  • Jako część OSID (używany podczas tworzenia niestandardowych programów instalacyjnych/deinstalacyjnych)

Gdy dochodzi do zmiany identyfikatora wydawcy, następuje również zmiana działania wszystkich funkcji środowiska AIR zależnych od tego identyfikatora. Na przykład: dochodzi do utraty dostępu do danych w istniejącej składnicy lokalnej, a wszelkie instancje Flash lub AIR, które tworzą lokalne połączenie z aplikacją, muszą stosować nowy identyfikator w ciągu znaków połączenia. W środowisku AIR 1.5.3 lub nowszym nie można zmienić identyfikatora wydawcy zainstalowanej aplikacji. Jeśli w przypadku publikowania pakietu AIR używany jest inny identyfikator wydawcy, instalator traktuje nowy pakiet jak inną aplikację, a nie jak aktualizację.

Informacje o formatach certyfikatów

Narzędzia do podpisywania AIR akceptują dowolne magazyny kluczy dostępne za pośrednictwem architektury Java Cryptography Architecture (JCA). Ta architektura zawiera magazyny plików oparte na plikach, takie jak pliki w formacie PKCS12 (zwykle z rozszerzeniem .pfx lub .p12), pliki .keystore Java, magazyny kluczy PKCS11 urządzeń oraz systemowe magazyny kluczy. Formaty magazynów kluczy, do których narzędzie ADT może uzyskać dostęp, są uzależnione od wersji i konfiguracji środowiska wykonawczego Java używanego do uruchamiania narzędzia ADT. Dostęp do pewnych typów magazynów kluczy, np. do tokenów PKCS11 urządzeń, może wymagać zainstalowania i konfiguracji dodatkowych sterowników oprogramowania i wtyczek JCA.

Do podpisywania plików AIR można używać większości istniejących certyfikatów do podpisywania kodu. Można też uzyskać nowy certyfikat wydany specjalnie do podpisywania aplikacji AIR. Na przykład możliwe jest stosowanie dowolnego z wymienionych niżej certyfikatów wydawanych przez ośrodki VeriSign, Thawte, GlobalSign lub ChosenSecurity:

  • ChosenSecurity

    • TC Publisher ID for Adobe AIR

  • GlobalSign

    • ObjectSign Code Signing Certificate

  • Thawte :

    • AIR Developer Certificate

    • Apple Developer Certificate

    • JavaSoft Developer Certificate

    • Microsoft Authenticode Certificate

  • VeriSign :

    • Adobe AIR Digital ID

    • Microsoft Authenticode Digital ID

    • Sun Java Signing Digital ID

Uwaga: Certyfikat musi być utworzony jako certyfikat podpisujący kod. Do podpisywania plików AIR nie można używać certyfikatów SSL ani certyfikatów innego typu.

Znaczniki czasowe

Podczas podpisywania pliku AIR narzędzie do pakowania zadaje do serwera zapytanie dotyczące ośrodka wystawiającego znaczniki czasu w celu niezależnej weryfikacji daty i czasu podpisu. Uzyskany znacznik czasu zostaje osadzony w pliku AIR. Jeśli certyfikat podpisujący obowiązuje podczas podpisywania, plik AIR może zostać zainstalowany nawet po utracie ważności certyfikatu. Z drugiej strony: jeśli nie uzyskano znacznika czasu, wówczas po utracie ważności lub odrzuceniu certyfikatu nie ma możliwości zainstalowania pliku AIR.

Domyślnie narzędzia do pakowania AIR uzyskują znacznik czasu. Jednak aby umożliwić pakowanie przy braku dostępności do usługi znacznika czasu, można wyłączyć wstawianie znacznika czasu. Adobe zaleca, aby wszystkie dystrybuowane publicznie pliki AIR zawierały znacznik czasu.

Domyślnym ośrodkiem wystawiającym znaczniki czasu, z którego korzystają narzędzia pakowania AIR, jest Geotrust.

Uzyskiwanie certyfikatu

W celu uzyskania certyfikatu należy odwiedzić witrynę sieci Web ośrodka certyfikacji, a następnie przeprowadzić proces związany z uzyskiwaniem. Narzędzia, jakie są używane do generowania pliku magazynu kluczy wymaganego dla narzędzi AIR, są uzależnione od typu zakupionego certyfikatu, sposobu przechowywania certyfikatu na komputerze odbierającym oraz w niektórych przypadkach — od przeglądarki używanej w celu odebrania certyfikatu. Na przykład, aby uzyskać i wyeksportować certyfikat Adobe Developer wydany przez ośrodek Thawte, należy użyć przeglądarki Mozilla Firefox. Certyfikat można wyeksportować jako plik P12 lub PFX bezpośrednio z interfejsu użytkownika programu Firefox.

Uwaga: Środowisko Java w wersji 1.5 lub nowszej nie akceptuje znaków o wysokich kodach ASCII w hasłach chroniących pliki certyfikatów PKCS12. Środowisko Java jest wykorzystywane przez narzędzia programistyczne AIR do tworzenia podpisanych pakietów AIR. Jeśli certyfikat ma być eksportowany w pliku P12 lub PFX, należy w haśle używać tylko zwykłych znaków ASCII.

Certyfikat samopodpisany można wygenerować za pomocą narzędzia ADT (Air Development Tool) używanego do pakowania plików instalacyjnych AIR. Możliwe jest również korzystanie z niektórych narzędzi innych firm.

Instrukcje generowania certyfikatu podpisanego automatycznie i podpisywania plików AIR zawiera sekcja Narzędzie ADT . Pliki AIR można eksportować i podpisywać za pomocą programów Flash Builder, Dreamweaver oraz za pomocą aktualizacji AIR dla programu Flash.

Poniższy przykład przedstawia sposób uzyskania certyfikatu AIR Developer Certificate z ośrodka certyfikacji Thawte, a także sposób przygotowania tego certyfikatu do użytku z narzędziem ADT.

Przykład: uzyskanie certyfikatu AIR Developer Certificate z ośrodka Thawte

Uwaga: Niniejszy przykład ilustruje tylko jeden z wielu sposobów uzyskania i przygotowania certyfikatu podpisującego kod do użytku. Każdy ośrodek certyfikacji ma własne zasady i procedury.

W celu zakupienia certyfikatu AIR Developer Certificate w witrynie sieci Web Thawte należy korzystać z przeglądarki Mozilla Firefox. Klucz prywatny dla certyfikatu jest zapisany w magazynie kluczy przeglądarki. Należy się upewnić, że magazyn kluczy Firefox jest zabezpieczony hasłem głównym oraz że komputer jest zabezpieczony fizycznie. (Po zakończeniu procesu uzyskiwania możliwe będzie wyeksportowanie i usunięcie klucza prywatnego z magazynu kluczy przeglądarki).

W ramach procesu rejestrowania generowana jest para kluczy: prywatny/publiczny. Klucz prywatny jest automatycznie zapisywany w magazynie kluczy Firefox. Do żądania i pobierania certyfikatu z witryny sieci Web Thawte należy używać tego samego komputera.

  1. Odwiedź witrynę sieci Web Thawte i przejdź do strony certyfikatów podpisujących kod dla produktów .

  2. Z listy certyfikatów podpisujących kod wybierz certyfikat Adobe AIR Developer Certificate.

  3. Wykonaj trzykrokowy proces rejestracji. Wymagane jest wprowadzenie informacji o organizacji oraz danych adresowych. Następnie Thawte przeprowadzi weryfikację tożsamości i może zażądać dodatkowych informacji. Po zakończeniu weryfikacji Thawte wyśle wiadomość e-mail z instrukcjami dotyczącymi pobrania certyfikatu.

    Uwaga: Dodatkowe informacje o typie wymaganej dokumentacji zawiera dokument: https://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/enroll_codesign_eng.pdf .
  4. Pobierz wydany certyfikat z serwisu Thawte. Certyfikat zostanie automatycznie zapisany w magazynie kluczy Firefox.

  5. Wyeksportuj plik magazynu kluczy zawierający klucz prywatny i certyfikat z magazynu kluczy Firefox, wykonując poniższe czynności:

    Uwaga: Prywatny klucz/certyfikat z Firefox jest eksportowany w formacie .p12 (pfx), z którego może korzystać program ADT, Flex, Flash i Dreamweaver.
    1. Otwórz okno dialogowe Menedżer certyfikatów przeglądarki Firefox:

    2. W systemie Windows: wybierz kolejno opcje Narzędzia -> Opcje -> Zaawansowane -> Szyfrowanie -> Wyświetl certyfikaty

    3. W systemie Mac OS: otwórz program Firefox -> Preferencje -> Zaawansowane -> Szyfrowanie -> Wyświetl certyfikaty

    4. W systemie Linux: wybierz kolejno opcje Edycja -> Preferencje -> Zaawansowane -> Szyfrowanie -> Wyświetl certyfikaty

    5. Z listy certyfikatów wybierz certyfikat Adobe AIR Code Signing Certificate i kliknij przycisk Kopia zapasowa .

    6. Wprowadź nazwę i lokalizację pliku, do którego zostanie wyeksportowany plik magazynu kluczy, a następnie kliknij przycisk Zapisz .

    7. Jeśli używane jest hasło główne Firefox, wymagane jest wprowadzenie hasła dla urządzenia zabezpieczenia oprogramowania w celu wyeksportowania pliku. (To hasło jest używane tylko przez program Firefox).

    8. W oknie dialogowym Wybierz hasło kopii zapasowej certyfikatu utwórz hasło dla pliku magazynu kluczy.

      Ważne: To hasło chroni plik magazynu kluczy oraz jest wymagane, gdy plik jest używany do podpisywania aplikacji AIR. Należy wybrać hasło bezpieczne.
    9. Kliknij przycisk OK. Powinien pojawić się komunikat informujący o pomyślnym zakończeniu wykonywania kopii zapasowej. Plik magazynu kluczy zawierający prywatny klucz i certyfikat jest zapisywany z rozszerzeniem .p12 (w formacie PKCS12)

  6. Wyeksportowany plik magazynu kluczy można użyć z programem ADT, Flash Builder, Flash Professional lub Dreamweaver. Hasło utworzone dla pliku jest wymagane zawsze przy podpisywaniu aplikacji AIR.

Ważne: Klucz prywatny i certyfikat są nadal zapisane w magazynie kluczy Firefox. Dzięki temu możliwe jest wyeksportowanie dodatkowej kopii pliku certyfikatu, a ponadto jest to dodatkowy punkt dostępu, który musi być chroniony, aby możliwe było zachowanie bezpieczeństwa certyfikatu i klucza prywatnego.

Zmiana certyfikatów

W pewnych sytuacjach należy zmienić używany certyfikat w celu podpisania aktualizacji dla danej aplikacji AIR. Do takich sytuacji należą:

  • Odnowienie oryginalnego certyfikatu podpisującego.

  • Aktualizacja z certyfikatu samopodpisanego do certyfikatu wydanego przez ośrodek certyfikacji

  • Zmiana certyfikatu samopodpisanego, który wkrótce utraci ważność, na inny certyfikat

  • Zmiana certyfikatu komercyjnego np. w przypadku zmiany tożsamości korporacyjnej

Aby środowisko AIR rozpoznało plik AIR jako aktualizację, należy podpisać oryginalne pliki AIR i pliki aktualizacji tym samym certyfikatem lub zastosować podpis migracji certyfikatu do aktualizacji. Podpis migracji jest drugim podpisem stosowanym względem pakietu aktualizacji AIR przy wykorzystaniu oryginalnego certyfikatu. Podpis migracji korzysta z certyfikatu oryginalnego w celu wskazania, że autor podpisu jest oryginalnym wydawcą aplikacji.

Po zainstalowaniu pliku AIR z podpisem migracji nowy certyfikat staje się certyfikatem głównym. Kolejne aktualizacje nie wymagają podpisu migracji. Jednak w miarę możliwości należy stosować podpisy migracji jak najdłużej, aby ułatwić korzystanie z aplikacji użytkownikom, którzy pomijają niektóre aktualizacje.

Ważne: Należy zmienić certyfikat i zastosować podpis migracji do aktualizacji z oryginalnym certyfikatem przed utratą jego ważności. W przeciwnym razie użytkownicy będą musieli odinstalować istniejącą wersję aplikacji przed zainstalowaniem nowej wersji. W środowisku AIR 1.5.3 lub nowszym można zastosować podpis migracji przy użyciu certyfikatu, który utracił ważność, w ciągu 365-dniowego okresu prolongaty od momentu utraty ważności. Nie można jednak użyć takiego certyfikatu w celu zastosowania głównego podpisu aplikacji.

W celu zmiany certyfikatów:

  1. Utwórz aktualizację aplikacji

  2. Spakuj i podpisz plik AIR aktualizacji nowym certyfikatem

  3. Podpisz ponownie plik AIR oryginalnym certyfikatem (korzystając z polecenia -migrate narzędzia ADT)

Pod innymi względami plik AIR z podpisem migracji jest normalnym plikiem AIR. Jeśli aplikacja zostanie zainstalowana w systemie, który nie zawiera wersji oryginalnej, wówczas środowisko AIR zainstaluje nową wersję w standardowy sposób.

Uwaga: W wersjach wcześniejszych niż AIR 1.5.3 podpisanie aplikacji AIR odnowionym certyfikatem nie zawsze wymagało podpisu migracji. Począwszy od wersji AIR 1.5.3 podpis migracji jest zawsze wymagany dla odnowionych certyfikatów.

Aby zastosować podpis migracji, należy użyć Polecenie migrate narzędzia ADT zgodnie z opisem zawartym w rozdziale Podpisywanie zaktualizowanej wersji aplikacji AIR .

Uwaga: Polecenia migrate programu ADT nie można używać z aplikacjami komputerowymi AIR, które zawierają rozszerzenia natywne, ponieważ takie aplikacje są spakowane jako instalatory natywne, a nie jako pliki AIR. Aby zmienić certyfikaty aplikacji komputerowej AIR, która zawiera rozszerzenie natywne, należy spakować aplikację przy użyciu Polecenie package narzędzia ADT z flagą -migrate.

Zmiany tożsamości aplikacji

Począwszy od wersji AIR 1.5.3 tożsamość aplikacji AIR ulegała zmianie po zainstalowaniu aktualizacji z podpisem migracji. Zmiana tożsamości aplikacji ma między innymi następujące konsekwencje:

  • Wersja nowej aplikacji nie może uzyskać dostępu do danych w istniejącym zaszyfrowanym magazynie lokalnym.

  • Zmienia się lokalizacja katalogu zapisu aplikacji. Dane ze starej lokalizacji nie są kopiowane do nowego katalogu. (Nowa aplikacja może zlokalizować katalog oryginalny na podstawie starego identyfikatora wydawcy).

  • Aplikacja nie może otworzyć lokalnych połączeń za pomocą starego identyfikatora wydawcy.

  • Zmienia się ciąg znaków tożsamości używany w celu uzyskania dostępu do aplikacji ze strony internetowej.

  • Zmienia się OSID aplikacji. (OSID jest używany w przypadku pisania niestandardowych programów instalujących/deinstalujących).

W przypadku publikowania aktualizacji ze środowiskiem AIR 1.5.3 lub nowszym tożsamość aplikacji nie może ulec zmianie. Identyfikator oryginalnej aplikacji oraz identyfikator wydawcy muszą zostać określone w deskryptorze aplikacji pliku AIR aktualizacji. W przeciwnym wypadku nowy pakiet nie zostanie rozpoznany jako aktualizacja.

Uwaga: W przypadku publikacji nowej aplikacji AIR w wersji AIR 1.5.3 lub późniejszej nie należy określać identyfikatora wydawcy.

Terminologia

Niniejsza sekcja zawiera słowniczek terminów, które należy znać podczas podejmowania decyzji dotyczących sposobu podpisania aplikacji dla dystrybucji publicznej.

Termin

Opis

Ośrodek certyfikacji

Obiekt w sieci infrastruktury kluczy publicznych, który służy jako zaufana strona trzecia i w sposób ostateczny poświadcza tożsamość właściciela klucza publicznego. Ośrodek zwykle wydaje certyfikaty elektroniczne podpisywane własnymi kluczami prywatnymi, co stanowi dowód sprawdzenia tożsamości posiadacza certyfikatu.

Oświadczenie CPS (Certificate Practice Statement)

Określa praktyki i strategie ośrodka certyfikacji dotyczące wydawania i weryfikacji certyfikatów. Oświadczenie CPS jest częścią umowy między ośrodkiem certyfikacji a subskrybentami oraz stronami zależnymi. Określa również strategie weryfikacji tożsamości i poziom zabezpieczeń oferowanych przez udostępniane certyfikaty.

Lista CRL (Certificate Revocation List)

Lista wydanych certyfikatów, które zostały odrzucone i nie należy im ufać. AIR sprawdza CRL podczas podpisywania aplikacji AIR, a także w przypadku braku znacznika czasu przy instalowaniu aplikacji.

Łańcuch certyfikatów

Łańcuch certyfikatu jest sekwencją certyfikatów, w której każdy certyfikat z łańcucha został podpisany przez kolejny certyfikat.

Certyfikat elektroniczny

Dokument elektroniczny, który zawiera informacje o tożsamości właściciela, kluczu publicznym właściciela oraz o tożsamości samego certyfikatu. Certyfikat wydany przez ośrodek certyfikacji jest podpisany przez certyfikat należący do wydającego ośrodka.

Podpis elektroniczny

Zaszyfrowany komunikat lub zaszyfrowane streszczenie, które można odszyfrować tylko za pomocą klucza prywatnego lub za pomocą klucza prywatnego, będącego połową pary klucz publiczny - klucz prywatny. W infrastrukturze PKI podpis elektroniczny zawiera jeden lub większą liczbę certyfikatów elektronicznych, które ostatecznie prowadzą do ośrodka tożsamości. Podpis elektroniczny może służyć do sprawdzenia, czy komunikat (lub plik) nie został zmodyfikowany od czasu podpisania (z uwzględnieniem ograniczeń określonych przez algorytm kryptograficzny), oraz w celu sprawdzenia tożsamości autora podpisu — przy założeniu, że wydający ośrodek certyfikacji jest zaufany.

Magazyn kluczy

Baza danych zawierająca certyfikaty elektroniczne, a w niektórych przypadkach, powiązane klucze prywatne.

Java Cryptography Architecture (JCA)

Rozszerzalna architektura przeznaczona do zarządzania i uzyskiwania dostępu do magazynów kluczy. Więcej informacji zawiera dokumentacja Java Cryptography Architecture Reference Guide .

PKCS nr 11

Standard Cryptographic Token Interface Standard określony przez RSA Laboratories. Magazyn kluczy oparty na tokenie sprzętowym.

PKCS nr 12

Standard Personal Information Exchange Syntax Standard określony przez RSA Laboratories. Magazyn kluczy oparty na plikach, który zwykle zawiera klucz prywatny oraz skojarzony z nim certyfikat elektroniczny.

Klucz prywatny

Prywatna część dwuczęściowego, asymetrycznego systemu kryptografii obejmującego klucz prywatny i publiczny. Klucz prywatny należy chronić i nigdy nie należy przesyłać go przez sieć. Komunikaty podpisane elektronicznie są szyfrowane kluczem prywatnym przez autora podpisu.

Klucz publiczny

Publiczna część dwuczęściowego, asymetrycznego systemu kryptografii obejmującego klucz prywatny i publiczny. Klucz publiczny jest dostępny dla wszystkich i służy do deszyfrowania komunikatów zaszyfrowanych kluczem prywatnym.

Infrastruktura PKI (Public Key Infrastructure)

System zaufania, w którym ośrodki certyfikacji poświadczają prawdziwość tożsamości właściciela klucza publicznego. Klienci sieci polegają na certyfikatach elektronicznych wydawanych przez zaufany ośrodek certyfikacji w celu weryfikacji tożsamości autora komunikatu elektronicznego (lub pliku).

Znacznik czasu

Elektronicznie podpisany element danych, który zawiera datę i godzinę wystąpienia zdarzenia. Narzędzie ADT może dołączać znaczniki czasu z serwera czasu zgodnego ze standardem RFC 3161 w pakiecie AIR. Jeśli znacznik czasu jest dostępny, środowisko AIR korzysta z niego w celu ustalenia poprawności certyfikatu w czasie podpisywania. Dzięki temu aplikacja AIR może zostać zainstalowana po upływie ważności jej certyfikatu podpisującego.

Ośrodek wystawiający znacznik czasu

Ośrodek, który wystawia znaczniki czasu. Znacznik, który ma zostać rozpoznany przez środowisko AIR, musi być zgodny ze standardem RFC 3161, a podpis znacznika czasu musi prowadzić do zaufanego certyfikatu głównego na komputerze instalacji.

Certyfikaty w systemie iOS

Certyfikaty do podpisywania kodu wydawane przez firmę Apple umożliwiają podpisywanie aplikacji dla systemu iOS, w tym aplikacji opracowanych z użyciem środowiska Adobe AIR. W celu zainstalowania aplikacji na urządzeniach testowych jest wymagane zastosowanie podpisu przy użyciu certyfikatu programisty wydanego przez firmę Apple. Do rozpowszechniania ukończonej aplikacji jest wymagane zastosowanie podpisu przy użyciu certyfikatu rozpowszechniania.

Aby można było podpisać aplikację, zarówno certyfikat do podpisywania kodu, jak i powiązany z nim klucz prywatny muszą być dostępne dla programu ADT. Plik certyfikatu nie zawiera klucza prywatnego. Należy utworzyć magazyn kluczy jako plik w formacie Personal Information Exchange (p12 lub pfx), zawierający certyfikat i klucz prywatny. Więcej informacji zawiera rozdział Konwertowanie certyfikatu programisty na plik magazynu kluczy P12 .

Generowanie wniosku o podpisanie certyfikatu

Aby uzyskać certyfikat programisty, należy wygenerować wniosek o podpisanie certyfikatu i złożyć go w witrynie Apple iOS Provisioning Portal.

Podczas obsługi wniosku o podpisanie certyfikatu jest generowana para kluczy (publiczny i prywatny). Klucz prywatny pozostaje na komputerze użytkownika. Użytkownik wysyła wniosek o podpisanie (zawierający klucz publiczny i informacje identyfikacyjne użytkownika) do firmy Apple, która pełni rolę urzędu certyfikacji. Firma Apple podpisuje certyfikat użytkownika za pomocą własnego certyfikatu World Wide Developer Relations.

Generowanie wniosku o podpisanie certyfikatu w systemie Mac OS

W systemie Mac OS możliwe jest użycie aplikacji Dostęp do pęku kluczy do wygenerowania wniosku o podpisanie certyfikatu. Aplikacja Dostęp do pęku kluczy stanowi podkatalog katalogu Narzędzia w katalogu Programy. Instrukcje umożliwiające wygenerowanie wniosku o podpisanie certyfikatu są dostępne w witrynie Apple iOS Provisioning Portal.

Generowanie wniosku o podpisanie certyfikatu w systemie Windows

W przypadku programistów pracujących w systemie Windows może okazać się łatwiejsze uzyskanie certyfikatu programisty iPhone na komputerze z systemem Mac. Możliwe jest jednak uzyskanie certyfikatu na komputer z systemem Windows. Najpierw utwórz wniosek o podpisanie certyfikatu (plik CSR), korzystając z warstwy OpenSSL:

  1. Zainstaluj warstwę OpenSSL na komputerze z systemem Windows. (Przejdź do witryny http://www.openssl.org/related/binaries.html .)

    Może być również potrzebne zainstalowanie plików redystrybuowalnych Visual C++ 2008, wymienionych na stronie pobierania protokołu Open SSL. ( Nie ma potrzeby instalowania programu Visual C++ na posiadanym komputerze.)

  2. Otwórz sesję wiersza poleceń Windows i przejdź (za pomocą polecenia CD) do podkatalogu bin katalogu OpenSSL (np. c:\OpenSSL\bin\).

  3. Utwórz klucz prywatny, wprowadzając w wierszu poleceń:

    openssl genrsa -out mykey.key 2048

    Zapisz ten plik klucza prywatnego. Będzie on potrzebny później.

    Korzystając z protokołu OpenSSL, nie ignoruj komunikatów o błędach. Mimo że protokół OpenSSL wygeneruje komunikat o błędzie, nadal może on generować pliki. Plik te mogą jednak okazać się bezużyteczne. W przypadku wyświetlenia błędów należy sprawdzić składnię, a następnie uruchomić polecenie ponownie.

  4. Utwórz plik CSR, wprowadzając w wierszu poleceń:

    openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest  -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=US"

    Zastąp adres e-mail, CN (nazwę certyfikatu) oraz C (kraj) własnymi wartościami.

  5. Załaduj plik CSR do witryny Apple iPhone Dev Center . (Patrz „Składanie wniosku o certyfikat programisty iPhone i tworzenie profilu informacyjnego”.)

Konwertowanie certyfikatu programisty na plik magazynu kluczy P12

Aby utworzyć magazyn kluczy P12, należy połączyć certyfikat programisty wydany przez firmę Apple i powiązany z nim klucz prywatny, umieszczając je w jednym pliku. Proces tworzenia pliku magazynu kluczy zależy od metody użytej do wygenerowania pierwotnego wniosku o podpisanie certyfikatu, a także od miejsca przechowywania klucza prywatnego.

Konwertowanie certyfikatu programisty telefonu iPhone na plik P12 w systemie Mac OS

Po pobraniu certyfikatu telefonu iPhone od firmy Apple należy wyeksportować go do formatu magazynu kluczy P12. Aby dokonać tego w systemie Mac® OS:

  1. Otwórz aplikację Dostęp do pęku kluczy (w folderze Aplikacje/Narzędzia).

  2. Jeśli wcześniej nie wykonano tej czynności, dodaj plik certyfikatu programisty do pęku kluczy, wybierając opcje Plik > Importuj. Następnie przejdź do pliku certyfikatu (plik .cer) uzyskanego od firmy Apple.

  3. Wybierz kategorię Klucze w aplikacji Dostęp do pęku kluczy.

  4. Wybierz klucz prywatny skojarzony z certyfikatem instalacyjnym iPhone.

    Klucz prywatny jest identyfikowany przy użyciu skojarzonego z nim certyfikatu publicznego wystawionego dla podmiotu „iPhone Developer: <imię> <nazwisko>”.

  5. Naciśnij klawisz Command i kliknij certyfikat programisty telefonu iPhone, a następnie wybierz opcję Eksportuj „iPhone Developer: nazwa...” .

  6. Zapisz magazyn kluczy w formacie pliku Personal Information Exchange (p12).

  7. Zostanie wyświetlony monit o utworzenie hasła używanego podczas korzystania z magazynu kluczy w celu podpisywania aplikacji lub przekazywania klucza i certyfikatu z tego magazynu kluczy do innego magazynu kluczy.

Konwertowanie certyfikatu programisty firmy Apple na plik P12 w systemie Windows

Podczas opracowywania aplikacji AIR dla systemu iOS należy używać pliku certyfikatu P12. Certyfikat ten generuje się w oparciu o plik certyfikatu programisty Apple iPhone otrzymany od firmy Apple.

  1. Plik certyfikatu programisty otrzymany od firmy Apple konwertuje się do pliku certyfikatu PEM. Uruchom następującą instrukcję wiersza poleceń z podkatalogu bin katalogu OpenSSL:

    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
  2. W przypadku używania klucza z pęku kluczy na komputerze z systemem Mac dokonaj jego konwersji na klucz PEM:

    openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
  3. Możesz teraz wygenerować prawidłowy plik P12, bazujący na kluczu oraz wersji PEM certyfikatu programisty iPhone:

    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

    W przypadku używania klucza z pęku kluczy Mac OS użyj wersji PEM wygenerowanej w poprzednim kroku. W przeciwnym przypadku użyj klucza OpenSSL wygenerowanego wcześniej (w systemie Windows).