Att placera krypteringsfunktioner enbart vid applikationslagret, snarare än att utnyttja nätverksprotokoll på lägre nivå som TLS/SSL, har flera betydande nackdelar:
* Ökad utvecklingskomplexitet och underhåll: Applikationsutvecklaren måste hantera alla aspekter av kryptering, inklusive nyckelhantering, välja lämpliga algoritmer och driftsätt, hantera stoppning och hantera potentiella sårbarheter. Detta lägger till betydande komplexitet i applikationens kodbas, ökande utvecklingstid, kostnad och potentialen för buggar som leder till säkerhetsbrister. Att upprätthålla säker kryptering över olika plattformar och versioner blir ett betydande företag.
* Högre overhead och prestanda påverkan: Applikationsskiktkryptering lägger till bearbetning över huvudet till varje meddelande. Detta kan vara betydande, särskilt med stora datasätt eller applikationer med hög trafik, vilket leder till långsammare prestanda och ökad resursförbrukning (CPU och minne). Kryptering på lägre nivå drar ofta nytta av hårdvaruacceleration, vilket applikationsskiktskryptering i allmänhet saknar.
* Svår interoperabilitet: Om flera applikationer behöver kommunicera säkert måste de alla komma överens om samma krypteringsalgoritm, läge och nyckelhanteringsschema. Brist på standardisering gör interoperabilitet svårt och förhindrar ofta sömlös integration med andra system.
* Brist på autentisering och integritet: Medan kryptering ger konfidentialitet garanterar den inte i sig äkthet eller integritet. Applikationsskiktkryptering kräver ofta ytterligare mekanismer (t.ex. digitala signaturer, meddelandesautentiseringskoder) för att verifiera avsändarens identitet och se till att data inte har manipulerats med. Att implementera dessa korrekt och säkert är utmanande.
* sårbarhet för attacker: Felaktig implementering av applikationsskiktkryptering kan införa olika sårbarheter. Buggar i den anpassade krypteringskoden kan skapa utnyttjbara svagheter. Utan korrekt nyckelhanteringspraxis kan nycklarna dessutom äventyras, vilket gör krypteringen värdelös. Att utnyttja sådana sårbarheter kan vara enklare om krypteringen inte är väl med etablerade protokoll.
* Brist på sekretess för underliggande protokoll: Kryptering endast vid applikationslagret lämnar de underliggande nätverksprotokollen (IP, TCP) i tydlig text. Detta innebär att metadata som käll- och destinations -IP -adresser, portnummer och paketstorlekar fortfarande exponeras, vilket potentiellt avslöjar information om kommunikationsmönster.
* re-Invention of the Wheel: Säkert implementering av kryptering är oerhört komplex. Att förlita sig på etablerade och välbevakade protokoll som TLS/SSL minskar avsevärt risken för fel och sårbarheter jämfört med anpassad implementering. Dessa protokoll drar nytta av omfattande granskning och förbättringar över tid.
Sammanfattningsvis, medan applikationsskiktkryptering * kan * vara lämplig för mycket specifika scenarier med låg säkerhet, rekommenderas det i allmänhet inte för de flesta applikationer på grund av de betydande säkerhets- och prestationsriskerna. Att använda standardiserade krypteringsmekanismer med lägre skikt är den oerhört överlägsna metoden.