Krypterad sd. Kryptografiska Androider

Datakryptering i Android OS är nära kopplad till två problem: åtkomstkontroll till minneskort och överföring av applikationer till dem. Många program innehåller aktiveringsdata, fakturering och konfidentiell information. Dess skydd kräver hantering av åtkomsträttigheter som inte stöds av det kortspecifika FAT32-filsystemet. Därför har tillvägagångssätt för kryptering i varje version av Android förändrats dramatiskt - från den fullständiga bristen på kryptografiskt skydd av flyttbara media till deras djupa integration i ett enda avsnitt med kryptering i farten.

Minneskortets speciella roll

Ursprungligen antog Android-utvecklare användningen av ett minneskort endast som en separat lagring av användarfiler. Det var bara ett multimedielager utan några krav för skydd och tillförlitlighet. MicroSD (HC) -kort med FAT32 fullständigt hanterat rollen som den enklaste lagringen, vilket frigör det interna minnet från foton, videor och musik.

Möjligheten att överföra inte bara multimediefiler till minneskortet utan också applikationer dök först upp i Android 2.2 Froyo. Det implementerades med hjälp av konceptet krypterade containrar för varje applikation, men det skyddade det uteslutande från att falla i fel händer på kortet - men inte smarttelefonen.

Dessutom var det en halv åtgärd: många program överfördes delvis, vilket lämnade en del av data i det interna minnet, och vissa (till exempel system eller som innehåller widgetar) överfördes inte alls till kortet. Själva möjligheten att överföra applikationer berodde på deras typ (förinstallerad eller tredje part) och intern struktur. För vissa lokaliserades katalogen med användardata omedelbart separat, medan den för andra fanns i en underkatalog för själva programmet.

Om applikationer använde starkt läs- / skrivoperationer, skulle kortens tillförlitlighet och hastighet inte längre kunna tillfredsställa utvecklare. De gjorde det medvetet så att överföring av program med vanliga medel blev omöjlig. På grund av ett sådant trick garanterades deras skapande att få ett uppehållstillstånd i det interna minnet med en stor dubbningsresurs och hög hastighet.

Från den fjärde versionen i Android blev det möjligt att välja var applikationen ska placeras. Det var möjligt att beteckna ett minneskort som en disk för att installera program som standard, men inte all firmware stöder korrekt denna funktion. Hur det fungerar i en viss enhet var bara möjligt att ta reda på experimentellt.

I den femte Android beslutade Google igen att återgå till det ursprungliga konceptet och gjorde allt för att göra överföringen av applikationer till minneskortet så svårt som möjligt. Stora tillverkare fångade signalen och lade till sina egna övervakningsfunktioner till firmware, som bestämmer användarens försök att tvinga applikationer att överföras till kortet med roten. Mer eller mindre bara fungerade alternativet att skapa hårda eller symboliska länkar. I detta fall bestämdes applikationen av standardadressen i det inbyggda minnet, men det var faktiskt på kortet. Filhanterare införde dock förvirring, av vilka många hanterade länkar felaktigt. De visade fel mängd ledigt utrymme, eftersom de trodde att applikationen förmodligen tar plats i det interna minnet och på kortet samtidigt.

Anpassa det!

Android Marshmallow har en kompromiss som heter Adaptable Storage - Adoptable Storage. Detta är Googles försök att hålla fåren säkra och soldaterna nöjda.

Funktionen Adoptable Storage låter dig kombinera användarpartitionen i det inbyggda minnet med partitionen på kortet i en logisk volym. I själva verket skapar det en ext4- eller F2FS-partition på kortet och lägger till den till användarsektionen i det interna minnet. Detta är en rent logisk sammanslagningsoperation som på distans liknar skapa en sträckt volym från flera fysiska diskar i Windows.

I processen att kombinera med det interna minnet formateras kortet igen. Som standard kommer hela dess volym att användas i den sammanslagna volymen. I det här fallet kan filerna på kortet inte längre läsas på en annan enhet - de kommer att krypteras med en unik enhetsnyckel, som lagras i en betrodd exekveringsmiljö.

Alternativt kan du reservera en plats på kortet för den andra sektionen med FAT32. Filer lagrade på den kommer att vara synliga på alla enheter som tidigare.

Metoden för att dela kortet ställs in antingen via menyn Adaptable Storage eller genom felsökningsbron för Android (Android Debug Bridge - ADB). Det senare alternativet används i fall där tillverkaren gömde Adoptable Storage från menyn, men tog inte bort denna funktion från firmware. Till exempel är det gömt i Samsung Galaxy S7 och toppmoderna LG-smartphones. Nyligen har det generellt varit en tendens att ta bort antagbar lagring från flaggskeppsenheter. Det betraktas som kryckor för budgetmobiltelefoner och surfplattor som inte är utrustade med tillräckligt med inbyggt Flash-minne.

Det är dock inte för marknadsförare att bestämma hur de ska använda sina enheter. Genom ADB på en Windows-dator aktiveras Adaptable Storage-funktionen enligt följande.

  1. Vi gör en säkerhetskopia av all information på kortet - den kommer att omformateras.
  2.   Java SE-utvecklingspaket från Oracle.
  3. Installera den senaste versionen av Android SDK Manager.
  4. Slå på USB-felsökning på smarttelefonen.
  5. Starta SDK Manager och skriv på kommandoraden:

    $ adb shell $ sm list-diskar


      där x: y är minneskortets nummer.
  6. Om du vill lämna en del för FAT32-volymen, ändra kommandot från steg 7 till detta:

    $ sm partitionsdisk: x: y blandad nn

    $ sm partitionsdisk: x: y blandad nn


      där nn är resten av volymen i procent för volym FAT32.

Till exempel kommer sm-partitionsdisken: 179: 32 blandad 20-kommando att lägga till 80% av kortets volym till det interna minnet och lämna FAT32-volymen i det i 1/5 av dess volym.

På vissa smartphones fungerar inte detta "som det är" alternativet längre och kräver ytterligare knep. Tillverkarna gör allt för att konstgjort dela upp sina produkter i marknadsnischer. Toppmodeller finns med olika mängder internminne, och det är färre och färre som är villiga att betala för mycket för det.

Vissa smartphones har inte ett minneskortsfack (till exempel Nexus-serien), men stöder anslutningen av USB-flash-enheter i OTG-läge. I det här fallet kan USB-flashenheten också användas för att utöka mängden internt minne. Detta görs med följande kommando:

$ adb shell sm set-force-adopterbar sant

$ adb shell sm set - kraft - antagbart sant

Som standard inaktiveras möjligheten att använda USB-OTG för att skapa anpassad lagring, eftersom oväntad återställning av den kan leda till dataförlust. Sannolikheten för en plötslig bortkoppling av minneskortet är mycket lägre på grund av dess fysiska placering i enheten.

Om det uppstår problem med att lägga till volymen löstagbart medium eller dela upp det i partitioner, ska du först ta bort all information om den tidigare logiska markeringen från den. Pålitligt kan detta göras med Linux-verktyget gparted, som på en Windows-dator startar från en startdisk eller i en virtuell maskin.

Enligt den officiella Googles policy kan applikationer omedelbart installeras i adaptiv lagring eller överföras till den om utvecklaren specificerade detta i attributet Android: installLocation. Det ironiska är att långt ifrån alla Googles egna applikationer tillåter detta för närvarande. Den "anpassade lagringen" i Android har inga praktiska gränser. Den teoretiska gränsen för Adoptable Storage är nio zettabyte. Så mycket finns inte ens i datacentra, och ännu större minneskort kommer inte att dyka upp under de kommande åren.

Själva krypteringsproceduren när du skapar en anpassad lagring utförs med dm-crypt - samma Linux-kärnmodul som krypterar smarttelefonens interna minne med full disk (se föregående artikel ""). AES-algoritmen används i läget för koppling av blockciffertext (CBC). En separat saltinitieringsvektor (ESSIV) genereras för varje sektor. SHV-hashfunktionens upplösningslängd är 256 bitar och själva nyckeln är 128 bitar.

En sådan implementering, även om den är underlägsen i tillförlitlighet till AES-XTS-256, fungerar mycket snabbare och anses tillräckligt tillförlitlig för användarenheter. Det är osannolikt att en nyfiken granne öppnar en krypterad anpassad lagring på rimlig tid, men specialtjänsterna har länge lärt sig använda bristerna i CBC-systemet. Dessutom är inte alla 128 bitar av nyckeln riktigt slumpmässiga. Ofrivillig eller avsiktlig försvagning av den inbyggda pseudo-slumptalsgeneratorn är det vanligaste kryptografiproblemet. Det påverkar inte så mycket Android-prylar som alla konsumentenheter i allmänhet. Därför är det mest pålitliga sättet att garantera integritet att inte lagra känslig information på din smartphone alls.

Om du, efter att ha kombinerat minnet med Adoptable Storage, utför en återställning till fabriksinställningarna, kommer data på kortet också att gå förlorade. Därför är det värt att säkerhetskopiera dem först, eller bättre, omedelbart tilldela molnesynkronisering.

Alternativ datakryptering på ett minneskort

Nu när vi har kommit fram till funktionerna för att lagra filer på ett minneskort i olika versioner av Android kommer vi direkt att kryptera dem. Om du har en enhet med en sjätte Android och nyare är det med stor sannolikhet möjligt att aktivera Adoptable Storage-funktionen i det ändå. Då krypteras all data på kortet, som i det inbyggda minnet. Endast filerna i den extra FAT32-partitionen kommer att förbli öppna om du vill skapa dem när du formaterar kortet igen.

I tidigare versioner av Android är allt mycket mer komplicerat, eftersom före version 5.0 påverkade kryptografiskt skydd inte minneskort alls (med undantag för data från överförda applikationer, naturligtvis). De ”vanliga” filerna på kortet förblev öppna. För att stänga dem från nyfikna ögon behöver du tredjepartsverktyg (som ofta visar sig vara ett grafiskt skal för inbyggda verktyg). Med alla de olika befintliga metoder som är grundläggande olika, visar sig fyra:

  • med hjälp av en universal kryptokontainer - en fil med en bild av en krypterad volym i ett populärt format som applikationer för olika operativsystem kan arbeta med;
  • transparent kryptering av filer i den angivna katalogen via FUSE-drivrutinen och ett tredjepartsverktyg för att skapa / montera den krypterade partitionen som en fil;
  • kryptering av hela minneskortet via dm-crypt;
  • användning av den "svarta rutan" - en separat applikation som lagrar krypterad data i sitt eget format och inte ger åtkomst till det för tredjepartsprogram.

Det första alternativet är välkänt för alla som använder TrueCrypt eller en av dess gafflar på datorn. För Android finns det applikationer som stöder TrueCrypt-containrar, men de har olika begränsningar.

Det andra alternativet låter dig organisera "transparent kryptering", det vill säga lagra all data krypterad och dekryptera den när du kommer åt från alla program. För att göra detta presenteras all data från den valda katalogen som innehållet i ett virtuellt filsystem med krypteringsstöd i farten. EncFS används vanligtvis, vilket vi kommer att diskutera mer detaljerat nedan.

Det tredje alternativet är den inbyggda dm-krypten. Du kan till exempel använda den via LUKS Manager. Programmet kräver en root och en installerad BusyBox. Gränssnittet är för alla.


LUKS Manager skapar en kryptokontainer på ett kort som en fil. Den här behållaren kan anslutas till en godtycklig katalog och arbeta med den som med en vanlig. Fördelen är att denna lösning har plattformsstöd. Du kan arbeta med behållaren inte bara på gadgeten med Android, utan också på skrivbordet: på Linux - genom kryptsetup och på Windows - genom programmet eller dess gaffel LibreCrypt. Nackdelen är besväret med att använda det med molntjänster. Varje gång i molnet måste du spara hela behållaren, även om en byte har ändrats.

Det fjärde alternativet är i allmänhet av lite intresse, eftersom det i hög grad begränsar användningen av krypterade filer. De kan endast öppnas med någon specialiserad applikation och hoppas att dess utvecklare har lyckats studera kryptografi. Tyvärr klarar de flesta av dessa applikationer inte kritik. Många av dem har ingenting med kryptografi att göra alls, eftersom de helt enkelt maskerar filer istället för att kryptera dem. Dessutom kan starka algoritmer (AES, 3DES ...) nämnas i beskrivningen och citat från Schneiers ”Applied Cryptography” ges. I bästa fall kommer sådana program att ha en mycket dålig implementering av krypteringen, men i värsta fall kommer det inte att vara alls.

Det finns ingen och planeras inte vara en officiell klient för Android för VeraCrypt, men dess författare rekommenderar att använda EDS-programmet (Encrypted Data Store). Detta är en rysk utveckling som finns i en helt funktionell och lätt version. Den fullständiga versionen av EDS kostar 329 rubel. Det stöder TrueCrypt, VeraCrypt, CyberSafe, liksom LUKS och EncFS kryptokontainrar. Kunna arbeta med lokal lagring, nätverk och molnlagring och förse andra applikationer med transparent kryptering. On-the-fly-kryptering kräver kärnstöd från FUSE-ramverket och root-rättigheterna. Normal drift med kryptokontainrar är möjlig på alla firmware.


EDS Lite-versionen är gratis och har funktionella begränsningar. Till exempel kan det fungera exklusivt med behållare som innehåller en volym med ett FAT-filsystem krypterat med AES-algoritmen med en nyckellängd på 256 bitar och med SHA-512-hashfunktionen. Andra alternativ stöds inte av det. Därför bör du fokusera på den betalda versionen.

Cryptocontainer är det mest pålitliga och mångsidiga sättet. Det kan lagras på vilket filsystem som helst (åtminstone FAT32) och användas på vilken enhet som helst. All data som du krypterade på skrivbordet blir tillgänglig på smarttelefonen och vice versa.

encfs

År 2003 släppte Valient Gough (Valient Gough, en programvaruingenjör från Seattle som skrev programvara för NASA och senare arbetade för Google och Amazon) den första utgåvan av ett gratis filsystem med inbyggd transparent krypteringsmekanism - EncFS. Den interagerar med OS-kärnan tack vare återuppringningsskiktet och tar emot förfrågningar via libfuse-gränssnittet i FUSE-ramverket. Efter användarens val använder EncFS en av de symmetriska algoritmerna implementerade i OpenSSL-biblioteket - AES och Blowfish.

Eftersom EncFS använder principen om att skapa ett virtuellt filsystem kräver det ingen separat partition. I Android OS räcker det att installera en applikation med EncFS-support och bara ange ett par kataloger. En av dem kommer att lagra krypterat innehåll (låt det kallas valv) och den andra - tillfälligt dekrypterade filer (låt oss kalla det öppen).

När du har angett lösenordet läses filerna från katalogen valv  och lagras dekrypterat i öppen  (som i den nya monteringspunkten), där det är tillgängligt för alla applikationer. Efter avslutat arbete klickar du på knappen Glöm dekryptering (eller dess analoga) i applikationen. katalog öppen  utan montering, och alla dekrypterade filer från den försvinner.

Nackdelar: EncFS stöder inte hårda länkar, eftersom data inte är bundna till inoden, utan till filnamnet. Av samma anledning stöds filnamn upp till 190 byte i längd. I katalogen valv  filnamn och deras innehåll kommer att döljas, men metadata kommer att förbli tillgängliga. Du kan ta reda på antalet krypterade filer, deras behörigheter, de senaste åtkomst- eller modifieringstiderna. Det finns också ett tydligt tecken på användningen av EncFS - detta är en inställningsfil med kodfixets prefix och versionens nummer i dess namn. Krypteringsparametrarna skrivs inuti filen, inklusive algoritmen, nyckellängden och blockstorleken.


EncFS-betald revision genomfördes i februari 2014. Dess slutsats säger att "EncFS är förmodligen tillförlitligt så länge angriparen bara har en uppsättning krypterade filer och ingenting mer." Om angriparen har mer data tillgängliga (till exempel två filsystem-stillbilder tagna vid olika tidpunkter) kan EncFS inte anses vara tillförlitligt.

Efter installationen kommer EncFS att vara synligt som ett separat användarutrymme-filsystem via FUSE-drivrutinen. Tillgång till det kommer att implementeras genom någon applikation från tredje part - till exempel Encdroid eller Cryptonite filhanterare. Den senare är baserad på den ursprungliga EncFS-koden, så låt oss stanna vid den.

Cryptonite

Den senaste versionen av Cryptonite är 0.7.17 beta daterad 15 mars 2015. Det kan installeras på alla enheter med Android 4.1 och högre, men vissa funktioner fungerar mer stabilt i Android 4.3 och nyare versioner.

De flesta operationer i Cryptonite kräver inte rot och några specifika komponenter. EncFS-volymskapande och synkronisering med Dropbox kan utföras på både officiell och anpassad firmware.

  Molnsynkroniserade krypterade filer

För vissa operationer kommer det emellertid att vara nödvändigt att montera EncFS-volymer, vilket kräver root-privilegier och stöd för FUSE-ramverket av OS-kärnan. Användningen av FUSE är nödvändig för att organisera transparent kryptering, det vill säga för att andra applikationer ska kunna komma åt krypterad data och få den redan dekrypterad. De flesta äldre firmware stöder inte FUSE, men det finns tillgängligt i CyanogenMod, MIUI, AOKP och andra anpassade. Från och med Android 4.4 används FUSE regelbundet för att emulera ett SD-kort i det interna minnet.

Nackdelar: när du klickar på "Dekryptera" och anger lösenordet framgångsrikt skapar Cryptonite en tillfällig kopia av den dekrypterade filen i /data/data/csh.cryptonite/app_open/. En kopia av filen är markerad som världsläsbar (läsbar och körbar för alla). Du kan ta bort dekrypterade filer genom att klicka på knappen Glöm dekryptering.

rön

Metoden för att kryptera data på ett minneskort bör väljas baserat på två huvudkriterier: ett användarscenario och en Android-version. På moderna prylar med Android 6.0 och högre är det enklaste alternativet att använda Adoptable Storage, ansluta kortet till det interna minnet och kryptera hela logiken. Om du behöver göra filer tillgängliga på andra enheter eller lägga till kryptering av data på ett kort i gamla enheter är kryptokontainrar med beprövade format lämpliga. Det är bättre att undvika tredjepartsverktyg av typen "i sig själva" alls, eftersom de istället för verkligt dataskydd ofta bara imiterar det.

Formatet dödar inte kort. Döden kommer slumpmässigt och i slumpmässiga dataoperationer. Det är bara att människor överallt försöker hitta en relation, skapa en kedja av händelser.

Inte en specialist, jag antar inte att argumentera, kanske vid den tiden var det ett problem med själva kortet.

Men jag vet säkert att mitt kort dog efter formatet på sin smartphone, och efter:

spoiler

Korten ingår i tre kategorier: Micro SD, Micro SDHC och Micro SDXC. kort Micro sd  kan vara en maximal volym på upp till 2 GB, Micro sdhc  från 4 GB till 32 GB (nu massivt använt) och Micro sdxc från 64 GB till 2 TB (teoretiskt sett finns det nästan just nu 64 GB och 128 GB kort). Korten skiljer sig inte bara i minnesstorlek, utan också i olika filsystem. Till exempel Micro SD - FAT-system, Micro SDHC - FAT32, Micro SDXC - teoretiskt bara exFAT (i själva verket är det inte så). Dessutom måste användarenheten för läsningskort stödja en viss typ av kort. Situationen är enkel: om enheten stöder SDXC-kort stöder den tidigare generationer - SD och SDHC.

Nyligen har många Micro SD-kort med en kapacitet på 64 GB dykt upp, men tyvärr hittills har de flesta Android-smartphones inte officiellt stöd för Micro SD-kort med en kapacitet på mer än 32 GB. Faktum är att smarttelefonen kan läsa ett 64 GB-kort och fungera korrekt med det, om du tar enkla steg med kortet innan installationen. Alla välkända tillverkare av Micro SDXC-kort formaterar dem initialt i exFAT-systemet, eftersom detta system är designat för stora volymkort. Eftersom detta system skapades av Microsoft måste tillverkare av Android-smarttelefoner lösa in rättigheterna för att använda det för att smarttelefonen ska kunna arbeta med detta system. Företag är fortfarande ovilliga att gå till extrakostnader, och därför stödjer mycket få enheter exFAT-systemet på minneskort, och de arbetar med FAT32-systemet. För att din smartphone ska fungera med ett 64 GB-kort behöver du bara formatera det i FAT32-systemet. Men det visar sig att det inte är så lätt. Faktum är att FAT32-systemet i sig teoretiskt bara stöder media (kort, partitioner etc.) upp till 32 GB, men i praktiken kan det fungera mycket bra med media upp till 64 GB. Det enda problemet som kan uppstå i detta fall är en liten hastighetsförlust när du läser / skriver från kortet, men det är nästan osynligt. Därefter kommer vi att överväga hur du KORREKT formaterar ett Micro SDXC-kort i FAT32-systemet så att en smarttelefon som inte stöder den här typen av kort ser det och kortet INTE GÅR UT RÄTT EFTER EN TID.

1.   Ett SDXC-kort KAN FORMATERAS ENDAST I ENHETEN SOM STÖDER DETTA KORTTYP. dvs Din kortläsare måste stödja Micro SDXC-kort (eller SDXC om du sätter i kortet genom en adapter). Att formatera kort på 64 GB i en smartphone som bara stöder ett 32 GB-kort är inte alls möjligt! Annars kommer ditt kort att misslyckas under en dag till flera månader. Om du inte har en kortläsare som stöder SDXC kan du köpa den separat.

Så vi formaterar SDXC-kortet ENDAST i en enhet som stöder SDXC.

2. Eftersom de flesta användare har Windows-operativsystemet installerat på datorn kommer vi att överväga formateringsalternativet från det. Om ditt operativsystem är Windows XP, installera uppdateringen på det med stöd för exFAT-filsystemet. I Windows 7 och Windows 8 är sådant stöd redan tillgängligt.

3.   Kanske när du sätter in ett nytt kort i kortläsaren kommer Windows att visa ett meddelande om att kortet inte är formaterat. I detta fall formaterar du det först med verktyget SDFormatter till exFAT-systemet.

4.   Med hjälp av Windows-metoden fungerar inte formatering av ett 64 GB-kort till FAT32-filsystemet, så vi använder Guiformat-verktyget.
   MicroSDXC 64 GB kort med adapter och kortläsare

Programmet är specifikt utformat för att formatera media som är större än 32 GB till FAT32-filsystemet. Om verktyget kastar ett fel innan formateringen, utför du steg 3 (först formatera det med SDFormatter-programmet), vilket ändå är bättre att vara säker på att slutföra. VARNING! För att göra smarttelefonen korrekt se Micro SDXC, välj klusterstorlek 32 Kb! Det är bättre att använda snabb formatering (snabb), det finns inget behov att slutföra den.

5.   Om du har gjort allt strikt i enlighet med ovanstående rekommendationer, är ditt kort klart. Din Android-smartphone kommer att se den och visa rätt volym på 59, XX GB. Du kan arbeta med kortet, skriva / läsa filer, men FORMATERA ALDRIG det på din smartphone. Kortet kommer att tjäna dig under lång tid troget.

hon har bott i flera år och det finns inga problem.

För 4 timmar sedan sa Reanimax:

Endast en är i din makt. Om data är värdefull för dig - gör dataduplicering, mediatuplikering, ett alternativ som är bekvämt för dig.

Tyvärr antogs det inte vid den tiden att en liknande situation skulle kunna inträffa.

Redigerad 25 december 2017 JEI-DI

Alla mobila apparater kan gå förlorade, övergivna, glömda och helt enkelt stulna. All information som lagras på den i en oskyddad form kan läsas och användas mot dig. Och det mest effektiva sättet att skydda information är. I den här artikeln kommer vi att prata om funktionerna för att implementera ett datakrypteringssystem i nya versioner av Android, samt diskutera verktyg som möjliggör selektiv kryptering av enskilda kataloger.

införandet

Android är baserat på Linux-kärnan, som i sin tur innehåller ett antal mekanismer som implementerar kryptering av en mängd olika enheter. För kryptografiskt skydd av skivor och partitioner tillhandahålls ett system som kallas dm-crypt - ett slags kryptofilter genom vilket du kan skicka alla förfrågningar till disken eller partitionen och få datakryptering i farten.

Google-programmerare lärde Android att använda dm-crypt, med början med version 3.0 av Honeycomb, där ett alternativ dök upp som gör att du snabbt kan aktivera kryptering och ställa in en PIN-kod för åtkomst till data. Från användarens sida ser allt väldigt enkelt och problemfritt: Jag anslöt telefonen till laddaren, väntade på en full laddning och tryckte på den skattade knappen. Systemet började kryptera befintliga data. Allt detta ser mycket mer intressant utifrån.

Android speciell metod

I vilken Linux-distribution som helst är cryptsetup-verktyget ansvarigt för att hantera dm-crypt, vilket skapar en volym som är krypterad enligt LUKS-standarden, som kan nås med tredjepartsverktyg från Windows eller OS X. Vanligtvis startas cryptsetup vid initieringssteget för operativsystemet från boot initramfs-bilden och ansluter dm-crypt till en diskenhet, som sedan monteras.

I Android händer allt annorlunda. På grund av licenskrav för alla komponenter över kärnan med en Apache-kompatibel licens, ingår inte cryptsetup, distribuerat under villkoren för GPL2, i Android. Istället använder den kryptfsmodulen som har utvecklats från grunden för den lokala volymhanteraren (för att inte förväxlas med de ursprungliga Linuxverktygen: vold och kryptor, det här är helt annorlunda utveckling).

Som standard använder Android kryptor för att kryptera användardata, inställningar och applikationer (/ datakatalog). Det bör startas i ett tidigt skede av att ladda operativsystemet innan den grafiska miljön och de grundläggande applikationerna startas, så att komponenter på högre nivå kan föra systemet till önskat tillstånd genom att läsa inställningarna och dra nödvändiga data från cachen.

I automatiskt läge kan detta inte göras, eftersom systemet måste be användaren om ett lösenord för att dekryptera, vilket kräver att den grafiska miljön startas, och i sin tur inte kan startas utan att ansluta katalogen / datan, som inte kan anslutas utan lösenord. För att komma ur denna situation använde Android ett ovanligt trick, vilket tvingade operativsystemet att köra "två gånger". Den första starten av det minimala systemet sker innan kryptor börjar begära ett lösenord för dekryptering med det tillfälliga filsystemet anslutet till / data, varefter systemet i huvudsak stängs av, den / datakrypterade partitionen är ansluten och den slutliga versionen av OS startas.

Aktivera kryptering

Datakryptering i Android aktiveras med hjälp av menyn "Inställningar -\u003e Säkerhet -\u003e Kryptera data". I detta fall måste smarttelefonen vara fulladdad och ansluten till laddaren, och PIN-koden eller lösenordet ska användas som upplåsningsmetod (Inställningar -\u003e Säkerhet -\u003e Skärmlås -\u003e PIN-kod), som måste anges innan krypteringsprocessen påbörjas. Smarttelefonen varnar för att operationen kommer att ta ungefär en timme, under vilken enheten startar om flera gånger.

Sedan beskrivs vad som händer i föregående avsnitt. Smarttelefonen kommer att ladda ner minsta version av systemet med det tillfälliga filsystemet anslutet till / datapunkten och börja kryptera data, och visar operationens framsteg på skärmen. Kryptering i sig är som följer:

  1. Först genererar vold / cryptfs en 128-bitars masternyckel baserad på slumpmässiga data från / dev / urandom och med denna nyckel kartläggs partitionen som innehåller / datakatalogen till en ny virtuell kryptoenhet, skriv till vilken automatiskt kommer att kryptera data med hjälp av master nyckel och läsning - till dekryptering.
  2. Huvudnyckeln är krypterad med användarens PIN-kod och placeras i slutet av avsnittet. Från och med nu, vid start, kommer systemet att be användaren om en PIN-kod, läsa den krypterade huvudnyckeln från avsnittet, dekryptera den med PIN-koden och ansluta den krypterade / datasektionen.
  3. För att kryptera de data som redan finns på partitionen läser systemet sekventiellt datablocken från partitionen och skriver dem till den kryptografiska enheten, så faktiskt kommer den sekventiella operationen "läs blocket -\u003e kryptering -\u003e skriva tillbaka" tills hela krypteringen är krypterad avsnitt, med undantag för de sista 16 Kb, där huvudnyckeln är lagrad.
  4. I slutet av operationen startar smarttelefonen på nytt, och vid nästa start ber systemet om en PIN-kod för att dekryptera data.

När det gäller en 16-gigabyte Galaxy Nexus-enhet tar alla dessa operationer cirka 30 minuter, och viktigast av allt är att de är helt automatiserade, så även ett barn kan hantera kryptering.

Ett lösenord för att låsa upp och dekryptera?

För att förenkla användarnas liv bestämde Google sig för att använda samma lösenord för att låsa upp och dekryptera data, vilket resulterade i en ganska motstridig bild. Å ena sidan bör lösenordet för dekryptering vara långt och komplicerat, eftersom en angripare kan plocka upp det utanför smarttelefonen, bara ta bort bilden på avsnittet. Återställningslösenordet kan å andra sidan lämnas väldigt enkelt, eftersom Android efter flera misslyckade försök låser skärmen permanent och tvingar dig att ange Google-lösenordet.

Som ett resultat måste du välja mellan bekvämligheten med att låsa upp och säkerheten för krypterad data (ansiktskontroll som säkerhetsåtgärd beaktas inte). Lyckligtvis, om telefonen är rotad, kan dekrypteringslösenordet specificeras manuellt med hjälp av klienten för konsol. Du kan göra det på detta sätt:

$ su -c vdc cryptfs changepw lösenord

Från och med nu kommer lösenordet för upplåsning och dekryptering att vara annorlunda, men kommer igen att vara detsamma om du ändrar upplåsningslösenordet (PIN). För att inte klättra in i konsolen kan du använda ett av de grafiska gränssnitten, till exempel EncPassChanger.

Rollback- och firmware-kompatibilitet

Tyvärr tillåter Android av någon anledning inte att återvända till en okrypterad partition. Därför, om data har krypterats, kommer de att förbli på det sättet tills det återställs till fabriksinställningarna (full torkning) - en operation som omformaterar partitionen som innehåller katalogen / data kommer automatiskt att göra den till okrypterad.

Men här kan frågan uppstå: "Vad händer om jag uppdaterar Android eller installerar anpassad firmware?" I detta fall beror det allt på installationsmetoden. I de flesta fall, när du uppdaterar firmware eller installerar alternativ firmware med ungefär samma version (till exempel att ersätta CyanogenMod 10.1 med Paranoid Android 3 eller MIUI 5), krävs ingen torkning. Detta innebär att den installerade firmware, när du försöker montera / datapartitionen, "inser" att den har att göra med den krypterade partitionen, ber om ditt lösenord och dekrypterar data lugnt.

Om installationen kräver en full torkning, vilket vanligtvis är nödvändigt när du byter till nya versioner av Android, är situationen ännu enklare. Under torkningen omformateras avsnittet / data och omvandlas automatiskt till okrypterat. Det viktigaste att göra innan du uppdaterar säkerhetskopian med hjälp av Titanium Backup eller Carbon.

SD-kort

Google har länge uttryckt sin ståndpunkt beträffande minneskortet som en skräppost, där konfidentiella data inte kan definieras, och även om det finns, är det inte vettigt att kryptera dem, eftersom användaren kan välja att sätta in kortet i en annan telefon. Därför finns det inga vanliga sätt att kryptera ett minneskort i Android, och för att få sådan funktionalitet måste du använda program från tredje part.

Bland krypteringsprogramvara från tredje part har vi valet mellan tre olika applikationsklasser:

  1. Saken i sig själv. En applikation som kan skapa och öppna kryptokontainrar, men inte låta dem anslutas till filsystemet. En slags filhanterare med stöd för krypterade volymer. Lite användbar sak, eftersom den bara är lämplig för att föra en dagbok och anteckningar.
  2. Pseudo FS. Linux-kärnorna i många lager- och alternativ firmware har stöd för FUSE-användarutrymme-filsystemdrivrutinen, på grundval av vilken flera krypterande filsystem utvecklades samtidigt. En av dem är EncFS. I Android är det i form av applikationen Cryptonite, Encdroid och andra. En sådan programvara låter dig kryptera valfri katalog så att absolut alla applikationer har tillgång till den.
  3. Baserat på dm-crypt. De liknar funktionalitet och implementering som de tidigare, men använder den ursprungliga dm-krypten för kryptering. LUKS Manager är den bästa representanten för klassen för sådan programvara. Låter dig skapa en bildfil på minneskortet, som när som helst kan anslutas till valfri katalog för åtkomst till data. Detsamma kan göras från Linux med hjälp av kryptsetup eller från Windows med FreeOTFE.

Cryptonite

Cryptonite är ett omslag runt EncFS-filsystemets kryptering och låter dig skapa och visa krypterade volymer på minneskortet och inuti Dropbox, samt ansluta volymer till katalogerna på minneskortet så att de är synliga för alla applikationer. Vi är främst intresserade av det senare användningsfallet som det enda acceptabla för vardagligt bruk, men det kräver root-privilegier, liksom FUSE-stöd i kärnan.

Att använda Cryptonite i denna kapacitet är ganska enkelt, men så att det inte finns någon förvirring kommer vi att förstå principerna för dess funktion. Applikationen är baserad på ett välkänt Linux-verktyg som heter EncFS. I själva verket är detta ett verktyg som låter dig kartlägga en katalog till en annan så att den skriver till den andra katalogen kommer automatiskt till den första i krypterad form, och vid läsning dekrypteras den. När skärmen är på finns tillgång till data, men om du stänger av den försvinner innehållet i den andra katalogen och bara den första kommer att kvarstå, vars innehåll är helt krypterat.

Av denna anledning kräver Cryptonite två kataloger: den första är för att lagra krypterad data och den andra är en tom katalog där innehållet i den första kommer att visas i dekrypterad form. För enkelhets skull, låt oss kalla dem kryptera och dekryptera. Skapa dessa två kataloger på minneskortet med valfri filhanterare. Kör Cryptonite, gå till "Inställningar -\u003e Mount point" och välj dekryptera katalogen. Nu kommer den alltid att användas som en åtkomstpunkt för krypterad data. Vi går tillbaka, går till fliken LOKAL och klickar på knappen "Skapa lokal volym" för att initiera den krypterade katalogen. Välj kryptkatalogen och ange lösenordet. Nu återstår det att återgå till huvudskärmen och klicka på “Mount EncFS” -knappen (och ange lösenordet igen). Från och med nu går allt som du kopierar till dekryptera katalogen automatiskt till krypteringskatalogen i krypterad form, och efter att dekrypteringen är avstängd kan ingen läsa dess innehåll (du kan kontrollera genom att kopiera flera filer för att dekryptera och sedan visa innehållet i krypten).

På samma sätt, förresten, kan du organisera datakryptering i Dropbox. Med Cryptonite kan du göra detta utanför rutan, men i det här fallet kan du bara få tillgång till uppgifterna genom själva applikationen, det vill säga för alla operationer på krypterad data måste du köra Cryptonite och utföra alla åtgärder genom dess inbyggda filhanterare. Dropbox för Android själv uppför naturligtvis samma sak, men det har åtminstone ett öppet API som andra applikationer kan använda, men här bara manuell åtkomst.

För att lösa problemet kan du installera Dropsync-tjänsten som hänger i bakgrunden och periodvis synkroniserar innehållet i de valda katalogerna med Dropbox. Det räcker med att konfigurera det för att synkronisera kryptkatalogen (men inte dekryptera), och data i krypterad form kommer automatiskt in i Dropbox. För att få åtkomst till data från Big Brother kan du använda EncFS-versionen för Linux eller Windows. Endast lata skrev inte om hur man använder dem.


LUKS Manager

Den andra applikationen från vår lista är LUKS Manager, i huvudsak en applikation som liknar funktionalitet, använder dm-crypt istället för EncFS och binära krypterade bilder istället för kataloger. Ur praktisk synvinkel är det här alternativet bättre än det tidigare genom att bilderna som är krypterade med det kan ses eller ändras i nästan alla OS, inklusive Linux, Windows och OS X. Nackdelen är att det är obekvämt att använda för att kryptera filer i Dropbox, så hur Dropbox-klienten måste synkronisera en hel bild varje gång, vilket kan vara mycket stort, i motsats till enskilda filer, som är fallet med EncFS.


För korrekt drift kräver LUKS Manager en kärna med dm-crypt och loopback-stöd, men om den förstnämnda är ens i Android 2.3-kärnor, är den senare inte tillgänglig i alla aktiekärnor. Därför behöver du troligtvis firmware med en alternativ kärna, t.ex. CyanogenMod, AOKP eller MIUI.

Annars är allt enkelt. Programgränssnittet består av endast sex knappar: Status, Avmontera alla, Montera, Avmontera, Skapa och ta bort. För att skapa en ny bild och komma åt den, klicka bara på "Skapa", välj katalogen för att ansluta, storlek och ange lösenord och filsystem (FAT32 för kompatibilitet med Windows eller ext2 för Linux). Samtidigt på minneskortet kan flera bilder existera och anslutas samtidigt, vilket kan avaktiveras med "Unmount" -knapparna eller raderas med "Ta bort".

Det är inget komplicerat att hantera applikationen, jag kan bara säga att paketet med LUKS Manager också innehåller en version av kryptsetup-verktyget som har sammanställts för Android, som kan användas för att manuellt hantera och ansluta bilder.


Annan applikation

Dm-crypt och cryptfs används i Android inte bara för att skydda / datakatalogen från nyfikna ögon. Med deras hjälp implementeras här ett konstigt system för att installera applikationer på ett minneskort. Det är baserat på idén om krypterade bilder, en för varje installerad applikation. Detta görs för att skydda konfidentiell information, eventuellt lagrad av applikationen, från andra applikationer som i Android har full åtkomst till SD-kortet för läsning, såväl som från dem som tar SD-kortet i besittning.

Genom att starta terminalen och utföra df-kommandot kan du själv se hur detta implementeras. Skärmdumpen "Galaxy Nexus and df" visar utdata från det här kommandot på min smartphone. Det framgår tydligt att förutom den pseudokryptografiska enheten / dev / block / dm - 0, som är ansluten till / datakatalogen och ansvarar för att kryptera data på smarttelefonen, finns det 15 fler liknande enheter anslutna till olika kataloger inuti / mnt / asec. Det här är programmen som är installerade på minneskortet. Själva applikationerna lagras i krypterade bilder i .asec-katalogen på minneskortet och krypteringsnycklarna lagras i huvudminnet på smarttelefonen.


Du kanske också märker att det också finns en / dev / säkring pseudo-enhet ansluten till / lagring / emulerad / arv, liksom vissa andra kataloger. Detta är inget annat än en "minneskortemulator" implementerad med FUSE-drivrutinen som beskrivits tidigare (Galaxy Nexus-minneskortet stöder inte). I huvudsak är detta en enkel spegling av katalogen / lagring / emulerad / arv i / data / media / 0. Katalogen / sdcard är en länk till / lagring / emulerad / arv. Genom att köra ps-kommandot kan du se att spegling implementeras med applikationen / system / bin / sdcard, som använder FUSE som bas. I själva verket är detta en alternativ implementering av unionen som är bekant för alla Linuxsoider.

VARNING

Dm-krypteringsmodulen kan inte användas för att kryptera partitioner med YAFFS-filsystemet, eftersom den senare använder operationer på låg nivå vid åtkomst till NAND-minne.

rön

Som du kan se är det mycket enkelt att få datakryptering av hög kvalitet i Android, och i de flesta fall behöver du inte ens installera ytterligare programvara. Den enda begränsningen är behovet av att ha en smartphone baserad på Android 4.0 och högre, men eftersom allt som var innan 4.0 är ganska svårt att namnge operativsystemet finns det inget särskilt problem :).

INFO

Implementeringsdetaljer för det vanliga Android-krypteringssystemet för paranoiacs: 128-bitars AES i CBC-läge och ESSIV: SHA - 256. Huvudnyckeln är krypterad med en annan 128-bitars AES-nyckel erhållen från användarlösenordet med 2000 iterationer enligt PBKDF2-standarden med 128 bitar slumpmässigt salt.

Om du ser från säkerhetssidan är din Android-smarttelefon en kompakt låda full av viktig personlig information, och du skulle knappast vilja att den skulle falla i fel händer. För att göra situationen mer realistisk, tänk på dina e-postmeddelanden, SMS-meddelanden, sparade kreditkortsnummer, personliga foton och annan känslig information.

Andra telefoner kan till och med smuggas ur landet där de kan få premiumpriser på tillväxtmarknader. Men om du använder det senare, kom ihåg att en tjuv kan se ditt upplåsningsmönster genom att följa fingrarna på skärmen. Detta är en annan anledning till att det rekommenderas att rengöra enheten ofta. Den här funktionen är kanske inte lika bra, men det är definitivt det säkraste alternativet.

Spåra och radera din telefon på distans

Förutom låskoden har vissa enheter till och med en fingeravtrycksläsare. Funktioner för skärmlås. Endast missade samtal och en förhandsvisning av olästa text är vanligtvis tillgängliga genom att gå till sidan "Säkerhetssidainställningar". Markera sedan rutorna för att fjärrsöka, låsa och starta om telefonen. Var därför noga med vad du lagrar på minneskortet.

Jag tror att ingen skulle vilja vara i en situation där en främling skulle ta över denna information, för det är till och med skrämmande att tänka på konsekvenserna. Och det här är det främsta skälet till att vi kommer till olika metoder för att organisera skyddet av vår telefon eller surfplatta, och datakryptering är det viktigaste sättet att skydda data.

Tänk på att det finns vissa nackdelar innan du aktiverar kryptering. Långsammare: Kryptering lägger alltid till en del omkostnader, vilket gör din enhet lite långsammare. Det fungerar bara i en riktning: När du har krypterat enhetens minne kan du stänga av krypteringen genom att återställa telefonen till fabriksinställningarna. Det kommer också att ta bort alla data som är lagrade på din telefon, så du måste installera den från grunden. Faktisk hastighetsminskning beror på telefonens hårdvara. . Inte alla bör inkludera kryptering, eftersom detta kommer att göra mer skada än nytta för många människor.

Vad är kryptering?

Kryptering är en reversibel process för att konvertera data till en oläsbar form för alla personer, förutom de som vet hur de dekrypteras. Det enda sättet att returnera data i en läsbar form är att dekryptera den tillbaka med rätt nyckel.

Sådana saker är lättare att förstå med enkla exempel, låt oss säga att du tappade din dagbok, och alla som finner den och känner det ryska språket kan lätt läsa och ta reda på dina innersta hemligheter, men om du hade en dagbok i någon hemlig kod, eller språk som bara är förståeligt för dig, då kunde ingen annan läsa den.

I grund och botten bör proffs med affärsinformation allvarligt överväga detta krypteringsalternativ, vilket gör det klart att det också är viktigt innan några enheter ändras. Förutom att bibehålla din enhets fysiska säkerhet ska du vara försiktig med de program som du installerar som också kan stjäla din personliga information.

Kryptering kan ta en timme eller mer, beroende på hur mycket data du har på din enhet. Om du behöver stoppa krypteringsprocessen förlorar du data på din telefon. Öppna inställningsskärmen, klicka på "Säkerhet" och klicka på "Kriterier".

En liknande metod kan tillämpas på data lagrade på din Android-enhet. En tjuv kan ta kontroll över din smartphone eller surfplatta och få tillgång till personuppgifter, men om uppgifterna är krypterade är det bara en uppsättning av värdelös gibber som han inte kan läsa.

Vi krypterar din Android

Om du ser från säkerhetssidan är din Android-smarttelefon en kompakt låda full av viktig personlig information, och du skulle knappast vilja att den skulle falla i fel händer ...

Idag måste varje användare tänka på att skydda konfidentiell information från obehöriga personer. Tillverkare av mobila enheter bryr sig om framtida kunder och deras rätt till sekretess, därför ägnas mer och mer uppmärksamhet åt att bevara personuppgifter. Tabletter kan också tillskrivas personliga enheter, så låt oss prata om deras skydd.

Kan jag inaktivera kryptering på min surfplatta?

Systemfunktionerna för moderna surfplattor stöder kryptering av information som lagras både i enhetens interna minne och på ett externt SD-kort. Det bör komma ihåg att arbetande kryptering påverkar enhetens prestanda negativt. De som värderar datorkraft över säkerheten för personuppgifter bör definitivt läsa den här artikeln.

Om du har turen att få tillgång till en Android-surfplatta som ursprungligen baserades på operativsystemets version kommer du inte att kunna inaktivera krypteringsfunktionen. Utvecklarna beslutade att förskriva tvingad kryptering av information om de senaste versionerna av operativsystemet, men förtvivlar inte, eftersom hackare inte heller sover. Det råder ingen tvekan om att dessa arbetare snart kommer att erbjuda sin egen lösning på detta problem. Samtidigt är surfplattor vars operativsystem har uppdaterats till den senaste versionen från tidigare versioner inte begränsade till sådana förbud, därför är alternativet att inaktivera kryptering tillgängligt. Vi rekommenderar dock att du funderar på om du verkligen behöver det så mycket?

I tidigare versioner av Android, upp till 2.3.4., Måste kryptering startas manuellt. Detta alternativ finns i inställningsmenyn: Säkerhet-\u003e Kryptering-\u003e Kryptera enhet. Man måste komma ihåg att det efter detta är omöjligt att dekryptera den krypterade informationen, eftersom utvecklaren inte gav en sådan möjlighet. Således, om du behöver dekryptera information, är dess förlust oundvikligt. För att göra detta måste du återställa enheten till fabriksinställningarna från läget "återställning".

För att utföra en sådan återställning måste du hålla tabletten upp och ner volymknapparna och strömknappen på den samtidigt. Den laddas i ingenjörsmenyn, där du använder volymknapparna för att hitta menyposten "torka data / fabriksåterställning" och, när du har valt det, tryck på strömknappen. När återställningen är klar måste du starta om genom att välja "starta om". När du har laddat i arbetsläget på surfplattan bör du återställa personuppgifter och sedan inte längre köra kryptering.

Dela detta