• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    CERMINEK
    CERMINEK --- ---
    Ahoj všem. Mám lama dotaz a než mě odkážete na google, tak rovnou říkám, že jsem googlil, ale moc moudrý z toho nejsem.

    Mám aplikaci vytvořenou ve Visual Basi Formu a než se pustím do "přepisu" na jinou platformu, napadlo mě, zda by nebylo možné tu aplikaci zkompilovat pro jiné Win. Po změně hw a pár dalších zásadních věcí bude k dispozici PC s Windows 7 Embedded Compact. Nynější XP, kde to běží jsou pryč. Mno napadlo mě, zda by se nedalo "jednoduše" (čti méně časově náročněji) aplikaci překonvertit tak, aby běžela i na CE...

    Lze to? Případně co je k tomu potřeba? Visual Studio mi nic takového nenabízí.


    Díky všem
    MAIMONIDES
    MAIMONIDES --- ---
    MORMEGIL: Inu, myšlenka, že mám na výběr je podobně komická. Naznačuje totiž, že tvořím nějaký nový protokol a to je samozřejmě ještě horší. Praxe je 99% taková, že holt pracuju v rámci parametrů. Pokud v parametrech je 3des2, neni to žádnej problém.
    MORMEGIL
    MORMEGIL --- ---
    MAIMONIDES: Myšlenka „když používám des, jsem si vědom těchto limitů“ se zcela míjí se základní ideou všech podobných knihoven: Kryptografii chtějí/potřebují používat i lidé, kteří nestudují aktuální kryptoanalytickou literaturu a nejsou si vědomi limitů jednotlivých algoritmů. Proto připravíme knihovnu, kterou „nejde použít chybně“. (A pokud někdo používá standardní protokoly vyžadující nějaké konkrétní algoritmy, tak si je jistě neskládá sám z kryptoprimitiv. Doufám.)
    MAIMONIDES
    MAIMONIDES --- ---
    NECROMAN: Roztomilý, ale zcela akademický.
    Fakticky potřebuješ, aby jsi se potkal pevnej blok z počátku a blok někdy později a celou tu dobu posílal známý data a věděl, jaký přesně v jakém bloku jsou. Birthday paradox nastane daleko dřív, ale ten sám o sobě ti dá jen xor dvou náhodnejch plaintextů.

    Patří to do kategorie, když používám des, jsem si vědom těchto limitů a nejspís na ně nenarazim, nikdy.
    NECROMAN
    NECROMAN --- ---
    MAIMONIDES:
    Sweet32: Birthday attacks on 64-bit block ciphers in TLS
    Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN
    https://sweet32.info/
    OpenSSL has moved 3DES ciphersuites from the HIGH category to MEDIUM in the 1.0.1 and 1.0.2 branches, and will disable it by default in the upcoming 1.1.0 release.
    MAIMONIDES
    MAIMONIDES --- ---
    *shrug*
    Kde máš nějaký argumenty pro tvrzení, že 3des2 nebo 3des3 je "nahraně".
    Cítění, myšlení nebo vlastní dlouholetá odbornost, to je irelevantní. Tvrdý data a konkrétní útoky.
    NECROMAN
    NECROMAN --- ---
    MAIMONIDES: Zrovna 3DES uz je na hrane bezpecnosti, ale AES128 by tam mohlo byt. Treba u TLS neprinasi AES256 zadnou vyssi bezpecnost, jen vyssi vypocetni naroky.
    MAIMONIDES
    MAIMONIDES --- ---
    PJOTRIK: Knihovna bez aes128 je pro děti, co si hrajou na písku. normální lidi komunikují s okolním světem existujícíma protokolama a tam je zpravidla aes128 nebo 3des2 a oboje je zcela bezpečný a zůstane to tak dlouho bezpečný jako aes256.
    NECROMAN
    NECROMAN --- ---
    MAIMONIDES: byl jsem na nekolika jeho prednaskach a i kdyz je to podivin, nenarazil jsem na nic, kde by byl mimo, co se C# a .NETu tyka.
    MORIARTY
    MORIARTY --- ---
    MAIMONIDES: Protože když s ním nebudeš souhlasit, tak tě zmlátí bičíkem.
    MAIMONIDES
    MAIMONIDES --- ---
    PJOTRIK: Pardón, proč si někdo myslí, že Altair ví čem mluví?
    PJOTRIK
    PJOTRIK --- ---
    TOOMIX: Zakladni doporuceni (i z ty Altairovy prednasky) je: nech co nejvic z kryptografie na lidech ktery tomu rozumi, nepouzivej systemovy krypto naprimo (je budto spatne nebo neprakticky) a pouzij http://securitydriven.net/inferno/
    zhruba takhle pro hashovani se pouzije SHA384, pro odvozeni PBKDF2 misto Rfc2898DeriveBytes (s tim ze bych tu peknou bulharskou konstantu 384 nahradil hmac.HashSize)
    TOOMIX
    TOOMIX --- ---
    MORMEGIL: username se hashuje asi kvůli zmatení potenciálního útočníka, je to tak historicky, co ten framework vzniknul (cca rok 2007). Protože ale dělám migraci na .NET 4.6.2 a Visual Studio 2017, můžu si dovolit udělat určitý změny, který nebudou zpětně kompativilní a došel jsem až k řešení ukládání hesel
    MORMEGIL: jo ajo
    MORIARTY: Valášek o tom měl přednášku i na nedávním MSFestu, ale byl jsem nakonec na jiný
    O nějaký extra citlivý data nejde, a hesla jsou většinou typu "lopata", "kobliha", "1A23d65", protože obsluhy ovládající výrobní technolologie nemají zrovna velké znalosti ohledně počítačů a IT

    Každopádně díky, použiju Rfc2898DeriveBytes
    BIDAK
    BIDAK --- ---
    MORMEGIL: Já čet: Chybí vám tam stůl. Úplně zmatenej. :)
    MORIARTY
    MORIARTY --- ---
    TOOMIX: Teď jsem zrovna u Valáška na školení a ten doporučuje PBKDF2 s aspoň 10 tisícemi iteracemi. Takže jak píše MORMEGIL: https://msdn.microsoft.com/...library/system.security.cryptography.rfc2898derivebytes(v=vs.110).aspx
    MD5 je už hodně mimo, ale taky ho v některých starých projektech používáme :/
    MORMEGIL
    MORMEGIL --- ---
    (P. S. TOOMIX: 4. Rovnítko je =. Znak | je svislítko.)
    MORMEGIL
    MORMEGIL --- ---
    TOOMIX: 1. Chybí vám tam sůl. 2. Žádná z rychlých haší (tzn. neiterované MD5, SHA256) není vhodná pro ukládání hesel. 3. Chápu dobře, že hašujete username? Proč?

    V ideálním případě použij něco přímo navržené a rovnou připravené pro ukládání hesel, např. bcrypt. Pokud se chceš spokojit s tím, co je přímo v .NETu, nejjednodušší je asi použít Rfc2898DeriveBytes.
    TOOMIX
    TOOMIX --- ---
    Měl bych otázku ohledně šifrování hesel...

    v současné době to máme v našem frameworku tak, že se vezme login, heslo, pro každý zvlášť se udělá následující funkcí MD5 hash, odstraní se pomlčky a spolu se to uloží do DB oddělené pomocí rovnítka - |.

    public static string GetMD5Hash(string aValue)
            {
                MD5 md5Provider = MD5CryptoServiceProvider.Create();
                Byte[] valueBytes = Encoding.Unicode.GetBytes(aValue);
                Byte[] hashBytes = md5Provider.ComputeHash(valueBytes);
                return (BitConverter.ToString(hashBytes)).Replace(MD5_HASH_DELIMITER, String.Empty);
            }


    Co byste doporučili jako náhradu za MD5? Providerů v System.Security.Cryptography je mraky, AES, SHA256 atd.
    Tu logiku se spojenými hashi bych asi zachoval, ale MD5 jaksi není hodné roku 2016. Díky
    VIRTUALVOID
    VIRTUALVOID --- ---
    MORMEGIL: jo taaak...
    MORMEGIL
    MORMEGIL --- ---
    VIRTUALVOID: Tak on píše, že je chce _stáhnout_, ne zobrazit.
    Kliknutím sem můžete změnit nastavení reklam