Proof of system

There’s a problem with some software user-interfaces, such as graphical shells, text-based shells, web browsers, etc. where the software needs to prompt the user for a secret (e.g. a PIN or master password) but the user can’t be sure that it’s a bona fide request from the software system itself, or some application, web page, or add-in that is pretending to be the system.

Seems to me like the solution to this problem is to have the system software do something that an application/web-page/add-in cannot do, and this leads me to think there should be a small area of a screen in a graphical user interface (textual UI is left as an exercise for the reader) which only the system software can manipulate.

If only the system can manipulate this small part of the screen then it’s a safe place to provide secrets to the system. Also, colour code be used by this reserved part of the screen to indicate when the input focus was active or not. So red on blur and green on focus.

In a web application the reserved part of the screen could be a drop down from the top of the screen over the address bar and toolbars, for an operating system it could be where the ‘Start’ menu button is. It will continue to display even when your app is in full screen mode, except perhaps if you temporarily turn it off during a presentation or game (although there may be some risk attached to allowing that temporary disablement).

If by Rudyard Kipling

If you can keep your head when all about you   
    Are losing theirs and blaming it on you,   
If you can trust yourself when all men doubt you,
    But make allowance for their doubting too;   
If you can wait and not be tired by waiting,
    Or being lied about, don’t deal in lies,
Or being hated, don’t give way to hating,
    And yet don’t look too good, nor talk too wise:

If you can dream—and not make dreams your master;   
    If you can think—and not make thoughts your aim;   
If you can meet with Triumph and Disaster
    And treat those two impostors just the same;   
If you can bear to hear the truth you’ve spoken
    Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
    And stoop and build ’em up with worn-out tools:

If you can make one heap of all your winnings
    And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
    And never breathe a word about your loss;
If you can force your heart and nerve and sinew
    To serve your turn long after they are gone,   
And so hold on when there is nothing in you
    Except the Will which says to them: ‘Hold on!’

If you can talk with crowds and keep your virtue,   
    Or walk with Kings—nor lose the common touch,
If neither foes nor loving friends can hurt you,
    If all men count with you, but none too much;
If you can fill the unforgiving minute
    With sixty seconds’ worth of distance run,   
Yours is the Earth and everything that’s in it,   
    And—which is more—you’ll be a Man, my son!