Saturday, July 31, 2010

Privacy

[update]


The new, right wing government signed a treaty with the US on DNA and fingerprint exchange. Quote (in Dutch): Een woordvoerder van het ministerie benadrukt dat het om een versnelling van een bestaande procedure gaat die alleen geldt voor de gegevens van zware criminelen. Alleen mensen die een straf van minimaal vier jaar hebben gekregen komen terug in de database. Which roughly translates to: A spokesman from the ministry emphasized that is is just a speed-up of existing procedures, that only delas with data on heavy criminals. Only those with a punishment of four years or more in prison are in the database.

I say: create database link goodbye_privacy connect to X identified by Z, and my fingerprints are found, too.
See below: "I am a criminal"

No deal.

The other day, I got an email from the cable company I have internet, phone and (digital) television from. If I were interested to extend the number of digital television channels for a small amount.
Fair enough; I'd get motor channel, travel channels and science channels: all stuff that interests me, for just a few bucks monthly. I was ready to be served, and clicked the link.
However, the second of three screens I had to fill in, insisted on me indicating sex and date of birth. I fail to see why they needed that, and the more I started thinking about it, the stranger the concept became. I closed the browser.

Ownership

Apart from pissing me off, asking details the company already knew (I have a subscription, damned!), I really, really wonder what a cable company wants with the fact whether I'm a boy or a girl. Or when I was born - maybe they toss in a free porn channel when I'm over 21? What do they do with all these data?
I want to be able to see what they know about me, and decide whether or not they need that data. Cable companies do not need birth dates.

Prime

Actually, there's a programme called Prime that handles just that. It helps deciding whether data is needed for a certain transaction (e.g. when ordering from Amazon, an address is handy, but birth date is superfluous), and -what's more- it tags data: "destroy after six months". Check it out.

I'm a criminal

Well, I guess I must be: the government insisted on having my fingerprints taken and stored in a central database. They really twist your arm to get these prints: no passport unless you deliver. I fail to see why they would need my fingerprints. Oh yeah - I heard about the (stupid!) European guideline for a digitally recorded fingerprint in your passport, "to make it safer". But that is one fingerprint, not four!
It has already been demonstrated that remote identity theft by reading the (ill encoded) chip in your passport, is possible, and a matter of minutes with sophisticated machinery. Costly, but that has never been stopping those parties interested in these documents. And no, contrary to popular belief, there's no need for close encounters: distances of up to 10 meters (30 ft) reading chip data, are achieved.
The danger is that most people believe that passports (or other identification means) are safe, and "unbreakable" and thus the bearer of the identity must be that identity. The opposite has been demonstrated.

Iris scan

Before introduction of the fingerprint on passports, security people were consulted, or given room to comment on the idea. I heard that one of the leading security people of Amsterdam Airport was amongst them. He (or she?) opposed to fingerprints as unsafe and too easy to forge. Just search for "forge fingerprint".
Instead, iris scans would be much safer. He/she was muffled: European guidelines say fingerprints. How stupid.
Interestingly, Schiphol Airport frequent flyers can bypass normal check-in and passport(!) procedures by enrolling into the Privium Club, and having their iris scanned upon entrance as a means of identification. I think I'll put scans of my fingers online soon.

Energy

A while ago, the government wanted people to install smart energy meters. By law, punishable by a hefty fine if rejected. It would allow energy distributors to better and more efficiently distribute electricity and it would allow for energy savings by giving insight in your electricity usage. Guess the fact it should be by law was inspired by the eco terrorists in this country.
This meter would upload data every 15 minutes to the power grid, which would then feed the data to the retailer. Consumers would check the retailers web site for their usage.
Of course, that would not only allow thiefs to find out when I was on vacation, it would also make it quite easy to find out where religious Muslims live: they would be up at 5 am in the morning for prayers. Function creep danger: instead of monitoring electricity usage, police can install energy taps in addition to telephone taps.

Now, with some reasoning, the smart meter concept can still be introduced:

Anonymize!

The first thing to do is to make data, relevant to the power distributer (the gird), anonymous. This can be archived by combining data of a couple of hundred homes, or start metering at a block (of houses) level.

Store locally

The second thing to is, is to change the design of the meter to allow local storage - if I want insight in my electricity usage, I can download my meter readings and create a database. A personal database. And by the time the retailer needs the data for billing purposes, I can push the button, and condensed data will be sent to the retailer.
You need to keep your goals clear; do not try to use the electricity meter to archive energy savings as well as smarter grid control. Do not engineer
function creep.

Pay-per-ride

The Dutch pay-per-ride ("rekeningrijden") system (if it ever gets realized) uses local storage. The minister involved was warned in the early stages of the project not to allow real-time positioning of vehicles. In stead, the unit only sends how long, and against what fee the car was driven every now and then. Data about when and where remains in the car. This is good policy, from privacy perspective. As long as no back doors are possible; function creep would allow the police to write speeding tickets based on historical data ("you cannot have driven from Amsterdam to The Hague in 40 minutes during rush hour!").

Hardware

To minimize chance of function creep, hardware should be used as much as possible: no data means no privacy invasion. Licence plate recognition is commonly used by the police in The Netherlands. When matched against a license plate database (e.g. stolen car, car used with heist), it's a "hit", to be acted upon. All other data ("no-hits") should be destroyed, according to Dutch law. It has happened more than once, that this data was stored: "Very convenient for police cases".
When sensors would have been used that only transmit the hits, this function creep could not have happened.

Again: anonymize!

Very often, there's no need for personal data. The dreaded "OV-chip card" could (and should!) be anonymous. In stead, the default is a personal chip card, that allow the card company to register where and when you traveled. There's a so-called anonymous card, which isn't: you cannot pay anonymous cash: it needs a bank account, due to the nature of the crediting system: you pay the maximum amount upon check-in before the journey, and get restitution upon check-out. In order to be sure you will pay, there's a minimum deposit value that needs to be on your card. This means every card has an identity: either name (by default), or number (the "anonymous" card).
I liked those old train tickets; they worked by attributes. Blue ticket: first class. Yellowish-brown: second class. Anonymous. Simple. Transparent.

Call me old fashioned... I'd rather you'd call me prudent. Wary. Superstitious perhaps, especially when the government is involved

Monday, July 19, 2010

DNSSec, please

Or is it "just" an insecure server? Whole story is here.
Oracle TimesTen users may want to check the latest Patch set

Friday, June 11, 2010

ORA-28047 "database is not a member of any enterprise domain in OID"

Amazing... Two-and-a-half-thousand hits and no answer. Metalink: two hits and no answer. Why me?
OK; here's what is happening, and how to resolve the issue. I have not figured out what causes the problem - it seems intermittent.
Update: might have something to do with settings (stickyness?) on the loadbalancer.

Symptoms

You will be confronted with this error while trying Enterprise Security:
sqlplus s/s@<missing_alias>
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Jun 11 10:26:49 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

ERROR:
ORA-28047: database is not a member of any enterprise domain in OID

Enter user-name:

You have registered the database, and all seems well. No errors were shown during the process, none to be found in the logs, and your database can be found, using LDAP name resolving.
It can also be found in your default Realm (LDAP root in Oracle slang) using:
ldapsearch -h <OID_hostname> cn=<missing_alias>

What causes ORA-28047

Exactly what is says: your database is not known in any Enterprise Domain.
You may check it, using this query:
ldapsearch -h <OID_hostname> -D cn=orcladmin -w <your_password> cn=OracleDefaultDomain uniquemember|findstr <missing_alias>

Change findstr to grep if you're on Unix or Linux; I was resolving this issue with a client that uses MS Windows workstations.
Change OracleDefaultDomain to something else, if you use multiple security domains (I doubt if any)

How to resolve

Well, that's obvious now: add a member to the OracleDefaultDomain. For some reason, Oracle's Directory Manager does not allow you to do that, but other tools do. If all else fails, you can still do it from the commandline, using ldapmodify:
ldapmodify <OID_hostname> -D cn=orcladmin -w <your_password> -f ora28047.ldif

The contents of the file ORA28047.ldif is:
dn: cn=OracleDefaultDomain,cn=OracleDBSecurity,cn=Products,cn=OracleContext,dc=<your_realm_here>
changetype: modify
add: uniquemember
uniquemember:cn=<missing_alias>,cn=oraclecontext,dc=<your_realm_here>

Mind the formatting... lines cannot be broken (as blogger formatting does)

ORA-28273

That should be the sign that all works: plus connects to the database, the database knows it needs to go to the OID, it cannot find the specified user ("s") in the OID:
sqlplus s/s@<missing_alias>
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Jun 11 10:26:49 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

ERROR:
ORA-28273: No mapping for user nickname to LDAP distinguished name exists.

Taking it one step further: ORA-28274

If you use an actual OID-known account, you should get ORA-28274: No ORACLE password attribute corresponding to user nickname exists:
sqlplus bortel/s@<missing_alias>
SQL*Plus: Release 10.2.0.4.0 - Production on Fri Jun 11 10:26:49 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

ERROR:
ORA-28274: No ORACLE password attribute corresponding to user nickname exists.

Wednesday, May 19, 2010

Getting runInstaller to accept your version

Of course, you can start with the "-ignoreSysPrereqs" switch, but if you just want to see if all is OK, fool the installer by tweaking oraparam.ini (in the install subdirectory) by adding the correct version.

I am running CentOS 5.5 (Final), which is indicated by the contents of the file /etc/redhat-release:
[oracle@oracleas install]$ cat /etc/redhat-release
CentOS release 5.5 (Final)

The oraparam.ini file looks like:
[Certified Versions]
Linux=redhat-Red Hat Enterprise Linux AS release 4,redhat-2.1,redhat-3,SuSE-9,UnitedLinux-1.0

[Linux-redhat-Red Hat Enterprise Linux AS release 4-optional]

Change that to:(mind you: two places, although the second one is not very omportant)
[Certified Versions]
Linux=redhat-CentOS release 5.5 (Final),redhat-3,SuSE-9,UnitedLinux-1.0

[Linux-redhat--CentOS release 5.5 (Final)-optional]

and you have managed to trick the installer into believing this was the correct and supported version to start with:
[oracle@oracleas install]$ ./runInstaller -paramFile /home/oracle/oraparam.ini
Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-CentOS release 5.5 (Final), redhat-3, SuSE-9 or UnitedLinux-1.0
Passed


All installer requirements met.

Sunday, May 16, 2010

Clone your Machine (VirtualBox)

It seemed so easy, but it turned out not to be. After using Export/Import once, your disk image gets the internal UUID from the original. You cannot clone your baseline once more, as the UUID is already being used.
You will have to fall back to the CLI, and issue
vboxmanage clonevdi

That will clone your virtual disk. You still have to create a new Virtual Machine (VM), and attach this disk to it. The cloning part takes some time, the rest is peanuts.

Saturday, May 08, 2010

Ubuntu 10.04 LTS and Oracle under VirtualBox

Versions

I'm running Sun VirtualBox V3.1.6 r59338. Got it installed via Synaptic, not the Ubuntu Software Center. The latter does offer VirtualBox, but there seems something wrong with the networking components: I could not get a bridged network working: horrible errors at boot time about missing stuff.

Guest Additions

In order to get the Guest Additions installed correctly, I needed
yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel

Edit: in order to get the installer (of iAS 10.1.40 to work, I needed xorg-x11-deprecated-libs:
yum install xorg-x11-deprecated-libs
/Edit
After telling VirtualBox to load the VBoxGuestAdditions.iso in the "CD Player", I could mount and install:
mount /dev/cdrom /media
cd /media
./VBoxLinuxAdditions-x86.run

From here on, I basically followed these installation instructions.
[root@db10 ~]# groupadd dba10
[root@db10 ~]# groupadd oinstall
[root@db10 ~]# useradd oracle -g oinstall -G dba10 -c "Oracle Software Owner"
[root@db10 ~]# uname -r
2.6.18-164.15.1.el5
[root@db10 ~]# umount /media
[root@db10 ~]# mount -t vboxsf shared /media

Here, I created a permanently Machine Share Folder called "shared", which points to /home/frank/Public. This is where Oracle Installation software resides (via an NFS mount, but that's another story:
sudo mount cubestation:/volume1/Public /home/frank/Public)


I did, however, still need to install openmotif
[root@db10 ~]# yum install openmotif

and add the following lines tot /etc/sysctl.conf:
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

Install fest

In order to prevent "Can't connect to X window", just issue the following:
frank@frank-cs03:~$ ssh -X oracle@192.168.1.230
oracle@192.168.1.230's password:
Warning: No xauth data; using fake authentication data for X11 forwarding.
/usr/bin/xauth: creating new authority file /home/oracle/.Xauthority
[oracle@db10 ~]$ cd /media/Oracle/10GR2_Linux/10201_database_linux32/database/
[oracle@db10 database]$ ./runInstaller

After a while of installing there is another point in time to take s snapshot, and declare this a baseline. This is the result:
[oracle@db10 ~]$ sqlplus system

SQL*Plus: Release 10.2.0.5.0 - Production on Sat May 8 17:53:06 2010

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options

SQL>

And yes, patch 4 (10.2.0.5) is out!

Sunday, May 02, 2010

Ubuntu 10.04 LTS is here... and Oracle?

And I'm somewhat disappointed.

Install woes

I tried installing on a separate disk, a 300GiB Samsung 321KJ.
The first installation attempt failed in the cleaning up phase, at 89%.
The second attempt failed with a read error, and the advice to clean my CD lens or move to a colder area.
Fourth attempt, after checking the installation CD for errors: ditto.
Fifth attempt, other disk (same brand, model and age): ditto.

Most annoying is the lack of feedback on the install proces, and even CTRL-[Funtion keys 1-4] will not display a text box with your error (or standard) output.

Alas...and an alternative install

Gave up on installing 10.04 off a CD. Installed 9.10 (which took about 30 minutes, and went OK), logged on, and allowed the system to update to 10.04 LTS. That took about one-and-a-half hour. Configuring NOT to play that hideous sound on startup, use colors I do NOT dislike, install Thunderbird and VirtualBox and remove IM, Chat and Evolution: another 5 minutes.

Oracle on Ubuntu

I gave up. I did not even try to install any Oracle product on 10.04. Oh, they probably will run, with some tweaking and stuff; after all I managed to get 10G database and Application Server running on 9.10.

But Oracle usually runs on stable versions; once released it looks like it's already falling behind. Therefor I abandoned the idea running Oracle directly under Ubuntu, but use CentOS/RHES instead in virtual machine environments. Ubuntu simply is too much "cuttin' edge" to my liking.
So - now I have a CentOS 5.4 basic Server install with XWindows and that's about it.

Installing CentOS 5.4

I used a net based install. CentOS 5.4 supports FTP and HTTP based installations using a special, only 8.9MB (yup - MegaByte!) bootable install ISO. I discarded about all options, apart from the Server install (no GUI) and XWindows (OUI needs XWindows, although using Ubuntu as Xserver would be possible, too).
Choose a non-expanding virtual disk, as the database and expanding volumes do not mix-and-match. 32GB should do the trick.

Clone your Box

Unfortunately, there's no 'Duplicate' option in VB, so you'll have to do it by hand, which is surprisingly simple: run Export Appliance, followed by Import Applicance. Change the name of the Virtual machine, so you won't end up with two machines with the same name.

Meet db10 - my 10GRel2 database server


Fire it (the cloned machine, not the baseline!) up, change ip-address (/etc/sysconfig/network-scripts/ifcfg-eth0, I used 192.168.1.230) and hostname (/etc/hosts, /etc/sysconfig/network, sysctl kernel.hostname=db10) and Bob's your uncle.