Re: może każdy rodzaj pliku być podpisane cyfrowo, używając RSA, A certyfikat i takie rzeczy, lub czy tylko niektóre rodzaje plików mogą być podpisane?
O: Tak i nie. Z jednej strony standardowy cyfrowy podpis można obliczyć dla dowolnego pakietu bitów, w tym zwykłego pliku tekstowego, plików obrazów, plików binarnych, wszystkiego, co można sobie wyobrazić.
Ale wtedy pytania stają się:
Jak powiązać podpis cyfrowy (który sam w sobie jest binarny run bitów) z pliku danych? Czy format pliku danych pozwala na dołączenie podpisu cyfrowego do danych? A może potrzebujesz samodzielnie zarządzać cyfrowym podpisem, może jako oddzielny plik, być może używając własnego wymyślonego formatu danych?
Po uzyskaniu podpisanych cyfrowo danych i podpisu, w jaki sposób odbiorca weryfikuje dane i ich podpis, aby zapewnić odbiorcę, kto podpisał dane (tożsamość) i czy dane nie zostały zmienione od czasu podpisania (integralność)?
Formaty plików, które obsługują podpisów cyfrowych
Dużą zaletą formatów plików, które samoistnie obsługują podpisów cyfrowych jest to, że odbiorcy mogą zweryfikować podpis cyfrowy i integralność pliku po prostu o otrzymaniu podpisanego pliku a następnie za pomocą własnego oprogramowania do weryfikacji. Odbiorca nie musi niczego instalować od nadawcy.
Istnieje wiele formatów plików obsługujących podpisy cyfrowe. Np. Pdf, Word .doc, .docx. Excel .xls, .xlsx. Istnieje standard for signing xml files. Jego zaletą jest to, że xml może być używany jako koperta dla dowolnego typu danych. Na przykład plik PDF można cyfrowo podpisać i wysłać do kogoś. Odbiorca może następnie użyć standardowego/darmowego programu Adobe Reader, aby otworzyć plik PDF i zweryfikować jego cyfrowe podpisy.
"Format" dla plików tekstowych (plik wypełniony znakami) nie obsługuje podpisów cyfrowych. Potrzebujesz więc koperty dla tekstu i cyfrowego podpisu lub osobno podpisujesz się cyfrowym podpisem. W każdym razie odbiorca potrzebuje Twojego oprogramowania do weryfikacji danych. (Lub musiałby napisać własny po podaniu specyfikacji dla zwykłego tekstu i podpisu.)
S/MIME oferuje standardowy sposób cyfrowego podpisywania tekstu lub innych uporządkowanych danych e-mail/MIME. Zobacz rfc 5751. Ale nie jest szeroko stosowany poza agentami poczty e-mail, które mogą generować lub odbierać/weryfikować podpisane wiadomości e-mail. Outlook wspiera to.
Dziękuję za odpowiedź. Przetestowałem cyfrowy podpis pod kątem zwykłego pliku tekstowego i działa dobrze. Nie testowałem jeszcze w plikach binarnych, ponieważ nie jestem pewien, czy podpis cyfrowy złamie plik. Spróbuję użyć phpseclib. –
Czy mogę użyć tego do plików w jakikolwiek sposób? Powiedz jak przesłany obraz? Z góry dziękuję –
Oczywiście - po prostu wykonaj '$ plaintext = file_get_contents (" filename.ext ")' – neubert