Hmm...
Vel jeg tror det vi bør gjøre først er ikke å starte med å kode. Blir fort rot. Vi bør tenkte litt lurere og planlegge hva vi trenger.
Hva trenger klienten og hva trenger serveren?
Jeg tror ikke vi trenger å bry oss om programvaren skal kjøre på windows/linux/os x/bsd osv. Kan alltids lage programmer til hver enkelt OS.
Klienten må kunne ta imot en liste, wordliste eller en oversikt over antall tegn som klienten skal brute force med og hva den skal brute force. Serveren må ha oversikt over alle brutte passord samtlig med hvilke tegn/ordlister som er brukt på hver enkelt. Den må også kunne utdele og holde oversikt over alle klienter og hvem som gjør hva.
For å prøve å holde en litt bedre oversikt.
Klient:
- Bør vel lages i C/C++ og for å utnytte GPU er det vel
CUDA vi skal ty til. Verdt å merke seg at python støtter CUDA(Se
PyCUDA) som kan være greit for linux/bsd/os x.
- Ta imot liste eller avgrenset område for brute force(Eksempel: a-i, fra 5 til 6 tegn)
- Sende tilbake enten om den fant riktig passord og i såfall hvilke slik at server kan få andre klienter til verifisere passordet, eller at den ikke har funnet og er enten klar til å ta imot nye lister eller er ferdig og skal ikke ta imot mer.
Server:
- Når det kommer til utviklingen se lenger ned.
- Skal ha oversikt over klienter, hvilke klient som brute forcer med hvilke ordliste eller gitt antall tegn(Se eksempel under klient).
- Skal kunne ha oversikt over alle WPAer som er brutt og de som ikke er.
Selve serveren kan skrives i php/ruby, men C/C++ burde også gå. Har sett på en del parallel prosjekter som
BOINC, men det blir kanskje litt mye for hva vi trenger. Skader ikke å sjekke det ut og eventuelt teste det.
Bare å pynte på med hva som trengs eller ikke trengs under klient/server. Viktigste for nå er å vite hva vi trenger og hvor det trengs.
Selve prosjektet høres artig ut, men dette er ikke noe som blir gjort over natta og vil nok ta en liten stund før den blir ferdig(Nå er vel utviklingen spennende også :-).