Instalacja certyfikatu bez obowiązkowego ekranu blokady PIN

23

Pomoc Google mówi :

Dopuszczalny typ blokady może zostać z góry określony przez administratora systemu.

Gdzie mogę określić, co jest dopuszczalne? W razie potrzeby mogę ponownie wygenerować certyfikat.

Mogę więc ponownie użyć ekranu blokady slajdów.

(Używam CM9 RC1, Android 4.0.4)

rdlu
źródło
1
Zaakceptuję rozwiązanie, które instaluje certyfikat bezpośrednio w systemie, omijając w ten sposób wymaganie dotyczące pinów.
rdlu
1
Aby zabezpieczyć swoje dane uwierzytelniające, musisz używać jednego z typów blokady ekranu, które mają jakiś tajny kod (wzór, PIN lub hasło). Ta linia mówi ci, że administrator może (normalnie za pomocą zasad Exchange ActiveSync) zablokować telefon, aby akceptować tylko niektóre typy, na przykład mogą nie ufać blokadom wzorców i mogą myśleć, że 4-cyfrowy PIN nie ma wystarczającej liczby kombinacji. Nie oznacza to, że możesz wyłączyć ten wymóg bezpieczeństwa.
GAThrawn
2
@GAThrawn Uważam to za niedopuszczalne, jeśli po prostu zainstaluję urząd certyfikacji, aby uwierzytelnić moje serwery sieciowe za pośrednictwem protokołu SSL (przy użyciu samopodpisanych certyfikatów). Zrozumiałbym, gdyby chodziło o podpisywanie kluczy na urządzeniu lub uwierzytelnianie użytkownika - ale obie są na odwrót. Na szczęście wydaje się, że rozwiązanie sgiebels działa dla mnie, z pewnymi drobnymi poprawkami, które opisałem w komentarzach tam. Jak dotąd tylko wada: wymaga rootowania.
Izzy

Odpowiedzi:

2

Problem z wyłączaniem zabezpieczeń ekranu blokady za pomocą przełącznika / profilu polega na tym, że widżety ekranu blokady również się nie pojawiają, więc nie można przesuwać, aby odblokować. Ponadto po ponownym uruchomieniu telefonu przyciski nie działają, dopóki ponownie nie zmienisz ustawienia.

Innym sposobem jest zainstalowanie certyfikatu w zwykły sposób, a następnie wykonanie kopii zapasowej katalogów / data / misc / keychain i magazynu kluczy przy użyciu czegoś, co zachowuje listy ACL, takie jak Root Explorer, w lokalizacji, która obsługuje listy ACL. Sugeruję skopiowanie ich do / tmp. Następnie wyczyść dane uwierzytelniające w Ustawieniach i włącz opcję Przesuń, aby odblokować. Następnie skopiuj foldery z / tmp. Urząd certyfikacji zostanie zainstalowany.

Monstieur
źródło
To już nie działa. Gdy tylko spróbujesz gdzieś użyć certyfikatu (np. Podczas łączenia się z siecią Wi-Fi), system operacyjny wymaga ponownego ustawienia blokady ekranu.
Cory Klein
@CoryKlein Kliknięcie przycisku Anuluj spowoduje wyświetlenie monitu o podanie kodu PIN i wprowadzenie ostatniego ustawionego. Jest potrzebny do odszyfrowania danych.
Monstieur
@Kurian - Postępowałem zgodnie z powyższymi instrukcjami, a kiedy próbuję połączyć się z siecią Wi-Fi, pojawia się komunikat „Musisz ustawić kod PIN ekranu blokady”, klikam „Anuluj” i nic się nie dzieje. Jeśli kliknę „OK”, a następnie anuluję stamtąd, nadal nie prosi o PIN.
Cory Klein
@CoryKlein Źle odczytałem twój poprzedni komentarz. Mówiłem o VPNach. Połączenie z VPN wyświetla monit o podanie ostatniego kodu PIN blokady ekranu w celu odszyfrowania danych uwierzytelniających. Nie wiem, czy to działa w przypadku certyfikatów osobistych z kluczami prywatnymi. Wiem, że to działa w przypadku instalowania zaufanych certyfikatów CA. Może to być także konkretna pamięć ROM, której używasz. ROM-y AOSP w wersjach wcześniejszych niż ICS nigdy nie potrzebowały kodu PIN blokady ekranu do zapisywania poświadczeń VPN.
Monstieur,
7

Dokładnie opisałem, jak to zrobić na mojej stronie: „Instalowanie certyfikatów CAcert na Androidzie jako poświadczeń„ systemowych ”bez ekranu blokady - instrukcje” na stronie http://wiki.pcprobleemloos.nl/android/cacert

Opublikowałem go również na forum cyanogenmod: http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/

Zasadniczo komendy to:

openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1

Aby uzyskać poprawną nazwę pliku, przekonwertuj certyfikat:

cat root.crt > 5ed36f99.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0

Skopiuj je do / system / etc / security / cacerts / i chmod nowe pliki .0 do '644'. Uruchom ponownie i sprawdź. Na urządzeniu z Androidem wybierz „Wyczyść certyfikaty” i możesz usunąć kod PIN (wprowadzając kod i zmieniając ekran blokady na „none” lub „wipe”

Tutaj użyłem certyfikatu głównego CAcert, ale prawdopodobnie chcesz również certyfikat class3.crt lub użyj własnych certyfikatów.

sgiebels
źródło
Wspominasz o „własnych certyfikatach”. Po prostu próbowałem go z moim „CA” (utworzony za pomocą TinyCA), aw ostatnim etapie ( „poinformować”) tylko pojawia się błąd: 140342119224992:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE. Sprawdzanie przy pomocy Nie można załadować certyfikatu w openssl , .pemplik powinien być zgodny. Ale twoje ostatnie polecenie nic nie zmienia. Coś nie tak, czy jest to oczekiwane w przypadku samopodpisanego / utworzonego urzędu certyfikacji? A zanim zacznę hakować: czy to powinno jednak działać?
Izzy
OK, działało i zostało zaakceptowane przez mój własny TinyCA CA:, openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d6a2705a.0a następnie przeniesienie bloku base64 na górę za pomocą edytora tekstu, umieszczenie pliku w /system/etc/security/cacerts/, uruchomienie chown root:root d6a2705a.0i chmod 0644 d6a2705a.0z katalogu - i tak dalej, okazuje się, że jest to zaufany certyfikat systemu . Yeehaa!
Izzy
@sgiebels Czy przypadkiem masz również rozwiązanie, jak korzystać z poświadczeń (z poświadczeń systemowych lub innych) w połączeniu WLAN 802.1X? Wygląda na to, że plik kluczy / pęku kluczy na urządzeniu (/ data / misc / key ...) używa hasła do szyfrowania, a zatem: za każdym razem, gdy potrzebne są poświadczenia (połączenie z siecią WLAN), żądanie podania kodu PIN / hasła ponownie ( w moim systemie) blokada jest ponownie włączona.
Ivin
Działa to dobrze, ale mam również problem z formatowaniem certyfikatu z powodu zakończeń wiersza dos. dos2unix przekonwertuje je, a następnie sprawdzi, czy masz poprawne zakończenie w wierszu certyfikatu (mój wyglądał tak: -----END CERTIFICATE-----Certificate:co również spowodowało błąd analizy)
deed02392,
4

Znalazłem rozwiązanie, które działa bez dodatkowego oprogramowania lub ręcznego kopiowania plików:

  1. Ustaw ekran blokady na „wzór”. Wprowadź wzór i odblokuj PIN. Zapamiętaj PIN odblokowania.
  2. Zainstaluj certyfikat użytkownika.
  3. Wyłącz i włącz ekran.
  4. Podaj nieprawidłowy wzór kilka razy, aż pojawi się „Zapomniałeś wzoru?” pojawia się opcja.
  5. Kliknij „Zapomniałeś wzoru?”, Przewiń w dół, wprowadź odblokowujący kod PIN i potwierdź „OK”.
  6. Zamknij okno „Ustawienia odblokowania ekranu” za pomocą przycisku Wstecz bez wybierania opcji .

System jest teraz ustawiony na „Swipe unlock”, ale certyfikat użytkownika jest nadal użyteczny (testowany w przeglądarce internetowej i aplikacji niestandardowej za pomocą DefaultHttpClient).

Testowane na Androidzie 4.1.2 na Galaxy Tab 2 10.1.

Heinzi
źródło
nie działa z wpa-enterprise / TLS na LG G2, certyfikaty zniknęły po tym
Eugene Petrov
To świetny błąd! Dzięki! (działał doskonale z Galaxy S5, Android 6)
Adiel
0
  • Możesz skorzystać z profili CyanogenMod .
    (Dla innych czytelników: wymaga niestandardowej wersji CyanogenMod Rom 9+)

    Wystarczy utworzyć lub zmodyfikować istniejący profil i tam wyłączyć „blokadę ekranu”.

    To: Ustawienia systemowe-> Profile-> Domyślne-> Tryb blokady ekranu-> Wyłączone

  • Zintegruj swój certyfikat ze standardowym plikiem kluczy Android

    Zobacz doskonałe instrukcje CAcert tutaj

    Nie jestem jednak pewien, czy możesz to zrobić za pomocą certyfikatu z podpisem własnym (być może konieczne może być przejście do samodzielnie utworzonego urzędu certyfikacji (użyj narzędzia tinyca jako fajnego narzędzia GUI na * nix)).

ce4
źródło
To nie działa (już). Po zainstalowaniu certyfikatów (np. Z cacert.org) ta opcja / pozycja w profilu jest wyszarzona.
niebieskawy
-1

Znalazłem sposób na rozwiązanie problemu, ale wymaga rootowania i może działać tylko z rootem, samopodpisanymi lub pośrednimi urzędami certyfikacji.

Jeśli masz certyfikat, któremu Android nie ufa, po dodaniu go trafia do osobistego magazynu certyfikatów. Po dodaniu certyfikatu w tym osobistym magazynie certyfikatów system wymaga wyższego poziomu zabezpieczeń, aby odblokować urządzenie. Ale jeśli uda ci się dodać swój certyfikat do sklepu systemowego, nie masz tego wymagania. Oczywiście do dodania certyfikatu do magazynu systemu wymagany jest root, ale jest to łatwe i ciche.

Oto jak to zrobić :

1 - Dodaj swój certyfikat normalnie. Na przykład mój certyfikat został nazwany some.crt. Będzie przechowywany w Twoim osobistym sklepie, a Android poprosi Cię o podanie kodu PIN / hasła ... Kontynuuj.

2 - Korzystając z menedżera plików z funkcjami root, przeglądaj pliki w /data/misc/keychain/cacerts-addedlub /data/misc/keystore. Powinieneś zobaczyć tutaj plik o nazwie 1000_USRCERT_someto certyfikat dodany w kroku 1.

3 - Przenieś ten plik do system/etc/security/cacerts (będziesz musiał zamontować partycję systemową r / w)

4 - Uruchom ponownie telefon

5 - Możesz teraz usunąć kod PIN / hasło ustawiony dla odblokowania urządzenia.

Pracował dla mnie z samopodpisanym certyfikatem dla Androida 4.4.2. Mam nadzieję, że to pomoże!

guttermonk
źródło
Ciekawe, że nie wspomniałeś o oryginalnym źródle , ani nie przypisałeś autorowi odpowiedniego uznania. Postępuj zgodnie z instrukcjami dotyczącymi materiałów napisanych przez innych .
Firelord