Kode signering

FONT SIZE:
fontsize_dec
fontsize_inc
Januar 3, 2017 Kemuel Buhr K 0 31

Kode signering er processen med digital signering eksekverbare og scripts til at bekræfte software forfatter og garantere, at koden ikke er blevet ændret eller ødelagt siden den blev underskrevet af brug af en kryptografisk hash.

Kode signering kan give flere værdifulde funktioner. Den mest almindelige brug af kode signering er at stille sikkerhed i forbindelse med implementeringen; i nogle programmeringssprog, kan den også anvendes til at hjælpe med at forhindre namespace konflikter. Næsten hver kodesignering gennemførelse vil give en form for digital mekanisme signatur til at kontrollere identiteten af ​​forfatteren eller bygge systemet og en checksum for at kontrollere, at objektet ikke er blevet ændret. Det kan også anvendes til at tilvejebringe versionering oplysninger om et objekt eller at lagre andre meta-data om et objekt.

Skabe sikkerhed

Mange kode underskrive implementeringer vil give en måde at underskrive koden ved hjælp af et system, der involverer et par nøgler, en offentlig og en privat, svarende til den, der anvendes af SSL eller SSH. For eksempel i tilfælde of.NET, udvikleren bruger en privat nøgle til at underskrive deres biblioteker og eksekverbare hver gang de bygger. Denne nøgle vil være unik for en udvikler eller en gruppe eller nogle gange pr program eller objekt. Udvikleren kan enten generere denne tast på egen hånd eller få en fra en betroet certifikat myndighed.

Kode signering er særlig værdifuldt i distribuerede miljøer, hvor kilden til en given stykke kode måske ikke er umiddelbart indlysende - for eksempel Java-applets, ActiveX-objekter og andre aktive web og browser scripting kode. En anden vigtig brug er at sikkert give opdateringer og patches til eksisterende software. Windows, Mac OS X, og de fleste Linux-distributioner levere opdateringer ved hjælp af kode signering at sikre, at det ikke er muligt for andre at skadeligt distribuere kode via patch-systemet. Det giver det modtagende operativsystem for at kontrollere, at opdateringen er legitim, selv om opdateringen blev leveret af tredjeparter eller fysiske medier.

Kode signering bruges på Windows og Mac OS X til at autentificere software på første løb, der sikrer, at softwaren ikke er skadeligt pillet af en tredjepart forhandler eller download site. Denne form for kode signering bruges ikke på Linux på grund af denne platform decentrale natur, pakkehåndtering er den fremherskende form for distribution af alle former for software, såvel som open source-modellen muliggør direkte inspektion af kildekoden, hvis det ønskes.

Trusted identifikation ved hjælp af et certifikat myndighed

Den offentlige nøgle bruges til at godkende koden signatur skal kunne spores tilbage til en betroet root-autorisation CA, helst ved hjælp af en sikker offentlig nøgle infrastruktur. Dette sikrer ikke, at selve koden kan have tillid til, kun at det kommer fra den angivne kilde. En CA giver en rod tillidsniveau og er i stand til at tildele tillid til andre ved fuldmagt. Hvis en bruger har tillid en CA, så brugeren kan formentlig have tillid legitimiteten af ​​kode, der er signeret med en nøgle genereret af denne CA eller en af ​​dens fuldmagter. Mange operativsystemer og rammer indeholder indbygget tillid til en eller flere eksisterende CA'er. Det er også almindeligt for store organisationer til at gennemføre en privat CA, internt i organisationen, som giver de samme funktioner som offentlig CA'er, men den er kun betroet i organisationen.

Alternativ til CA'er

Den anden model er, hvor udviklere kan vælge at give deres egen selv-genererede nøgle. I dette scenario vil brugeren normalt nødt til at få den offentlige nøgle på en eller anden måde direkte fra bygherren at kontrollere objektet er fra dem for første gang. Mange kode underskrive systemer vil gemme den offentlige nøgle inde i signaturen. Nogle software rammer og OS'er, der kontrollerer koden underskrift, før du udfører vil give dig mulighed for at vælge at have tillid til, at bygherren fra dette punkt på efter første løb. En ansøgning udvikler kan give et lignende system ved at inddrage de offentlige nøgler med installatøren. Nøglen kan derefter bruges til at sikre, at eventuelle efterfølgende genstande, der har brug for at køre, såsom opgraderinger, plugins, eller et andet program, er alle verificeret som kommer fra samme udvikler.

Time-stempling

Time-stempling er designet til at omgå den tillid advarsel, der vises i tilfælde af et udløbet certifikat. I realiteten, tid-stempling forlænger koden tillid ud over gyldighedsperioden for et certifikat.

I tilfælde af, at et certifikat skal tilbagekaldes på grund af et kompromis, kan tidsstempling give en bestemt dato og tidspunkt, at certifikatet vil vende tilbage til.

Problemer

Som enhver sikkerhedsforanstaltning, kan kode signering blive besejret. Brugere kan blive lokket til at køre usigneret kode, eller endda til at køre kode, der nægter at validere, og systemet kun tilbage sikkert, så længe den private nøgle forbliver private.

Det er også vigtigt at bemærke, at koden signering beskytter ikke slutbrugeren fra enhver ondsindet aktivitet eller utilsigtede software bugs af softwaren forfatter - det blot sikrer, at softwaren ikke er blevet ændret af andre end forfatteren.

Implementeringer

IBMs Lotus Notes har haft PKI underskrivelse af kode fra Release 1, og begge klient og server-software har udførelse lister til at kontrollere, hvad niveauer af adgang til data, miljø og filsystemet er tilladt for givne brugere. Individuelle designelementer, herunder aktive elementer såsom scripts, handlinger og agenter, altid signeret ved hjælp af redaktørens id-fil, der indeholder både redaktørens og domænets offentlige nøgler. Core skabeloner såsom mail skabelon er underskrevet med en dedikeret id indehaves af Lotus skabelon udvikling team.

Microsoft implementerer en form for kode underskrivelsen leveres til Microsoft testede drivere. Da bilister kører i kernen, kan de destabilisere systemet eller åbne systemet til sikkerhedshuller. Af denne grund, Microsoft prøver bilister indsendt til sit WHQL-program. Når driveren er gået, Microsoft underskriver denne version af driveren som værende sikker. Den 32-bit systemer kun, installation af drivere, der ikke er valideret med Microsoft er muligt efter at have accepteret at tillade installation i en prompt advare brugeren om, at koden er usigneret. For.NET kode, der er en ekstra mekanisme kaldet Stærk Navn Signing, der bruger offentlige / private nøgler og SHA-1 hash i modsætning til certifikater. Men Microsoft fraråder afhængighed Stærk Navn Signing som erstatning for Authenticode.

  0   0
Forrige artikel Konfødererede guld
Næste artikel Creature Commandos

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha