Să expui public RDP-ul, mai ales de la un Windows care nu e ținut la zi cu toate actualizările de securitate, e extrem de riscant. Chiar și un sistem la zi are zero-day vulnerabilities încă necunoscute nouă dar exploatate de ăia cu ochi mai albaștri când au chef.
Dar presupunând că ești în situația ideală în care sistemul destinație e 100% infailibil și poate fi lăsat expus în internet, situația e cam așa.
Tu vrei să te conectezi de la un calculator în care nu ai încredere. Acel calculator nu ar trebui, la nici un moment, să aibă acces la toate elementele necesare autentificării pe sistemul tău. Asta înseamnă să nu poată citi o parolă introdusă de la tastatură, sau vreun certificat (static) aflat pe un stick, sau alt element de autentificare care, dacă sistemul în care nu ai încredere îl poate citi, asta înseamnă că îl poate și duplica, permițând astfel oricând accesul altcuiva la sistemul tău.
Pentru transportul datelor, RDP este criptat end-to-end, însă clientul este în continuare la cheremul sistemului de pe care te conectezi. Apoi, pentru autentificare, Windows logon necesită username+password static.
Opțiuni:
- păstrând autentificare Windows ca filtru principal de securitate:
- să activezi on-screen keyboard pe sistemul tău, încât după stabilirea conexiunii RDP, să nu tastezi nimic pe calculatorul de la care te conectezi, ci să clickăi pe ecran în tastatura virtuală; asta tot nu te protejează de un screen recorder, care va putea afla parola ta statică;
- să activezi autentificarea în Windows 10 cu contul Microsoft în loc de cont local pe Windows, fiindcă pe contul Microsoft vei putea activa MFA/2FA și, pe lângă user/pass, să trebuiască să introduci și un cod unic valabil mai puțin de un minut, cod generat de o aplicație generatoare de coduri pe mobil (Microsoft Authenticator, Google Authenticator, Authy etc.); cu asta, datele de autentificare sunt volatile și valabile doar 40 de secunde, dacă cineva face screen recording ar trebui să încerce autentificarea imediat ca să poată refolosi codul unic, DAR asta îți face calculatorul dependent de conexiunea Internet - întotdeauna, chiar și din fața lui, va trebui să fie conectat la internet ca să te poți autentifica, și va trebui să folosești mereu generatorul de cod, ori asta e o scârbă care nici măcar eu nu o pot suporta;
- mutând securitatea accesului de la distanță înaintea autentificării Windows:
- să folosești un software de acces la distanță altul decât RDP, care să aibă el însuși metode de autentificare cu mai mulți factori (gen, certificat + one time code generat pe telefon), și pentru care să ții pe un stick o versiune portabilă, iar pe calculatorul tău să ai componenta server expusă la internet, nu RDP; asta introduce încă un software de ținut la zi și cu posibilele sale vulnerabilități; din păcate nu știu nici un software free pentru asta, cam toate-s comerciale (cerințele de securitate la acest nivel de obicei sunt cerute de firme, și atunci sunt și produse de categorie enterprise și cu costuri pe măsură);
- să faci accesul la distanță mai complicat, prin mai mulți pași:
- pasul 1 - VPN spre rețeaua ta, folosind un client standard VPN; dezavantaj - necesită autentificare cu date statice, acea Pre-Shared Key;
- pasul 2 - folosești un server VPN mai șmecher care, odată tunelul stabilit, te pune într-o zonă de rețea de unde nu poți accesa decât un portal de autentificare al serverului în browser, și unde să poți folosi autentificarea cu mai mulți factori; doar dacă datele sunt corecte, conexiunii i se va aplica o altă politică de Access Control prin care să poți accesa și calculatorul tău în rețeaua din spatele VPN-ului;
- pasul 3 - dai drumul clientului RDP pentru ca să te autentifici pe calculatorul tău la distanță folosind tot credențiale statice.