eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › podpis elektroniczny danych z okna przeglądarki
Ilość wypowiedzi w tym wątku: 10

  • 1. Data: 2009-01-21 10:45:24
    Temat: podpis elektroniczny danych z okna przeglądarki
    Od: "Wiktor Zychla" <u...@n...com.eu>

    chciałbym upewnić się, że nie ma innych możliwości niż te wskazane przeze
    mnie poniżej (w sensie "tak to się właśnie robi").

    scenariusz: strona uruchomiona w przeglądarce, w której użytkownik cośtam w
    formanty html sobie powpisywał. skądinąd użytkownik ma w systemie
    (przeglądarce) zainstalowany certyfikat do podpisu elektronicznego i
    nieistotne jest skąd ma ten certyfikat ani czy jest on kwalifikowany.

    tak czy siak, z poziomu kodu uruchamianego w przeglądarce muszę przeczytać
    dane formularza, użyć jakiegoś api do podpisania ich (co zrobię z wynikiem
    podpisywania to też jest nieistotne).

    rozważam następujące możliwości.

    1. istnieje jakieś API wbudowane w przeglądarki, które umożliwia na
    wykonanie operacji kryptograficznej z poziomu javascript (taki
    XmlHttpRequest tylko do podpisywania). ponieważ nigdy o czymś takim nie
    słyszałem, zakładam że nic takiego nie ma. niemniej gdyby było to możliwe,
    to byłaby rewelacja, bo nie wymagałbym niczego specjalnego po stronie
    klienta.

    2. napisanie apletu java (i podpisanie go moim certyfikatem), który użyje
    api kryptograficznego javy. to rozwiązanie jest absolutnie realne, jednak
    wymaga jre po stronie klienta.

    3. napisanie kawałka activex (i podpisanie go moim certyfikatem), który
    użyje ms crypto api. to rozwiazanie również jest absolutnie realne, jednak
    wymaga windowsa.

    4. napisanie kawałka kodu we flasu / action script, który użyje jakiegoś api
    kryptograficznego dostępnego z poziomu osadzonego w stronie swfa. nie wiem
    czy coś takiego istnieje, ale byłoby również ciekawe, bo wyobrażam sobie, że
    wymagałoby wyłącznie plugina flashowego, a to ograniczenie jest najmniej
    dotkliwe w porównaniu z ograniczeniami p.2 i p.3.

    5. ?? [coś innego o czym nie wiem]

    oczywiście mogę kupić gotowe komponenty, tyle że te które znam wpadają w p.2
    albo w p.3 i dlatego też najpierw próbuję temat rozeznać nieco szerzej (poza
    tym sam też potrafiłbym taki komponent sobie napisać, ostatecznie też kupię
    już gotowy).

    z góry dzięki za konstruktywne uwagi w temacie,
    pozdrawiam
    Wiktor Zychla

    ps. chciałbym o ile to możliwe uniknąć dyskusji poza tematem czyli "a
    dlaczego nie aplikacją desktopową", "a po co ten podpis" itd. interesuje
    mnie wyłącznie warstwa technologiczna : przeglądarka + podpis elektroniczny.


  • 2. Data: 2009-01-21 11:41:34
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Rafal\(sxat\)" <g...@o...pl.usunto>


    Użytkownik "Wiktor Zychla" <>
    > 1. istnieje jakieś API wbudowane w przeglądarki, które umożliwia na
    > wykonanie operacji kryptograficznej z poziomu javascript (taki
    > XmlHttpRequest tylko do podpisywania). ponieważ nigdy o czymś takim nie
    > słyszałem, zakładam że nic takiego nie ma. niemniej gdyby było to możliwe,
    > to byłaby rewelacja, bo nie wymagałbym niczego specjalnego po stronie
    > klienta.
    >

    jesli api to activxy co jest do niczego ze wzgledow uzaleznienia od szajsu,
    albo java gdzie wszystko bedziesz musial zrobic reczenie ;)

    Rf



  • 3. Data: 2009-01-21 12:11:21
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: porneL <n...@p...net>

    On Wed, 21 Jan 2009 10:45:24 -0000, Wiktor Zychla <u...@n...com.eu> wrote:

    > chciałbym upewnić się, że nie ma innych możliwości niż te wskazane
    > przeze mnie poniżej (w sensie "tak to się właśnie robi").
    >
    > scenariusz: strona uruchomiona w przeglądarce, w której użytkownik
    > cośtam w formanty html sobie powpisywał. skądinąd użytkownik ma w
    > systemie (przeglądarce) zainstalowany certyfikat do podpisu
    > elektronicznego i nieistotne jest skąd ma ten certyfikat ani czy jest on
    > kwalifikowany.

    Po pierwsze *musisz* użyć SSL (https). Nie da się tego zastąpić żadnymi JSami,
    Flashami, ani Javą/ActiveX o ile nie wyedukujesz użytkowników, że muszą koniecznie
    weryfikować certyfikaty Javy/AX.

    Bez https można przeprowadzić atak MITM i zanim strona dotrze do twoich użytkowników,
    całkowicie usunąć z niej wszelką kryptografię albo dodać skrypty, które wysyłają
    atakującemu niezaszyfrowaną kopię, podmieniają dane przed podpisaniem, etc.

    Jeśli chesz uwierzytelnianie klientów za pomocą certyfikatów, to SSL w obecnych
    przeglądarkach to obsługuje standardowo. Nawet możesz wygenerować i zainstalować nowy
    certyfikat u klientów tagiem <keygen>:

    http://lists.whatwg.org/pipermail/whatwg-whatwg.org/
    attachments/20080714/07ea5534/attachment.txt

    myopenid.net używa tego w praktyce.

    --
    this.author = new Geek("porneL");



  • 4. Data: 2009-01-21 12:19:38
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Rafal\(sxat\)" <g...@o...pl.usunto>


    > myopenid.net używa tego w praktyce.
    >


    On nie potrzebuje PKI, bo przy pomocy PKI na serwerze nie podpisze
    dokumentu.... bo po drugiej strony nie ma dostepnego klucz prywatnego...
    mimo ze uzytkownik wykorzystal do lokowania PKI...

    Rf



  • 5. Data: 2009-01-21 12:50:28
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: porneL <n...@p...net>

    On Wed, 21 Jan 2009 12:19:38 -0000, Rafal(sxat) <g...@o...pl.usunto> wrote:

    > On nie potrzebuje PKI, bo przy pomocy PKI na serwerze nie podpisze
    > dokumentu.... bo po drugiej strony nie ma dostepnego klucz prywatnego...
    > mimo ze uzytkownik wykorzystal do lokowania PKI...

    Disclaimer: nie jestem ekspertem w tej dziedzinie.

    To, co miałem na myśli to:
    http://en.wikipedia.org/wiki/Secure_Sockets_Layer#Cl
    ient-authenticated_TLS_handshake

    czyli klucz prywatny jest też po stronie klienta i serwer jest go w stanie
    zweryfikować. Dzięki temu jest pewność od kogo serwer dostaje dane, z danymi
    formularzy i wgranymi plikami włącznie.

    Jeśli potrzeba podpisane dane przekazać dalej albo składować razem z podpisem, to
    oczywiście sam SSL nie wystarczy (ale i tak trzeba go użyć, żeby ktoś postronny nie
    mógł wstrzyknąć swoich danych do podpisania).

    --
    this.author = new Geek("porneL");


  • 6. Data: 2009-01-21 13:04:13
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Stachu 'Dozzie' K." <d...@d...im.pwr.wroc.pl.nospam>

    On 21.01.2009, porneL <n...@p...net> wrote:
    > On Wed, 21 Jan 2009 10:45:24 -0000, Wiktor Zychla <u...@n...com.eu> wrote:
    >
    >> chciałbym upewnić się, że nie ma innych możliwości niż te wskazane
    >> przeze mnie poniżej (w sensie "tak to się właśnie robi").
    >>
    >> scenariusz: strona uruchomiona w przeglądarce, w której użytkownik
    >> cośtam w formanty html sobie powpisywał. skądinąd użytkownik ma w
    >> systemie (przeglądarce) zainstalowany certyfikat do podpisu
    >> elektronicznego i nieistotne jest skąd ma ten certyfikat ani czy jest on
    >> kwalifikowany.
    >
    > Po pierwsze *musisz* użyć SSL (https). Nie da się tego zastąpić żadnymi JSami,
    Flashami, ani Javą/ActiveX o ile nie wyedukujesz użytkowników, że muszą koniecznie
    weryfikować certyfikaty Javy/AX.

    I mówi to nie-ekspert (<o...@a...local>).

    > Bez https można przeprowadzić atak MITM i zanim strona dotrze do twoich
    użytkowników, całkowicie usunąć z niej wszelką kryptografię albo dodać skrypty, które
    wysyłają atakującemu niezaszyfrowaną kopię, podmieniają dane przed podpisaniem, etc.

    I co to da, jeśli serwer oczekuje podpisanych danych albo wręcz samego
    podpisu i weryfikuje czy dostał co trzeba? A jeśli dane nie są wrażliwe
    na ujawnienie i mogą iść bez SSL (bo jeśli by były wrażliwe, to SSL tak
    czy siak by był zaprzęgnięty dla szyfrowania transmisji), to jaką
    wartość będzie miało niepotrzebne zabezpieczenie szyfrowaniem?

    > Jeśli chesz uwierzytelnianie klientów za pomocą certyfikatów, to SSL w obecnych
    przeglądarkach to obsługuje standardowo.

    Skąd pomysł że Wiktor potrzebuje uwierzytelniać klienta? Jak Wiktora
    znam, to przemyślał sprawę i jeśli potrzebny mu podpis cyfrowy, to
    certyfikat kliencki dla SSL *nie wystarczy* i *musi być* podpis cyfrowy.


    A tak na marginesie, łamałbyś wiersze przy jakiejś przyzwoitej długości,
    na przykład 72 znaków.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 7. Data: 2009-01-21 13:35:11
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Rafal\(sxat\)" <g...@o...pl.usunto>


    > czyli klucz prywatny jest też po stronie klienta i serwer jest go w stanie
    zweryfikować. Dzięki temu jest pewność od kogo serwer dostaje dane, z danymi
    formularzy i wgranymi plikami włącznie.
    >
    > Jeśli potrzeba podpisane dane przekazać dalej albo składować razem z
    podpisem, to oczywiście sam SSL nie wystarczy (ale i tak trzeba go użyć,
    żeby ktoś postronny nie mógł wstrzyknąć swoich danych do podpisania).
    >

    tak serwer weryfikuje podpis klucza publicznego (certyfikat klienta) na
    podstawie certyfikatu root, klucz prywatny nie opuszcza komputera na ktorym
    sie znajduje... i nie ma mozliwosci wygenerowania podpisu cyfrowego kluczem
    klienta po stronie serwera...

    Rf











    ---
    http://www.sxar.pl/ usługi informatyczne



  • 8. Data: 2009-01-21 13:35:42
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: porneL <n...@p...net>

    On Wed, 21 Jan 2009 13:04:13 -0000, Stachu 'Dozzie' K.
    <d...@d...im.pwr.wroc.pl.nospam> wrote:

    >> Bez https można przeprowadzić atak MITM i zanim strona dotrze do twoich
    >> użytkowników, całkowicie usunąć z niej wszelką kryptografię albo dodać
    >> skrypty, które wysyłają atakującemu niezaszyfrowaną kopię, podmieniają
    >> dane przed podpisaniem, etc.
    >
    > I co to da, jeśli serwer oczekuje podpisanych danych albo wręcz samego
    > podpisu i weryfikuje czy dostał co trzeba?
    > A jeśli dane nie są wrażliwe
    > na ujawnienie i mogą iść bez SSL (bo jeśli by były wrażliwe, to SSL tak
    > czy siak by był zaprzęgnięty dla szyfrowania transmisji), to jaką
    > wartość będzie miało niepotrzebne zabezpieczenie szyfrowaniem?

    Nie szyfrowaniem, a sprawdzeniem, że strona przyszła z oczekiwanego źródła bez
    modyfikacji.

    Inaczej da się do strony idącej po http-bez-s doczepić kawałek Javascript, który
    zmodyfikuje stronę tak, żeby applet/activex podpisujący dane nie widział prawdziwych
    danych z formularza, a ich przetworzoną wersję. Wtedy można wrobić ofiarę w
    podpisanie czegokolwiek.

    Oczywiście nie będzie problemu, jeżeli applet będzie sam się pytał o dane (bez
    polegania na stronie http), applet będzie podpisany i użytkownik sprawdzi kto go
    podpisał.

    > A tak na marginesie, łamałbyś wiersze przy jakiejś przyzwoitej długości,
    > na przykład 72 znaków.

    Faktycznie - sorry (bug czytnika).

    --
    this.author = new Geek("porneL");



  • 9. Data: 2009-01-21 14:26:37
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Wiktor Zychla" <u...@n...com.eu>

    > To, co miałem na myśli to:
    > http://en.wikipedia.org/wiki/Secure_Sockets_Layer#Cl
    ient-authenticated_TLS_handshake
    >
    > czyli klucz prywatny jest też po stronie klienta i serwer jest go w stanie
    > zweryfikować. Dzięki temu jest pewność od kogo serwer dostaje dane, z
    > danymi formularzy i wgranymi plikami włącznie.
    >

    o zabezpieczeniu kanału komunikacji certyfikatem też myślę, ale jako o
    uzupełnieniu podpisania danych jako takich.

    niestety, jeśli ktoś wymaga podpisywania DANYCH, to nie da się nabrać na
    zabezpieczenie kanału komunikacji jako jedynego mechanizmu podpisywania.

    Wiktor Zychla


  • 10. Data: 2009-01-22 08:40:23
    Temat: Re: podpis elektroniczny danych z okna przeglądarki
    Od: "Rafal\(sxat\)" <g...@o...pl.usunto>

    > Inaczej da się do strony idącej po http-bez-s doczepić kawałek Javascript,
    który zmodyfikuje stronę tak, żeby applet/activex podpisujący dane nie
    widział prawdziwych danych z formularza, a ich przetworzoną wersję. Wtedy
    można wrobić ofiarę w podpisanie czegokolwiek.
    >


    jesli uzytkownik nie bedzie wiedzial nic o krytoptografi uzywanej na
    stronach www jak to dziala, to nie ma zadnego problemu oszukac nawet i https
    :) wystarczy przejac sesje, a uzytkownik i tak odpowie twierdzaco na
    wszelkie komunikaty przegladarki... :)

    Rf


strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: