Mi az a provisioning profile & code signing az iOS-ben?

Forrás: Forrás: Hírlevél:

Apple definíciója:

A provisioning profile digitális entitások gyűjteménye, amely a fejlesztőket és az eszközöket egyedileg egy felhatalmazott iPhone fejlesztői csapathoz köti, és lehetővé teszi az eszköz tesztelésre való használatát.

Az Androiddal ellentétben egy iOS eszközre nem lehet bármilyen alkalmazást telepíteni. Előbb alá kell írnia az Apple-nek. Ha azonban alkalmazást fejlesztesz, valószínűleg tesztelni szeretnéd, mielőtt elküldöd az Apple-nek jóváhagyásra. A Provisioning profil a készülék és a fejlesztői fiók közötti kapcsolatként működik. A fejlesztés során kiválaszthatja, hogy mely eszközökön futtathatja az alkalmazást, és hogy az alkalmazás milyen alkalmazásszolgáltatásokhoz férhet hozzá. A rendelkezésre bocsátási profil letöltődik a fejlesztői fiókból, és beágyazódik az alkalmazáscsomagba, az egész csomag pedig kóddal alá van írva. Minden olyan eszközre, amelyen az alkalmazáskódját futtatni kívánja, telepíteni kell egy fejlesztési rendelkezésre bocsátási profilt. Ha a rendelkezésre bocsátási profilban szereplő információk nem felelnek meg bizonyos kritériumoknak, az alkalmazásod nem fog elindulni.

Minden Development Provisioning Profile a következőket tartalmazza:

  • Fejlesztési tanúsítványok – fejlesztési tanúsítvány. Ezek olyan fejlesztők számára készültek, akik kódírás közben szeretnék tesztelni az alkalmazást egy fizikai eszközön.
  • Egyedi eszközazonosítók (azon eszközök listája, amelyeken az alkalmazás futhat)
  • egy alkalmazásazonosító (ez tartalmazhat egy * jokert, hogy sok hasonló kötegazonosítóval rendelkező alkalmazáshoz használható legyen). – Az App ID egy kétrészes karakterlánc, amely egy vagy több, egyetlen fejlesztőcsapattól származó alkalmazás azonosítására szolgál.

A rendelkezésre bocsátási profilban megadott eszközöket csak azok a személyek használhatják tesztelésre, akiknek iPhone-fejlesztői tanúsítványa szerepel a profilban. A single device can contain multiple provisioning profiles.

So, What is happening when we connect the device to xcode and installs the app??

When you install the application on a device the following things happens:

  • the provisioning profile in the Mac goes to the developer certificate in your key chain.
  • xcode uses the certificate to sign the code.
  • device’s UUID is matched with the IDs in the provisioning profile.
  • AppID in the provisioning profile is matched with the bundle identifier in the app.
  • The entitlements required are associated with the App ID.
  • The private key used to sign the app matches the public key in the certificate.

Here is a screenshot from xcode signing section:

SO, a fenti képen látható, hogy az AppID ellenőrizve van, a tanúsítvány érvényesítve van, a csapat egyezik, a képességek és jogosultságok egyeznek .

Ha az összes fenti lépés sikeres, akkor az aláírt bináris fájl elküldésre kerül az eszközre, és az alkalmazásban lévő azonos rendelkezésre bocsátási profillal szemben validálásra kerül, majd végül elindul. Ha bármelyik feltétel nem teljesül, akkor az alkalmazás nem települ – és egy szürke alkalmazás ikon jelenik meg.

A fejlesztési és a terjesztési profilok közötti különbség az, hogy a terjesztési profilok nem adnak meg semmilyen eszközazonosítót. Ha olyan alkalmazást szeretne kiadni, amelyet csak bizonyos számú regisztrált eszközre kell korlátozni, akkor ehhez egy Ad-Hoc profilt kell használnia.

A Terjesztési profilok arra szolgálnak, hogy alkalmazást küldjön be az App Store-ba terjesztésre. Miután az apple átnézte az alkalmazást, saját aláírással látják el az alkalmazást, amely bármely eszközön futtatható.

Ez mind szép és jó, de mi az a kódaláírás?

Az alkalmazás aláírása lehetővé teszi az iOS számára, hogy azonosítsa, ki írta alá az alkalmazást, és ellenőrizze, hogy az alkalmazást nem módosították-e az aláírás óta. Az aláíróazonosság egy nyilvános-magán kulcspárból áll, amelyet az Apple hoz létre az Ön számára.

Aszimmetrikus kriptográfia

Aszimmetrikus kriptográfia egy nyilvános és egy magánkulcsot használ. A felhasználóknak a privát kulcsot maguknak kell megtartaniuk, de a nyilvános kulcsot megoszthatják. És e nyilvános és magánkulcsok segítségével a felhasználó bizonyítani tudja, hogy valóban ő maga.

Hogyan működik az aszimmetrikus kriptográfia?

Tegyük fel, hogy van egy UserA és egy UserB .

  • UserA létrehoz egy PrivateKeyA + PublicKeyA.
  • UserB létrehoz egy PrivateKeyB + PublicKeyB.

A UserA és UserB közötti kommunikáció biztosítása érdekében,

  • UserA megosztja a PublicKeyA-t UserB-vel .
  • UserB shares his PublicKeyB with UserA.

… and both users keep the private key with themselves.

When UserA sends a message to UserB,

  • UserA encrypts the message with UserB’s PublicKeyB and send the message.
  • This message can only be decrypted using UserB’s PrivateKeyB.

… The same thing happens when the UserB sends a message to UserA.

Watch this video for more understanding about asymmetric cryptography : Youtube video by savjee.

What is CSR(Certificate Signing Request) in iOS ??

CSR is not something that is used only in iOS. It is used in many places.

A CSR or Certificate Signing request is a block of encoded text that is given to a Certificate Authority when applying for a certificate.

Here , we create a CSR and give it to apple which will create the certificate for you. Ez tartalmazza a nyilvános kulcsot is, amely a tanúsítványba kerül. A magánkulcsot általában a CSR létrehozásával egyidejűleg hozzuk létre, létrehozva egy kulcspárt. A tanúsítványkiadó a CSR-t használja a tanúsítvány létrehozásához, de nincs szüksége a magánkulcsra. A magánkulcsot titokban kell tartania. Az adott CSR-rel létrehozott tanúsítvány csak az azzal létrehozott magánkulccsal fog működni. Ha tehát elveszíti a magánkulcsot, a tanúsítvány már nem fog működni.

(opcionális – tekintse meg ezt a linket, hogy megértse, hogyan működik a CSR az SSL-tanúsítványok esetében. Az eljárás és a működés majdnem hasonló)

A folyamat :

  • Hozzon létre egy tanúsítvány aláírási kérelmet (CSR) a Kulcstár hozzáférési alkalmazáson keresztül.
  • A Kulcstár Alkalmazás létrehoz egy private key(a privát kulcs a kulcstárban kerül tárolásra) és egy certSigningRequest fájlt, amelyet ezután feltölt az Apple-nek.
  • Az Apple ellenőrzi a kérelmet és kiállítja Önnek a tanúsítványt. A tanúsítvány tartalmazza majd a public key, amelyet letölthet a rendszerére. Miután letöltötte, dupla kattintással be kell helyeznie a Kulcstár-hozzáférési alkalmazásba. A tanúsítvány bekerül a kulcstárba, és a magánkulccsal párosítva alkotja a kódaláíró azonosítót.
  • Végül az alkalmazás telepítésekor az alkalmazás aláírásához használt magánkulcs megegyezik a tanúsítványban szereplő nyilvános kulccsal. Ha ez nem sikerül, az alkalmazás nem települ.

Ez minden. !

Érvezd!!

Ha élvezted ezt a bejegyzést, kérlek oszd meg, és adj néhány tapsot, hogy mások is megtalálják 👏👏👏👏👏 !!!!

Követhetsz a Mediumon a friss cikkekért. Emellett csatlakozhatsz hozzám a LinkedIn-en és a Twitteren.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük