Conky i Gmail informacja o poczcie i szyfrowanie hase

Tematy związane z oprogramowaniem, instalacją, konfiguracją
Awatar użytkownika
dowoszek
Posty: 65
Rejestracja: 13 kwietnia 2007, 16:04

Conky i Gmail informacja o poczcie i szyfrowanie haseł

Post autor: dowoszek »

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.
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

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ł.
Awatar użytkownika
dowoszek
Posty: 65
Rejestracja: 13 kwietnia 2007, 16:04

Post autor: dowoszek »

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?
vtr
Posty: 9
Rejestracja: 22 października 2007, 16:46

Post autor: vtr »

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");
}
Awatar użytkownika
dowoszek
Posty: 65
Rejestracja: 13 kwietnia 2007, 16:04

Post autor: dowoszek »

vtr, za każdym razem będę musiał wpisywać hasło? Chyba czegoś nie łapię...
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

Z tego co zrozumiałem, vtr podrzucił Ci kod, w którym wpisujesz swój login i hasło; następnie program kompilujesz. Zaletą tego rozwiązania jest to, że dane logowania przechowywane są w skompilowanej aplikacji - nie można już ich tak po prostu podejrzeć.
Awatar użytkownika
dowoszek
Posty: 65
Rejestracja: 13 kwietnia 2007, 16:04

Post autor: dowoszek »

No tak, załapałem. Zmyliło mnie:
vtr pisze:następnie z kodu źródłowego usuń login i hasło
Zacząłem kombinować, że może kod źródłowy odgrywał będzie jeszcze jakąś rolę.

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;
}
vtr
Posty: 9
Rejestracja: 22 października 2007, 16:46

Post autor: vtr »

Spróbuj coś takiego:

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;
} 
Na temat funkcji system możesz poczytać w:

Kod: Zaznacz cały

man system
Poza tym było jeszcze parę błędów (endln, stdlib.h).
Awatar użytkownika
dowoszek
Posty: 65
Rejestracja: 13 kwietnia 2007, 16:04

Post autor: dowoszek »

Tak, samo system() działa, ale jak chcę dorzucić opis poprzez "cout" (np. "nowe wiadomości na konto1: ...") to coś się miesza. Wiem, wiem, zaczynam marudzić ;)
vtr
Posty: 9
Rejestracja: 22 października 2007, 16:46

Post autor: vtr »

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 :)
ODPOWIEDZ