konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Czy jest możliwość szyfrowania plików przesłanych ze strony na serwer, tak żeby tylko osoba, która wysyła pliki (właściciel) miała do nich dostęp, tj. mogła je pobrać już odszyfrowane ?
Myślę, że ciekawy temat do obgadania.

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Myślę że nie, bo plik musiał by zostać zaszyfrowany po stronie użytkownika.
Inaczej zawsze klucz musiałby chociaż przez chwilę leżeć po stronie serwera. A jeśli nie chodzi o szyfrowanie, a zabezpieczenie dostępu z poziomu www to
1. można trzymać pliki w bazie danych przypisane do danego użytkownika
2. można trzymać w bazie danych referencje do plików znajdujących się w katalogu nie dostępnym z poziomu www i na podstawie relacji z zalogowanym użytkownikiem decydować o możliwości pobrania pliku.
3. jak w pkt 2 tylko pliki oznaczać unikalnym kluczem i na jego podstawie decydować czy dany plik można pobrać czy nie.

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

To już jakaś myśl.
Jednak nie rozwiązuje to problemu możliwości odczytania plików przez osoby, które mają fizyczny dostęp do serwera.
Może wszystkie pliki (.jpg, .avi, .doc...) zapisywać binarnie, szyfrując dane jakimś kluczem. Dopiero taką mielonkę zapisywać na dysku (nawet bez rozszerzeń).
Na dysku byłyby tylko pliki, bez możliwości odczytu. Hasło (md5) i rozszerzenia zapisywać już w bazie dla konkretnych userów.

edit: md5Damian N. edytował(a) ten post dnia 07.01.11 o godzinie 13:52
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: Szyfrowanie plików na serwerze Apache + PHP

1. Użytkownik wgrywa swój klucz publiczny na serwer.
2. Użytkownik łącząc się po https, wgrywa na serwer plik.
3. Aplikacja po wgraniu szyfruje go kluczem publicznym
4. Użytkownik ściąga sobie zaszyfrowany plik, po czym odszyfrowuje go swoim kluczem prywatnym.

Minusy:
- przez pewien moment na serwerze plik nie jest zaszyfrowany.
- użytkownik musi sam sobie odszyfrować plik.

Aby uniknąć pierwszego minusa, user musiałby wysyłać już zaszyfrowany plik.

To tak na szybko. Poczytaj sobie o http://pl.wikipedia.org/wiki/Kryptografia_klucza_publi... .Podejrzewam, że jeśli da się osiągnąć to, czego potrzebujesz, to to już zostało osiągnięte.

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Michał Sznurawa:
4. Użytkownik ściąga sobie zaszyfrowany plik, po czym odszyfrowuje go swoim kluczem prywatnym.

Minusy:
- użytkownik musi sam sobie odszyfrować plik.

Założenia w pierwszym poście są jasne: User ma pobierać pliki już odszyfrowane, dlatego użycie klucza prywatnego tutaj nie ma sensu.

User ma operować tylko jednym hasłem. Zostaje klucz publiczny (string) szyfrowany w bazie (md5). Fakt, na krótki czas (mili,sekundy...) pliki będą niestety leżały niezaszyfrowane, ale to katalog tymczasowy i tego nie da się obejść(?).

Czy można coś jeszcze zmienić ?

Plusy:
+ osoby z dostępem do serwera nie mogą odczytać plików
+ osoby z dostępem do serwera nie mogą odczytać hasła (md5).
+ przeźroczystość szyfrowania dla usera wysyłającego i pobierającego plik.

Minusy:
- plik po załadowaniu na czas szyfrowania jest widoczny,
- administrator po 3 latach odszyfruje md5 i przeglądanie zawartość plików :|
(można zażądać od usera zmiany hasła co kwartał - mało fajne).
Adam Pietrasiewicz

Adam Pietrasiewicz Półliterat, Audytor
dostępności

Temat: Szyfrowanie plików na serwerze Apache + PHP

http://szyfruj.mail.pl ?

Temat: Szyfrowanie plików na serwerze Apache + PHP

możesz zastosować applet java do szyfrowania/odszyfrowania po stronie klienta wg hasła znanego jedynie klientowi i które nie jest przesyłane do serwera

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Tak to świetny pomysł, brałem go pod uwagę, ale:
nie każdy klient ma zainstalowany JVM,
nie każdy z niego chce lub może korzystać,
nie każdy ma włączoną maszynę,
nie w każdym miejscu, gdzie jest przeglądarka umożliwia się odpalenie JVM.

Założeniem podstawowym aplikacji (strony) ma być jej wszechdostępność. Pamiętam, że jeśli kiedyś występowała konieczność skorzystania z apletu na jakiejś stronie to trzeba było pobierać pluginy lub nowsze wersje - w zależności na jakim kompie się siedziało. Nie zawsze było to możliwe (łapa administratora)...
...gdyby nie te mankamenty nie byłoby problemu.
Jakub L.

Jakub L. Programista

Temat: Szyfrowanie plików na serwerze Apache + PHP

Damian N.:
Michał Sznurawa:
4. Użytkownik ściąga sobie zaszyfrowany plik, po czym odszyfrowuje go swoim kluczem prywatnym.

Minusy:
- użytkownik musi sam sobie odszyfrować plik.

Założenia w pierwszym poście są jasne: User ma pobierać pliki już odszyfrowane, dlatego użycie klucza prywatnego tutaj nie ma sensu.

Zadaj sobie pytanie - w jaki sposób serwer (będący fizycznie na maszynie) ma odszyfrować plik pobrany z dysku i przesłać go do usera, aby jednocześnie tego samego nie mógł zrobić kolo mający fizyczny dostęp do maszyny.

Jak dla mnie - bez interakcji z userem typu user podrzuca serwerowi klucz którym to kluczem serwer odszyfrowuje pliki i pcha je do usera a klucz zapomina nie da się, bo gdzieś na maszynie będzie musiał być cały mechanizm odszyfrowania plików..

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Jakub L.:

Zadaj sobie pytanie - w jaki sposób serwer (będący fizycznie na maszynie) ma odszyfrować plik pobrany z dysku i przesłać go do usera, aby jednocześnie tego samego nie mógł zrobić kolo mający fizyczny dostęp do maszyny.

Jak dla mnie - bez interakcji z userem typu user podrzuca serwerowi klucz którym to kluczem serwer odszyfrowuje pliki i pcha je do usera a klucz zapomina nie da się, bo gdzieś na maszynie będzie musiał być cały mechanizm odszyfrowania plików..

Zadałeś sobie pytanie i sam sobie odpowiedziałeś (tak samo jak ja tutaj :) Klucz będzie na maszynie, mechanizm szyfrowania i odszyfrowania również. Użycie klucza tylko wtedy, gdy user jest zalogowany i trzyma aktywną sesję.

edit: i nie zrobi tego kolo z dostępem do maszyny, gdyż klucz będzie zaszyfrowany md5. Odpowiednia długość klucza zapewni optymalne zabezpieczenie.Damian N. edytował(a) ten post dnia 07.01.11 o godzinie 19:29
Jakub L.

Jakub L. Programista

Temat: Szyfrowanie plików na serwerze Apache + PHP

Damian N.:
Jakub L.:

Zadaj sobie pytanie - w jaki sposób serwer (będący fizycznie na maszynie) ma odszyfrować plik pobrany z dysku i przesłać go do usera, aby jednocześnie tego samego nie mógł zrobić kolo mający fizyczny dostęp do maszyny.

Jak dla mnie - bez interakcji z userem typu user podrzuca serwerowi klucz którym to kluczem serwer odszyfrowuje pliki i pcha je do usera a klucz zapomina nie da się, bo gdzieś na maszynie będzie musiał być cały mechanizm odszyfrowania plików..

Zadałeś sobie pytanie i sam sobie odpowiedziałeś (tak samo jak ja tutaj :) Klucz będzie na maszynie, mechanizm szyfrowania i odszyfrowania również. Użycie klucza tylko wtedy, gdy user jest zalogowany i trzyma aktywną sesję.

edit: i nie zrobi tego kolo z dostępem do maszyny, gdyż klucz będzie zaszyfrowany md5. Odpowiednia długość klucza zapewni optymalne zabezpieczenie.

Md5 jest jednostronne, mając md5 nie odzyskasz zawartości nie mając słownika, a nawet wtedy możesz mieć konflikt.

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Jakub L.:
Md5 jest jednostronne, mając md5 nie odzyskasz zawartości nie mając słownika, a nawet wtedy możesz mieć konflikt.

i o to chodzi, dlatego md5. Bez słownika (nie tędy droga).
Wczoraj zakończyłem implementację. Wszystko działa rewelacyjnie. Koleś od krypto zatwierdził pozytywnie. Teraz mogę serwer puścić nawet do Tajwanu bez haseł admina.
Jakub L.

Jakub L. Programista

Temat: Szyfrowanie plików na serwerze Apache + PHP

Napiszę tak: jeżeli rzeczywiście nie ma jakiegokolwiek kawałka z zewnątrz tylko wszystkie kawałki algorytmu do odszyfrowania pliku są trzymane na serwerze, to bardzo możliwe że koleś od krypto jest bardziej kolesiem niż jest od krypto.

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Jakub L.:
Napiszę tak: jeżeli rzeczywiście nie ma jakiegokolwiek kawałka z zewnątrz tylko wszystkie kawałki algorytmu do odszyfrowania pliku są trzymane na serwerze, to bardzo możliwe że koleś od krypto jest bardziej kolesiem niż jest od krypto.

Lemingi są pod wielkim wrażeniem tej wypowiedzi.
Wszystkie tezy powyżej - pudło.
:)
Odpowiedź tkwi w bardzo malutkim szczególe, na który ja i nikt tutaj nie wpadł. Do czasu...

konto usunięte

Temat: Szyfrowanie plików na serwerze Apache + PHP

Damian N.:
Jakub L.:
Napiszę tak: jeżeli rzeczywiście nie ma jakiegokolwiek kawałka z zewnątrz tylko wszystkie kawałki algorytmu do odszyfrowania pliku są trzymane na serwerze, to bardzo możliwe że koleś od krypto jest bardziej kolesiem niż jest od krypto.

Lemingi są pod wielkim wrażeniem tej wypowiedzi.
Wszystkie tezy powyżej - pudło.

Jeśli się obala tezę, czyli uważa się, że jest błędna, warto by było podać kontrprzykład.
Odpowiedź tkwi w bardzo malutkim szczególe, na który ja i nikt tutaj nie wpadł. Do czasu...

I w tym ostatnim zdaniu się wszystko zawiera :)

Temat: Szyfrowanie plików na serwerze Apache + PHP

Damian N.:
Jakub L.:
Napiszę tak: jeżeli rzeczywiście nie ma jakiegokolwiek kawałka z zewnątrz tylko wszystkie kawałki algorytmu do odszyfrowania pliku są trzymane na serwerze, to bardzo możliwe że koleś od krypto jest bardziej kolesiem niż jest od krypto.

Lemingi są pod wielkim wrażeniem tej wypowiedzi.
Wszystkie tezy powyżej - pudło.
:)
Odpowiedź tkwi w bardzo malutkim szczególe, na który ja i nikt tutaj nie wpadł. Do czasu...

Może zdradzisz? :)
Pytam prowokacyjnie, bo dobre rozwiązanie kryptograficzne powinno być takie, że pomimo zdradzenia algorytmu szyfrowania, treści nadal są bezpieczne. A i chętnie się czegoś nauczymy :)
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: Szyfrowanie plików na serwerze Apache + PHP

Rafał Nowak:
Damian N.:
Jakub L.:
Napiszę tak: jeżeli rzeczywiście nie ma jakiegokolwiek kawałka z zewnątrz tylko wszystkie kawałki algorytmu do odszyfrowania pliku są trzymane na serwerze, to bardzo możliwe że koleś od krypto jest bardziej kolesiem niż jest od krypto.

Lemingi są pod wielkim wrażeniem tej wypowiedzi.
Wszystkie tezy powyżej - pudło.
:)
Odpowiedź tkwi w bardzo malutkim szczególe, na który ja i nikt tutaj nie wpadł. Do czasu...

Może zdradzisz? :)

Ja przypuszczam, że po prostu trzyma hasz hasła w MD5 oraz samo hasło w sesji. Hasła używa do jakiegoś prostego szyfrowania symetrycznego.

Oczywiście, przed kimś, kto ma dostęp do serwera to w żaden sposób nie zabezpiecza, bo ten ktoś może przechwycić sesję. Nawet jeśli to SSL.

Następna dyskusja:

ntlm+ldap+php+apache i zagw...




Wyślij zaproszenie do