Categories
Uncategorized

Cold brew in the morning, needs no warming

Categories
Uncategorized

Apple’s hardware lasts a long time

Perhaps what I appreciate most about Apple's products is how long they last. My daily driver is a mid-2011 13-inch Macbook Air which I bought shortly after it was available and have used nearly every day since.

It shipped with OS X Snow Leopard and will support at least macOS High Sierra. That means, including Lion, Mountain Lion, Mavericks, Yosemite, El Capitan and Sierra in between, it has supported eight OS X/macOS releases over 6 years (7 when the next macOS is released).

The machine's been good as gold; I haven't had to replace or repair a single part on the actual machine, and have only needed to replace the Magsafe head and cable on the charger after the wires had frayed. It's fast enough and more to serve my needs.

I also own an iPad 3 (the first with a retina screen), now used almost daily as an entertainment machine by a close family member, and also bought shortly after its availability in early/mid 2012. That makes it over five years old and nowhere close to being retired.

It shipped with iOS 5, the one that introduced the notification center and iMessage. It was updated all the way to iOS 9.3 in Aug 2016, shortly before iOS 10. iOS 9 is recent enough to run streaming apps and VLC.

It's built like a tank and has great battery life even today. I bought a leather Smart Cover along with it and it's aged rather well. I see this being used easily for a couple of years more. I had gifted another iPad 3 to a family member back in 2012; it still remains their main computer. They use it mainly for email, the web and Facebook and the machine is perfectly capable of this.

In passing, I received my previous iPhone, the 5S, as a hand-me-down in 2014 (bought earlier in the year), which now is another family member's main phone. My previous iPhone 5 (also received as a hand-me-down) is from early 2013 and is my backup phone in semi-active use.

(iPhone 4S from early 2012 as bonus. Runs iOS 9.3 like a champ)

Add to all this the fact that Apple hardware ages well. The aluminium wears beautifully over time, and their design is, well, classic. I can see me using my iPhone SE and 9.7" iPad Pro for years to come.

Categories
Uncategorized

Why we need mobile ad blockers

This post about Richard Brandon's Blockchain Summit, as rendered on iOS in (from left to right) Chrome, the Google app, Safari (with two content blockers):


Readable content area highlighted in green.

Categories
Uncategorized

It’s okay getting help

Nick Grossman of Union Square Ventures:

There is a lot of stigma around getting help, in particular around getting psychological help.  Like, what’s wrong with me that I need this, or why can’t I just deal with this on my own, or with my friends, or with diet and exercise.   It took me a while to take the plunge and get help for the things I needed help with…

… it would be ridiculous to expect anyone who wants to excel at anything to do it all alone — the Patriots don’t coach themselves, and Roger Federer doesn’t go it alone either. In those cases, it’s so obvious that help is good and necessary, and that’s true for your mind, your health, your finances, etc.

We shouldn't judge seeking help even as we get better at managing these aspects of our lives. Our education leaves us woefully underprepared for actually dealing with life, and societal conditioning, with its emphasis on individuality, independence, assertiveness and achievement, is pernicious.

Categories
Uncategorized

Next-generation Aadhaar – a detailed look

Premise

Aadhaar is a once-in-national-history opportunity to make government – and private – services efficient and transparent. For the first time, the country is close to having a universal, digital, accessible system of authentication and authorization. It is a system for any Indian to say ‘I – and only I – am me’, and ‘I – and only I – give my assent’. It is lightweight, fast and non-repudiable (I cannot say ‘that wasn’t me’). Finally, it is a platform: there is a trust-hierarchy-based system for entities public and private to build services and applications that use Aadhaar. It is vastly superior to the (much older) United States Social Security Number system. It is as capable as, and in many critical ways better suited to India than Estonia’s E-Estonia national ID system.

For all its future promises and present benefits, Aadhaar has received plenty of bad press. Some of it has been accurate, most of it not. All of it has called for the dismantling of the Aadhaar/UIDAI system and the end of a universal ID. In terms of opportunity cost this would be much worse than the decades-long economic isolation India imposed on itself until the 1990s.

I think we should take a look at some of Aadhaar’s design flaws. We should also be clear about people’s misconceptions about how Aadhaar works. With this, we will not only be able to propose concrete ways to fix these issues but we will also discover new opportunities for transparency, efficiency and – importantly – privacy.

The chief issues with Aadhaar

The four most important ones seem to be

  1. A lack of understanding of how Aadhaar identify verification works
  2. Leakage of personally identifiable information (PII) through third parties
  3. Security of Aadhaar + OTP for remote authentication
  4. Potential for misuse of Aadhaar by the Government for surveillance

Dealing with these issues

1. Entities don’t understand how Aadhaar asked identity verification works

I wrote a couple of blog posts previously about this here and here.

The summary is the following: Aadhaar was designed to be a digital identity system for authentication and authorization. It was not designed to be a photo-ID card like the EPIC (voter-ID card) or PAN card or a drivers’ license. The UIDAI has repeatedly and widely said that an Aadhaar card downloaded from its website and printed is about as ‘valid’ as the glossy-paper ID card it first sends you.

The only two ways to prove your identity using Aadhaar are to state your Aadhaar number and then have your fingerprint or iris scanned – or in some cases, match an OTP received on your Aadhaar-registered mobile phone.

Possession of an Aadhaar card means nothing. You can mock-up a hi-fidelity Aadhaar card with your name, photograph and another person’s Aadhaar number (complete with bar code representation), but it counts for nothing unless you also have identical fingerprints.

The government needs a massive ubiquitous education campaign about this, urgently, to calm concerns about Aadhaar based identity theft. It is only a concern because an Aadhaar card is commonly – erroneously – treated like a photo-ID card for proof of identity, and which is why the leakages of Aadhaar numbers are thought to be such a problem.

2. People’s personally identifiable Aadhaar information leaks when third party systems are compromised

As we have seen, merely knowing a person’s Aadhaar number is not a problem by itself. It’s sensitive data but not secret. UIDAI’s myths/facts PDF draws an analogy with your bank account number, which is present on your cheques. Your PAN number is another example.

One problem with your Aadhaar number being publicly known is when the possession of an Aadhaar card itself is – quite mistakenly – taken as proof of identity by authenticating entities (as we’ve seen in the previous section).

The second, other, problem is leakage of personal data – gender, age, in many case data of birth, physical address, email address and mobile number – from the databases of third parties. This is either a result of the entity’s databases being accessed from outside, or copied by an insider. This data is harmful when publicly known.

Nandan has often said that the canonical Aadhaar data is encrypted at rest and in motion (i.e. when stored on UIDAI servers or accessed via the Aadhaar APIs) and therefore secure. This is true, but the problem is that the UIDAI allows specific entities – either a registered KYC Service Agency or KYC User Agency (KSA and KUA) – to receive the data above (plus the on-record photograph of the person) in response to an eKYC request. Data protection policies and enforcement at these third parties are what is compromised.

The result is that people have trusted the Government with their data, the Government has let third parties – whether public or private entities – make a copy of this data without control over its security at the third party, and now that data has been leaked. Hence the angst.

To put an end to this, we need to re-think KYC from the ground up:

Until now, entities that have been required to perform KYC have maintained proof of identity and address in order for law enforcement to identify, track and locate suspects and criminals. If my Airtel number is found in the call logs of a criminal’s/terroist’s phone, Airtel should be able to provide the police with my name, photograph and address. It’s the same with a bank/other financial serivces in case of say financial fraud.

However, consider this: if these entities have my Aadhaar number, verified via a fingerprint or iris scan, do they also need to have my name, address, email, gender, date of birth (as from my Aadhaar) duplicated on their records? Airtel could just as well provide the police with my Aadhaar number. The police should be among the few agencies to be able to reverse-lookup my personally identifiable data from my Aadhaar number, and that too in a restricted and carefully controlled manner.

We ought not to confuse the company collecting data for its customer profile with data collected for KYC. As things stand today, data received via the eKYC request to UIDAI is used to fill out the customer profile. If and when this customer profile data is leaked, by extension the customer’s Aadhaar data is too.

Companies shoudn’t be using one to populate the other and the simplest way to ensure that is to stop sending them Aadhaar data. An Aadhaar eKYC request can then resembe an Aadhaar authentication request. If the biometric data matches the Aadhaar number, UIDAI sends back ‘Yes’ with a token that indicates the Aadhaar number on record has been verified.

The company can separately have the customer fill out a signup form. The customer should be free to provide whatever information they feel is appropriate here. An office address instead of a home address, an email address set up specifically for commercial purposes or a phone number maintained for such – the company should be able to get in touch with you the way you want. Leave the date of birth and gender blank if so desired: neither does the company have an inherent right to know these details about you; you pay them in return for the service (either monetarily, or by making the data created through your use of the service commercially available, or both), nor should the company be allowed to refuse service if the customer declines to provide these details.

This is customer privacy the way it should be – a clear separation between data required for law enforcement and that requested for commercial purposes. The company’s singular responsiblity, then, is to maintain a ‘verified’ token for every single customer.

Closely related to this is the Who Will Watch The Watchmen problem and concerns about misuse of Aadhaar data for state surveillance/vendetta. Let’s look at this in its own section later.

3. The security of Aadhaar + OTP for remote authentication

Aadhaar + a mobile number OTP is vulnerable to the Dead Grandfather problem; a person could sign up as their dead grandfather if they know the latter’s Aadhaar number and if they have access to their phone; not at all uncommon. So while Aadhaar + biometric authetication is sufficient to, say, open a bank account, Aadhaar + OTP is not: the RBI rightly requires banks to perform in-person verification by getting a person’s ‘wet signature’ on a form to be then placed on record.

The downside to this is that a ground-up digital process still requires a physical step: the customer and a bank representative must physically meet to either authenticate biometrically or collect a signature. As of 2017 some banks have pushed the envelope with verification via a video call, or a photo of the customer holding the day’s newspaper, but both of these are clunky because they attempt to simulate an in-person meeting.

Here I think India could learn from Estonia’s famed electronic national ID.

From 2002 every Estonian resident has been issued a national ID and now a Chip-and-PIN card. There are two PINs: one for authentication and the other to authorize a transaction. Coverage is 100%, the vast majority of government services use this electronic ID, including for voting in national elections. Now this worked well in the PC era in a country with near-100% computer availability: you plugged the card into a USB holder; navigated to a website that authenticated using the national ID, then used the a browser based plugin to input your PIN and you were in.

For mobile-based authentication and authorization, the country issued special mobile SIM cards with a SIM based app to ask for and capture these PINs (Mobiil-ID). This works on nearly any mobile phone – dumbphones or featurephones. The process closely resembles chip and PIN: the web-based or physical service asking for authentication requests the national ID system to prompt the user for their PIN. The SIM-based application pops up the prompt on the mobile phone, the user enters the PIN and the assent is sent back to the service.

This is most definitely something the government should mandate and enforce, in the same way it forced mobile phone manufacturers to build in SOS signalling capabilities.

This mechanism, whether using the chip-and-PIN national ID card or the SIM, is essentially two-factor authentication. One of the factors is something you have (in this case, the smart-card or the mobile phone with the SIM) and something you know (in this case the PIN). Knowing a person’s national ID and only one of the two factors is insufficient for a thief to authenticate (or authorise); they must both possess the card/phone and know the PIN(s). This is unlike Aadhaar + OTP, where as we saw, just knowing a person’s Aadhaar number (which is not secret) and being able to read the OTP is enough.

For what it’s worth, a couple of years ago Estonia introduced a complementary app-based system (‘Smart-ID’) with the same capabilities as Mobiil-ID. This is an iOS and Android app instead of a SIM-based app and can therefore send rich notifications to prompt for PINs. The resident registers their national ID and enters & verifies their PINs once in the app to ‘bind’ that app install to their ID. Subsequent requestes by services for authentication and authorization send notifications, in response to which the resident enters their PIN.

UIDAI can tweak the Aadhaar system, APIs and the m-Aaadhaar app to work in exactly this manner. Whether there are separate PINs for authentication and authorization is an implementation detail.

With close to 200 million smartphone users, this is a chance to bring massive efficiencies everywhere, from payments to signing up for utilities and services to participating in elections and other referendums (the latter can now be held, locally, without setting up the sort of physical and personnel infrastructure elections today require)

(It’s worth mentioning that the app will also (as of 2017) support TouchID and other fingerprint based authentication, like Apple Pay. Note that this is not a traditional biometric scan; the fingerprint isn’t captured and sent over the Internet to be matched with the ones on record. The fingerprint is used locally, on the device, to instruct the app to auto-fill the PIN instead of the person entering it every time it is asked for. This is worth emphasising because – anecdotally – there seems to be a widely-held misconception that one can authenticate to Aadhaar biometrically with a fingerprint-reader-enabled phone. That’s not how fingerprint readers work; the fingerprint itself is never stored, even locally. Only an encoded representation is stored on a secure hardware element. Subsequent fingerprint scans are also encoded and compared with the original encoded representation.)

4. The potential for misuse of Aadhaar by the Government for surveillance

We proposed earlier that service providers, whether public or private, do not need to have access to Aadhaar data, much less store a copy of it. In the case that law enforcement needs information about an individual, they can reverse-lookup an individual’s record from the Aadhaar number in the UIDAI database. Only specific agencies should be able to perform such a reverse lookup.

By itself, this doesn’t resolve the problem of misuse of the data by these agencies. That with a single identity it becomes easier for law enforcement to track your activity across train and airline ticket purchases, cab rides, hotel and Airbnb stays, lease agreements, card/UPI purchases, even internet browsing activity (these are some among an increasing range of services) and use it to harass you. This tracking is possible even today; with poor data privacy norms/laws, law enforcement can and likely does have access for the data above. A singe identity will make this lookup much easier.

But with the right infrastructure, India can in fact make this sort of tracking more transparent and hold both citizens and law enforcement accountable for their actions. But we need to, once again, re-think data access from the ground-up. There are two closely related aspects to this, technical and legal.

First, we need an instant, non-repudiable, immutable (ie non-reversible and non-tamperable), anonymous, trustless method of recording every Aadhaar based activity, whether authentication or authorization, whether by private/public entities or by law enforcement. In other words, we need an Aadhaar Blockchain. Every API transaction – enrollment, data updation, authentication request, KYC request, Aadhaar token request and reverse-lookup – should be automatically added to the blockchain by the UIDAI system, along with of course the timestamp. Most importantly, the Aadhaar numer of the person requesting (ie the specific law enforcement official) should also be part of the transaction that is written.

Since no other entity than law enforcement is allowed to reverse-lookup, the face that the blockchain contains citizens’ and law enforcement’s Aadhaar numbers will not bea risk to privacy. Unlike a transaction log in a database, a blockchain will also make sure no law enforcement or government official or agency can tamper with records.

Since only a blockchain with a large number of nodes is secure from tampering, let us add as many citizens’ phones as possible as nodes on the Aadhaar Blockchain. Every installation of the MAadhaar application has a copy of the blockchain, and a phone is chosen at random to cryptographically add a transaction block to the blockchain. At close to 200 million Internet-connected smartphones, this is likely to become the most broadly distributed blockchain in the world, and by the nature of blockchains, among the most secure.

Other than national elections, this will be the largest, deepest form of citizen participation in democracy. And unlike an election it will be continuous, an ever-present monitor of any electronic tracking of citizenry by the State.

Second, this blockchain and its data needs legal support. We should have separate courts for matters of data privacy. If a citizen has concerns about surveillance through unlawful access and use of their Aadhaar-linked activity, they should be able to easily move court. The judiciary is now able to go through the Aadhaar access log on the blockchain and reverse-lookup who accessed what data from which citizen: their activity on third party services (through the token lookup), their Aadhaar profile (through the reverse-lookup). Of course, every judicial lookup is also written to the same blockchain, complete with the Aadhaar number of the judicial official and timestamp.

“If you look up my data, I will know so.” This is a watertight framework to guard against the vast majority of cases of misuse of Aadhaar data for unalwful surveillance and potentially vendetta/harassment.

We have to make an exception for matters of national security, and such cases need to be explicitly spelt out. Only a handful of specific named people in military, law enforcement and the Government should be able to lookup data without it being written to the regular Aadhaar Blockchain (though it may be written to a smaller, much more private Blockchain). These are activities that need to be kept secret and while I am not a fan of such exceptions, I can allow for the possibility of such cases. Of course we will need to codify in law which positions are allowed to make such secret requests.

Summary

Aadhaar is a system that has no contemporary or historical parallel. Accordingly, to safeguard its operations and data, it will need a technical, legal and societal framework that does not exist commonly today. This piece outlines such a framework.

Fortunately we have technology today to support this, like tokenization and the blockchain. There are unique societal circumstances – a few hundred million data-enabled and connected phones – to participate in the safekeeping of this data. We would not be able to build such a system say ten years ago even if Aadhaar itself had existed.

Aadhaar today has some real issues, which is the whole point of this article. Instead of calling for its dismantling, let’s figure out – constructively, cooperatively – how we can fix design flaws and safeguard access to data; how we can employ technology and the law in a way that makes it more secure and transparent, creates more accountability than existing systems, whose security relies more on obscurity than anything else. The benefits are of a nationwide natively-digital ID are just to great to ignore.

Endnote

There are some other problems with Aadhaar that I have intentionally left out and may address separately once I understand them better:

  • People not being able to enroll to Aadhaar because of lack of reliable fingerprints/problems with iris scanning
  • Being able to sign up for more than one Aadhaar account; being able to enroll as someone else
  • Keeping Aadhaar data current; especially address
  • Ensuring that the service that a person gives their assent to is in fact the service being availed. This is not an Aadhaar-specific problem, but can Aadhaar help here?
Categories
Uncategorized

HDD to SSD: new lease of life for 2012 Macbook Pro

A few weeks ago I swapped the hard disk drive in a 2012 Macbook Pro with an SSD. It’s worked really well; the laptop runs faster than I have ever seen it, and it’s easily added 3 or 5 more years to the laptop’s life. If you have one of these old pre-retina Pros, I highly recommend it.

I used this 250GB Samsung Evo SDD and this CNET guide, although an iFixit one ought to be better. Having the right torx and pentalobe screwdrivers is key.

The process, including the macOS re-install and data restore, took about 4 hours. The actual disk swap took no more than 30 minutes; it’s not very difficult as long as you are careful:

I created a macOS Sierra installer USB pen drive on my own MacBook Air.

In parallel, I created a Time Machine backup of the MacBook Pro (which ran Yosemite) on another disk.

Opened the MacBook, swapped the drives, reattached the bottom panel as in the guide. Here is the machine with the drive in:

The SSD is at bottom left

Then booted from the USB pen drive (hold down the Alt/Option key when booting). In the installer, used Disk Utility to erase the SSD and create a HFS+ partition. Then installed Sierra on it

During the installation, was asked if I wanted to restore from a Time Machine backup, and used the one I had created earlier.

Boom. MacBook Pro has new lease of life.

PS: The machine had 8GB RAM and a 2.6GHz processor. It’s a rather powerful machine let down terribly by its hard drive.

Categories
Uncategorized

Rhine and Shine

France on the right. Germany on the left. Paradise all around.

Categories
Uncategorized

On Password Managers

Tim Bray on what a password manager should do, the risks of syncing your passwords via a centralised web-based store, and 1Password's move to this very (subscription-based) model for business reasons. Succinct, well-written and worth a read: we all use a password manager now, even if it's iCloud Keychain on iOS and macOS or the password auto-fill on Chrome or Firefox.

Categories
Uncategorized

Misunderstanding Aadhaar as proof of identity

This week, I collected my passport from the collection centre at BKC in Bombay using the credit-card-size version of my Aadhaar card as proof of ID. Just to see if it would work – no problems at all.

This is serious. I could have forged another person's Aadhaar card easily and picked up their passport, or someone could have forged my card and collected my passport. Mere possession of an Aadhaar card means nothing; it needs to be verified via any of an OTP, fingerprint scan or iris scan.

Or take this message SBI has sent its customers, demanding a photocopy of their Aadhaar card in order to link their A. number to their bank accounts:

It is trivial to link your Aadhaar number to someone else's bank account, or have your account linked to another's number.

When the largest bank in the land doesn't understand fundamentally how Aadhaar works, we have a big problem [1].

The government needs to launch an aggressive educational campaign if it is to build confidence in the mandatory use of Aadhaar for public and private services.

[1] If done right, Aadhaar-based verification (or linking) is far more efficient than processing paper. Imagine if I could walk into an SBI branch, type in my bank account number and Aadhaar like you do at web check-in counters, scan my finger and walk out. It would take less than a minute per person and no staff. Each branch likely has a fingerprint scanner already given that it's how they sign up new accounts.

Categories
Uncategorized

Small Identity

The solution is to give your identity a very small footprint. The fewer things you define yourself by, the fewer constraints you have on further growth.

Tynan.