Signaturer som använder identifieraren stämmer inte överens. Android & iOS: och säkerhetsproblem


Varje gång du skapar uppdaterad version existerande AIR-applikationer bör undertecknas uppdaterad applikation. I det optimala scenariot signeras den uppdaterade versionen med samma certifikat som den tidigare versionen. I det här fallet är signeringsprocessen exakt densamma som den ursprungliga ansökningssignaturen.

Om certifikatet som användes för att signera en tidigare version av en applikation har löpt ut och har ersatts eller förnyats, kan du använda det uppdaterade eller nya (ersättnings)certifikatet för att signera den uppdaterade versionen. För att göra detta måste du signera ansökan med ett nytt certifikat Och Applicera överföringssignaturen på originalcertifikatet. Överföringssignaturen verifierar att ägaren till det ursprungliga certifikatet har publicerat uppdateringen.

Observera följande punkter innan du tillämpar en överföringssignatur.

    För att kunna tillämpa en överföringssignatur måste originalcertifikatet vara giltigt eller inte mer än 365 dagar löpt ut. Denna period anses vara en respitperiod och dess längd kan komma att ändras i framtiden.

    Notera. Före AIR 2.6 var respitperioden 180 dagar.

    Efter respitperioden på 365 dagar, som räknas från certifikatets utgångsdatum, kan överföringssignaturen inte tillämpas. I det här fallet måste användare avinstallera uppdateringen innan de installerar uppdateringen. aktuell version applikationer.

    Respitperioden på 365 dagar gäller endast för program vars programbeskrivningsnamnområde anger AIR 1.5.3 eller senare.

Viktig information. Att signera uppdateringar med en utgången certifikatöverföringssignatur är en tillfällig lösning. Den slutliga lösningen innebär att utveckla en standardiserad signeringsprocess för att hantera distributionen av programuppdateringar. Till exempel signeras varje uppdatering med det senast tillgängliga certifikatet, och överföringscertifikatet används - certifikatet som används för att signera den tidigare uppdateringen (om det fanns en). Varje uppdatering lagras på en server med sin egen URL, genom vilken användare laddar ner applikationen. ytterligare information Se avsnittet Signeringsprocedur för programuppdateringar.

Följande tabell och figur illustrerar processen för hantering av överföringssignaturer:

Scenario

Det ursprungliga certifikatets skick

Utvecklaråtgärd

Användaråtgärd

Applikation baserad på Adobe AIR runtime 1.5.3 eller senare ny version

Giltig

Ingen åtgärd krävs

Perioden löpte ut, men inte mer än 365 dagar sedan

Signera ansökan med det nya certifikatet. Använd en överföringssignatur med ett äldre certifikat.

Ingen åtgärd krävs

Applikationen uppdateras automatiskt

    Utgivar-ID:t i den uppdaterade appbeskrivningen är detsamma som den tidigare versionen

Giltig

Publicera den senaste versionen av ditt AIR-program

Ingen åtgärd krävs

Applikationen uppdateras automatiskt

Har löpt ut, respitperioden har löpt ut

En överföringssignatur kan inte användas för att uppdatera ett AIR-program.

Publicera istället en annan version av AIR-programmet med hjälp av nytt certifikat. Användare kan installera en ny version av ett AIR-program efter att ha avinstallerat en befintlig version.

Avinstallera den aktuella versionen av AIR-appen och installera den senaste versionen

    Applikation baserad på Adobe AIR runtime 1.5.2 eller tidigare

    Utgivar-ID i den uppdaterade appbeskrivningen matchar inte med tidigare versions-ID

Signera AIR-applikationen giltigt certifikat och publicera den senaste versionen.

Avinstallera den aktuella versionen av AIR-appen och installera den senaste versionen

Signeringsprocedur för uppdateringar

Proceduren för att migrera en AIR-applikation till ett nytt certifikat när applikationen uppdateras är:

    Paketera och signera filen AIR-uppdateringar ny certifikat

    Signera AIR-filen igen, den här gången original certifikat med kommandot ADT -migrate

En AIR-fil signerad med kommandot -migrate kan också användas för att installera en ny version av programmet - inte bara för att uppdatera någon föregående version undertecknad med ett föråldrat certifikat.

Notera. När du uppgraderar ett program som publicerats till en version av AIR tidigare än 1.5.3 måste du ange det ursprungliga utgivar-ID:t i programbeskrivningen. Annars måste appanvändare avinstallera den tidigare versionen innan de installerar uppdateringen.

Använd kommandot ADT - migrate med följande syntax:

Adt -migrera SIGNING_OPTIONS air_file_in air_file_out

    SIGNING_OPTIONS. Signeringsalternativ definierar den privata nyckeln och signeringscertifikatet för AIR-filen. Dessa parametrar bör avgöra original ADT-kodsigneringsalternativ".

    air_file_in- Uppdaterbar AIR-fil, signerad ny certifikat.

    air_file_out - skapad fil LUFT.

Notera. AIR-inmatnings- och utdatafilnamnen måste vara olika.

Följande exempel illustrerar anropet av ADT-funktionen med flaggan -migrate för att tillämpa en migreringssignatur på en uppgraderad version av ett AIR-program:

Adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air

Notera. Kommandot -migrate lades till i ADT i AIR version 1.1.

Migrera ett AIR-program med en egen installationsfil till ett nytt certifikat

En AIR-applikation som publiceras som en plattformsspecifik inbyggd installationsfil (till exempel ett program som använder plattformens inbyggda API) kan inte signeras med kommandot ADT -migrate eftersom det inte är en luftfil. För att migrera en AIR-applikation publicerad som en inbyggd plattformstillägg till ett nytt certifikat, finns det en annan procedur:

    Skapa en programuppdatering.

    Se till att taggen i programbeskrivningsfilen (app.xml). innehåller som profil skrivbordssystem(skrivbord) och utökad skrivbordsprofil (extendedDesktop); eller ta bort taggen helt från applikationsbeskrivningen.

    Paketera och signera den uppdaterade applikationen som luftfil använda kommandot ADT -package med ny certifikat.

    Applicera migreringscertifikatet på .air-filen med kommandot ADT -migrate med original certifikat (som beskrivits tidigare i avsnittet "Migrera ett AIR-program för att använda ett nytt certifikat").

    Paketera .air-filen som en inbyggd plattformsinstallationsfil med kommandot ADT -package med flaggan -target native. Eftersom programmet redan är signerat, behöver du inte tillhandahålla ett signeringscertifikat i det här steget.

I följande exempel steg 3–5 i denna procedur visas. Koden anropar ADT-programmet med kommandot -package, sedan -migrate-kommandot och sedan -package-kommandot igen för att paketera den uppdaterade versionen av AIR-applikationen som sin egen plattformsinstallationsfil:

Adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air adt -package -target native myApp.air myAppMigrate

Migrera en AIR-applikation som använder en inbyggd plattformstillägg till ett nytt certifikat

En AIR-applikation som använder en inbyggd plattformstillägg kan inte signeras med kommandot ADT -migrate. Det kan inte heller migreras med samma procedur som när du migrerar ett AIR-program från egen fil installationen eftersom den inte kan publiceras som en mellanliggande .air-fil. För att migrera en AIR-applikation som använder en inbyggd plattformstillägg till ett nytt certifikat finns det en annan procedur:

    Skapa en programuppdatering

    Paketera och signera den uppdaterade inbyggda installationsfilen med kommandot ADT -package. Packa applikationen med instruktioner ny certifikat och inkludera flaggan -migrate i kommandot som anger original certifikat.

För att anropa kommandot ADT -package med flaggan -migrate, använd följande syntax:

Adt -package AIR_SIGNING_OPTIONS -migrera MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS

    AIR_SIGNING_OPTIONS ny signeringscertifikat (dessa beskrivs i avsnittet "ADT-kodsigneringsalternativ").

    MIGRATION_SIGNING_OPTIONS. Signeringsalternativ definierar den privata nyckeln och signeringscertifikatet för AIR-filen. Dessa parametrar avgör original signeringscertifikat (dessa beskrivs i avsnittet "ADT-kodsigneringsalternativ").

    Andra alternativ är desamma som de som används när ett AIR-program paketeras med en egen installationsfil; de beskrivs i avsnittet "ADT-paketkommando".

Följande exempel illustrerar anropet av ADT-programmet med kommandot -package och -migrate-flaggan för att paketera en uppdaterad version av en AIR-applikation som använder en inbyggd plattformstillägg och tillämpa en migreringssignatur på den:

Adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf

Notera. Flaggan -migrate för kommandot -package är tillgänglig i ADT i AIR 3.6 och senare.

I den här artikeln kommer vi att lära oss hur du signerar en applikation med ett personligt certifikat med en PC.
Se artikeln "Allmän information om säkerhetscertifikat." vi bekantade oss med typerna av certifiering, allmän information om dem. Vi fick veta att det finns ansökningar som kräver ett personligt, personligt intyg för att kunna underteckna ansökan.
Så du har fått ett personligt certifikat för din smartphone. Nu måste du skriva under din ansökan. Vi ska titta på hur och med vilka applikationer detta kan göras.

I den här artikeln kommer jag att prata om två sätt att signera applikationer på en dator:

Första sättet. Vi använder programmet för att signera SisSigner.

Detta program tillåter, efter att ha tagit emot personligt intyg signera alla program som du vill installera på din smartphone.

1. Ladda ner arkivet med SISSigner-programmet. Detta arkiv innehåller allt nödvändiga filer för att starta:

  • Mappen "cert" innehåller en mykey-fil inuti (denna fil måste ersättas).
  • Installationsfil SISSigner-program.
Installera först själva SISSigner-programmet och lägg sedan till mappen "cert" med nyckeln från arkivet till dess mapp.

Så du har redan ett personligt certifikat och en nyckel till det (mottaget i förväg), installerat program för signering, låt oss nu titta på processen att signera en ansökan med hjälp av SISSigner-programmet:

2. Gå till SISSigner-programmappen (där du installerade den).

  • Vi kopierar ditt mottagna certifikat till den (en fil med cer-tillägget).
  • Vi kopierar din mottagna certifikatnyckel till den (en fil med tilläggsnyckeln).
  • Vi kopierar till den smartphoneapplikationen som måste signeras.

3. Starta SISSigner-filen och ange i programfönstret:

  • Sökväg till nyckeln (det du fick när du beställde certifikatet)
  • Sökväg till certifikatet (det du fick vid beställning)
  • Lösenordsnyckel fil (standard 12345678)
  • Sökväg till ansökan som måste signeras
Certifikatet, nyckeln och applikationen behöver inte bytas om - det viktigaste är att korrekt ange sökvägen till dem i SisSinger-programfönstret!

4. Klicka på knappen Signera.

Tryck på valfri tangent efter att uppmaningen "För att fortsätta, tryck på valfri tangent..." visas.

5. Nu är vår applikation signerad och kan installeras på din telefon.

6. Anslut telefonen till datorn och använd programmet PC Suite för att installera vår signerade applikation i smarttelefonen.

Andra sättet. Vi använder applikationen för att signera Signsis.

Denna applikation är intressant eftersom den inte kräver att du arbetar med kommandorad, kräver inte att sökvägar anges i programfönstret. Programmet behöver bara installeras och konfigureras en gång. Och sedan kommer du att ha möjlighet att signera applikationen som finns var som helst på din hårddisk, i valfri mapp, från snabbmenyn.

Efter installation och konfigurering av detta program läggs följande inskription till i menyn när du högerklickar:

Låt oss titta på processen för att installera det här programmet och ställa in det:

1. Ladda ner och packa upp arkivet med programmet Signsis. Arkivet innehåller fyra filer:

  • install1.bat
  • install2.bat
  • uninstall.bat
  • signsis.exe
2. Kopiera vårt certifikat och nyckel till samma katalog där vi packade upp filerna.
3. Byt namn på ditt certifikat till cert.cer och nyckeln till cert.key.
4. Öppna filen install1.bat i Anteckningar för redigering.
  • Ändra värdet ställ in lösenord1 till ditt lösenord (standard 12345678).
  • Ändra sökvägen till programmappen i värdena ställ in disk_ins Och ställ in app_sökväg.
Låt oss nu titta på hur man korrekt redigerar sökvägen till programmet.
I i detta exempel programmet finns i mappen:

D:\Nokia\6290\sign_sis\

Därför är det nödvändigt att skriva värdena på detta sätt:

set disk_ins=D:
set app_path=Nokia/6290/sign_sis

Var uppmärksam på lutningen på snedstreck (sned linjer) om de är placerade i baksidan, då fungerar inte programmet längre.

5. Spara filen genom att klicka på "Spara" i Anteckningar.

6. Kör filen install1.bat dubbelklicka möss.

7. Om allt är gjort korrekt blir resultatet när du klickar Högerklicka Klicka på sis-installationspaketet, du kommer att se en snabbmeny med "Signa med personligt certifikat".

8. Välj programmet på din hårddisk som behöver signeras. Högerklicka på den en gång, innehållsmeny Välj "Skriv med personligt certifikat". Som ett resultat, bredvid den osignerade filen, kommer en annan fil med samma namn att visas, men med tillägget av "_signed" till namnet.

9. Anslut telefonen till datorn och använd programmet PC Suite för att installera vår signerade applikation i smarttelefonen.

Notera: Om du behöver göra två menyer för signering med två olika personliga certifikat (om det finns två eller flera telefoner i familjen), så redigerar och kör vi i analogi med install2.bat.

För fullständigt avlägsnande program, samt att ta bort registerposter, kör filen uninstall.bat.

Ladda ner de program som beskrivs i artikeln.

I vissa fall har applikations- eller OS-utvecklare ett behov, eller åtminstone en önskan, att tillåta kontrollerade identitetsändringar för att utföra en operation eller en grupp av närbesläktade operationer på data. Kontrollerbarhetskravet innebär att användaren inte kan tillåtas att fritt utföra sådana operationer: till exempel i ett dokumenthanteringssystem kan användaren tillåtas att skriva under ett dokument att han har läst det, men inte ges rätt att ändra innehållet av dokumentet eller radera en tidigare undertecknad signatur. Om listan med rättigheter för ett dokument som tillhandahålls av systemet antingen tillåter redigering av hela dokumentet, eller återigen helt förbjuder redigering av det, så står vi inför ett olösligt problem.

Auktorisera åtkomst till dokumentfält i Notes

Mjukvarupaket Lotus Notes, allmänt erkänd som det bästa ramverket för att implementera dokumenthanteringssystem, låter dig ange rättigheter för enskilda fält eller grupper av fält i ett dokument, och standardtekniken för att implementera ovanstående krav är att först ge användaren skrivåtkomst till fältet där signaturen ska vara, och då är signering rätten att omedelbart dra tillbaka. Men vid genomförandet komplexa cykler arbetsflöde, som inkluderar många inbördes relaterade dokument, uppstår ofta situationer som inte kan lösas med endast dessa medel [Kern/Lind 2000].

Ett annat exempel, närmare relaterat till bokens ämne, kan ges: för att ändra information om en användare behöver du skrivåtkomst till motsvarande databas, men inte till hela databasen, utan bara till en specifik post. Det är ganska naturligt och till och med nödvändigt att ge användaren möjlighet att ändra lösenordet utan att kontakta administratören. Å andra sidan är det helt oacceptabelt att en användare, som inte är kontoadministratör, kan ändra lösenordet för en annan.
En lösning skulle vara att lagra ett lösenord för var och en av användarna i separat fil, men det här är obekvämt på många sätt. En annan lösning kan vara att använda en klient-server-modell med en serverprocess som körs med administratörsrättigheter som är det enda sättet att komma åt lösenord. Till exempel, i Win32 sker all åtkomst till användardatabasen systemsamtal, dvs. serverprocessens funktioner utförs av själva systemkärnan.
I system Unix familj För detta ändamål föreslogs en originalmekanism, känd som setuid (inställning av användar-id - inställning av [effektiv] användaridentifierare). Enligt legenden uppstod idén till denna mekanism just när man löste problemet med hur användare skulle kunna ändra sina lösenord om deras hash lagrades i en fil.

Ställa in användar-ID i Unix

I Unix har varje uppgift två användaridentifierare: verklig och effektiv. Det riktiga ID:t matchar vanligtvis ID:t för användaren som startade uppgiften. För att kontrollera åtkomsträttigheter till filer och andra objekt används dock den effektiva identifieraren. När du kör normala uppgifter är de verkliga och effektiva ID:n desamma. En missmatchning kan uppstå när ett program körs med setuid-flaggan. I detta fall sätts den effektiva identifieraren för uppgiften lika med identifieraren för ägaren av filen som innehåller programmet.

Attributet setuid är ett attribut för filen som lagrar programmets laddningsmodul. Endast ägaren kan ställa in detta attribut, vilket ger andra användare rätten att köra detta program för deras räkning. När en fil ändras eller överförs till en annan användare, återställs setuid-attributet automatiskt.
Till exempel, /bin/passwd-programmet som anropas för att ändra lösenordet ägs av root-användaren och har setuid-attributet satt. Alla användare som kör detta program får en uppgift som har rätt att ändra användarens Databas, - filer /etc/passwd och /etc/shadow. Innan du gör en ändring kontrollerar dock passwd-programmet om ändringen är giltig. Till exempel, när du ändrar ditt lösenord, kräver det att du skriver in

Gammalt lösenord(Fig. 12.20). Endast root kan ändra lösenordet för en användare som har glömt det.
Ett annat exempel på ett setuid-program är programmet /bin/ps (processstatus) på äldre system. Innan /proc-standarden för pseudofilsystem etablerades, tillhandahöll inte Unix vanliga medel för att få statistik om pågående processer. /bin/ps-programmet på sådana system analyseras virtuellt minne systemkärnan, tillgänglig som enhetsfilen /dev/kmem, hittade en lista över processer i den och visade data i listan. Naturligtvis kan bara ett privilegierat program komma åt /dev/kmem.

Ris. 12.20. Ändra användar-ID i Unix

Setuid-mekanismen uppfanns av en av grundarna till Unix, Dennis Ritchie, och patenterades av AT&T 1975. Några månader efter att ha mottagit patentet fick den status som allmän egendom. AT&T förklarade officiellt detta genom att säga att det var olämpligt att göra avgiften för att använda detta patent hög, och avgiften liten avgift från ett stort antal användare är obekvämt och även opraktiskt.

Setuid-mekanismen låter dig bevilja privilegier som endast är tillgängliga för superanvändaren, både till enskilda användare (i det här fallet måste setuid-programmet explicit kontrollera det verkliga användar-ID:t och jämföra det med sin egen databas) och till grupper (i detta fall, det räcker att överföra setuid-programmet till lämplig grupp och ge henne rätt att köra detta program), vilket delvis kompenserar för bristen på flexibilitet standardsystemåtkomsträttigheter och privilegier i ett Unix-system.

Serveragenter i Notes

Setuid-mekanismen har fulländats i Lotus Notes (detta paket gäller applikationsprogram, men inte operativsystem, men implementerar sina egna autentiserings- och auktoriseringsscheman). I detta system är alla databasobjekt, inklusive agenter (lagrade procedurer), utrustade med en elektronisk signatur. Serveragenter körs inte på uppdrag av användaren som initierade operationen, utan på uppdrag av personen som signerade agenten. I I detta fall att signera koden innebär att antingen användaren själv utvecklat agenten, eller så gick han uttryckligen med på att ta ansvar för resultatet av dess arbete. Signaturen är nästan omöjlig att förfalska (RSA-algoritmen med en 631-bitars nyckel används).

Det händer att efter blinkande vissa telefonmodeller när du försöker uppdatera den inbyggda ny firmware program via Google Play Market visar enheten felet "Paketfilen är felaktigt signerad", radera föregående version och försök igen. Efter att ha utfört de nödvändiga åtgärderna är problemet inte löst - applikationerna uppdateras inte, men ett nytt felmeddelande visas: "Signaturerna för applikationer som använder denna identifierare matchar inte." Om du har superanvändarrättigheter kan du försöka fixa situationen med följande metod:

1. Först måste du installera Titanium Backup-programmet.

2. Gå sedan in i den och högst upp i mitten klickar du på knappen "Säkerhetskopiering" (den bör visas full lista applikationer installerade på enheten);

3. För försäkring, gör säkerhetskopia programmet du vill uppdatera (välj rätt applikation, i den lilla menyn som öppnas, klicka på "Spara"-knappen).

4. Gå tillbaka till listan med program, hitta återigen själva programmet som behöver uppdateras, men klicka inte bara på det, utan tryck och håll nere tills ett popup-fönster visas på telefonskärmen. I den väljer du "Konvertera till anpassad applikation", avsluta sedan TitaniumBackup.

5. Gå till Google Play, hitta applikationen som ska uppdateras och utför de manipulationer som krävs för att uppdatera den. Ett välbekant felmeddelande visas på skärmen, men nu med ett förslag att radera gammal version program ("Paketfilen är felaktigt signerad, ta bort den tidigare versionen och försök igen"). Du måste också ta bort den gamla versionen. Allt. Vid denna tidpunkt är applikationen helt borttagen från enheten.

6. Nu kan du installera om programmet. Självklart kommer den att installeras från marknaden senaste versionen programmet, vilket är vad som krävdes. Mer problem kommer inte längre att inträffa med detta program.

Om du vill kan du upprepa steg 4 med den enda skillnaden att konvertera tillbaka användarapplikationen till system ett. Välj helt enkelt lämpligt objekt från menyn.

Om de vidtagna åtgärderna inte hjälpte till att bli av med felet, säkerhetskopiering, utförs i början av processen med hjälp av







2024 gtavrl.ru.