Archive for 2018

PC, Smart phone shipments declining

Thursday, March 1st, 2018

I noticed two apparently-unrelated news articles today:

9to5google.com

and

theregister.co.uk

One talks about declining unit sales of phones and the other talks about the same thing for PCs.

Reading these articles, you’d think the sky is falling. Less phones are selling, on an annual basis! Less PCs too! Oh no! These industries are in trouble!

I think the reality is actually much simpler: PCs have been quite good for years now. Smart phones have likewise reached a plateau in terms of functionality and performance. Sure, new PCs and phones are nicer than old ones, but the extra screen pixels, camera resolution and compute power are not solving any new problems – they just meet the same old needs slightly better than before.

More than that, both PCs and phones are increasingly used to access cloud platforms. The heavy computation, storage, etc. are done on someone else’s server, not on personal devices any more. This makes local compute and storage even less meaningful.

So when a hardware manufacturer asks for $1000 for a shiny new phone or $1500 for a shiny new PC, most consumers compare the extra value of the new toy to the functionality of their existing PC or phone and choose to just leave the old device alone. It’s not broken. It’s working fine. Why upgrade?

I think this is the new normal. If you write software, or provide on-line services, then you shouldn’t care about this. People are on-line pervasively. They use browsers to access everything. There is no problem here.

If you are a phone or PC manufacturer, you just have to reset your expectations. The hardware replacement cycle is lengthening, not because consumers don’t want your product any more, but because your last generation was very good and the current generation is not so much better as to justify a new purchase. You’ll still sell lots of units, but the age of rapid growth is over. Heck, the only way you’ll grow your shipments is to win more market share from competitors. Get used to flat sales and razor thin margins folks. That’s the steady state of selling hardware.

Will this situation change? I doubt it. I have a hard time imagining what new capabilities phone or PC makers will be able to invent tomorrow, to excite consumers into a big hardware refresh cycle.

So a tough situation for hardware makers and a good situation for everyone else. That’s life.

Groups versus roles

Monday, February 12th, 2018

Periodically, I’m asked what the difference is between groups and roles. This is coming up even more frequently now that we’ve released version 11.0 of the Hitachi ID Identity and Access Management Suite, which includes full lifecycle management of groups (i.e., create, delete, update group objects on systems like AD).

This is actually a harder question to answer than one might think, because different systems and applications use the terms interchangeably. The object that I think of as a group might be called a group on one system (e.g., AD) and a role on another (e.g., SAP).

Ambiguous and overloaded terminology is very common in the IAM business, unfortunately.

Still, there’s a difference, once you define the two terms. To understand it, we should start with definitions. I’ll use Hitachi ID’s standard nomenclature here:

  • A group is an object that exists on a target system (LDAP, AD, SAP, RAC/F, etc.). Accounts are attached to the group as members. The group is assigned security privileges. This way, it’s not necessary to assign individual access rights to each user — which would be painful for a variety of reasons.Note that this is an approximate definition. For example, on some systems, groups can contain other groups as members (AD, RAC/F come to mind). On other systems, groups are also used as mail distribution lists (AD, LDAP). In some cases, a group on one system can contain among its members accounts or groups from another system (AD with cross-domain groups, for example).
  • A role is an object that exists on the IAM system. It’s used to collect entitlements (mainly groups, but also accounts) on target systems for more convenient assignment. Roles are typically nested — i.e., roles can contain other roles.Roles may be “technical” which just means that they represent collections of entitlements that are normally assigned together, but might not make much sense to business users, or they might be “organizational” which means that they represent business functions that requesters, authorizers or reviewers are more likely to understand. The difference here is a bit fuzzy, and that’s OK.

Beyond groups being on the target system and roles being in the IAM system, how are roles and groups different?

It turns out that how these objects are used in practice is quite different!

While IAM software vendors and implementation consultants strive to make role management a business-friendly task that managers will participate in, I’ve found that this rarely comes to pass. Managers rarely have the motivation, skills or time to participate meaningfully in defining or updating role definitions.

This has practical consequences: an IT team is ultimately responsible for defining and maintaining roles. They have limited visibility into business requirements and limited time to spend on any given role. These constraints make role definitions fairly static and formal.

Static, formal IAM roles usually wind up representing business functions (think job code). With static, formal roles it is natural to automatically assign roles: For example, birthright access for employees and contractors, departmental level roles for common access rights, job-code driven roles for jobs that are shared by large numbers of workers, etc. As HR systems or requests update identity attributes, the IAM system recalculates eligibility criteria and automatically assigns or revokes roles.

The consequence of all this is that roles are used to assign highly predictable, very regular access rights to users. If your location, department code, job code or cost centre can be used to predict your access rights and if your access rights are the same as many other people, then roles are the right tool to assign those rights to you, without extra manual intervention.

In practice, some access rights are simply hard to predict based on available data. For example, projects start up and wind down all the time. There is usually nothing in the HR database to indicate that a given user is involved in a project, so automation driven by HR data cannot grant or revoke project-related access rights.

This is part of a general pattern: automatic assignment of rights, via roles or not, only works well if we have both a sufficiently detailed, timely and reliable data source and a matching model that maps from identity attributes to entitlements.

Where this pattern ends is where directly assigned privileges begin. For directly assigned privileges, users could create new roles and request role assignment, but in practice users will skip the role definition step and just request the rights they want. i.e., users will request membership in the security groups that grant access to the share, folder or other item they wish to access, or ask to join a given mail distribution list.

There are two patterns for group membership management: groups may be included in roles, in which case they tend to be automatically assigned to appropriate users, or groups are not part of a role, in which case they tend to be requested on an as-needed basis.

Put another way: roles are formal and static, while groups may also be ad-hoc and dynamic.

What does ad-hoc mean?

  • Ad-hoc groups won’t be automatically assigned, so users must be able to sign into a portal and find and request them.
  • Users often don’t know what group to ask for (or even where to find the request portal), so significant usability support is required.
  • Ad-hoc may also mean creating and deleting the groups themselves, rather than just just requesting membership.
  • Anyone could request anything, so an approval workflow is required to prevent inappropriate requests from being completed.
  • Nobody ever asks for access rights to be reduced, so a periodic access review and revocation process is essential.

And that’s it:

  • Roles are IAM constructs used to build a formal model of predictable, static access rights that are usually automatically assigned,
  • Groups are objects on existing systems and applications. They may either be parts of roles, or may be requested, approved, reviewed and revoked in an ad-hoc manner.

Bitcoin Hype

Tuesday, January 16th, 2018

Blockchain has become quite the hyped technology over the past year.

Consider this: it’s a distributed, validated ledger of transactions. It’s useful to transfer value between parties who may not know each-other, who may wish to remain anonymous and who wish to ensure that transfer is singular — no “double payment.”

That’s the high level picture.

On the other hand, it’s got some draw-backs:

  • It’s computationally expensive, by design.
  • It’s a profligate user of electrical energy.
    Bitcoin alone is estimated to consume over 41 terawatt-hours per year:
    digiconomist.net/bitcoin-energy-consumption.
  • It’s slow.
    The entire Bitcoin network only processes about 300,000 transactions/day
    or about 3.5 transactions/second).
    blockchain.info/charts

People have lots of wild theories about where this technology will bear fruit, but in practice the only major use case today is for criminals to pay for goods and services. Awesome.

The other “use case” today is a speculative market in exchanging Bitcoin for hard currency, like USD. Here’s the chart:

www.xe.com/currencycharts/?from=XBT&to=USD&view=1Y

I recently read a great write-up comparing the hype of blockchain to the reality:

hackernoon.com/ten-years-in-nobody-has-come-up-with-a-use-case-for-blockchain-ee98c180100

So what’s the reality?

  • Is it a safe place to store value? Only if you are sure that your private key and/or password will never be compromised and that you’ll never make a mistake when transferring funds. If you don’t trust yourself enough for that, with large value wealth storage, then it’s a bad platform for you.
  • Are bitcoin exchanges a safe place to store money? Given their history of hacks and shady business, I’d say no.
  • Is it good for funds transfer? Not really, given the cost and delay of transactions. Only criminals who really, really need anonymity would put up with the awful process.
  • Is it good for small payments? Not really. Too slow and costly.
  • Is it a good alternative for hyper-inflationary currencies issued by idiot regimes? US Dollars or Euros are a more practical choice there.
  • Does it have stable value? If you read the news, you know that Bitcoin/USD exchange rates have behaved more like a bubble than an investment-grade product.
  • Would it be a good alternative to inter-bank transfers? Maybe, but not anytime soon.
  • What about smart contracts? Sounds good, but people engaged in legal contracts generally want to understand what they are signing up for, and few can read algorithms. Moreover, how do you tie a smart contract to real-world trigger events?
  • What about using it to manage identities? The only plausible use case here is for citizens or consumers (forget about identities within the enterprise) and in any case it’s not clear how to link such a blockchain to physical things like birth records or driver licenses.

In other words, it’s a cool way for criminals to transfer funds anonymously and a plausible way for institutions to handle large but infrequent transfers among themselves. For everything else, the cost, inconvenience, non-repudiation, delay and even anonymity look like problems rather than advantages.

But everyone is making noises about “doing blockchain,” like this soft drink company:

Long Island Iced Tea?

So why is everyone jumping on the blockchain bandwagon? Because it’s the latest fad, and if your company tells the world that it’s researching the latest blockchain technology, your stock price will probably get a bounce. But don’t hold your breath for results.