[J2ME] Podpisywanie kodu

0

Czytałem już trochę o podpisywaniu kodu, ale dwie rzeczy nie są jeszcze dla mnie jasne. Po pierwsze - tak dla pewności - Jeżeli podpiszę program certyfikatem, który jest zainstalowany w telefonie, to nie będą się pojawiały komunikaty z prośbą o pozwolenie na dostęp do zabezpieczonego API? I drugie - Co to znaczy, że kupuję certyfikat np. na rok? Tzn., że tylko przez rok będę mógł podpisywać nim programy? Czy raczej, że podpisany program tylko przez rok będzie miał status zaufanego?

Pozdrawiam, Towe

0
towe napisał(a)

Czytałem już trochę o podpisywaniu kodu, ale dwie rzeczy nie są jeszcze dla mnie jasne. Po pierwsze - tak dla pewności - Jeżeli podpiszę program certyfikatem, który jest zainstalowany w telefonie, to nie będą się pojawiały komunikaty z prośbą o pozwolenie na dostęp do zabezpieczonego API?

To zalezy. Od producenta, modelu telefonu, konkretnego API, plam na sloncu, itd... Zajrzyj do tych linkow:

http://wiki.forum.nokia.com/index.php/MIDP_2.0_API_access_rights
http://daniel.netsniff-ng.org/bluetooth/dg_java_me_cldc_uiq3_r2b.pdf

Dla Nokii, ustawienia domyslne dla (nie)zaufanych MIDletow sa podobne w obu przpadkach, tj. "Ask always/Ask first time", wiec uzytkownik i tak bedzie musial osobiscie potwierdzic dostep do danej operacji, co najmniej raz. Pierwsza roznica jest taka, ze w przypadku aplikacji podpisanej certyfikatem, dochodzi opcja "Always allowed". Druga to to, ze podpisane aplikacje zyskuja dostep do restricted API (tutaj np. dostep/edycja danych uzytkownika).
Podobnie SE - podpisane MIDlety udostepniaja opcje "Yes, Never Ask Again" dla wiekszosci API (z wyjatkiem JSR-120).

Trzeba by sie zastanowic, z jakich API korzysta Twoja aplikacja i czy podpisanie jej zrekompensuje cene certyfikatu.

towe napisał(a)

I drugie - Co to znaczy, że kupuję certyfikat np. na rok? Tzn., że tylko przez rok będę mógł podpisywać nim programy? Czy raczej, że podpisany program tylko przez rok będzie miał status zaufanego?

Every Code Signing Certificate is purchased with a specific validity period. The digital certificate can be used to sign code as frequently as needed during that validity period. When the digital certificate expires, all digital signatures that depend on that digital certificate expire also unless the signature includes a time stamp. A timestamp option shows when code was signed, allowing customers to verify that the code signing certificate was valid at the time of the digital signature.

Tak wiec podpis aplikacji wygasa razem z certyfikatem, chyba ze do podpisu zostal dodany znacznik czasu (tylko VeriSign).

0

Czyli mam rozumieć, że po tym roku czy dwóch, aplikacja przestanie być zaufana? Trochę to bez sensu, bo w ten sposób niektóre programy - jeśli np. wykorzystują restricted API - mogą po prostu przestać działać :/

0

właśnie sensowne: podpisanie znaczy tylko tyle, że instytucja certyfikująca gwarantuje ze aplikacja podpisana kluczem, który można zweryfikować u nich jest bezpieczna i niezmieniona względem orginału. Jako, że certyfikaty wygasają (we wszystkich dziedzinach gospodarki) to i weryfikacja przestaje byc możliwa. Przecież nikt nie broni Ci przedłużyć certyfikatu o kolejne np. dwa lata. Nie trzeba podpisywac całej aplikacji od nowa tylko w jednostce certyfikującej przedłużyć czas trwania weryfikacji z ich strony.

Jak napisał przedmówca-fakt jest jeden: certyfikat kosztuje i teraz Ty musisz się zastanowić czy koszt poniesiony Ci się zrekompensuje....

0

Cóż, jeżeli ona faktycznie nie znikną (a łatwo będzie to sprawdzić, bo piszę na jeden, konkretny model telefonu) to kupno certyfikatu będzie miało największe znaczenie dla tych aplikacji, w których będę się łączył z systemem plików telefonu - tam z powodu ogromu wyskakujących okienek korzystanie z programu jest właściwie niemożliwe... Tak czy owak, dziękuję za pomoc, rozwialiście moje wątpliwości. Pozdrawiam ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1