May 052013
 

File this one away for further analysis.  Live or delayed (on demand) content delivered via Windows Azure Media Services. 

Takes advantage of local CDNs and provides a platform for targeted advertising as well as taking advantage of the Azure cloud capabilities (e.g. caching, high availability, etc.).

Azure Media

There’s also a high resolution copy available from the Microsoft downloads site if you’d like to “zoom in” on the salient details. 

What I found to be eye catching?

  • Codecs (H.264, MPEG)
  • Device support (HTML5, Flash, Set Top/Smart TV)
  • Platform support (Windows, iOS, Android)

Sounds interesting?  There are ways to find out more.

Check back here soon as I’ll likely to a more comprehensive write-up in a few weeks.

Feb 022013
 

Llewellyn HallYesterday morning I and a colleague made our way to Llewellyn Hall at the Australian National University to hear from the father of the World Wide Web, none other than Sir Tim Berners-Lee.

Amongst his many accolades and roles, Sir Tim is the director of the World Wide Web Consortium (W3C) and a director of the World Wide Web foundation.  You can read more about him here.

 

Originally, Sir Tim’s (free) public presentation was scheduled on a different date, but due to scheduling changes, invitees to the public event were merged with the Linux Conference keynote on February 1st.  Upon arrival at the hall, we made our way upstairs to the mezzanine level, where we awaited the introductions.

Introduction

The introduction was made by Simon Hackett, co-founder of Internode.  Simon surprises the audience by removing the covering from over his ancient NeXT cube, a machine Sir Tim would have been using at CERN when designing the World Wide Web.  The introduction is succinct but not overly long, there were probably very few in the audience not already familiar with Sir Tim’s background.

Tim Berners-LeeSir Tim is welcomed to the stage with a long applause, he is dressed in a Hawaiian style shirt and appears quite casual, even at ease.  Before long, we’ve begun.

Sir Tim has an interesting way of articulating his ideas, his thoughts appear to be processed in short streams of information which means that he often leaves a sentence half complete.

 

Agenda

His familiarity with a technical audience is evident, punctuating very profound viewpoints interspersed with what I could best describe as geek or programmer humour.  This doesn’t take anything away from the points he is making he outlines – his three main topics don’t in any way stray from importance:

  • Web Standards
  • JavaScript
  • Aaron Swartz

StageBefore I get into the specifics of Sir Tim’s presentation it might be worth a quick read-up of the story of Aaron Swartz.

I didn’t realise that Sir Tim had been scheduled to testify on his behalf, nor did I expect Sir Tim to cover the sad and tragic events of Aaron’s fate at this forum.

Afterwards, I reflected on the significance of Sir Tim’s words, and more specifically on the repercussions what had happened to Aaron Swartz.

Disclaimer

Apologies in advance to Sir Tim if my interpretation of his lecture misses the point.  He is clearly gifted when it comes to technology, but can be a little tricky to follow at times.  What follows is a summary based on the notes I took down during the lecture.

I’ve tried to format the text into a logical grouping, some of the points may be out of sequence from what was said chronologically during the lecture.

Web Standards and the Internet as an Open Platform

The web divide.. as the web expands and advances the adoption gap widens.  What are the human right impacts of access to the Internet?

Programmers vs. no programmers: non-programmers see computers as white goods.  The contents (apps) as consumables; they aren’t aware they can write their own.

Programmable web pages vs. static pages

HTML 5 provides many opportunities to craft application logic around content, but there is a battle waging between native platform applications and websites – native apps use the Internet but hide the URL, creating (essentially) walled gardens.

Multi-platform apps; native applications = ‘off the web’. Native apps hide URL, can’t be bookmarked or shared. Good example, use of HTML 5: Financial Times site – bookmark the mobile page, page = mobile app. Offline mode is implicit, accessing the page stores (caches locally) linked pages for offline reading.

Languages & HTML

Early on the major advances came in the form of type-checked vs. non-type checked languages.  The next paradigm in languages will leap forward. Progress has increased, less time between changes/improvements.

JavaScript is ascending, APIs more prevalent. Interface tools are becoming standard.  HD video/video (data) has increased in terms of traffic share (compared to static text, e.g. HTML). Not a drama; HTML is still growing, the web is not dying.

HTML5 video tag is one-way communication. How about p2p, or chat based video (conferencing)? APIs .. Refining patterns and practices.. Standards.. Display/output of apps/content needs to account for varied resolution (billboards to handheld mobile devices) – display needs to scale. Sir Tim processes information at a great rate, it would be amazing to have him chat with Jason Silva.

Rights and Legalities

Your own machine/PC – rights to install your own software.. decline in the usage of PGP verses the joke that bank security is..yikes. It’s important that users understand security for their own safety (e.g. to prevent phishing).

Brings up another point – your browser works for you (user agent), but does it?  We have to be cognisant that not all software has the user’s best interests at heart – nor does all software act on behalf of the user.

Aaron Swartz

To be honest, I only had a peripheral knowledge of what happened to this gifted individual, who managed so much success at an early age.  To be honest, I also had no idea that he was a bit of a crusader for open data, which appears in hindsight to be a factor in the sad events leading up to the taking of his own life.

In brief, Aaron pulled down paid content (during a promotional period, content was free for a limited time) and distributed it freely. These were academic texts normally blocked/locked pay per use.  Instead of being charged with copyright infringement, prosecutors instead laid charges of ‘Breaking into computer system’ which is a felony charge.

This damaging charge can be widely interpreted by prosecution and the law, and also spans breaking terms of service agreements. Breaking into JStore would have been different – he had just downloaded information from a public space to a machine he owned (and no other malicious or damaging actions).

Prosecution threw the book at him, making the case that ‘having tools = intent to use’, therefore worst intentions were assumed instead of proven.  Aaron’s family tried to get charges reduced to misdemeanour, however the prosecution wouldn’t budge; jail time was sought.

After Aaron took his own life, the charges were summarily dropped. One obvious outcome from his tragic event – the law must be changed!  JStore evidentially held no grudge, law enforcement forced the charges.

There is a tribute to Aaron Swartz online at the moment, authors are providing copies of papers in PDF format and using the hashtag #pdftribute.

Legislation

Cybercrime is misunderstood in legal circles, so the applicable laws are very vague.  Prosecution has wide latitude to interpret and prosecute.

Current laws for physical property are being applied to digital media. Laws need overhaul.  Government data (tax payer funded) should be open, public data which is something Aaron Swartz crusaded for. Extensions to copyright needs review.

Q & A

There was limited time, so a few questions were posed from both online and the audience.  I did my best to capture the essence of both the questions and the answers, but sadly these are my notes – so they are not verbatim.

Q: How to describe to a teenager the present and future of the Internet
A: Web is an open platform. Web is what you make it.

Q: How to overcome issues in TCP?
A: not my layer (loud applause)

Q: How important is net neutrality
A: How important? (extremely).  It could be as simple as a (QoS) quality of service issue – commercial interests shouldn’t block or take priority access.

Q: HTML5 standard allowing proprietary plugins?
A: DRM? Sort of defeats the open platform ideal, especially if it breaks pages/sites/content when the locked down component isn’t used or installed. Can understand why people would want this capability, e.g. musicians/content producers need to make a living. How do we build systems which reward the consumer and the content creator (and not the middle man so much)? If it requires new protocols, let’s do it.

Q: Why didn’t MIT ask prosecutors to drop the case against Aaron Swarz?
A: Unclear (note: I didn’t note any extra comments on this answer)

Q: What issues are there with mandatory data retention?
A:  Many.  Can’t distinguish between users on a specific connection, 2 year record of a full history.. potential cache of sensitive or damning information (dynamite)

  • · Information security risk
  • · Impossible to be 100% secure
  • · It’s dynamite.. handle it like nuclear waste
  • · Massive amount of data

Q: After 20 years, how do you feel about the HTML Blink Tag?
A:  Blink tag sucked then, sucks now will always suck. <I wonder how he feels about the marquee tag?>

That’s a wrap.  Sir Tim is unquestionably a wealth of knowledge, he covered so many different, but important topics, I’m glad people of hiss calibre are still around and helping to influence things for the better.

Dec 062012
 

Introduction

This is going to be a multi-part series of articles with the end goal of producing a solution which handles security/identity claims across domain boundaries using WCF services and Active Directory Federation Services 2.0 (with a federation trust) and Active Directory.  In order to demonstrate an approach to handling claims, we need an environment which is capable of supporting the infrastructure configuration we require.

Network Design

I strongly recommend that you put the time and effort into understanding the network topography.  When designing a key foundation of your approach to security, it’s critical that you have a working knowledge of the kind of trust you are placing in your trusted sub-systems.  For the next few articles, I’m going to rely on the following network design, which you can (not without some effort) establish for yourself using virtual machines:

image
Basic Network Design

Host Configuration

To keep resource usage to a minimum, I’ve designed my test environment to reuse hosts for key roles.  In practice, you might not normally mix roles in a production environment – refer to the appropriate ‘best practices’ to properly plan your infrastructure and deployment of critical roles!  Here’s a view of what is on each host:

image
Host Configuration

Installation and Configuration

You’ll need a minimum of two server installs to make this happen, although I’m using four to separate ADFS 2.0 and to configure an Enterprise Certificate Authority rather than a standalone CA.  You’ll also need the Windows Identity Foundation (WIF) SDK installed with your copy of Visual Studio (Visual Studio can be installed elsewhere – not on your test servers). 

I’ll be using Visual Studio 2010 for this, but I’m sure there’s a solution for Visual Studio 2012.  To streamline your configuration, I’ve provided links two some excellent walkthroughs on the MSDN blog site – the one you need to pay attention to is the ADFS 2.0 installation and configuration.

My Mobile Configuration

Since this is a fairly intensive number of operating systems, I’ve put together a fairly decent local configuration which I can take with me.  I’m using a 480 GB SanDisk SSD in an eSATA external enclosure (my laptop does not support USB 3 at the moment).  I’m running VM images off the SSD and getting very respectable performance.  No problems running four VMs in parallel.

 

Kit

How to Get Up and Running

My best advise is to follow the links below.  You’ll need a fair amount of stuff downloaded, so better jump on that.  Once you have some clean OSes and the installation packages, my best advise is to follow the walkthroughs.  Be careful not to accidentally skip anything, the configuration is a bit tricky at times, but if you follow the walkthrough closely you should have a working environment in about half a day or less.  My configuration varies to the walkthrough (as I have two domains), but if you duplicate the configuration for two different directories you should have something which can work.

Links Galore

If you’re going to build a test environment (frankly, just do it – it’s the best way) budget at least a day to get everything configured properly.  Don’t cut corners, it’ll only hurt you later.
Check back soon for the next article, where we’ll start to get familiar with the environment, and build a claims-aware application.

Important Downloads

.NET Framework 4.0 Runtime
http://www.microsoft.com/en-au/download/details.aspx?id=17718

.NET Framework 4.0.3 Update
http://www.microsoft.com/en-au/download/details.aspx?id=29053
Update 4.0.3 for Microsoft .NET Framework 4 – Design-time Update for Visual Studio 2010 SP1
http://www.microsoft.com/en-au/download/details.aspx?id=29054

Active Directory Federation Services 2.0 (RTW)
http://www.microsoft.com/en-us/download/details.aspx?id=10909&hash=Hx4OGpwvFzmf7%2bC7rR1nq18CYhcY%2bSE4ok1ifL%2fvSkYIpezfAxg6ePR2zpfAplmm6g%2fUyL1VU7RtmnuR6T4NWg%3d%3d

Windows Identity Foundation (Runtime)
http://www.microsoft.com/en-us/download/details.aspx?id=17331

Windows Identity Federation SDK
http://www.microsoft.com/en-us/download/details.aspx?id=4451

 

Installation and Configuration Walkthroughs

ADFS 2.0 Installation Walkthrough
http://blogs.msdn.com/b/alextch/archive/2011/06/27/installing-a-stand-along-adfs-service.aspx
Establishing a Federation Trust Walkthrough
http://blogs.msdn.com/b/alextch/archive/2011/06/27/establish-federation-trust.aspx

Building a Claims-aware Web Application Walkthrough
http://blogs.msdn.com/b/alextch/archive/2011/06/27/building-a-test-claims-aware-asp-net-application-and-integrating-it-with-adfs-2-0-security-token-service-sts.aspx

These walkthroughs really helped! 

Finally.. If you hit problems with your STS certificate – check the HTTPS bindings of your local IIS:

http://www.shutuplaura.com/journal/2010/1/5/adfsv2-rc-iis-certificates.html