Cum să efectuați fixarea SSL în aplicațiile iOS
Publicat: 2020-02-24În momentul în care oamenii ies din casele lor, pornesc în căutarea unor rețele Wi-Fi deschise . Fie că așteaptă la aeroport sau stau la o cafenea, agenda principală este să găsești o conexiune Wi-Fi deschisă .
Cu teamă, hackerii sunt și ei în aceeași căutare. Și ei așteaptă ca utilizatorii să inițieze o solicitare de conectare la rețeaua deschisă înainte de a-și pune mintea de phishing la lucru și de a-i priva de datele lor sensibile sau, mai rău, de bani în contul lor bancar.
În timp ce HTTPS este eficient într-o oarecare măsură, este un protocol SSL despre care se știe că face utilizatorii în siguranță, fiind de neîntrerupt și în mare măsură sigur. Dar atacurile Man-In-The-Middle (MITM) au găsit modalități de a încălca și acest lucru.
Aici intervine tehnica de fixare SSL ca una dintre cele mai bune practici de securitate pentru aplicațiile mobile . Vorbind în special despre platforme, este soluția ideală de securitate a aplicației pentru iPhone care face o treabă uimitoare în rezolvarea problemei.
În acest articol, vom analiza tipurile și procesul de încorporare a SSL Pinning în aplicațiile iOS pentru a preveni aceste atacuri Man In The Middle. Un proces care este o parte activă a practicii de testare a securității mobile OWASP .
Tipuri de certificate SSL Metoda de fixare
Există în principal două metode pentru testul de fixare SSL, așa cum se discută mai jos:
- Fixați certificatul – Puteți descărca certificatul serverului și le puteți combina în aplicație. În timpul rulării, aplicația compară certificatul de server cu cel pe care l-ați încorporat.
- Fixați cheia publică – Puteți prelua cheia publică a certificatului din cod ca șir. În timpul execuției, aplicația compară cheia publică a certificatului cu una care este codificată în cod.
Alegerea dintre cele două metode iOS de fixare SSL depinde de configurația serverului și de nevoile individuale. Când alegeți prima opțiune, va trebui să încărcați aplicația atunci când serverul își schimbă certificatul sau nu va mai funcționa. Atunci când alegeți a doua opțiune, este posibil să încălcați politica de rotație a cheilor, deoarece cheia publică nu se va modifica.
Să aruncăm o privire acum la pașii pentru implementarea SSL Pinning în aplicația dvs. iOS.
*Notă: pașii menționați mai jos urmează procesul de fixare a certificatului iOS cu Swift.
Cum să implementați fixarea SSL în aplicația dvs. iOS
1. NSURLSession
În cazul NSURLSession, metoda principală pentru gestionarea fixarii SSL este URLSession:didReceiveChallenge:completionHandler:delegate. Dezvoltatorii vor trebui să seteze clasa să se conformeze URLSessionDelegate și să lipească această funcție în clasă:
Funcția ar „ cere acreditări de la delegat ca răspuns la o solicitare de autentificare de la serverul de la distanță ”. Dezvoltatorul de aplicații pentru iPhone va compara apoi certificatele de pe server cu unul salvat în pachetul de aplicații. Dacă cele două certificate sunt găsite identice, autentificarea îl va lăsa să treacă și clientul se va putea conecta la server.
2. Fixarea certificatului Alamofire
Alamofire este una dintre cele mai faimoase biblioteci pentru rețele HTTP în limbajul Swift. Vine cu funcționalitatea încorporată pentru fixarea SSL în iOS Swift și este extrem de ușor de utilizat. Iată cum să creați o aplicație iOS securizată cu fixarea certificatului Alamofire.
Probleme obișnuite asociate cu implementarea fixarii SSL și cum să le rezolvi
Experții în asigurarea calității de la agențiile de dezvoltare de aplicații reputate testează în mod regulat aplicațiile mobile pentru vulnerabilități de securitate, inclusiv penetrarea completă a rețelei. Dar există multe agenții de testare a aplicațiilor care nu se concentrează pe aceste domenii cu același entuziasm. Ei par reticente atunci când implementează această soluție specială de securitate pentru iPhone în aplicațiile lor.
Iată câteva dintre motivele predominante din spatele acestui lucru -
- Unul dintre cele mai mari dezavantaje ale fixarii SSL în aplicația iOS este implementarea acestuia. Procesul este complex și poate forța dezvoltatorii să scrie codul din nou și din nou și să complice procesul de construire a aplicației .
- Fixarea certificatelor SSL iOS care trebuie să se schimbe în mod regulat poate forța dezvoltatorii să actualizeze binarul aplicației de fiecare dată când se modifică certificatul.
- Trebuie depuse mai multe eforturi pentru a proteja modalitățile de a ocoli verificarea SSL iOS.
Observând repercusiunile pe care le poate aduce absența scenei, iată cum unele capcane comune sunt evitate de o companie de încredere pentru dezvoltarea de aplicații pentru iPhone .
Testarea pinului
Spre deosebire de testarea obișnuită a aplicațiilor în care testați dacă totul funcționează sau nu, metoda pentru testul de fixare SSL este că va trebui să verificați dacă ceva nu reușește. Va trebui să vă concentrați pe testarea faptului că aplicația anulează conexiunile potențial compromise. Dacă aplicația permite comunicarea cu un singur punct final, testarea va fi la fel de simplă ca trimiterea cererii GET într- o stare arbitrară. În mod ideal, în acest caz, aplicația trebuie să anuleze conexiunea și cererea să eșueze.
Gestionarea modificării certificatului
Reînnoirea unui certificat de domeniu păstrează perechea de chei publică/privată, dar nu este întotdeauna cazul. Dar dacă planificați corect ciclul de actualizare, veți putea evita timpul de nefuncționare pentru utilizatorii finali.
Înainte ca certificatul SSL iOS să devină activ pe site, trebuie să îl fixați în aplicație, pe lângă certificatul activ în prezent și apoi să eliberați o actualizare. Când urmăm acest pas la Appinventiv pentru a crea o aplicație iOS securizată , efectuăm temporar un test rapid cu noul certificat și testăm aplicația cu ambele certificate fixate.
Întrebări frecvente despre fixarea SSL în aplicațiile iOS
1. Unde să stocați datele sensibile într-o aplicație iOS?
Datele sensibile ale aplicației ar trebui să fie întotdeauna stocate în iCloud sau Keychain în iOS sau chiar în baza de date după o criptare adecvată.
2. Cum funcționează SSL?
Fixarea SSL este unul dintre cele mai comune sfaturi de securitate pentru aplicația iOS . Dar pentru a înțelege ce înseamnă, mai întâi va trebui să știi cum funcționează SSL.
- Un browser încearcă să se conecteze la un site web care este securizat cu un SSL. Browserul solicită apoi serverului web să se identifice.
- Serverul web trimite apoi browserului copia certificatului SSL.
- Browserul verifică dacă certificatul SSL trebuie să fie de încredere. Dacă se poate, se trimite un mesaj către serverul web.
- Serverul web trimite apoi înapoi o confirmare pentru a începe sesiunea criptată SSL.
- Datele criptate sunt apoi partajate între browser și serverul web.
Gânduri de sfârșit
Deși fixarea SSL este considerată sigură și utilizată pe scară largă ori de câte ori este nevoie de criptare, un alt nivel de protecție este întotdeauna binevenit atunci când se construiesc aplicații cu risc ridicat. Fixarea SSL vă permite să verificați identitatea serverului în partea superioară a verificării lanțului de încredere SSL.
Cu fixarea SSL, puteți refuza toate conexiunile, cu excepția celor cu serverul desemnat al cărui certificat SSL l-am salvat în pachetul nostru local. Un potențial dezavantaj al acestui lucru este că trebuie să actualizați aplicația ori de câte ori cheia SSL a serverului este schimbată.
În cazul în care intenționați să lansați și o aplicație iOS cu fixare SSL, poate fi un început bun să consultați cea mai bună companie de dezvoltare de aplicații iOS .