(FAQ) Czesto zadawane pytania



Cześć,


Zachęcam do przeczytania krótkiego FAQ (ang. Frequently Asked Questions - Często zadawane pytania) punkt 3. jest szczególnie ważny.


Spis treści:


Czym jest Duolingo? Jak to działa?
Kto stoi za kursem polski -> angielski?
Jak zgłaszać błędy?
Kiedy będzie taki-a-taki kurs? Jak działa Inkubator?
Jak działa siła tematów?
Co jest czym na forum?
Gdzie jest lista słówek?
1. Czym to jest Duolingo? Jak to działa?
Za Duolingo stoi Luis von Ahn - ten sam człowiek, przez którego musicie nieraz wpisywać Captche (te pokręcone literki) przy rejestracji na różnych stronach.


Luis von Ahn


Polecam TED Talk z Luisem na temat Duolingo (wykład wyjaśniający ideę - bardzo ciekawy, z polskimi napisami)
Duolingo opiera się na tzw. crowdsourcingu. Krótko mówiąc: ludzie ucząc się języka tłumaczą teksty i tłumaczenia te Duolingo sprzedaje. Info na stronie.


O efektywności nauki
Ponadto, siedziba Duolingo jako firmy mieście sie w Pittsburghu w Pensylwanii. Zatrudniają oni raptem 30 osób.


1. Kto stoi za kursem polski -> angielski?
Ponieważ w Duolingo pracuje tak niewiele osób, metodą crowdsourcingu postanowiono utworzyć też nowe kursy. Kursy tworzone są przez wolontariuszy za pomocą narzędzia zwanego Inkubatorem, gdzie w przyjaznych warunkach wylęgają sie nowe kursy. Polecam rzucić okiem jakie kursy niedługo się wyklują!


Kurs polski -> angielski tworzą na chwile obecną Bisk, pkrysiak oraz ja. Naszym nadzwyczaj pomocnym Mentorem jest pracownik Duolingo kristinemc.


Nasz zespół nie pracuje zarobkowo dla Duolingo. Wykonujemy naszą pracę z zamiłowania do nauki języków i inwestujemy nasz czas gdyż wierzymy, że Duolingo sprawdzi się świetnie jako narzędzie edukacyjne.


Oznacza to też, że nasz zespół zajmuje sie niemal wyłącznie tworzeniem tego kursu. Jesteśmy także kanałem informacyjnym mającym za zadanie przekazywanie waszych uwag do informatyków i specjalistów w Duolingo.


1. Jak zgłaszać błędy w tłumaczeniach
Niestety nie mamy możliwości wejść do dyskusji przy każdym zdaniu i czytać propozycji. Dlatego też Duolingo stworzyło bardzo przydatny system zgłaszania błędów.


Po zatwierdzeniu każdego zdania w dole okna pojawia sie opcja zaznaczona poniżej:


Zgłoś problem


Gdy nasze tłumaczenie zostało uznane za niepoprawne, otrzymujemy możliwość zgłoszenia go jako poprawne.


Moja odpowiedź powinna być zaakceptowana


Zaznaczamy tę opcję i klikamy "Wyślij".


A oto w jakiej formie nasz zespół otrzymuje wysłane w taki sposób zgłoszenia, zebrane ładnie w jednym miejscu, gotowe do zaakceptowania lub odrzucenia:


Zgłoszenia


PODSUMOWUJĄC:


Używając funkcji "Zgłoś problem" tworzysz lepsze jutro edukacji


Natomiast błędy w tłumaczeniu interfejsu (wszystko poza samymi zdaniami) prosimy zgłaszać w tym temacie.


1. Kiedy będzie taki-a-taki kurs? Jak działa Inkubator?
Inkubator


Jeśli kursu nie ma jeszcze w Inkubatorze, trudno określić datę jego pojawienia się. Nowe kursy są wprowadzane raczej powoli, żeby nie zrobić bałaganu. Z czasem to tempo powinno wzrosnąć.


Kiedy będzie twój wymarzony kurs? Kiedy zgłoszą się do tworzenia go ochotnicy. Tak więc możesz zachęcać znajomych znających dwa języki do uczestnictwa!


W Inkubatorze kursy są podzielone na trzy etapy: 1. Kursy jeszcze nie wypuszczone - są w fazie tworzenia (wykluwania), niedostępne dla użytkowników. 2. Kursy w wersji beta - wypuszczone do testowania przez użytkowników, wciąż poprawiane. 3. Kursy wypuszczone z bety - kursy w wersji finalnej (co nie zmienia tego, że wciąż są ulepszane!).


Jeśli biegle dwa języki, zachęcamy do zgłoszenia się do tworzenia kursu w Inkubatorze.


1. Jak działa siła tematów?
Siła tematu jest umowną miarą ich siły w twojej pamięci. Tematy po nauczeniu mają 5/5 pasków siły, która z czasem spada. Siłę tematów można zwiekszyć ćwicząc dany temat lub ćwicząc ogólnie wszystkie tematy (zostaną wybrane przede wszystkim zdania z tematów osłabionych).
2. Co jest czym na forum?
Polskie forum ma trzy działy:


Duolingo po polsku, Rozwiązywanie problemów, Angielski z polskiego


Duolingo po polsku - Jest to ogólna dyskusja dla użytkowników Duolingo w języku polskim. W obecnej chwili jest tylko jeden kurs dla osób polskojęzycznych, ale w momencie gdy kursów bedzie więcej, forum będzie służyło też Polakom uczącym sie innych jezyków. Dlatego prosimy nie pisać na tym forum o kwestiach dotyczących stricte kursu polski -> angielski . Jest to miejsce na ogólne dyskusje o Duolingo, sposobie działania strony, nauce języków, waszych metodach, osiągnięciach i przeżyciach, i na wszystko czym warto się podzielić.
Rozwiązywanie problemów - dotyczy... rozwiązywania problemów! Tutaj prosimy zgłaszać napotkane błędy (najlepiej zawsze załączyć screenshota), natomiast unikać zamieszczania nowych tłumaczeń czy błędów w interfejsie (te zgłaszamy w tym temacie).
Angielski z polskiego - forum dotyczące ściśle kursu polski -> angielski. Tu jest miejsce na wasze opinie na temat całokształtu kursu, propozycji ulepszeń itd. Ponadto forum zawiera zakładkę "Zdania", w której zebrane są ostatnie dyskusje na temat poszczególnych zdań.
7. Gdzie jest lista słówek?
Na razie nie ma ich dla kursów poza oryginalnymi. W przyszłości pojawią się i w tym kursie.


Mam nadzieję, że temat ten rozjaśnił nieco sprawy. Dajcie znać co myślicie. Pozdrawiam! :)
Eee... Czy wiesz, że to nie jest zbyt uczciwe, kopiować dyskusję innych i publikować ją, jakbyś ty ją napisała...
CZĘŚĆ I: Jak zalogować



Będziemy zakładać, wiesz już, jak zbudować login + hasło formularza HTML, które stanowiska wartości do skryptu po stronie serwera w celu uwierzytelnienia. Sekcje poniżej zajmie się wzorami dla dźwięku praktycznego auth i jak uniknąć najczęstszych pułapek zabezpieczeń.


**HTTPS HTTPS czy nie?**


Chyba że połączenie jest już bezpieczny (czyli tunelowane poprzez HTTPS przy użyciu protokołu SSL / TLS), swoje wartości formularza logowania zostaną wysłane w postaci zwykłego tekstu, który umożliwia ktoś podsłuchiwał na linii pomiędzy przeglądarką a serwerem WWW będzie w stanie odczytać loginy jak przechodzą przez. Ten typ podsłuch jest wykonywana rutynowo przez rządy, ale w ogóle nie zajmie się „własnością” przewody inne niż do powiedzenia to: Jeśli ochrona niczego ważnego, należy użyć protokołu HTTPS.


W istocie jedynym **praktycznym** sposobem zapobiegania podsłuch / pakietu wąchania podczas logowania jest za pomocą protokołu HTTPS lub inny schemat szyfrowania na podstawie certyfikatu (np [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) ) lub system wyzwanie-odpowiedź sprawdzone i testowane (na przykład [Diffie-Hellmana](http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) -na SRP). *Każda inna metoda może być łatwo omijane* przez atakującego podsłuch.


Oczywiście, jeśli są chętni, aby dostać trochę niepraktyczne, można również zatrudnić jakąś formę schematu uwierzytelniania dwuskładnikowego (np aplikacji Google Authenticator fizycznego „zimnego stylu War” słownika, lub generator klucza klucza RSA). Jeśli stosowane prawidłowo, to może pracować nawet z niezabezpieczonego połączenia, ale trudno sobie wyobrazić, że dev byłby skłonny do wdrożenia dwuskładnikowego uwierzytelniania, ale nie SSL.


**(Nie) roll-your-own szyfrowanie JavaScript / mieszania**


Ze względu na różną od zera koszty i postrzeganej trudność techniczną konfigurowania certyfikatu SSL na swojej stronie, niektórzy deweloperzy są kuszeni, aby rzucić swoje własne systemy hashowania lub szyfrowania w przeglądarce w celu uniknięcia przechodzenia czystym tekście loginów nad drutem niezabezpieczone.


Chociaż jest szlachetny myśl jest bezużyteczne (i może to być [błąd bezpieczeństwa](https://stackoverflow.com/questions/1380168/does-it-make-security-sense-to-hash-password-on-client-end) ), jeśli nie jest połączona z jednym z powyżej - która jest albo zabezpieczania linii z silnym szyfrowania lub stosując wypróbowaną i przetestowaną wyzwanie-odpowiedź mechanizm (jeśli nie wiesz co to jest, po prostu wiem, że jest to jeden z najtrudniejszych do udowodnienia, najbardziej trudne do zaprojektowania i najtrudniejszy do realizacji koncepcji w dziedzinie cyfrowych systemów bezpieczeństwa).


Chociaż prawdą jest, że mieszania hasło *mogą być* skuteczne wobec **ujawnienia haseł** , jest podatny na ataki odtworzeniowe, man-in-the-middle / porwania (jeśli atakujący może wstrzyknąć kilka bajtów do strony HTML niezabezpieczonej zanim dotrze do przeglądarka, mogą po prostu zakomentuj hashowania w JavaScript), lub ataki brute-force (ponieważ jesteś podając atakującego zarówno nazwę użytkownika, sól i zakodowane hasło).


**CAPTCHA przeciwko ludzkości**


[CAPTCHA](http://en.wikipedia.org/wiki/CAPTCHA) mają na celu udaremnienia jedną konkretną kategorię ataku: automatyczny słownik / brute force prób i błędów bez operatora człowieka. Nie ma wątpliwości, że jest to realne zagrożenie, jednak istnieją sposoby radzenia sobie z nim bez problemu, które nie wymagają captcha, specjalnie zaprojektowane prawidłowo Serverside systemy logowania dławienia przepływu - omówimy te później.


Wiem, że CAPTCHA implementacje nie są tworzone jednakowo; często nie są ludźmi-rozwiązywalne, większość z nich są faktycznie nieskuteczne przeciwko botom, wszystkie z nich są nieskuteczne przeciwko tanim trzeciego świata pracy (zgodnie z [OWASP](http://en.wikipedia.org/wiki/OWASP) , obecna stawka Sweatshop jest 12 $ za 500 testów), a niektóre implementacje mogą być technicznie nielegalne w niektórych krajach (patrz [OWASP Authentication Ściągawka](https://www.owasp.org/index.php/Authentication_Cheat_Sheet) ). Jeśli trzeba użyć CAPTCHA, użyj Google [reCAPTCHA](http://en.wikipedia.org/wiki/ReCAPTCHA) , ponieważ jest OCR-hard definicji (ponieważ używa już OCR-błędnie zaklasyfikowana skany książek) i bardzo się stara, aby być łatwy w obsłudze.


Osobiście staram się znaleźć captchas irytujące, i używać ich tylko w ostateczności, gdy użytkownik nie powiodło się, aby zalogować się kilka razy i opóźnienia są maxxed dławienia się. Stanie się to na tyle rzadko możliwe do zaakceptowania, a to wzmacnia system jako całość.


**Przechowywanie haseł / loginów Weryfikacja**


To może ostatecznie być powszechnie wiadomo po wszystkich głośnych hacki i wycieki danych użytkownika widzieliśmy w ostatnich latach, ale to musi być powiedziane: Nie przechowywać haseł w postaci zwykłego tekstu w bazie danych. Bazy danych użytkownika są rutynowo posiekany, przeciekał lub zbierana przez SQL injection, a jeśli są przechowywanie haseł w postaci zwykłego tekstu, surowe, że jest natychmiastowy koniec gry dla bezpieczeństwa logowania.


Więc jeśli nie można zapisać hasło, jak można sprawdzić, czy połączenie login + hasło pisał z formularza logowania jest poprawna? Odpowiedź jest mieszania za pomocą [funkcji uzyskiwania klucza](https://en.wikipedia.org/wiki/Key_derivation_function) . Za każdym razem gdy tworzony jest nowy użytkownik lub hasło zostało zmienione, wziąć hasło i uruchomić go przez KDF, takich jak Argon2, bcrypt, scrypt lub PBKDF2, obracając tekstem jawnym hasło ( „correcthorsebatterystaple”) do długiego, losowe wyglądających sznurka , który jest o wiele bezpieczniej przechowywać w bazie danych. Aby zweryfikować logowania, należy uruchomić tę samą funkcję skrótu na wprowadzonym hasłem, tym razem przechodząc w soli i porównać wynikowy ciąg mieszania do wartości przechowywanych w bazie danych. Argon2, bcrypt i przechowywać scrypt sól z już hash. Sprawdź ten [artykuł](https://security.stackexchange.com/a/31846/8340) na sec.stackexchange do bardziej szczegółowych informacji.


Powodem sól jest używany dlatego mieszania w sobie nie jest wystarczające - będziemy chcieli dodać tzw „sól” w celu ochrony przed hash [tęczowe tablice](https://en.wikipedia.org/wiki/Rainbow_table) . Sól skutecznie zapobiega dwa hasła, które dokładnie odpowiadają przed przechowywane w tej samej wartości hash, zapobiegając cała baza danych są skanowane w jednym przebiegu, jeśli osoba atakująca realizuje hasło zgadywania ataku.


Kryptograficznych mieszania nie powinien być używany do przechowywania haseł, ponieważ wybrana przez użytkownika hasła nie są wystarczająco silne (czyli zwykle nie zawiera wystarczającej ilości entropii) oraz hasło zgadywania atak mógłby zostać zakończony w stosunkowo krótkim czasie przez atakującego z dostępem do skrótów. Dlatego stosuje się KDF - to skutecznie [„rozciągnąć klawisz”](https://en.wikipedia.org/wiki/Key_stretching) co oznacza, że każde hasło odgadnąć atakujący sprawia polega iteracji algorytmu mieszania wielokrotnie, na przykład 10.000 razy, dzięki czemu hasło atakującego zgadywania 10000 razy wolniej.


**Dane sesji - „Jesteś zalogowany jako Spiderman69”**


Gdy serwer weryfikuje login i hasło przeciwko bazy danych użytkownika i znalazł mecz, system potrzebuje sposób na zapamiętanie, że przeglądarka została uwierzytelniona. Ten fakt tylko powinien nigdy być przechowywane po stronie serwera w danych sesji.



> 
> Jeśli nie jesteś zaznajomiony z danych sesji, oto jak to działa: jeden losowo wygenerowany ciąg jest przechowywany w pliku cookie upływającym i używane do odwoływania się do gromadzenia danych - dane sesji - która jest przechowywana na serwerze. Jeśli używasz ramy MVC, jest to niewątpliwie już obsługiwane.
> 
> 
> 


Jeśli to możliwe, upewnij się, że plik cookie sesji ma bezpiecznej i HTTP tylko flagi zestawu gdy wysłane do przeglądarki. Flaga HttpOnly zapewnia pewną ochronę przed cookie są odczytywane przez atak XSS. Bezpieczny flagi gwarantuje, że plik cookie jest wysyłane tylko z powrotem za pośrednictwem protokołu HTTPS, a tym samym chroni przed atakami sieciowymi wąchania. Wartość cookie nie powinny być przewidywalne. Gdzie cookie przedstawieniu sesję nieistniejącego prezentowana jest jego wartość należy natychmiast wymienić, aby zapobiec [utrwalenie sesji](https://www.owasp.org/index.php/Session_fixation) .


CZĘŚĆ II: Jak pozostać zalogowanym - niesławny „Remember Me” pole



Trwałe pliki cookie logowania ( „zapamiętaj mnie” funkcjonalnej) to strefa niebezpieczna; Z jednej strony, są one całkowicie bezpieczne, jak konwencjonalne jak loginy, gdy użytkownicy rozumieją, jak sobie z nimi radzić; az drugiej strony, są one ogromne zagrożenie dla bezpieczeństwa w rękach nieostrożnych użytkowników, którzy mogą z nich korzystać na komputerach publicznych i zapomnij się wylogować, a kto nie może wiedzieć, co to przeglądarka plików cookie i jak je usunąć.


Osobiście lubię uporczywe loginy do stron internetowych, które odwiedzam regularnie, ale wiem, jak radzić sobie z nimi bezpiecznie. Jeżeli jesteś pewien, że użytkownicy wiedzą, takie same, można użyć uporczywe loginy z czystym sumieniem. Jeśli nie - cóż, to możesz zapisać się do filozofii, że użytkownicy, którzy są nieostrożny z ich poświadczenia logowania przyniósł go na siebie, jeśli się włamał. To nie tak jak idziemy do domów naszych użytkowników i oderwać wszystkich tych facepalm wywołujących post-it z hasłami one ustawiły się na skraju swoich monitorach, albo.


Oczywiście, niektóre systemy nie mogą sobie pozwolić na *jakiekolwiek* kont hacked; dla takich systemów, nie ma sposobu, można uzasadnić konieczności uporczywe logowania.


**Jeśli zdecydujesz się na wdrożenie trwałych plików cookie logowania, to jak to zrobić:**


1. Po pierwsze, trochę czasu, aby przeczytać [artykuł Paragon Initiative](https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence) na ten temat. Musisz dostać kilka elementów rację, a artykuł ma wielkie zadanie wyjaśnienia każda.
2. I po prostu powtórzyć jedną z najczęstszych pułapek, **nie należy przechowywać Trwały plik cookie logowania (token programowy) w bazie danych, jedynie skrót IT!** Login hasło tokenu jest równoważny, więc jeśli atakujący dostał w swoje ręce swojej bazie danych, mogą korzystać z tokenów, aby zalogować się do dowolnego konta, tak jak gdyby były one w czystym tekście kombinacje login-hasło. W związku z tym, należy hashowania (według <https://security.stackexchange.com/a/63438/5002> słabym hash wystarczyć do tego celu) przy zapisywaniu trwałych tokeny logowania.


CZĘŚĆ III: Korzystanie Tajne pytania



**Nie wdrożyć sekretnego pytania "** . Funkcja „tajnych pytań” jest zabezpieczenie anty-wzór. Czytać gazetę z linku numer 4 na liście lektura obowiązkowa. Można zapytać Sarah Palin o tym drugim, po jej Yahoo! Konto e-mail został posiekany podczas poprzedniej kampanii prezydenckiej, ponieważ odpowiedź na jej pytanie bezpieczeństwa było ... „Wasilla Szkoła”!


Nawet z pytań określonych przez użytkownika, to jest wysoce prawdopodobne, że większość użytkowników będzie wybierać między:


* A „standard” tajne pytanie jak nazwisko panieńskie matki lub ulubionym zwierzakiem
* Prosty kawałek błahostek, że każdy może podnieść ze swoim blogu, profilu LinkedIn lub podobny
* Wszelkie wątpliwości, że jest łatwiej odpowiedzieć niż zgadywania hasła. Które dla każdej godnej hasła, to każde pytanie można sobie wyobrazić


**Podsumowując, kwestie bezpieczeństwa są z natury niebezpieczne praktycznie we wszystkich swoich formach i odmianach, i nie powinien być stosowany w systemie uwierzytelniania z jakiegokolwiek powodu.**


Prawdziwy powód, dlaczego w ogóle istnieją kwestie bezpieczeństwa w środowisku naturalnym jest to, że łatwo zaoszczędzić na kosztach kilku połączeń wsparcia ze strony użytkowników, którzy nie mogą uzyskać dostęp do swojego e-maila, aby dostać się do kodu reaktywacji. To kosztem bezpieczeństwa i reputacji Sarah Palin. Warto było? Prawdopodobnie nie.


CZĘŚĆ IV: Zapomniane hasło Funkcjonalność



I już wspomniano, dlaczego należy **nigdy używać pytania zabezpieczające** do obsługi zapomnianych / utraconych haseł użytkowników; to również rzeczą oczywistą, że nigdy nie należy e-mail użytkownikom ich rzeczywistych haseł. Istnieją co najmniej dwa więcej nazbyt częste pułapki, których należy unikać w tej dziedzinie:


1. Nie *zresetować* zapomniane hasło do wygenerowany automatycznie silnym hasłem - takie hasła są notorycznie trudne do zapamiętania, co oznacza, że użytkownik musi albo zmienić go lub zapisać go w dół - powiedzmy, na jasny żółty post-it na skraju swojego monitora. Zamiast ustawiać nowe hasło, po prostu pozwolić użytkownikom wybrać nowy od razu - czyli to, co chcą zrobić i tak.
2. Zawsze hash zapomniane hasło kodu / token w bazie danych. ***ZNOWU*** , kod ten jest kolejnym przykładem odpowiednik hasło, więc musi być zakodowane w przypadku atakujący dostał w swoje ręce swojej bazie danych. Kiedy stracił kod wymagane jest hasło, wyślij kod zwykłego tekstu na adres e-mail użytkownika, a następnie mieszania go zapisać skrót w bazie danych - i *wyrzucić oryginału* . Podobnie jak hasła lub uporczywego logowania tokena.


Ostatnia uwaga: zawsze upewnić się, że interfejs do wprowadzania kodu hasło „utraconą” jest co najmniej tak samo bezpieczne jak formularzu logowania sama lub atakujący po prostu użyć tego, aby uzyskać dostęp zamiast. Upewniając się wygenerować bardzo długo „stracił kody Hasło” (na przykład 16 wielkość liter znaków alfanumerycznych) to dobry początek, ale należy rozważyć dodanie tego samego schematu dławiący, które możesz zrobić dla samego formularza logowania.


CZĘŚĆ V: Sprawdzanie Password Strength



Po pierwsze, będziemy chcieli, aby przeczytać ten mały artykuł o sprawdzenie Rzeczywistość: [Do 500 najczęstszych haseł](http://www.whatsmypass.com/?p=415)


Ok, więc może ta lista nie jest *kanoniczny* lista najczęstszych haseł na *dowolnym* systemie *gdziekolwiek kiedykolwiek* , ale jest to dobry wskaźnik tego, jak źle ludzie będą wybierać swoich haseł, gdy nie ma egzekwowane polityka w miejscu. Plus, lista wygląda przerażająco blisko domu, jeśli porównać to do publicznie dostępnych analiz niedawno skradzionych haseł.


Tak: Przy braku minimalnych wymagań wytrzymałościowych hasło, 2% użytkowników użyć jednego z 20 najbardziej popularnych haseł. Czyli: jeśli atakujący dostaje tylko 20 prób, 1 w 50 kont na swojej stronie będzie do złamania.


Udaremniając wymaga obliczania entropii hasła, a następnie zastosowanie progu. The National Institute of Standards and Technology (NIST) [Special Publication 800-63](http://en.wikipedia.org/wiki/Password_strength#NIST_Special_Publication_800-63) posiada zestaw bardzo dobrych sugestii. To, w połączeniu z analizą układu słowniku oraz klawiatura (na przykład „QWERTYUIOP” jest złe hasło) można [odrzucić 99% wszystkich haseł słabo zaznaczonych](http://cubicspot.blogspot.com/2012/01/how-to-calculate-password-strength-part.html) na poziomie 18 bitów entropii. Wystarczy obliczania siły hasła i [pokazując wizualną miernik siły](https://blogs.dropbox.com/tech/2012/04/zxcvbn-realistic-password-strength-estimation/) , aby użytkownik jest dobry, ale niewystarczający. O ile nie jest egzekwowane, wielu użytkowników będzie najprawdopodobniej zignorować.


I na orzeźwiającą wziąć na łatwość obsługi z wysokiej entropii hasła, Randall Munroe za [Password Strength xkcd](https://xkcd.com/936/) jest wysoce zalecana.


Część VI: Much More - Albo: Zapobieganie Rapid-Ogień Próby logowania



Po pierwsze, muszą zapoznać się z numerami: [Prędkości Password Recovery - Jak długo będzie hasło wstać](http://www.lockdown.co.uk/?pg=combi&s=articles)


Jeśli nie masz czasu, aby przejrzeć tabele w tym linku, oto ich lista:


1. To trwa *praktycznie żadnego czasu* do zgryzienia słabego hasła, nawet jeśli pękanie go z liczydła
2. To trwa *praktycznie żadnego czasu* do zgryzienia alfanumerycznego hasła 9 znaków, jeśli jest to **przypadek niewrażliwe**
3. To trwa *praktycznie żadnego czasu* do zgryzienia skomplikowanych, symbole i-litery i-cyfr, górną i-małe hasło, jeśli jest **krótsza niż 8 znaków** (komputer stacjonarny może przeszukiwać całą KEYSPACE do 7 znaków w kilku dni lub nawet godziny)
4. **Byłoby jednak brać dużej ilości czasu do zgryzienia nawet hasło 6-znakowy, *jeśli były ograniczone do jednej próby na sekundę!***


Więc co możemy wyciągnąć z tych liczb? Cóż, wiele, ale możemy skupić się na najważniejszej części: fakt, że zapobieganie dużej liczby szybkiego ognia kolejnych prób logowania (tzn. *Brute force* attack) naprawdę nie jest takie trudne. Ale uniemożliwiając mu *prawo* nie jest tak proste jak się wydaje.


Ogólnie rzecz biorąc, masz trzy opcje, które są skuteczne wobec wszystkich ataków brute-force *(i ataki słownikowe, ale skoro już jesteś zatrudniania silnej polityki haseł, nie powinno być problemu)* :


* Przedstawić **CAPTCHA** po N nieudanych próbach (irytujące jak diabli i często nieskuteczne - ale ja powtarzam tutaj)
* **Blokowanie kont** i wymagające weryfikacji e-mail po N nieudanych próbach (jest to [DoS](http://en.wikipedia.org/wiki/Denial-of-service_attack) atak czeka się stało)
* I wreszcie, **logowanie dławienia** : to ustawienie opóźnienia czasowego pomiędzy próbami po N nieudanych próbach (tak, ataki DoS są nadal możliwe, ale przynajmniej są one znacznie mniej prawdopodobne i dużo bardziej skomplikowany zdjąć).


**Najlepsza praktyka nr 1:** krótki czas opóźnienia, które wzrasta wraz z liczbą nieudanych prób, takich jak:


* 1 nieudanej próbie = bez opóźnienia
* 2 błędnym = opóźnienie 2s
* 3 błędnym = opóźnienia 4 sekundy
* 4 błędnym = opóźnienie 8 s
* 5 błędnym = opóźnienie 16 sek
* itp.


DoS atakowanie tego systemu byłoby bardzo niepraktyczne, ponieważ uzyskany czas blokady jest nieco większy niż suma poprzednich czasów blokady.



> 
> Aby wyjaśnić: Opóźnienie to *nie* opóźnienie przed powrotem odpowiedzi do przeglądarki. To jest bardziej jak timeout lub opornym na okres, w którym próby logowania do konkretnego konta lub z określonego adresu IP nie będą przyjmowane ani oceniane w ogóle. Oznacza to, że poprawne poświadczenia nie powróci w udanym logowaniu, a nieprawidłowe poświadczenia nie będą powodować wzrost opóźnienia.
> 
> 
> 


**Najlepsza praktyka nr 2:** Opóźnienie czasu średniej długości, które zaczną obowiązywać po N nieudanych próbach, takich jak:


* 1-4 błędnym = bez opóźnienia
* 5 błędnym = 15-30 minutowe opóźnienie


DoS atakowanie tego systemu byłoby dość niepraktyczne, ale na pewno wykonalne. Ponadto, może to być istotne, aby pamiętać, że taka długa zwłoka może być bardzo irytujące dla uprawnionego użytkownika. Zapominalskich użytkowników cię lubię.


**Najlepsza praktyka nr 3:** Łącząc te dwa podejścia - zarówno stałe, krótki czas opóźnienia, które zaczną obowiązywać po N nieudanych próbach, takich jak:


* 1-4 błędnym = bez opóźnienia
* Nieudane próby = 5+ 20 sekundach opóźnienia


Albo, rosnące opóźnienie ze stałym górne, jak:


* 1 nieudaną próbę opóźnienie = 5 sek
* 2 błędnym = 15 s opóźnienie
* 3+ błędnym = 45 sek opóźnienia


Ten ostatni system został zabrany z OWASP najlepszych praktyk sugestii (Link 1 z listy must-read), i należy rozważyć najlepsze praktyki, nawet jeśli jest to wprawdzie na restrykcyjnej stronie.



> 
> *Jako zasada Chciałbym jednak powiedzieć: im silniejsza wasza polityka hasło, tym mniej trzeba użytkownikach błąd z opóźnieniami. Jeśli wymagają silnych (CASE-czułe znaki alfanumeryczne + wymaganych liczb i symboli) 9+ haseł znaków, można dać użytkownikom 2-4 non-opóźniony prób wprowadzenia hasła przed uruchomieniem dławienia.*
> 
> 
> 


DoS atakuje ten ostateczny schemat logowanie dławiący byłoby ***bardzo*** niepraktyczne. I jako ostateczny szlif, zawsze pozwalają trwała (cookie) loginów (i / lub CAPTCHA zweryfikowany formularza logowania) przechodzą, więc uzasadnione użytkownicy nie będą nawet zostać opóźniony *, gdy atak jest w toku* . W ten sposób bardzo niepraktyczne atak DoS staje się *bardzo* niepraktyczne atak.


Dodatkowo, ma sens, aby zrobić bardziej agresywne dławienie na kontach administracyjnych, ponieważ są to najbardziej atrakcyjne punkty wejścia


Część VII: Rozproszone ataki brute force



Podobnie jak na marginesie, bardziej zaawansowane napastnicy będą próbować obejść logowania dławienie przez „rozprzestrzenia swoją działalność”:


* Dystrybucją próby na botnetu, aby zapobiec bandery adresów IP
* Zamiast podnoszenia jednego użytkownika i próbując 50.000 najczęstsze hasła (które nie mogą, ze względu na nasze dławienia), będą wybierać najczęstszych hasło i spróbuj go przed 50.000 użytkowników w zamian. W ten sposób nie tylko oni obejść maksymalnym zamachów środków takich jak CAPTCHA i logowania dławienia, ich szanse na sukces wzrasta również, ponieważ liczba 1 najczęstszym hasło jest znacznie bardziej prawdopodobne niż numer 49.995
* Rozstaw żądań logowania dla każdego konta użytkownika, powiedzmy, 30 sekund od siebie, aby przemycić pod radarem


Oto najlepsza praktyka byłaby **zalogowaniu liczbę nieudanych logowań, dla całego systemu** , a przy użyciu uruchomioną średnią częstotliwością bad logowania witryny jako podstawa do górnej granicy, które następnie nałożyć na wszystkich użytkowników.


Zbyt abstrakcyjne? Pozwól mi przeformułować:


Załóżmy, że Twoja strona była średnio 120 złych logowań dziennie w ciągu ostatnich 3 miesięcy. Korzystanie że (średnio pracuje), system może ustawić globalny limit do 3 razy - tj. 360 nieudanych próbach w ciągu 24 godzin. Następnie, jeżeli łączna liczba nieudanych prób na wszystkich kontach przekracza tę liczbę w ciągu jednego dnia (lub nawet lepiej monitorować tempo przyspieszania i spust na obliczonego progu), aktywuje całego systemu logowania dławienie - czyli krótkich opóźnień dla wszystkich użytkowników (nadal, z wyjątkiem loginów ciasteczka i / lub wspomagania loginów CAPTCHA).


Ja też napisali pytanie o [więcej szczegółów i bardzo dobrej dyskusji, jak uniknąć trudnych pitfals](https://stackoverflow.com/questions/479233/what-is-the-best-distributed-brute-force-countermeasure) w odpierając rozproszonych atak brute force


Część VIII: dwuelementowa uwierzytelniania i uwierzytelniania dostawcy



Poświadczenia może być zagrożona, czy o wyczynach, hasła są zapisane i utracone, laptopy z kluczami kradzieży lub użytkownikom wprowadzanie loginów do stron phishingowych. Loginy mogą być dodatkowo zabezpieczone dwuskładnikowego uwierzytelniania, które wykorzystują out-of-band czynniki, takie jak kody jednorazowego użytku otrzymanych od rozmowy telefonicznej, wiadomości SMS, aplikacji lub klucza. Kilku dostawców oferuje usługi uwierzytelniania dwuskładnikowego.


Autoryzacja może być całkowicie przekazane do usługi single-sign-on, gdy inny dostawca obsługuje zbierania referencji. To popycha problem do zaufanej strony trzeciej. Google i Twitter zapewniają zarówno oparte na standardach usługi SSO, podczas gdy Facebook oferuje podobne rozwiązanie zastrzeżonych.


Koniecznie przeczytaj linki o uwierzytelniania internetowego



1. [OWASP Guide To Authentication](https://www.owasp.org/index.php/Authentication_Cheat_Sheet) / [OWASP Authentication Ściągawka](https://www.owasp.org/index.php/Authentication_Cheat_Sheet)
2. [Dos i niemile widziane uwierzytelniania klienta w sieci (referatu bardzo czytelny MIT)](https://pdos.csail.mit.edu/papers/webauth:sec10.pdf)
3. [Wikipedia: HTTP Cookie](http://en.wikipedia.org/wiki/HTTP_cookie#Drawbacks_of_cookies)
4. [Osobiste pytania Wiedza dla uwierzytelniania awaryjnej: kwestie bezpieczeństwa w dobie Facebook (bardzo czytelny referatu Berkeley)](http://cups.cs.cmu.edu/soups/2008/proceedings/p13Rabkin.pdf) I druga odpowiedź Luke'a.


Mogę polecić [Confluence](http://www.atlassian.com/software/confluence/) a oto dlaczego: I przetestowany wiele rozwiązań opartych komercyjnych i wolne wiki. Ani jeden z nich jest zwycięzcą na wszystkich kontach, w tym zbiegu. Pozwól mi spróbować zrobić quest nieco krótsza od podsumowania, czego nauczyłem się ból i co jest ważne:


* WYSIWYG to większość posiada funkcję dla przedsiębiorstwa. Wiki bez niej pominąć
* Mówiąc, że w rzeczywistości WYSIWYG nie działa idealnie. To raczej cecha trzeba mieć, aby uzyskać przypadkowi użytkownicy nie bój się potworem, i zacząć go używać. Ale ty i że ktoś chce poważnie tworzenia treści, będzie bardzo szybko przyzwyczaić się do znaczników wiki. to jest szybsze i bardziej niezawodne.
* W przeglądarce musi być dobre z uprawnieniami kontroli (którzy widzą, edytować itd”stronę). Zbieg ma dobre, ale mam skarg (na skomplikowane należy umieścić tutaj)
* Będziemy chcieli dobrą *eksportowej* funkcję. Najbardziej daje jednej stronie „PDF” eksport, ale trzeba znacznie więcej. Na przykład, powiedzmy, że masz nas, chcesz wyeksportować cały FAQ prawo? czy to będzie działało?
* Makra: chcesz społeczność tworzenia makr. Pytałeś na przykład o możliwość **oceniać** strony, tutaj jest [ogniwo](http://confluence.atlassian.com/display/CONFEXT/Rate+Macro) do makra dla Confluence, który pozwala zrobić
* Struktura: chcesz, aby móc powiedzieć, że strona jest dzieckiem z innej strony, i móc przeglądać dane. Model wikipedia, osieroconych stron bez sturcture nie będzie działać w przedsiębiorstwie. (Myślę nas, chcesz mieć hierarchię nie?)
* Możliwość *łatwo* attache obrazek aby być osadzone w korpusie strony / artykułu. W spływie, trzeba przesłać obraz, a następnie można go osadzić, to może być trochę lepiej (CTR + V), ale myślę, że jest to dość łatwe dla 80% użytkowników.


Pod koniec dnia, należy pamiętać, że Wiki będzie cenny dla ciebie bardziej elastyczny jest. To musi być „puste” płótno, a wyobraźnia jest następnie wykorzystywany do „budowania” aplikację. W Confluence, znalazłem 3 różnych „najlepszych praktyk”, w jaki sposób stworzyć FAQ. Oznacza to, że mogę realizować wiele rzeczy.


Niektóre przykłady (używam do Wiki)


* FAQ: każdy błąd, problem jest zalogowany. Używany przez PS i inż. zmniejszona wewnętrzny czas dramatycznie wsparcie
* Stan konta utwór: I implemetned wyrafinowany „dashboard”, który można zobaczyć na pierwszy rzut oka, który klient jest w jakim stanie, wersji oprogramowania, którzy mają w spółce „właścicielem” THE custoemr etc”
* Produkt: cała dokumentacja, instrukcje instalacji, „co nowego” etc
* Dokumentacja techniczna, struktura DB i co znaczy stoły
* HR: lista kontaktów, repozytorium dokumentów


Moje drugie miejsce (15 miesięcy temu) był wolny [Deki\_Wiki](http://wiki.developer.mindtouch.com/Deki_Wiki) , czasu minęło, więc nie wiem, czy będzie to nadal moje drugie miejsce.


powodzenia! Mogą być po angielsku? To dość ważne, żeby rozumieć, co mówi instruktor/ka. napisz do moderatora poradników dlaczego on ci powie :) Big Lista zasobami:



* [Ramy Nanopass dla Compiler Edukacji](http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf) ¶
* [Zaawansowane Compiler Projektowanie i wdrażanie](https://rads.stackoverflow.com/amzn/click/1558603204) $
* [Podejście do przyrostowego Compiler Construction](http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf) ¶
* [ANTLR 3.x Video Tutorial](http://javadude.com/articles/antlr3xtut)
* [Podstawy Projektowania Compiler](http://www.diku.dk/~torbenm/Basics/)
* [Budowanie Parrot Compiler](http://www.onlamp.com/pub/a/onlamp/2004/04/15/parrot_compiler_construction.html)
* [Podstawy kompilatora](http://www.cs.man.ac.uk/~pjj/farrell/compmain.html)
* [Kompilator Budowa](https://rads.stackoverflow.com/amzn/click/0201403536) $
* [Kompilator Projektowanie i Budowa](https://rads.stackoverflow.com/amzn/click/0442275366) $
* [Crafting kompilator z C](https://rads.stackoverflow.com/amzn/click/0805321667) $
* [Crafting tłumacze](http://craftinginterpreters.com/)
* [Design w kompilator C](http://www.holub.com/software/compiler.design.in.c.html) ¶
* [Kompilatory: zasady, techniki i narzędzia](https://rads.stackoverflow.com/amzn/click/0321486811) $ - aka ["The Dragon Book"](http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques%2C_and_Tools) ; powszechnie uważane za „książka” do pisania kompilatora.
* [Inżynieria kompilator](https://rads.stackoverflow.com/amzn/click/012088478X) $
* [Podstawy języków programowania](http://www.cs.indiana.edu/eopl/)
* [Flipcode Artykuł Archive](http://flipcode.com/archives/articles.shtml) (poszukaj "Wdrożenie Scripting Engine Jan Niestadt")
* [Gra Scripting Mastery](https://rads.stackoverflow.com/amzn/click/1931841578) $
* [Jak zbudować maszynę wirtualną od podstaw w języku C #](http://www.codeproject.com/KB/recipes/B32Machine1/VMCS.pdf) ¶
* [Wdrożenie Functional języki](http://research.microsoft.com/~simonpj/papers/pj-lester-book/)
* [Języki programowania wykonawczych (z BNFC)](http://www1.digitalgrammars.com/ipl-book/)
* [Wdrażanie przy użyciu języków programowania C # 4.0](http://www.codeproject.com/KB/recipes/programminglanguagetoools.aspx)
* [Interpreter wzoru](http://en.wikipedia.org/wiki/Interpreter_pattern) (opisany w [wzorców projektowych](https://rads.stackoverflow.com/amzn/click/0201633612) $) określa sposób oceny zdań w języku
* [Wzory wdrożeniowe język: Tworzenie własnej domeny-szczególnego i ogólnego języków programowania](http://pragprog.com/titles/tpdsl/language-implementation-patterns)
* [Budujmy kompilator](http://compilers.iecc.com/crenshaw/) Jack Crenshaw - The [PDF](http://www.stack.nl/~marcov/compiler.pdf) wersję ¶ (przykładami są w Pascalu, ale informacje te są powszechnie stosowane)
* [Łączniki i ładowarki](http://books.google.com/books?id=Id9cYsIdjIwC&lpg=PP1&ots=IxFkFWJ-8V&dq=%22linkers%20and%20loaders%22&pg=PA215#v=onepage&q=%22linkers%20and%20loaders%22&f=false) $ (Google Książki)
* [Lisp w małe kawałki (LISP)](https://rads.stackoverflow.com/amzn/click/0521562473) $
* [LLVM Tutorial](http://llvm.org/docs/tutorial/)
* [Nowoczesne Compiler Wdrożenie w ml](https://rads.stackoverflow.com/amzn/click/0521607647) $ - Jest [Java](https://rads.stackoverflow.com/amzn/click/052182060X) $ i [C](https://rads.stackoverflow.com/amzn/click/0521607655) $ wersja, a także - powszechnie uważany za bardzo dobra książka
* [Obiektowe Compiler Construction](https://rads.stackoverflow.com/amzn/click/013630740X) $
* [Parsowania Techniki - praktyczny przewodnik](http://www.dickgrune.com/Books/PTAPG_1st_Edition/)
* [Projekt Oberon](http://www-old.oberon.ethz.ch/WirthPubl/ProjectOberon.pdf) ¶ - Spójrz w rozdziale 13
* [Programowanie komputera osobistego](https://rads.stackoverflow.com/amzn/click/0137302673) $
* [Programowanie w językach: stosowanie i interpretacja](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/)
* [Królika kompilator schemacie](http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf) ¶
* [Odbicia ufność zaufania](http://web.archive.org/web/20141221110345/http://cm.bell-labs.com/who/ken/trust.html) - szybki przewodnik
* [Toczyć własną kompilator ramach .NET](http://msdn.microsoft.com/en-us/magazine/cc136756.aspx) - szybki samouczek z MSDN
* [Struktura i interpretacja programów komputerowych](http://mitpress.mit.edu/sicp/)
* [Rodzaje i Języki programowania](http://www.cis.upenn.edu/~bcpierce/tapl/)
* [Chcesz napisać kompilatora?](http://prog21.dadgum.com/30.html) - szybkie przypomnienie
* [Napisanie kompilatora w Ruby oddolne](http://www.hokstad.com/writing-a-compiler-in-ruby-bottom-up-step-1.html)


Legenda: 


* ¶ Link do pliku PDF
* $ Link do książki drukowanej Czy ktoś powie mi jak to zrobić Hej Mac Dalen,
 
Poczytaj: https://support.google.com/mail/answer/21289
Tam masz wszystko opisane.
 
Pozdrawiam,
Jacek w razie dalszych wątpliwości - zawsze można zadać pytanie na naszym forum :) w razie wątpliwości - zawsze można zadawać pytania na naszym forum :) Czy jest jakaś infolinia do snapchata bo musze to rozwiązać ??