Udostępnij za pośrednictwem


Archiwum: wymagania dotyczące certyfikacji aplikacji klasycznych systemu Windows w wersji 3.0

Wersja dokumentu: 3.0

Data dokumentu: 29 czerwca 2012 r.

Ten dokument zawiera wymagania techniczne i kwalifikacje kwalifikacyjne, które aplikacja klasyczna musi spełnić, aby wziąć udział w programie certyfikacji aplikacji klasycznych systemu Windows 8. W przypadku systemu Windows 7 ten program był znany jako program logo oprogramowania systemu Windows.

Mile widziany!

Platforma Windows obsługuje szeroki ekosystem produktów i partnerów. Wyświetlenie logo systemu Windows w produkcie oznacza relację i wspólne zobowiązanie do jakości między firmą Microsoft a Firmą. Klienci ufają marce systemu Windows w twoim produkcie, ponieważ gwarantuje, że spełnia standardy zgodności i działa dobrze na platformie Windows. Pomyślne przekazanie certyfikatu aplikacji systemu Windows umożliwia prezentację aplikacji w Centrum zgodności systemu Windows i jest to również krok niezbędny do wyświetlania odwołania do aplikacji klasycznych w Sklepie Windows.

Program certyfikacji aplikacji systemu Windows składa się z programów i wymagań technicznych, aby zapewnić, że aplikacje innych firm niosące markę systemu Windows są łatwe do zainstalowania i niezawodne na komputerach z systemem Windows. Klienci cenią stabilność, zgodność, niezawodność, wydajność i jakość w zakupionych systemach. Firma Microsoft koncentruje się na inwestycjach w celu spełnienia tych wymagań dotyczących aplikacji oprogramowania przeznaczonych do uruchamiania na platformie Windows dla komputerów. Te działania obejmują testy zgodności pod kątem spójności środowiska, lepszą wydajność i zwiększone zabezpieczenia na komputerach z oprogramowaniem z systemem Windows. Testy zgodności firmy Microsoft zostały zaprojektowane we współpracy z partnerami branżowymi i są stale ulepszane w odpowiedzi na rozwój branży i zapotrzebowanie konsumentów.

Zestaw certyfikacji aplikacji systemu Windows służy do sprawdzania zgodności z tymi wymaganiami i zastępuje zestaw WSLK używany do walidacji w programie Logo oprogramowania systemu Windows 7. Zestaw certyfikacji aplikacji systemu Windows jest jednym ze składników zawartych w zestawie Windows Software Development Kit (SDK) dla systemu Windows 8. Jest on również zintegrowany w programie Microsoft Visual Studio 2012 Express for Windows 8.

Uprawnienia do aplikacji

Aby aplikacja zakwalifikowała się do certyfikacji aplikacji klasycznej systemu Windows 8, musi spełniać następujące kryteria i wszystkie wymagania techniczne wymienione w tym dokumencie.

  • Musi to być aplikacja autonomiczna
  • Musi działać na lokalnym komputerze z systemem Windows 8.1
  • Może to być składnik klienta certyfikowanej aplikacji systemu Windows Server
  • Musi to być kod i funkcja ukończona

1. Aplikacje są zgodne i odporne

Czasy, w których aplikacja ulega awarii lub przestaje odpowiadać, powodują dużą frustrację użytkowników. Oczekuje się, że aplikacje będą odporne i stabilne i eliminują takie błędy, dzięki czemu oprogramowanie jest bardziej przewidywalne, możliwe do utrzymania, wydajne i wiarygodne.

1.1 Aplikacja nie może mieć zależności od trybów zgodności systemu Windows, komunikatu AppHelp ani innych poprawek zgodności
1.2 Aplikacja nie może mieć zależności od środowiska uruchomieniowego VB6
1.3 Aplikacja nie może załadować dowolnych bibliotek DLL w celu przechwycenia wywołań interfejsu API Win32 przy użyciu HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows AppInit_dlls.

2. Aplikacje muszą być zgodne z najlepszymi rozwiązaniami dotyczącymi zabezpieczeń systemu Windows

Korzystanie z najlepszych rozwiązań w zakresie zabezpieczeń systemu Windows pomoże uniknąć narażenia na powierzchnie ataków systemu Windows. Powierzchnie ataków to punkty wejścia, których złośliwy atakujący może użyć do wykorzystania systemu operacyjnego, wykorzystując luki w zabezpieczeniach oprogramowania docelowego. Jedną z najgorszych luk w zabezpieczeniach jest podniesienie uprawnień.

2.1 Aplikacja musi używać silnych i odpowiednich list ACL do zabezpieczania plików wykonywalnych 2.2 Aplikacja musi używać silnych i odpowiednich list ACL w celu zabezpieczenia katalogów 2.3 Aplikacja musi używać silnych i odpowiednich Listy ACL do zabezpieczania kluczy rejestru 2.4 Aplikacja musi używać silnych i odpowiednich list ACL acl do zabezpieczania katalogów zawierających obiekty 2.5 Twoja aplikacja musi zmniejszyć dostęp nieadministratora do usług, które są narażone na manipulowanie 2.6 Aplikacja musi uniemożliwić usługom szybkie ponowne uruchamianie więcej niż dwa razy co 24 godziny
**Uwaga: dostęp powinien być udzielany tylko dla jednostek, które tego wymagają.**

Program certyfikacji aplikacji systemu Windows sprawdzi, czy powierzchnie ataków systemu Windows nie są narażone, sprawdzając, czy listy ACL i usługi są implementowane w sposób, który nie naraża systemu Windows na ryzyko.

3. Aplikacje obsługują funkcje zabezpieczeń systemu Windows

System operacyjny Windows ma wiele funkcji, które obsługują zabezpieczenia systemu i prywatność. Aplikacje muszą obsługiwać te funkcje, aby zachować integralność systemu operacyjnego. Nieprawidłowo skompilowane aplikacje mogą spowodować przekroczenie buforu, które z kolei może spowodować odmowę usługi lub zezwolić na wykonywanie złośliwego kodu.

3.1 Aplikacja nie może używać elementu AllowPartiallyTrustedCallersAttribute (APTCA), aby zapewnić bezpieczny dostęp do zestawów o silnych nazwach
3.2 Aplikacja musi być skompilowana przy użyciu flagi /SafeSEH, aby zapewnić bezpieczną obsługę wyjątków
3.3 Aby zapobiec wykonywaniu danych, aplikacja musi być skompilowana przy użyciu flagi /NXCOMPAT
3.4 Aplikacja musi być skompilowana przy użyciu flagi /DYNAMICBASE w celu losowania układu przestrzeni adresowej (ASLR)
3.5 Aplikacja nie może odczytywać/zapisywać udostępnionych sekcji PE

4. Aplikacje muszą być zgodne z komunikatami menedżera ponownego uruchamiania systemu

Gdy użytkownicy zainicjują zamknięcie, zwykle mają silne pragnienie, aby zobaczyć, że zamknięcie powiedzie się; mogą być w pośpiechu, aby opuścić biuro i po prostu chcą, aby ich komputery wyłączyć. Aplikacje muszą szanować to pragnienie, nie blokując zamknięcia. Chociaż w większości przypadków zamknięcie może nie być krytyczne, aplikacje muszą być przygotowane pod kątem możliwości krytycznego zamknięcia.

4.1 Aplikacja musi odpowiednio obsługiwać krytyczne zamknięcia
W krytycznym zamknięciu aplikacje, które zwracają wartość FALSE do WM_QUERYENDSESSION, zostaną wysłane WM_ENDSESSION i zamknięte, podczas gdy te, które upłynął limit czasu w odpowiedzi na WM_QUERYENDSESSION zostaną zakończone.

4.2 Aplikacja graficznego interfejsu użytkownika musi natychmiast zwrócić wartość TRUE w ramach przygotowań do ponownego uruchomienia
WM\_QUERYENDSESSION z LPARAM = ENDSESSION\_CLOSEAPP(0x1). Aplikacje konsolowe mogą wywoływać metodę SetConsoleCtrlHandler, aby określić funkcję, która będzie obsługiwać powiadomienia o zamykaniu. Aplikacje usługi mogą wywoływać metodę RegisterServiceCtrlHandlerEx, aby określić funkcję, która będzie otrzymywać powiadomienia o zamknięciu.
4.3 Aplikacja musi zwrócić wartość 0 w ciągu 30 sekund i zamknąć
WM\_ENDSESSION z LPARAM = ENDSESSION\_CLOSEAPP(0x1). Co najmniej aplikacja powinna przygotować się, zapisując wszystkie dane użytkownika i podając informacje potrzebne po ponownym uruchomieniu.
4.4 Aplikacje konsolowe, które odbierają powiadomienie CTRL\_C\_EVENT, powinny natychmiast zamknąć sterowniki 4.5 nie mogą zawetować zdarzenia zamknięcia systemu
**Uwaga: aplikacje, które muszą zablokować zamknięcie z powodu operacji, której nie można przerwać, powinny wyjaśnić przyczynę dla użytkownika.** Użyj polecenia ShutdownBlockReasonUtwórz, aby zarejestrować ciąg, który wyjaśnia przyczynę dla użytkownika. Po zakończeniu operacji aplikacja powinna wywołać polecenie ShutdownBlockReasonDestroy, aby wskazać, że można zamknąć system.

5. Aplikacje muszą obsługiwać czystą, odwracalną instalację

Czysta, odwracalna instalacja umożliwia użytkownikom pomyślne zarządzanie (wdrażanie i usuwanie) aplikacji w swoich systemach.

5.1 Aplikacja musi prawidłowo zaimplementować czystą, odwracalną instalację
Jeśli instalacja zakończy się niepowodzeniem, aplikacja powinna mieć możliwość wycofania jej i przywrócenia maszyny do poprzedniego stanu.

5.2 Aplikacja nigdy nie musi wymuszać natychmiastowego ponownego uruchomienia komputera przez użytkownika
Ponowne uruchomienie komputera nigdy nie powinno być jedyną opcją na końcu instalacji lub aktualizacji. Użytkownicy powinni mieć możliwość ponownego uruchomienia później.
5.3 Twoja aplikacja nigdy nie musi być zależna od 8.3 krótkich nazw plików (SFN) 5.4 Twoja aplikacja nigdy nie musi blokować dyskretnej instalacji/odinstalowywania 5.5 Instalator aplikacji musi utworzyć poprawne wpisy rejestru, aby umożliwić pomyślne wykrywanie i odinstalowywanie
Narzędzia spisu systemu Windows i narzędzia telemetryczne wymagają pełnych informacji o zainstalowanych aplikacjach. Jeśli używasz instalatora opartego na tożsamości usługi zarządzanej, tożsamość usługi zarządzanej automatycznie tworzy poniższe wpisy rejestru. Jeśli nie używasz instalatora MSI, moduł instalacyjny musi utworzyć następujące wpisy rejestru podczas instalacji:
  • DisplayName
  • InstallLocation
  • Wydawca
  • UninstallString
  • VersionMajor lub MajorVersion
  • VersionMinor lub MinorVersion

6. Aplikacje muszą podpisywać cyfrowo pliki i sterowniki

Podpis cyfrowy Authenticode umożliwia użytkownikom upewnienie się, że oprogramowanie jest prawdziwe. Pozwala również wykryć, czy plik został naruszony, na przykład jeśli został zainfekowany wirusem. Wymuszanie podpisywania kodu w trybie jądra jest funkcją systemu Windows znaną jako integralność kodu (CI), która poprawia bezpieczeństwo systemu operacyjnego, weryfikując integralność pliku za każdym razem, gdy obraz pliku jest ładowany do pamięci. Ciągła integracja wykrywa, czy złośliwy kod zmodyfikował systemowy plik binarny. Generuje również zdarzenie diagnostyczne i dziennika inspekcji systemu, gdy podpis modułu jądra nie może zweryfikować poprawnie.

6.1 Wszystkie pliki wykonywalne (.exe, .dll, ocx, .sys, .cpl, .drv, .scr) muszą być podpisane przy użyciu certyfikatu Authenticode
6.2 Wszystkie sterowniki trybu jądra zainstalowane przez aplikację muszą mieć podpis firmy Microsoft uzyskany za pośrednictwem programu certyfikacji sprzętu systemu Windows. Wszystkie sterowniki filtrów systemu plików muszą być podpisane przez firmę Microsoft.
6.3 Wyjątki i zwolnienia
Zwolnienia będą brane pod uwagę tylko w przypadku niepodpisanych redystrybucyjnych innych firm, z wyłączeniem sterowników. Dowód komunikacji żądającej podpisanej wersji pakietu redystrybucyjnego jest wymagany do udzielenia tego zwolnienia.

7. Aplikacje nie blokują instalacji ani uruchamiania aplikacji na podstawie sprawdzania wersji systemu operacyjnego

Ważne jest, aby klienci nie blokowali sztucznej możliwości instalowania ani uruchamiania aplikacji, gdy nie ma żadnych ograniczeń technicznych. Ogólnie rzecz biorąc, jeśli aplikacje zostały napisane dla systemu Windows Vista lub nowszych wersji systemu Windows, nie powinny one sprawdzać wersji systemu operacyjnego.

7.1 Aplikacja nie może wykonywać kontroli wersji pod kątem równości
Jeśli potrzebujesz określonej funkcji, sprawdź, czy sama funkcja jest dostępna. Jeśli potrzebujesz systemu Windows XP, sprawdź system Windows XP lub nowszy (>= 5.1). Dzięki temu kod wykrywania będzie nadal działać w przyszłych wersjach systemu Windows. Instalatory sterowników i moduły odinstalowywania nigdy nie powinny sprawdzać wersji systemu operacyjnego.

7.2 Wyjątki i zwolnienia będą brane pod uwagę w przypadku aplikacji spełniających poniższe kryteria:
  • Aplikacje dostarczane jako jeden pakiet, który działa również w systemach Windows XP, Windows Vista i Windows 7, i muszą sprawdzić wersję systemu operacyjnego, aby określić, które składniki mają być instalowane w danym systemie operacyjnym.
  • Aplikacje, które sprawdzają tylko minimalną wersję systemu operacyjnego (tylko podczas instalacji, a nie w czasie wykonywania) przy użyciu tylko zatwierdzonych wywołań interfejsu API i które prawidłowo wyświetlają minimalne wymagania dotyczące wersji w manifeście aplikacji.
  • Aplikacje zabezpieczeń (oprogramowanie antywirusowe, zapora itp.), narzędzia systemowe (na przykład defragmentacja, kopie zapasowe i narzędzia diagnostyczne), które sprawdzają wersję systemu operacyjnego przy użyciu tylko zatwierdzonych wywołań interfejsu API.

8. Aplikacje nie ładują usług ani sterowników w trybie awaryjnym

Tryb awaryjny umożliwia użytkownikom diagnozowanie i rozwiązywanie problemów z systemem Windows. Sterowniki i usługi nie mogą być ustawione tak, aby były ładowane w trybie awaryjnym, chyba że są one potrzebne do podstawowych operacji systemowych, takich jak sterowniki urządzeń magazynujących lub do celów diagnostycznych i odzyskiwania, takich jak skanery antywirusowe, . Domyślnie system Windows jest w trybie awaryjnym, uruchamia tylko sterowniki i usługi, które zostały wstępnie zainstalowane w systemie Windows.

  • 8.1 Wyjątki i zwolnienia
    Sterowniki i usługi, które muszą być uruchamiane w trybie awaryjnym, wymagają zwolnienia. Wniosek o zwolnienie musi zawierać każdy odpowiedni sterownik lub usługę zapisu w kluczach rejestru SafeBoot i opisać przyczyny techniczne, dla których aplikacja lub usługa musi działać w trybie awaryjnym. Instalator aplikacji musi zarejestrować wszystkie takie sterowniki i usługi przy użyciu tych kluczy rejestru:
    - HKLM/System/CurrentControlSet/Control/SafeBoot/Minimum — HKLM/System/CurrentControlSet/Control/SafeBoot/Network

Uwaga: Należy przetestować te sterowniki i usługi, aby upewnić się, że działają w trybie awaryjnym bez żadnych błędów.

9. Aplikacje muszą przestrzegać wytycznych dotyczących kontroli konta użytkownika

Niektóre aplikacje systemu Windows działają w kontekście zabezpieczeń konta administratora, a aplikacje często żądają nadmiernych praw użytkownika i uprawnień systemu Windows. Kontrolowanie dostępu do zasobów umożliwia użytkownikom kontrolowanie swoich systemów i ochronę ich przed niepożądanymi zmianami. Niepożądane zmiany mogą być złośliwe, takie jak zestaw rootkit przejmujący kontrolę nad komputerem, lub być wynikiem akcji wykonanej przez osoby, które mają ograniczone uprawnienia. Najważniejszą regułą kontrolowania dostępu do zasobów jest zapewnienie najmniejszej ilości dostępu do standardowego kontekstu użytkownika niezbędnego dla użytkownika do wykonywania jego niezbędnych zadań. Zgodnie z wytycznymi dotyczącymi kontroli konta użytkownika (UAC) aplikacja ma niezbędne uprawnienia, gdy są one wymagane przez aplikację, bez konieczności opuszczania systemu stale narażonego na zagrożenia bezpieczeństwa. Większość aplikacji nie wymaga uprawnień administratora w czasie wykonywania i powinna działać prawidłowo jako użytkownik standardowy.

9.1 Aplikacja musi mieć manifest, który definiuje poziomy wykonywania i informuje system operacyjny, jakich uprawnień wymaga aplikacja w celu uruchomienia
Oznaczenie manifestu aplikacji dotyczy tylko ekses, a nie bibliotek DLL. Dzieje się tak, ponieważ kontrola konta użytkownika nie sprawdza bibliotek DLL podczas tworzenia procesu. Warto również zauważyć, że reguły kontroli konta użytkownika nie mają zastosowania do usług firmy Microsoft. Manifest może być osadzony lub zewnętrzny.
Aby utworzyć manifest, utwórz plik o nazwie <app_name>.exe.manifest i zapisz go w tym samym katalogu co plik EXE. Należy pamiętać, że każdy manifest zewnętrzny jest ignorowany, jeśli aplikacja ma manifest wewnętrzny. Na przykład:
<requestedExecutionLevel level="asInvoker | najwyższa niedostępna | requireAdministrator"" uiAccess="true|false"/>

9.2 Główny proces aplikacji musi być uruchamiany jako użytkownik standardowy (asInvoker).
Wszystkie funkcje administracyjne muszą zostać przeniesione do oddzielnego procesu, który jest uruchamiany z uprawnieniami administracyjnymi. Aplikacje dostępne dla użytkowników, takie jak te dostępne za pośrednictwem grupy programów w menu Start, i wymagające podniesienia uprawnień muszą być podpisane authenticode.
9.3 Wyjątki i zwolnienia
W przypadku aplikacji, które uruchamiają główny proces z podwyższonym poziomem uprawnień (requireAdministrator lub highestAvailable), wymagane jest zwolnienie. Główny proces jest identyfikowany jako punkt wejścia użytkownika do aplikacji. Zwolnienia będą brane pod uwagę w następujących scenariuszach:
  • Narzędzia administracyjne lub systemowe z poziomem wykonywania ustawionym na wartość highestAvailable i/lub requireAdministrator
  • Tylko aplikacja platformy ułatwień dostępu lub automatyzacji interfejsu użytkownika ustawia flagę uiAccess na wartość true, aby pominąć izolację uprawnień interfejsu użytkownika (UIPI). Aby prawidłowo uruchomić wykorzystanie aplikacji, ta flaga musi być podpisana przez aplikację Authenticode i musi znajdować się w chronionej lokalizacji w systemie plików, czyli program files.

10. Aplikacje muszą być instalowane w odpowiednich folderach domyślnie

Użytkownicy powinni mieć spójne i bezpieczne środowisko z domyślną lokalizacją instalacji plików, zachowując jednocześnie możliwość zainstalowania aplikacji w wybranej lokalizacji. Należy również przechowywać dane aplikacji w prawidłowej lokalizacji, aby umożliwić kilku osobom korzystanie z tego samego komputera bez uszkodzenia lub zastępowania danych i ustawień. System Windows udostępnia określone lokalizacje w systemie plików do przechowywania programów i składników oprogramowania, udostępnionych danych aplikacji i danych aplikacji specyficznych dla użytkownika

10.1 Aplikacja musi być zainstalowana w folderze Program Files domyślnie
W przypadku natywnych aplikacji 32-bitowych i 64-bitowych w %ProgramFiles%i %ProgramFiles(x86)% dla aplikacji 32-bitowych działających w środowisku x64. Dane użytkownika lub dane aplikacji nigdy nie muszą być przechowywane w tej lokalizacji ze względu na uprawnienia zabezpieczeń skonfigurowane dla tego folderu.

10.2 Aplikacja musi unikać automatycznego uruchamiania podczas uruchamiania
Na przykład aplikacja nie powinna ustawiać żadnego z poniższych elementów;
  • Klucze uruchamiania rejestru HKLM i lub HKCU w obszarze Software\Microsoft\Windows\CurrentVersion
  • Klucze uruchamiania rejestru HKLM i lub HKCU w obszarze Software\Wow6432Node\Microsoft\windows\CurrentVersion
  • Start Menu AllPrograms > STARTUP
10.3 Dane aplikacji, które muszą być udostępniane użytkownikom na komputerze, powinny być przechowywane w programieData 10.4 Dane aplikacji, które są przeznaczone wyłącznie dla określonego użytkownika i które nie mają być udostępniane innym użytkownikom komputera, muszą być przechowywane w folderze Users\\<nazwa użytkownika>\\AppData 10.5 Aplikacja nigdy nie musi zapisywać bezpośrednio w katalogu "Windows" i lub podkatalogach
Użyj poprawnych metod instalowania plików, takich jak czcionki lub sterowniki.
10.6 Aplikacja musi zapisywać dane użytkownika podczas pierwszego uruchomienia, a nie podczas instalacji w instalacjach poszczególnych maszyn
Po zainstalowaniu aplikacji nie ma poprawnej lokalizacji użytkownika, w której mają być przechowywane dane. Próba modyfikacji domyślnych zachowań skojarzeń przez aplikację na poziomie komputera po zakończeniu instalacji zakończy się niepowodzeniem. Zamiast tego wartości domyślne muszą być oświadczenia na poziomie poszczególnych użytkowników, co uniemożliwia wielu użytkownikom zastępowanie wartości domyślnych.
10.7 Wyjątki i zwolnienia
W przypadku aplikacji, które zapisują w globalnej pamięci podręcznej zestawów (GAC) aplikacje platformy .NET, muszą zachować prywatne zależności zestawów i przechowywać je w katalogu aplikacji, chyba że udostępnianie zestawu jest jawnie wymagane.

11. Aplikacje muszą obsługiwać sesje wielu użytkowników

Użytkownicy systemu Windows powinni mieć możliwość uruchamiania współbieżnych sesji bez konfliktów lub zakłóceń.

11.1 Aplikacja musi mieć pewność, że w przypadku uruchamiania w wielu sesjach lokalnie lub zdalnie normalne działanie aplikacji nie ma negatywnego wpływu
11.2 Ustawienia i pliki danych aplikacji nie mogą być utrwalane przez użytkowników
11.3 Prywatność i preferencje użytkownika muszą być odizolowane od sesji użytkownika
11.4 Wystąpienia aplikacji muszą być odizolowane od siebie
Oznacza to, że dane użytkownika z jednego wystąpienia nie są widoczne dla innego wystąpienia aplikacji. Dźwięk w nieaktywnej sesji użytkownika nie powinien być słyszany w aktywnej sesji użytkownika. W przypadkach, gdy wiele wystąpień aplikacji korzysta z zasobów udostępnionych, aplikacja musi upewnić się, że nie występuje konflikt.

11.5 Aplikacje zainstalowane dla wielu użytkowników muszą przechowywać dane w odpowiednich folderach i lokalizacjach rejestru
Zapoznaj się z wymaganiami dotyczącymi kontroli konta użytkownika.
11.6 Aplikacje użytkownika muszą być uruchamiane w wielu sesjach użytkownika (szybkie przełączanie użytkowników) dla dostępu lokalnego i zdalnego 11.7 Aplikacja musi sprawdzić inne sesje usługi terminalowej (TS) dla istniejących wystąpień aplikacji
**Uwaga:** Jeśli aplikacja nie obsługuje wielu sesji użytkownika ani dostępu zdalnego, musi wyraźnie stwierdzić to po uruchomieniu z tej sesji.

12. Aplikacje muszą obsługiwać wersje x64 systemu Windows

Ponieważ sprzęt 64-bitowy staje się bardziej powszechny, użytkownicy oczekują, że deweloperzy aplikacji skorzystają z zalet architektury 64-bitowej, migrując aplikacje do 64-bitowej wersji lub że 32-bitowe wersje aplikacji działają dobrze w wersji 64-bitowej systemu Windows.

12.1 Aplikacja musi natywnie obsługiwać 64-bitowe lub co najmniej 32-bitowe aplikacje oparte na systemie Windows muszą działać bezproblemowo w systemach 64-bitowych, aby zachować zgodność z 64-bitowymi wersjami systemu Windows
12.2 Aplikacja i jej instalatory nie mogą zawierać żadnego 16-bitowego kodu ani polegać na żadnym składniku 16-bitowym
12.3 Konfiguracja aplikacji musi wykrywać i instalować odpowiednie sterowniki i składniki dla architektury 64-bitowej
12.4 Wszystkie wtyczki powłoki muszą działać w 64-bitowych wersjach systemu Windows
12.5 Aplikacja działająca w emulatorze WoW64 nie powinna podejmować próby odwrócenia ani obejścia mechanizmów wirtualizacji Wow64
Jeśli istnieją konkretne scenariusze, w których aplikacje muszą wykryć, czy działają w emulatorze WoW64, należy to zrobić, wywołując metodę IsWow64Process.

Konkluzja

W miarę rozwoju tych wymagań zanotujemy zmiany w historii poprawek poniżej. Stabilne wymagania mają kluczowe znaczenie dla wykonywania najlepszych działań, dlatego będziemy dążyć do zapewnienia, że wprowadzone zmiany są trwałe i nadal chronią i ulepszają Twoje aplikacje.

Dziękujemy ponownie za dołączenie do naszego zaangażowania w dostarczanie wspaniałych doświadczeń klientów.

Historia poprawek

Data Wersja Opis poprawki Łącze do dokumentu
20 grudnia 2011 r. 1.0 Początkowa wersja robocza dokumentu dla wersji zapoznawczej.
26 stycznia 2012 r. 1.1 Zaktualizuj do sekcji 2. 1.1
31 maja 2012 r. 1.2 Dodano wyniki testu podsumowania 1.2
29 czerwca 2012 r. 3.0 Dokument końcowy systemu Windows 8 3.0

Dowiedz się więcej o certyfikacji aplikacji klasycznych

Wymaganie Opis Więcej szczegółów
Zgodność i odporność Awarie & zawieszają się są poważnymi zakłóceniami dla użytkowników i powodują frustrację. Oczekuje się, że aplikacje będą odporne i stabilne, eliminując takie błędy, dzięki czemu oprogramowanie jest bardziej przewidywalne, możliwe do utrzymania, wydajne i wiarygodne. systemów operacyjnych Windows Vista, Windows 7 i Windows 8
weryfikatora aplikacji
bibliotek DLL AppInit
Stosowanie się do najlepszych rozwiązań w zakresie zabezpieczeń systemu Windows Korzystanie z najlepszych rozwiązań w zakresie zabezpieczeń systemu Windows pomoże uniknąć narażenia na powierzchnie ataków systemu Windows. Powierzchnie ataków to punkty wejścia, których złośliwy atakujący może użyć do wykorzystania systemu operacyjnego, wykorzystując luki w zabezpieczeniach oprogramowania docelowego. Jedną z najgorszych luk w zabezpieczeniach jest podniesienie uprawnień. Attack Surface Analyzer
list kontroli dostępu
Obsługa funkcji zabezpieczeń systemu Windows System operacyjny Windows wdrożył wiele środków w celu zapewnienia bezpieczeństwa i prywatności systemu. Aplikacje muszą obsługiwać te środki, aby zachować integralność systemu operacyjnego. Nieprawidłowo skompilowane aplikacje mogą spowodować przekroczenie buforu, które z kolei może spowodować odmowę usługi lub wykonanie złośliwego kodu. dokumentacja narzędzia BinScope
Przestrzegaj komunikatów menedżera ponownego uruchamiania systemu Gdy użytkownicy zainicjują zamknięcie, w zdecydowanej większości przypadków mają silne pragnienie, aby zobaczyć zamknięcie powiodło się; mogą być w pośpiechu, aby opuścić biuro i "po prostu chcieć" ich komputery wyłączyć. Aplikacje muszą szanować to pragnienie, nie blokując zamknięcia. Chociaż w większości przypadków zamknięcie może nie być krytyczne, aplikacje muszą być przygotowane pod kątem możliwości krytycznego zamknięcia. zmiany zamknięcia aplikacji w systemie Windows Vista
ponownego uruchamiania menedżera programowania
Czysta instalacja odwracalna Czysta, odwracalna instalacja umożliwia użytkownikom pomyślne zarządzanie (wdrażanie i usuwanie) aplikacji w swoich systemach. Instrukcje: instalowanie wymagań wstępnych za pomocą aplikacji ClickOnce
instalacja aplikacji w systemach 64-bitowych
Podpisz cyfrowo pliki i sterowniki Podpis cyfrowy Authenticode umożliwia użytkownikom upewnienie się, że oprogramowanie jest prawdziwe. Pozwala również wykryć, czy plik został naruszony, na przykład, jeśli został zainfekowany przez wirusa. Wymuszanie podpisywania kodu w trybie jądra jest funkcją systemu Windows znaną jako integralność kodu (CI), która poprawia bezpieczeństwo systemu operacyjnego, weryfikując integralność pliku za każdym razem, gdy obraz pliku jest ładowany do pamięci. Ciągła integracja wykrywa, czy złośliwy kod zmodyfikował systemowy plik binarny. Generuje również zdarzenie diagnostyczne i dziennika inspekcji systemu, gdy podpis modułu jądra nie może zweryfikować poprawnie. podpisy cyfrowe dla modułów jądra w systemie Windows
Nie blokuj instalacji ani uruchamiania aplikacji na podstawie sprawdzania wersji systemu operacyjnego Ważne jest, aby klienci nie blokowali sztucznej możliwości instalowania ani uruchamiania aplikacji, gdy nie ma żadnych ograniczeń technicznych. Ogólnie rzecz biorąc, jeśli aplikacje zostały napisane dla systemu Windows Vista lub nowszych wersji, nie powinny mieć powodu do sprawdzenia wersji systemu operacyjnego. przechowywanie wersji systemu operacyjnego
Nie ładuj usług i sterowników w trybie awaryjnym Tryb awaryjny umożliwia użytkownikom diagnozowanie i rozwiązywanie problemów z systemem Windows. Jeśli nie jest to konieczne w przypadku podstawowych operacji systemu (na przykład sterowników urządzeń magazynujących) lub do celów diagnostycznych i odzyskiwania (na przykład skanerów antywirusowych), sterowniki i usługi nie mogą być ustawione tak, aby były ładowane w trybie awaryjnym. Domyślnie tryb awaryjny nie uruchamia większości sterowników i usług, które nie zostały wstępnie zainstalowane w systemie Windows. Powinny one pozostać wyłączone, chyba że system wymaga ich do podstawowych operacji lub do celów diagnostycznych i odzyskiwania. określenie, czy system operacyjny działa w trybie awaryjnym
Postępuj zgodnie z wytycznymi dotyczącymi kontroli konta użytkownika (UAC) Niektóre aplikacje systemu Windows działają w kontekście zabezpieczeń konta administratora, a wiele z nich wymaga nadmiernych praw użytkownika i uprawnień systemu Windows. Kontrolowanie dostępu do zasobów umożliwia użytkownikom kontrolowanie swoich systemów przed niepożądanymi zmianami (niepożądane zmiany mogą być złośliwe, takie jak niewidzialne przejęcie maszyny przez zestaw rootkit lub działanie od osób, które mają ograniczone uprawnienia, na przykład pracownika instalujące zabronione oprogramowanie na komputerze służbowym). Najważniejszą regułą kontrolowania dostępu do zasobów jest zapewnienie najmniejszej ilości dostępu do standardowego kontekstu użytkownika niezbędnego dla użytkownika do wykonywania jego niezbędnych zadań. Zgodnie z wytycznymi dotyczącymi kontroli dostępu użytkownika aplikacja ma niezbędne uprawnienia, jeśli jest to konieczne, bez ciągłego opuszczania systemu narażonego na zagrożenia bezpieczeństwa. kontroli konta użytkownika
kontrola konta użytkownika: wskazówki dotyczące aktualizacji aplikacji
Zainstaluj domyślnie poprawne foldery Użytkownicy powinni mieć spójne i bezpieczne środowisko z domyślną lokalizacją instalacji plików przy zachowaniu opcji zainstalowania aplikacji w wybranej lokalizacji. Należy również przechowywać dane aplikacji w prawidłowej lokalizacji, aby umożliwić kilku osobom korzystanie z tego samego komputera bez uszkodzenia lub zastępowania danych i ustawień. Podsumowanie wymagań dotyczących instalacji/odinstalowywania
Obsługa sesji z wieloma użytkownikami Użytkownicy systemu Windows powinni mieć możliwość uruchamiania współbieżnych sesji bez konfliktów lub zakłóceń. wytyczne dotyczące programowania usług pulpitu zdalnego
Obsługa wersji x64 systemu Windows Ponieważ sprzęt 64-bitowy staje się bardziej rozpowszechniony, użytkownicy oczekują, że deweloperzy aplikacji skorzystają z zalet architektury 64-bitowej, migrując swoje aplikacje do 64-bitowej wersji lub że 32-bitowe wersje aplikacji działają dobrze w wersji 64-bitowej systemu Windows. zgodność aplikacji : Windows Vista 64-bitowa

Zobacz też