UltraVNC s podporou Yubikey

Před časem jsem se tu zmiňoval o Yubikey, zařízení podobném bezpečnostnímu tokenu, které se stará o jednorázová hesla. Uvedl jsem také knihovnu PkYubikey pro jednoduchou práci s Yubikey, a následně i upravený SlimFTPD, FTP server s podporou Yubikey. V tomto článku vám nabídnu další aplikaci upravenou pro podporu Yubikey, VNC server UltraVNC.

UltraVNC

Co je to UltraVNC? Jeden z mnoha VNC serverů – programů pro vzdálené ovládání počítače. Přes internet se připojíte k „oběti“ a v tu chvíli se program postará o dvě hlavní věci: V první řadě vám bude posílat obrazovku ovládaného počítače, včetně nastalých změn, takže přímo „na vlastní oči“ vidíte, co se na vzdáleném počítači děje. Za druhé, všechny stisky kláves a myši, které provádíte na svém počítači, přenese na počítač vzdálený a tak je operačnímu systému podvrhne, jako kdyby je tam prováděl přímo lokální uživatel. Celé se to výborně hodí například na support uživatelů (nemusíte z uživatele pracně páčit, co dělal a co má zrovna na obrazovce – prostě se připojíte a hned to máte na obrazovce také), nebo k provádění nejrůznějších činností na svém domácím počítači, když jste zrovna někde jinde.

Aplikací tohoto typu je samozřejmě celá řada, ať už založených také na protokolu VNC (např. TightVNC, RealVNC), nebo úplně odlišných (za všechny jmenuji Team Viewer nebo standardní součást Windows XP Professional a vyšších, vzdálenou plochu). Jejich srovnání není předmětem tohoto článku, postačí říct, že každá aplikace má své výhody a nevýhody a nedá se říci, že by jedna z nich byla objektivně a za všech okolností lepší než ostatní. Já jsem si z řady důvodů, které nechci zbytečně rozpitvávat, vybral právě UltraVNC. To, že jde o produkt s otevřeným zdrojovým kódem, mi nyní umožnilo doplnit ho o jednorázová hesla Yubikey.

Jednorázová hesla v UltraVNC

O zkoumání UltraVNC za účelem zprovoznění Yubikey už jsem se pokoušel dřív, ovšem skončil jsem hned na začátku na své neschopnosti program zkompilovat – „proč se zabývat nějakým programováním, když stejně zdroják nedokážu zkompilovat na spustitelný program,“ říkal jsem si. Na tomto problému se ani teď nic nezměnilo, stále nedokážu UltraVNC zkompilovat (moje chyba, měl jsem prostě nainstalovat Microsoftí Visual Studio a nepokoušet se o dodržení postupu v dokumentaci), ale utrpěl jsem úspěch v jiném ohledu – nakonec jsem se do zdrojáků přeci jenom podíval a zjistil, že UltraVNC samotné vůbec měnit nepotřebuji.

UltraVNC totiž vedle tradiční autentizace uživatele prostřednictvím hesla podporuje i autentizaci proti doméně Windows NT, proti LDAP serveru a několika dalším serverům. Autentizaci proti uživatelem definované funkci sice neumožňuje, ale protože všechny „pokročilé“ autentizace jsou řešeny prostřednictvím samostatných DLL knihoven, principiálně nic nebrání tomu, prostě si jednu z nich vybrat a nahradit jí knihovnou svou.

Přesně to jsem také udělal a ukázalo se, že to je jednoduchost sama. Zvolil jsem knihovnu authSSP.dll, standardně sloužící pro autentizaci proti doméně Windows NT – hlavně proto, že tuto knihovnu UltraVNC použije vždy, když je v nastaveních zaškrtnuta volba „New MS Logon“, zatímco před použitím ostatních knihoven probíhá značně rozvětvené testování podmínek, z nichž některé by se zvenku jen obtížně zajišťovaly. authSSP.dll publikuje pouhé dvě funkce, které je potřeba ve vlastní implementaci nahradit:

int CUPSD(const char * userin, const char *password, const char *machine);
void vncEditSecurity(HWND hwnd, HINSTANCE hInstance);

První z nich slouží k vlastní autentizaci uživatele. Na vstupu dostane uživatelské jméno a heslo (obojí zadá uživatel) a adresu počítače, ze kterého se uživatel připojuje. Na výstupu se očekává hodnota 0, 1 nebo 2 – 0 značí neplatné přihlášení, 1 je platné přihlášení a 2 je platné přihlášení jen pro prohlížení (tzn. přenáší se obrazovka, ale klávesy a pohyby myši jsou ignorovány). Náhrada vlastní funkcí je při použití knihovny PkYubikey trivální záležitostí:

function CUPSD(userin: PChar; password: PChar; machine: PChar): integer; cdecl; export;
begin
  if PKYubikeyValidateOTP(userin, password) = 0 then
    Result := 1
  else
    Result := 0;
end;

Druhá funkce vncEditSecurity slouží k vyvolání editoru uživatelských účtů (po kliknutí na tlačítko Configure MS Logon Groups v konfiguraci UltraVNC). Zatím jsem ji nechal prázdnou (konfigurace se řeší commandlajnovým prográmkem PkYubikey.exe z knihovny PkYubikey), ale třeba se časem donutím a napíšu i vizuální editor.

Instalace a použití

Instalace podpory pro Yubikey do UltraVNC je směšně jednoduchá. Předpokládejme, že máte nainstalované a funkční UltraVNC s tradiční autentizací. Podporu Yubikey do něj dostanete následující posloupností kroků:

  1. Stáhněte si UVNC-Yubikey níže a rozbalte ho do pracovního adresáře.

  2. Do adresáře UltraVNC nakopírujte soubor authSSP.dll (přepište existující soubor). K dispozici jsou dvě varianty upraveného authSSP.dll, jedna staticky linkovaná (nepotřebuje žádný další kód), druhá využívající dynamicky připojovanou knihovnu PkYubikeyDll.dll; pokud nemáte zvláštní důvod pro preferování té druhé verze, použijte verzi staticky linkovanou.

  3. V konfiguračním okně UltraVNC zaškrtněte volby Require MS Logon a New MS Logon.

    Konfigurace UltraVNC pro podporu Yubikey

Tím je konfigurace UltraVNC hotová, zbývá konfigurace PkYubikey. Tu už jsem podrobně popsal v prvním článku o PkYubikey, proto se zde nebudu opakovat a odkážu vás tam – konkrétně na část věnovanou PkYubikey.exe.

Download

  • UVNC-Yubikey v0.02 (2010-12-25, 68 KB). Aktualizována knihovna PkYubikey. Vyčištěn proces kompilace. Přidána dokumentace. Přidáno číslo verze a digitální podpisy do všech spustitelných souborů.

  • UVNC-Yubikey v0.01 (2010-02-27, 44 KB). Alternativní authSSP.dll s podporou Yubikey, včetně zdrojového kódu v Delphi (kód je nicméně naprosto triviální, snadno ho dokážete přepsat do libovolného jiného kompilovatelného jazyka včetně assembleru).

Podobné příspěvky:

2 komentáře “UltraVNC s podporou Yubikey”

  1. avatar mata napsal:

    Dobrej den. Psali jste, ze muzem navrhnout stranky, ktere se jeste nedaj stahovat s vasim programem. Kdys mohu, tak pridavam dve. Dekuji. http://equitv.cz/vycvik-trenink/drezura/2010/4/11/videa/drezurni-serial-dil-6/

    http://www.bestgore.com/execution/electric-chair-execution-video-film-midwest-us-prison/

  2. avatar pepak napsal:

    Verze 0.02: Aktualizována knihovna PkYubikey. Vyčištěn proces kompilace. Přidána dokumentace. Přidáno číslo verze a digitální podpisy do všech spustitelných souborů.

Leave a Reply

Themocracy iconWordPress Themes

css.php