Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

Idag är hårdvarunycklar ett av de mest pålitliga sätten att skydda information som finns i en dator. De används inom en mängd olika områden: för säker lösenordslagring, användaridentifiering, säkerhet programvara från pirater etc. Samtidigt behöver själva nycklarna också seriöst skydd.

Faktum är att angripare väldigt ofta försöker få tillgång till ett program eller hemlig information genom att hacka enheten som ger säkerhet. Låt oss titta på hur säkerhetsnyckelutvecklare skyddar sina produkter från hackare. Låt oss ta Stealth-teknik som ett exempel. Den skapades av företaget Aktiv för sina Guardant-nycklar, designad för att skydda programvara från pirater.

Elektroniska nyckel åtkomstkoder

Ett av sätten att skydda nyckeln med Stealth-teknik är åtkomstkoder. De är sekvenser på 32 bitar som är "hardwired" i enheten och kan inte läsas eller modifieras. Det finns två typer av koder - allmänna och personliga. Den första av dem är inte hemlig, den tjänar bara till att identifiera nycklarna för en specifik säkerhetsanvändare.

Stealth-tekniken tillhandahåller tre olika personliga koder. Privat läskod låter dig kontrollera närvaron av en dongel ansluten till datorn, läsa innehållet i dess minne och få svar från hårdvarualgoritmer. Utan kunskap om den privata skrivkoden är det omöjligt att skriva data till enheten. Tja, privat masterkod öppnas full tillgång till alla operationer med nyckeln. Var och en av dessa koder måste hållas hemliga, eftersom en angripare efter att ha fått dem kommer att kunna använda enheten för sina egna syften.

"Tja, varför behövde du komma med tre koder istället för en?" – många läsare kommer säkert att fråga. Svaret på denna fråga är mycket enkelt: så här ökar säkerheten avsevärt. När allt kommer omkring, för att arbeta med en nyckel, är det nödvändigt att applikationen "känner" åtkomstkoden till den. Det vill säga, det visar sig att denna konfidentiella information fortfarande finns lagrad någonstans.

Och det är teoretiskt möjligt att en hackare, efter att ha fått tillgång till datorn, kommer att kunna hitta den. Även om detta inte är så lätt att göra i verkligheten. Så de flesta applikationer behöver bara tillstånd för att läsa data från dongeln, samt använda dess hårdvarualgoritmer. Således, om en hacker kan hacka en skyddad applikation, kommer han bara att få den privata läskoden. Han kommer inte att kunna skriva över nyckelns minne.

Maskinvarubegränsningar

Nycklar gjorda med Stealth-teknik, liksom många andra säkerhetsenheter, har sitt eget icke-flyktiga minne. Dess innehåll är mycket viktigt. När allt kommer omkring, om en hackare får data som finns i nyckelns minne, kan han använda den för att få obehörig åtkomst till data, hacka en skyddad applikation, skapa en enhetsemulator, etc. Du måste hålla med, allt detta är väldigt obehagligt.

Stealth-teknik låter dig helt lösa det diskuterade problemet. För att göra detta skapas ett speciellt skyddat område i nyckelns minne med hårdvaruförbud mot att läsa och skriva dess innehåll. Således är det omöjligt att läsa information som finns i en sådan zon med hjälp av någon programvara: Enheten svarar helt enkelt inte på någon sådan begäran. Dessutom kanske hackare inte ens försöker eller skapar nya verktyg för att kringgå de pålagda restriktionerna. Ändå ligger hårdvarunivån "under" programvaran, så det är omöjligt att kringgå förbuden med hjälp av några verktyg.

Inledningsvis introduceras hårdvarubegränsningar endast på området för icke-flyktigt minne där deskriptorer av mjukvarualgoritmer finns. Detta är mycket viktigt. Deskriptorer är grunden för datatransformation, så oförmågan att läsa dem är en garanti för att hårdvarunyckelalgoritmerna inte kommer att dupliceras i emulatorn. Dessutom kan användaren, med hjälp av speciell programvara som ingår i leveranssatsen, skapa skyddade områden i det elektroniska nyckelminnet som är tillgängligt för honom. I framtiden kan de ändras i storlek (minska eller öka den tillgängliga volymen). Dessutom kan användaren radera minnesområden med hårdvarubegränsningar för läsning och skrivning av information.

"Men vänta! – kommer nu några läsare att utbrista. "Eftersom användaren kan ta bort restriktioner för att arbeta med minne, varför inte en hackare?" Och verkligen. När ägaren av nyckeln använder särskild nytta kan enkelt radera skyddade områden, vilket innebär att en hackare kan använda samma programvara. Först då uppstår en annan fråga: "Varför gör det här?"

Det visar sig att när någon tar bort hårdvarubegränsningar från ett skyddat minnesområde så förstörs all information som fanns i det. Dessutom är det förstört för alltid och kan inte återställas. Ägaren av nyckeln vet exakt vad som fanns i det avlägsna området, så efter att ha tagit bort hårdvaruförbudet kan han enkelt återställa data. Tja, hackaren kommer att få helt rent minne i vilket han kan skriva vad han vill.

Men det är ingen nytta av detta för angriparen – han behövde informationen, men den visar sig vara förstörd. Således skyddar hårdvaruförbud mot att läsa och skriva vissa minnesområden på ett tillförlitligt sätt de hemliga data som är nödvändiga för att bygga skydd. Och även om en angripare tar din nyckel i besittning, kommer han fortfarande inte att kunna få all information den innehåller.

Så, kära läsare, låt oss sammanfatta det. Hårdvarunycklar gjorda med Stealth-teknik är ganska tillförlitligt skyddade från en angripare. Han kommer åtminstone inte att kunna komma åt viktig information med hjälp av speciell programvara. Det är sant att vi också behöver skydd från hårdvaruenheter som hackare kan använda för att komma åt nyckelns minne. Men det här, som de säger, är en helt annan historia.

Nyckelcertifiering

Om nycklar på något sätt överförs till en avlägsen plats måste de kontrolleras vid mottagandet för att se om de har manipulerats under överföringen. Detta kan göras manuellt eller med någon form av digital signatur.

Offentliga nycklar är avsedda att publiceras eller delas med andra och måste vara certifierade som tillhörande nyckelparets ägare. Certifieringen utförs med hjälp av en central certifieringsmyndighet (CA). I i detta fall CA tillhandahåller digital signatur på den publika nyckeln, och tack vare detta uppfattar CA med tillförsikt det faktum att den publika nyckeln tillhör ägaren av nyckelparet (se fig. 5).

Ris. 5. Certifiering av den publika nyckeln i en certifikatbyrå

Utan korrekt certifiering av nyckeln och dess ägare kan en angripare infiltrera egna nycklar och därmed övervinna säkerheten för all överförd och autentiserad information.

Offentliga nyckelpar offentliga nycklar kräver inte sekretessskydd. De kräver endast integritetsskydd genom användning av certifikat. Den privata nyckeln för det publika nyckelparet måste hållas hemlig hela tiden.

Om en angripare skaffar en kopia av den privata nyckeln har han möjlighet att läsa all känslig trafik adresserad till ägaren av nyckelparet, samt digitalt signera information som ägare till nyckelparet. Skyddet av den privata nyckeln måste omfatta alla kopior av den. Därför måste filen som innehåller nyckeln skyddas, liksom alla arkivmedia som filen kan spelas in på. På de flesta system implementeras nyckelskydd genom användning av lösenord. Detta skydd låter dig skydda dina nycklar från slumpmässiga spionageaktiviteter, men inte från en gemensam riktad attack. Lösenordet som används för att skydda nyckeln måste väljas noggrant för att motstå brute force-attacker. Dock på bästa möjliga sätt Nyckelskydd är först och främst att förhindra en angripare från att komma åt nyckelfilen.

Det är nödvändigt att säkerställa skyddet av alla nycklar i systemet som använder hemliga nycklar. Om nyckeln finns i en fil måste den filen skyddas var den än finns (inklusive arkivmedia). Om nyckeln finns i minnet måste åtgärder vidtas för att skydda minnesutrymmet från utforskning av användare eller processer. På samma sätt, i fallet med en dump (återställning av data till hårddisk) kärnor, måste kärnfilen skyddas eftersom den kan innehålla en nyckel.

Till en början skapades hårdvarunycklar som ett sätt att bekämpa obehörig kopiering av mjukvaruprodukter, men senare utökades tillämpningsområdet avsevärt...

Majoritet datorprogram distribueras enligt principen att äga ett visst antal arbetsexemplar (i det enklaste fallet, endast en). Naturligtvis är termen "kopieringsskydd", allmänt accepterad i internationell praxis, ganska villkorad, eftersom det nästan alltid är möjligt att skriva om informationen som finns på media och göra så mycket av den som du vill. säkerhetskopior. En annan sak är att för att bevara utvecklarnas kommersiella och upphovsrättsliga rättigheter måste programmet fortfarande köras på endast en dator. Således är kopieringsskydd för programvara faktiskt omöjligheten att köra programmet på fler datorer än vad som är tillåtet av dess utvecklare och distributörer enligt detta avtal. För att bevara rättigheterna är det följaktligen nödvändigt att ha medel som ger skydd mot obehörig utförande - så att det utan sanktion från utvecklaren eller distributionsföretaget är omöjligt att få en fungerande mjukvaruprodukt.

Den vanligaste och pålitligaste metoden för skydd mot obehörig start har blivit mjukvaru- och hårdvarunycklar anslutna till COM-, LPT- eller USB-portar.

Nästan alla paketerade versioner av seriös kommersiell programvara använder hårdvaru- och mjukvaruskyddssystem, mer kända som hårdvaruskyddsnycklar. Sådana skyddsmetoder är baserade på det faktum att en speciell fysisk säkerhetsanordning läggs till datorn, som, när det skyddade programmet startas, nås av dess styrande del, som kontrollerar närvaron av en åtkomstnyckel och dess parametrar. Om nyckeln inte hittas (enheter genererar vanligtvis också en svarskod, som sedan analyseras av programmet), kommer programmet inte att starta (eller tillgång till data tillåts inte). Allmän princip Datorns funktion i detta fall är som följer. Efter en begäran om att köra det skyddade programmet laddas det in i RAM

och initiering av styrdelen. En begäran skickas till en fysisk säkerhetsenhet som är ansluten till datorn. Som svar genereras en kod och skickas genom mikroprocessorn till RAM för igenkänning av den styrande delen av programmet. Beroende på svarskodens korrekthet avbryts eller exekveras programmet.

Således har vi nu ett billigt sätt för storskalig implementering av smarta nycklar som personliga identifierare eller som en del av de så kallade AAA-systemen (autentisering, auktorisering och administration). Hittills har det föreslagits att utrusta datorer med speciella läsare, vilket naturligtvis är orealistiskt. Moderna biometriska användarautentiseringsenheter (som så ofta visas i Hollywood-filmer), såsom system som fungerar med fingeravtryck eller irisbilder, är så dyra att de inte kommer att användas i stor utsträckning praktisk tillämpning. Det ska man i alla fall komma ihåg absolut pålitligt skydd finns inte. Alla skydd kan brytas, så det är nödvändigt att leta efter det optimala förhållandet mellan kostnaderna för att skapa skydd och de beräknade kostnaderna för att bryta det, även med hänsyn till prisförhållandet med de skyddade produkterna själva.

Den bästa lösningen, enligt experter, är smarta kort - de kan inte förfalskas, sannolikheten för funktionsfel är praktiskt taget utesluten, användarautentisering utförs på en lokal arbetsstation, och inte på servern, det vill säga möjligheten att fånga upp information på nätverket etc. är utesluten. Den enda nackdelen med ett smartkort kan vara behovet av en speciell kortläsare (läsenhet), men detta problem löses av enheter integrerade med läsaren, som är anslutna direkt till USB-porten. Dessa små, högteknologiska enheter ger ägartillstånd till datorsystem, utföra säker lagring av certifikat, elektroniska signaturer etc. och kan användas i elektroniska betalningssystem (elektroniska "plånböcker" för Internet).

Idag är problemet med att säkerställa säkerheten vid användning nätverkstekniker och behovet av lösningar för att skydda mobilanvändare blir allt mer akut. Skyddsnycklar för trådlös hårdvara som använder Bluetooth-teknik visas också. Således visade det taiwanesiska företaget First International Computer en handdator med motsvarande modul och trådlöst hårdvarunyckel BlueGenie applikationsskydd, utvecklat i samarbete med Silicon Wave.

HASP

idag en av de vanligaste i Ryssland skyddsanordningar Denna typ av enhet är HASP-enheten (Hardware Against Software Piracy) från Aladdin, som i huvudsak har blivit en de facto-standard. Aladdin Software Security R.D. detta, en representant för världsledaren inom utveckling och produktion av autentiseringssystem, informationssäkerhet vid arbete med Internet och mjukvaruskydd från obehörig användning Aladdin Knowledge Systems Ltd (http://www.aladdin.ru/).

HASP är en hårdvaru-mjukvara instrumentsystem, utformad för att skydda program och data från olaglig användning, piratkopierad replikering och obehörig åtkomst till data, samt för att autentisera användare vid åtkomst till skyddade resurser. I de första versionerna detta liten enhet ansluten till datorns parallellport. Sedan dök USB-HASP-enheter upp. Att ha en liten USB-dongel är mycket bekvämare än en stor 25-stifts pass-through-kontakt, och frekventa problem med kompatibiliteten hos donglar och enheter som fungerar via en parallellport, såsom skrivare och ZIP-enheter, var ganska tröttsamt för användarna. Och automatisk anslutning fungerar med USB-enheter (plug-and-play), USB-portar

placerad på frontpanelen, inbyggd i tangentbordet och bildskärmen. Och även om en sådan bekväm kontakt inte är till hands, så säljs förlängningssladdar ofta kompletta med dessa nycklar. Det finns flera typer av nycklar - med minne, med klocka, etc. Nackdelen med sådana miljöegenskaper som serienummer , hårdvarukonfiguration, nyckelfil

, information i den hemliga delen av disken, är att en angripare ganska enkelt kan avslöja dem och utföra hackning genom att simulera dem.

För att eliminera sådana brister måste miljöns egenskaper överföras till externa enheter som är maximalt skyddade från obehörig åtkomst, vilket gör deras emulering och duplicering svår.

Denna möjlighet tillhandahålls av elektroniska nycklar. De tvingar fram en användaragentmiljö, miljöegenskaper som är resistenta mot emulering och duplicering. Nycklarna är utvecklade av det israeliska företaget Aladdin och används för mjukvaruskydd från NS-användning: de förhindrar att program startar i avsaknad av elektroniska nycklar, begränsar det maximala antalet kopior, samtidig lansering

program på nätverket, begränsa programmets driftstid och begränsa det maximala antalet lanseringar.

  • Typer av elektroniska HASP-nycklar.
  • 1.HASP4 Standard
  • 2. HASP4 Memo
  • 3.HASP4-tid

4. HASP4-nät Det mesta enkel modifiering

  • HASP elektroniska nycklar. Inkluderar endast krypteringsfunktionen och den tillhörande svarsfunktionen. Kostnad - $13. Kan implementera följande skyddsfunktioner:
  • 2. Mata in olika värden till svarsfunktionen och jämför svaret med referensvärden
  • 3. Använd krypteringsfunktionen för att kryptera dekryptering av programmets exekutiva kod eller använda data.

Grundläggande skyddselement

Var och en av de elektroniska nycklarna är associerad med en viss serie, som tilldelar en specifik utveckling mjukvaruprodukt och möjligen på begäran av tillverkaren av varje mjukvaruprodukt han producerar. Inom en serie har elektroniska nycklar en krypteringsfunktion och en svarsfunktion. För att komma åt de elektroniska nyckelfunktionerna behöver du känna till åtkomstkoden (2 x 16 bitar). Inom samma serie är åtkomstkoderna desamma. Programanvändaren bör inte känna till dessa koder de är kända endast för tillverkaren.

Dessa tangenter inkluderar alla HASP-standardfunktioner. Dessutom har de ett unikt identifikationsnummer och ett icke-flyktigt minne av en viss storlek.

  • 2 typer baserade på mängden icke-flyktigt minne:
    • HASP4 M1 - 112 byte
    • HASP4 M4 - 496 byte

Utöver de funktioner som kan implementeras med HASP4 Standard, kan dessa nycklar:

  • 4. lagra i icke-flyktigt minne diverse konfidentiell information som används för att skydda programvaran (nycklar, övergångsadresser, etc.)
  • 5. Det är möjligt att lagra information i icke-flyktigt minne om inaktiverade och anslutna programmoduler som är tillgängliga för användaren
  • 6. Det är möjligt att skydda program med antalet starter.

Genom att använda given nyckel Det är möjligt att begränsa programmets livslängd och används som regel för att skapa demoversioner av program som har en hög kostnad, eller vid leasing av programvara.

Inkluderar en inbyggd kalender med datum och tid. Används för att skydda programvara genom användarvillkor.

Används för att begränsa det maximala antalet samtidigt körande kopior av program i nätverket.

Metoder för att skydda programvara med elektroniska HASP-nycklar

Kan implementeras med hjälp av inbyggda och dockningsmekanismer.

Inbyggt - HASP API.

Dockning HASP-envelopment.

HASP Memo, Time och Net elektroniska nycklar inkluderar ett full access control subsystem (FAS), som gör att du samtidigt kan skydda flera program från samma tillverkare och begränsa dem beroende på typ av nyckel med antalet starter, med giltighetsperioden , med antalet samtidigt pågående kopior.

Elektroniska nycklar HASP Memo, Time och Net har möjlighet att fjärrprogrammera om dem med hjälp av RUS-undersystemet.

För genomförande fjärrkontroll 2 verktyg bildas: säljare och köpare. De genereras för en specifik elektronisk nyckel, kopplad till dess identifikationsnummer.

Mönsterkodsäkerhet

PCS-mekanismen är baserad på införandet av mallar i källkoden för program, där vissa funktioner för åtkomst till den elektroniska nyckeln definieras. Dessa funktioner som definieras i mallar kommer att kallas dolda från programmets körbara kod. HASP-proceduren kommer inte att kallas explicit för dem. När en säkerhetsutvecklare gör ett uttryckligt anrop till HASP för att utföra hans eller hennes uppgifter, kör programmet automatiskt en sekvens av dolda funktionsanrop som definieras i PCS-mallarna. Totalt kan upp till 25 sådana mallar definieras. Genom att introducera anrop till dolda procedurer genom dessa mallar kan säkerhetsutvecklaren avsevärt komplicera spårningen av säkerhetsmekanismer och göra det svårt för externa störningar i deras drift.

En angripare, genom att inaktivera ett explicit HASP-anrop, inaktiverar faktiskt många dolda samtal, vars resultat återspeglas i programmets funktion, till exempel kan samtal dekryptera koden, ta emot svar från den elektroniska nyckeln, vilket kommer att utföras under den fortsatta driften av programmet.

Omvandlare av skyddade nycklar "DON-1961"

DS1961S “DON-1961” säker nyckelomvandlare är designad för att uppgradera säkerhetssystem som arbetar med oskyddade nycklar som DS1990 eller liknande.

    Omvandlaren utför följande funktioner:

    Bindande DS1961S Secure Keys

    Arbeta med brand- och säkerhetsanordningar, porttelefoner och liknande utrustning med det öppna nyckelprotokollet DS1990 med

    sidan av säkerhetsenheten och använder det privata SHA-1-protokollet för DS1961S-nyckeln från sidan av TM-nyckelläsaren.

    Omvandlarens specifikationer:

    Matningsspänning - 9...18V

    Strömförbrukning, inte mer än - 10mA

    Antalet länkade skyddade nycklar är obegränsat

    Linjelängd till TM-nyckelläsaren, högst -15m

    Totalmått 30x25x10mm

    Anslutning av omvandlaren

Anslutningen av DON-1961-omvandlarkortet till brand- och säkerhetsanordningen utförs i "gapet" på TM-nyckelläsaren.

Röd kabel +12V.

Den svarta tråden är vanlig.

Grön tråd - TM+-ingång för enheten.

Kopplingsplinten på omvandlarkortet är ansluten till TM-nyckelläsaren med korrekt polaritet!

    Procedur för att binda skyddade nycklar till DON-1961-omvandlarkortet:

För att binda skyddade nycklar måste du stänga PGM-bygeln, och den gröna lysdioden börjar blinka snabbt. När TM-tangenten rör vid läsaren, startas algoritmen för att överföra hemligheten till nyckeln. Om överföringen lyckas lyser lysdioden grönt i 3 sekunder. Nyckeln måste kopplas bort från TM-läsaren när lysdioden tänds. När lysdioden inte lyser, koppla inte bort nyckeln från läsaren!Om detta händer måste du trycka på knappen till läsaren igen tills lysdioden lyser grönt. När du försöker binda någon annans nyckel (som inte har kopplats till tillverkaren*) kommer lysdioden att lysa rött i 1 sekund. Om den inte lyser varken röd eller grön, är nyckeln antingen skyddad från att skriva hemligheten eller är felaktig. Denna nyckel fungerar inte med omvandlaren!

Varje ny nyckel får samma hemlighet från samma nyckelomvandlarkort. En annan hemlighet kommer att spelas in i ett annat nyckelomvandlarkort, och följaktligen kommer nycklar som är bundna till ett kort inte att kännas igen på det andra. Den hemliga nyckeln i omvandlarkortet genereras slumpmässigt efter fabriksprogrammering av kortet, eller som beskrivs i avsnitt 6 nedan.

Efter bindning av det erforderliga antalet nycklar tas PGM-bygeln bort och omvandlaren är klar för drift. Ytterligare skyddade nycklar kan länkas när som helst, medan tidigare länkade nycklar förblir i drift.

Uppmärksamhet! Processen att binda hemliga nycklar måste utföras behörig person säkerhetstjänst eller annan person som ansvarar för säkerheten på den skyddade anläggningen!

    Omvandlardrift i huvudläge:

För att koppla om den säkra nyckelomvandlaren till huvuddriftsläget, ta bort byglarna J1 och PGM, den gröna lysdioden börjar sällan blinka. När du trycker på den länkade nyckelläsaren utbyts MAC-koder mellan DS1961S-nyckeln och omvandlaren. MAC-koden beräknas baserat på det hemliga ordet och vissa data som finns i nyckeln och i omvandlarens mikrokontroller. MAC-koden beräknas med SHA-1-protokollet. Om omvandlaren känner igen den länkade hemliga nyckeln lyser lysdioden på omvandlarkortet grönt i 1 sekund. Samtidigt sänds dess öppna ROM-kod till säkerhetsanordningen, som skrivs till säkerhetsanordningen enligt dess standard-algoritm för publik nyckelbindning (ROM-nyckelkod är tryckt på dess kropp).

Vid beröring med en olänkad nyckel beräknas även MAC-koden, men de kommer inte att matcha, eftersom nyckeln inte ges en hemlighet. I det här fallet blinkar lysdioden rött och en slumpmässig ROM-kod sänds till säkerhetsenheten, som inte är registrerad i den. Vid varje efterföljande beröring av TM-läsaren med en olänkad nyckel, kommer en ny ROM-kod att överföras till enheten varje gång. Denna funktion operation eliminerar programmering av olänkade skyddade nycklar i säkerhetsenheten. Detta är nödvändigt för att enheten ska ge kommandot "Nyckelval" till säkerhetskonsolen. Om den hemliga nyckeln är ansluten till omvandlarkortet, men inte är registrerad i säkerhetsanordningen, kommer nyckelkoden som är tryckt på ROM-kroppen också att överföras till anordningen när en sådan nyckel vidrör läsaren.

Lysdioden på omvandlarkortet lyser grönt i 1 sekund, men enheten kommer att upptäcka denna händelse när någon annans nyckel används och kommandot "Key selection" kommer att skickas till säkerhetskonsolen.

I huvudläget är LED-indikeringen av driftlägen som följer:

    Om du rörde den med en länkad hemlig nyckel, blinkade den grönt i 1s

    Om du tryckte på en hemlighet som inte var länkad eller någon annan knapp blinkade den rött i 1s

    3. Blinkar grönt - drift i huvudläge.

    Generera en ny hemlighet i omvandlarens minne:

För att "radera" alla tidigare tilldelade nycklar från omvandlarens minne är det nödvändigt att mata ström till omvandlarkortet med PGM- och J1-byglarna stängda! Indikeringen kommer att vara som följer - lysdioden blinkar rödgrönt med en period på 1s. När bygel J1 öppnas börjar lysdioden att blinka grönt snabbt. Detta betyder att ett nytt hemligt ord har tagits emot i styrenhetens minne, och följaktligen kommer tidigare länkade hemliga nycklar inte längre att kännas igen av denna omvandlare. Du måste binda alla nycklar till omvandlaren igen!

*- bindning utförs med specialutrustning



Om du upptäcker ett fel markerar du ett textstycke och trycker på Ctrl+Enter
DELA: