Conky i Gmail informacja o poczcie i szyfrowanie hase
Conky i Gmail informacja o poczcie i szyfrowanie haseł
Witam.
Mam pytanie odnośnie skryptu z poniższego poradnika:
http://debian.linux.pl/viewtopic.php?p=10149#10149
Co prawda hasła są przesyłane w formie zaszyfrowanej (czy ktoś mógłby to potwierdzić, bo nie bardzo orientuję się w tym kodzie), ale przechowywane na dysku są w formie zwykłego tekstu. Czy dałoby się to jakoś zmienić? Ewentualnie czy moglibyście polecić programik (możliwie najprostszy), który sprawdzałby dostępność nowej poczty na koncie Gmail i jednocześnie był w pełni zabezpieczony (może coś korzystającego z KWallet, albo gnomowego odpowiednika)? Potrzebna mi wyłącznie informacja, że "są nowe wiadomości" (reszta jest mi obojętne, wręcz zbędna), i obsługa wielu kont.
Mam pytanie odnośnie skryptu z poniższego poradnika:
http://debian.linux.pl/viewtopic.php?p=10149#10149
Co prawda hasła są przesyłane w formie zaszyfrowanej (czy ktoś mógłby to potwierdzić, bo nie bardzo orientuję się w tym kodzie), ale przechowywane na dysku są w formie zwykłego tekstu. Czy dałoby się to jakoś zmienić? Ewentualnie czy moglibyście polecić programik (możliwie najprostszy), który sprawdzałby dostępność nowej poczty na koncie Gmail i jednocześnie był w pełni zabezpieczony (może coś korzystającego z KWallet, albo gnomowego odpowiednika)? Potrzebna mi wyłącznie informacja, że "są nowe wiadomości" (reszta jest mi obojętne, wręcz zbędna), i obsługa wielu kont.
Jak widać, w skrypcie, poczta pobierana jest z kanału atom, poprzez protokół https - zaszyfrowany - HyperText Transfer Protocol Secure.
Możesz ograniczyć chmody dla pliku z danymi logowania - tak, byś jedynie Ty mógł odczytywać jego zawartość.
Cały mechanizm polega na tym, że użytkownik wysyła niezaszyfrowane hasło, które jest szyfrowane na serwerze gmaila (np. md5), a następnie porównywane z ustawionym, zaszyfrowanym hasłem - jest to algorytm jednostronny.
Do zwiększenia bezpieczeństwa pozostaje użycie innego programu (może ktoś inny podpowie) lub użycie jakiegoś prostego algorytmu, który przed wysłaniem hasła je odszyfruje - jest to dosyć kiepski pomysł.
Możesz ograniczyć chmody dla pliku z danymi logowania - tak, byś jedynie Ty mógł odczytywać jego zawartość.
Cały mechanizm polega na tym, że użytkownik wysyła niezaszyfrowane hasło, które jest szyfrowane na serwerze gmaila (np. md5), a następnie porównywane z ustawionym, zaszyfrowanym hasłem - jest to algorytm jednostronny.
Do zwiększenia bezpieczeństwa pozostaje użycie innego programu (może ktoś inny podpowie) lub użycie jakiegoś prostego algorytmu, który przed wysłaniem hasła je odszyfruje - jest to dosyć kiepski pomysł.
Czyli generalnie mechanizm przesyłania hasła taki sam jak w przeglądarce, bo logując się bezpośrednio na stronie hasło chyba też jest przesyłane niezaszyfrowane poprzez https?
Chyba przyjdzie mi korzystać do tego celu z... Akregatora? Dziwne tylko, że niby korzysta z kdewallet, a ja nie mam zainstalowanej paczki kwalletmanager?
Chyba przyjdzie mi korzystać do tego celu z... Akregatora? Dziwne tylko, że niby korzysta z kdewallet, a ja nie mam zainstalowanej paczki kwalletmanager?
Jeżeli chcesz przechowywać hasło w formie niedostępnej to skompiluj poniższy program który działa tak samo jak skrypt i następnie z kodu źródłowego usuń login i hasło. Kompilator g++.
Kod: Zaznacz cały
#include <cstdlib>
using std::system;
int main()
{
return system("wget --secure-protocol=TLSv1 --timeout=5 -t 1 -q -O - [url]https://LOGIN:HASLO@mail.google.com/mail/feed/atom[/url] --no-check-certificate | grep 'fullcount' | sed -e 's/.*<fullcount>//;s/<\\/fullcount>.*//' 2>/dev/null");
}
No tak, załapałem. Zmyliło mnie:
Niegłupie rozwiązanie, a nawet bardzo ciekawe. Zaraz sobie tak zrobię, ciekawe tylko jak to z tym podglądaniem hasła w takiej formie.
Edit:
A jeśli chciałbym, żeby ten programik bezpośrednio mi wypisywał w konsoli? Czy ktoś mógłby mi podpowiedzieć co tu jest źle (oj zapomina się szybko te funkcje)?
Zacząłem kombinować, że może kod źródłowy odgrywał będzie jeszcze jakąś rolę.vtr pisze:następnie z kodu źródłowego usuń login i hasło
Niegłupie rozwiązanie, a nawet bardzo ciekawe. Zaraz sobie tak zrobię, ciekawe tylko jak to z tym podglądaniem hasła w takiej formie.
Edit:
A jeśli chciałbym, żeby ten programik bezpośrednio mi wypisywał w konsoli? Czy ktoś mógłby mi podpowiedzieć co tu jest źle (oj zapomina się szybko te funkcje)?
Kod: Zaznacz cały
#include <iostream>
#include <stdlib.h>
using namespace std]https://LOGIN1:HASLO1@mail.google.com/mail/feed/atom[/url] --no-check-certificate | grep 'fullcount' | sed -e 's/.*<fullcount>//;s/<\\/fullcount>.*//' 2>/dev/null");
g2 = system("wget --secure-protocol=TLSv1 --timeout=5 -t 1 -q -O - [url]https://LOGIN2:HASLO2@mail.google.com/mail/feed/atom[/url] --no-check-certificate | grep 'fullcount' | sed -e 's/.*<fullcount>//;s/<\\/fullcount>.*//' 2>/dev/null");
cout << "g1 nieprzeczytanych = " << g1 << endln;
cout << "g2 nieprzeczytanych = " << g2 << endln;
return 0;
}
Spróbuj coś takiego:
Na temat funkcji system możesz poczytać w:
Poza tym było jeszcze parę błędów (endln, stdlib.h).
Kod: Zaznacz cały
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
system("wget --secure-protocol=TLSv1 --timeout=5 -t 1 -q -O - [url]https://LOGIN1:HASLO1@mail.google.com/mail/feed/atom[/url] --no-check-certificate | grep 'fullcount' | sed -e 's/.*<fullcount>//;s/<\\/fullcount>.*//' 2>/dev/null");
system("wget --secure-protocol=TLSv1 --timeout=5 -t 1 -q -O - [url]https://LOGIN2:HASLO2@mail.google.com/mail/feed/atom[/url] --no-check-certificate | grep 'fullcount' | sed -e 's/.*<fullcount>//;s/<\\/fullcount>.*//' 2>/dev/null");
return 0;
}
Kod: Zaznacz cały
man system
Po pierwsze, wiem że funkcja system działa tak samo, ale chodziło mi o włączany plik nagłówkowy jeżeli program jest napisany w c++ to powinien być plik "cstdlib", jeżeli w c to "stdlib.h". Zwróciłem uwagę bo skoro chcesz używać strumieni cout to sugeruje że program napisany jest w c++ stąd powinno być cstdlib.
Po wtóre, mówiłem żebyś przeczytał podręcznik man (man system) bo tam jest napisane dokładnie co robi funkcja "system" i wtedy wszystko byś rozumiał. Ogólnie mogę powiedzieć że to co wrzucisz jako argument funkcji system to jest wykonywane tak jak byś wpisał to w konsoli. Funkcja ta zwraca status wykonanej operacji.
Zaproponowany przeze mnie program na pewno nie jest najwyższych lotów ale spełnia wymaganą funkcję i jest (był) bardzo prosty do napisania. Jeżeli szukasz czegoś bardziej zaawansowanego to musisz to albo napisać sam albo znaleźć gotowca
Po wtóre, mówiłem żebyś przeczytał podręcznik man (man system) bo tam jest napisane dokładnie co robi funkcja "system" i wtedy wszystko byś rozumiał. Ogólnie mogę powiedzieć że to co wrzucisz jako argument funkcji system to jest wykonywane tak jak byś wpisał to w konsoli. Funkcja ta zwraca status wykonanej operacji.
Zaproponowany przeze mnie program na pewno nie jest najwyższych lotów ale spełnia wymaganą funkcję i jest (był) bardzo prosty do napisania. Jeżeli szukasz czegoś bardziej zaawansowanego to musisz to albo napisać sam albo znaleźć gotowca
