Datasäkerhet och Informationssäkerhet

Robert Malmgren AB

“Trust is good, control is better.”

2012/03/13

ROMABs blog have rss now

If you want to follow ROMABs blog without manually checking for updates on this page everytime we may have a solution. There are several rss readers avaible to use and some browser may have rss functionality built in. I have always liked the Brief plugin for Firefox. You can subscribe to the rss with the rss-button in Firefox if it is enabled. In Safari will the link be availble when klicking down on the reader button. I guess it is easy on Chrome and IE but I have not tried. You can also post the rss link to your personal rss reader or google reader if you use it.

ROMABs rss feed Valid rss pic
https://www.romab.com/blog/rss.xml

----
Written by Tobbe @ 2012-03-13 2011/07/02

Rip n900

Eftersom världens bästa telefon nu inte är världens bästa pga taskig hårdvara så blev jag tvungen att köpa en ny telefon. Tyvärr....

Att tänka i banorna att skaffa en ersättningstelefon av samma modell var väl första tanken. Men n900 är ganska svår att få tag på nu när den precis har utgått ur sortimentet. Och dess efterföljare n950 ( Nokia n950) som verkar riktigt grym, har ju tyvärr inte släppts än. Så man faller mellan stolarna, om man suktar efter Nokias linux-satsningar (och då har jag inte börjat ranta om deras satsning på windowsmobiler än).

Dessutom så jag är inte speciellt sugen på att ta upp c# igen för att börja utveckla på Windows Phone. Att bara ha en telefon och ringa med är ju inte så kul och som nörd så måste man ju koda mot telefonen annars så duger det med en gammal Ericsson telefon med EOS.

Det som jag nu saknar från min n900 är de balla features som tyvärr inte finns på någon annan telefon vad jag vet. Då jag inte är helt insatt i Android utveckling så kan de vara möjligt att några av funktionerna fanns där. Men de funktioner jag talar om är möjligheten att växla (via egna script) mellan 3g och gsm ifall telefonen är på ett visst wifi nätverk (strömsparfunktion) eller att automagiskt backa upp telefonen till en server om man är på "sitt" nätverk. Det mest balla med mina backuper är att det pgp-krypteras innan jag skickar dem till servern. Det är en funktion som jag inte har sett på någon annan telefon på marknaden.

Att kunna scripta en telefon som triggas på events som nätverkförändring, tangentbors som "slidas" fram eller att den går över till ljudlöst på nätterna om man är hemma och byter tillbaka till den vanliga profilen under morgontimmarna är funktioner som jag kommer att sakna. Jag ställer mig även frågande om en sådan funktion någonsin kommer att finnas på en telefon som standard?

Så, i slutändan blev det att köpa en Jesustelefon, som underlättar iOS-utveckling när man har faktiskt har riktig hårdvara att testa på - inte bara via simulator och iPad. Så det gjorde lite ont att ge upp maemo/meego, eftersom den fungerat väl som mobilplattform och haft ett otroligt hackvärde.

iOS är ganska trevligt att koda för och det finns många smarta och genomtänkta funktioner som är väl anpassade för slö hårdvara med lite minne och dålig swap. Mer om det vid något senare tillfälle....


----
Written by Tobbe @ 2011-07-02

Varför iPhone?

iPhone är den bästa telefonen på marknaden om man vill spela spel, och vad är inte bättre än att spela igenom Phantasy Star II från Sega Genius :)

Efter att jag spelat igenom det så blev jag inspirerad att koda ihop en s.k. "Walk Through" (hjälptext för att underlätta navigering och agerande i spelets olika situationer) för det. Arbetet bestod mest i att klippa/klistra, då kartor och textguiden är lånade från stora stygga internet.

Appen som sådan är nu under "review" hos Apple! Jag hoppas att den borde bli släppt under de närmsta dagarna - om jag inte har missat någon gummisnodd i interfacebuilder :) Förutom just den gratisappen så är några appar till på gång om tiden finnes.


På tal om iPhone och Apples värld så måste jag slå på stora trumman för iTunes och iTunes University, som är en av det bästa saker som finns för den som vill vidareutvecklas och lära sig mer.

Nu är det ju inte själva iTunes som är bra, det är väl igentligen en av de sämre mediaspelarna men det finns ju även en del bra funktioner så som AirPlay. Men filstödet är ju inte känt för att vara brett och plugins finns det inte för iOS versionerna. Men man kan leva med en lite sämre mediaspelare om utbudet är riktigt bra och det är precis vad iTunes har. iTunes University är precis som det låter, kurser på universitetsnivå som är filmade, redigerade och gratis tillgängliga i både "sd" samt "hd"-format, tillsammans med eventuellt extramaterial.

Föreläsningarna innehåller allt från it-kurser till historia, medicin etc. Tidigare har jag provat lynda.com för att lära mig mer om olika tekniker, men en kurs från ett universitet med 25 föreläsningar รก 60-90min vardera som dessutom är kostnadsfritt är oslagbart.

Särskilt intressanta tycker jag kurserna från Stanforduniversitetet i Kalifornien inom ämnet iOS-utveckling har varit. Det finns filmade föreläsningar från ett par olika årskurser inspelade de senaste läsåren. Innehållet i föreläsningarna sträcker sig från grundläggande dragningar där läraren går igenom såväl programspråk, målmiljöns olika komponenter och ramverk, vidare till olika gästföreläsare som beskriver erfarenheter från sina produktuvecklingar, etc.

Det finns även svenska universitet/högskolor representerade men eftersom iTunes är dåligt på väldigt många sätt så går det inte att lista efter land eller skolor utan det är som allt annat på iTunes Store, man måste vara populär för att synas eller ha bra kontakter in mot Apple som vissa större investments/utvecklingsbolag har. Men hur man kan lyfta fram sina produkter och synas bättre i iTunes Store är en snårig historia som jag kanske kan skriva om någon annan gång.

CS193P Stanford
----
Written by Tobbe @ 2011-07-02 2011/03/22

Xcode 4

På ROMAB har vi hållit på med en del utveckling för MacOSX och iOS. Förutom vanligt skriptande och hackande av småprogram så har vi testat Apples verktyg för programmering och utveckling. Utvecklingsmiljön (IDE'n) för detta heter Xcode. Det finns flera bra saker med Xcode, bland annat att den är gratis, att kommer med som standard i alla utlevererade Macdatorer, att den har stöd för för flera programspråk (C, C++, Objective-C) samt att den har bra integrerat stöd för att skapa de grafiska delarna av programmet.

Nu har den senaste versionen av Xcode släppts, Xcode4, denna är dock bara gratis för de som har utvecklingkonto hos Apple, annars kostar den 5dollars på App Store. Den innehåller massor med coola saker, tex ny kompilatorback-end (LLVM[1], som genererar optimalare kod och utnyttjar multi-core-CPUer bättre), numera är interfacebuilderfunktionen helt inbyggd, den stöder GIT[2] och använder det som standard - istället för bara subversion som tidigare. Om man har ett program som är utvecklat under tidigare versioner av Xcode så måste LLVM slås på manuellt.

Men ämnet för den här bloggtexten är egentligen den nya debuggern! Den har några riktigt sköna finesser. Här nedan syns en bild med källkoden till "peka" ett av våra projekt. Debuggern kan bland annat göra ganska ball programflödesanalys där minnesluckor och andra programeringsfel lättare kan upptäckas. Enkla saker som att man mistar sig på tilldelning (=) och jämförelse (==) eller att en pekare saknas.

misspointer

Även mer avancerad debug finns om man kör verktyget Analyze. Som man kan se på bilden nedan så kan den med hjälp av väldigt tydlig grafiska markörer i form av pilar visa hur vissa typer av logiska fel i koden kan uppträda.

misstring

I bilden ovan så syns det ett exempel på när Xcode tycker sig ha hittat en en sträng som ibland inte blir satt till ett värde.

missrelease

Det går även att hitta minnesluckor som kan missas. I ovanstående exempel så allokeras ljudspelaren lokalt i metoden och det är tänkt att den ska frigöras i dess delegate metod, detta fungarar inte med analysern och spelaren "play" markeras som minnelucka.

Dessutom så finns ju fortfarande kopplingen till Instruments där minneslucker etc kan visualiseras under körning.

[1] För info om LLVM-sviten av kompilatorer, se http://www.llvm.org/

[2] För de som vill veta mer om Xcode4 och git-integrationen rekommenderas github-utvecklarnas blogg: https://github.com/blog/810-xcode-4-released-with-git-integration


----
Written by Tobbe @ 2011-03-22 2010/11/26

IronSettings

Some people just don't like the terminal and vi, I can't understand why? Asking these people to edit text files with key value pairs won't work, so I developed a GUI for them to make it easier to configure IronFox. Almost all properties in IronFox is supported at the moment, and can easily be activated ordeactivated by checking or unchecking boxes.

IronSettings

It's my first application developed in xcode, objective c. And I don't know yet if I like the framework or not. Right now the app just works with IronFox but will later support other apps in the IronSuite. IronSettings is in the beta state and feedback would be nice. The app is included a bit ugly in the IronFox-0.8.2.dmg, so if you missed it you might want to look again in the dmg file.

Find IronSettings

Other stuff done lately is the inclusion of update.sh and updateff.sh. These scripts will search for updates for both IronFox and Firefox, but are not yet activated as we need to do some more testing. These will later be configurable by using IronSettings. Oh, i already found a bug in update.sh on line 70, just after release. Good thing they are not activated yet.


----
Written by Tobbe @ 2010-11-26 2009/09/21

Samba and kerberos

To use samba with kerberos is not so hard. First you need a KDC, in this example we will use Windows 2003 Server. Fix kerberos on the machine where samba will be installed.
krb5.conf
[libdefaults]
        default_realm = DOMAIN.TLD

[realms]
        DOMAIN.TLD = {
                kdc = x.x.x.x
                admin_server = x.x.x.x
                default_domain = domain.tld
        }
Simply install samba on a server, and configure it. Some other parameters can be good to, but we skip this for now.
smb.conf
[global]
   # This option specifies the kerberos realm to use.
   realm = DOMAIN.TLD

   # In this mode, Samba will act as a domain member in an ADS realm.
   security = ADS

   # Specifies whether Samba should attempt to maintain service principals
   # in the systems keytab file for host/FQDN and cifs/FQDN.
   use kerberos keytab = yes

   # This variable controls whether Samba clients will try to use Simple and
   # Protected NEGOciation (as specified by rfc2478) with supporting servers
   # (including WindowsXP, Windows2000 and Samba 3.0) to agree upon an
   # authentication mechanism. This enables Kerberos authentication in particular.
   client use spnego = yes

   # By specifying the name of another SMB server or Active Directory domain
   # controller with this option, and using security = [ads|domain|server]
   # it is possible to get Samba to do all its username/password validation
   # using a specific remote server.
   password server = x.x.x.x

   # This sets the NetBIOS name by which a Samba server is known.
   netbios name = server_name

   # This controls what workgroup your server will appear to be in when queried
   # by clients. Note that this parameter also controls the Domain name used
   # with the security = domain  setting.
   workgroup = DOMAIN.TLD

   # This boolean controls whether encrypted passwords will be negotiated
   # with the client.
   encrypt passwords = true

   # If set to yes, Samba treats the share as a Dfs root and allows clients
   # to browse the distributed file system tree rooted at the share directory.
   # This one is for windows clients
   msdfs root = yes

[theshare]
   # This parameter specifies a directory to which the user of the service is to be given access.
   path = /tmp

   # If this parameter is yes, then users of a service may not create or modify files in the service's directory.
   read only = no

   # This controls whether this share is seen in the list of available shares in a net view and in the browse list.
   browseable = yes

   # If this parameter is yes for a service, then no password is required to connect to the service.
   guest ok = no

   # This is a list of users that should not be allowed to login to this service.
   valid users = user1 user2 user3

Add the samba users you need, set any password, it will not be used anyway.
smbpasswd -a user1
Samba used the default krb5.keytab, so you can't specify where the keytab will be located.
In this case we have a AD-server where the users are stored, add a user as a service ex. svc-computer_name-cifs. Map the user with ktpass
ktpass -princ cifs/server.domain.tld@DOMAIN.TLD mapuser svc-computer-cifs -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL +rndPass -out krb5.keytab

RC4-HMAC-NT is the strongest encryption offer on 2003 server, on 2008 server you can have up to AES-256.


Move the keytab in a safe way to the samba server(/etc/krb5.keytab).
Test if it works
smbclient //server_name/theshare -d3 -k -L server_name -U user1
Now it should be possible to mount the Sambashare on Linux and Mac after you autheticate whith kinit. A Windows computer in the domain can connect to the Sambasshare directly after you have logged on with a valid user.


----
Written by Tobbe @ 2009-09-21