Showing posts with label Computer Security. Show all posts
Showing posts with label Computer Security. Show all posts

Sunday, June 03, 2012

The Narcissist-in-Chief strikes again

Going on four years ago, I had strong vibes from the US presidential elections that the country was being swept by a "Things can only get better..." mood so reminiscent of what we had seen a decade or so before. After a couple of years, my thoughts on progress so far could be roughly expressed as

But even Cyclops never managed some of the not-fit-for-purpose stunts we've seen from the White House in recent months in terms of violating operational security. First leaking details of deep cover operatives in Yemen, and now boasting about Stuxnet.

I have no words.

Monday, November 08, 2010

Links for 8-Nov

Asynchronous programming in .net

Also from the PDC -- what next for Silverlight?

Rx Design Guidelines.

SSL/TLS isn't computationally expensive.

NuGet -- gems for .net has a new name.

The Should Assertion Library.

Sandcastle MSBuild integration.

Tuesday, October 05, 2010

Computing per-service SIDs without sc.exe

How it's done is well known:

When configured to have a per-service SID (i.e. type of SID either "Unrestricted" or "Restricted"), the service SID is computed as S-1-5-80-{SHA-1(service name in uppercase)}

Here's a quick script to do it, that can be the basis for including the computation programmatically into e.g. installer generation.

So running it we get:

>& 'C:\Program Files\FSharp-2.0.0.0\bin\fsi.exe' .\ssid.fsx MyService
S-1-5-80-517257762-1253276234-605902578-3995580692-1133959824
>

which compares nicely with:

>sc showsid MyService

NAME: MyService
SERVICE SID: S-1-5-80-517257762-1253276234-605902578-3995580692-1133959824
>

where each of the 5 trailing facets is just the decimal representation of 4 bytes of the SHA-1 hash taken as a little-endian unsigned integer.

Sunday, May 11, 2008

Installing Specsharp (Spec#) on Vista

The Spec# installer gives an error code of 2869 when installing on Vista with UAC active. A little prodding around the 'net led me to this blog comment which gives javascript source for an installer fixer-upper that can be run over the SpecSharp installer and then it runs perfectly happily.

Monday, March 10, 2008

Links for 10-Mar

Dynamic silverlight parts 2 and 3 

The Maybe monad and fluent coding  via C# 3.0 extension methods

Remoting Powershell V1 -- this tack calls winrs explicitly (it's implicit in 2.0)

Capture-recapture code inspection -- a statistically sound way of getting fault metrics

Patching privacy leaks -- a gentle reminder for web apps

Tuesday, August 21, 2007

Sunday, June 24, 2007

My PGP key

New Open PGP key July 2022

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
Yf+W7AtGdx05eNJi9f1OsdF0ZAtLNq6FaTAWJL0=
=qFjr
-----END PGP PUBLIC KEY BLOCK-----

My old 1024-bit PGP key (revoked)

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6ui

mQCNAi9HqY0AAAEEAOui8XEp6QBFeHl8DOA1Lk2BbjS57YRFNIc6QeZEwX4NaUcZ
eeIk90nFVIWdjRRsGobtuMSZMXl9MxZ/cw2xtFfj7JGpU9d1vz12UYebadS+8r2N
yuWEtprjZUGrsXMU1Y1cLuClr+kpsh+4DWNuBXELTILNxlsPD7iuOxyD0TQxAAUR
tC9TdGV2ZW4gQWxhbiBHaWxoYW0gPHN0ZXZlQHdpbmRzb25nLmRlbW9uLmNvLnVr
PokAlQMFEDEXcHz4RAGJlZmjrQEBHaID/1cnTLpxUq5R+sJrm38/nEYv4ynoTnt3
1xAzhOOvV9sl3CPHSm+6KX9svD8e4km473tR6zuDjOSFpSeTs+AE0LX3j63SCYr6
aFNpnTb8bWMne0TywQNVLOcrZO1Ha0gL6pqUaPjkoCm5IbmgFVW5XvLV87kyqgHP
Ro5fgAeEz+ZmiQCVAgUQL4km1loNLV3eBCeNAQEYQQQAgfNjvFXYpwgeq9rqMSNM
UjoZWbEB9LN34ok3wtABjMbWRWkohQS8QSftNrI0aTLv0IFWC+0IIaQ8w7MrQDrT
oTWZx5/dxsyHE2+f0UVlMZrUcMJ3D41bm0USCx5Bj3S6cNOkD8cyRKRxO8MGvZC0
7pWZ4ztIjcsEi+RYSy9YfsSJAJUCBRAvcKeQkrqEpQ6eju0BAfZWBACChMLd6jH3
ZyzoCWYqTlYYx9WPT8XruQvxN3q+tU5rU1N6+JTw8VePsvgC71ux6HishhQ782pG
wJSvgZAplQkwVi3EXGMNm6rYVlLDjAMaZzqKEvudyjl+mTSy1UAvrjJ2aP3dOY4O
4RmwuvOEwXz7Lk8Osrru3lippKwxwUn/VIkAlQIFEC9wgVqcUl4t/Ol3GQEBSTED
/3Vh+p/hAN2wXFrGGXcmOVThvLtmkJ+nDwtWpj7migLD3plN971EVEeuj9mQ91yI
sZBiivI6mx9zvzlLwy20SLRO9izhvmCb+ltsLBNKoQRJ9BcUWAcLfWYKkPpJliXF
ujPyI3PvJ++FtjQsKX0YgJBYyMna37h/HqDxKob7A3n0iQCVAgUQL282VmE0zlX6
a/XdAQH0CAP9HVleA0pcMB/mqrwCbZURfWONAb5Jhbft93fyBKmfDknQ6HQm/ITu
1n6206IEt4xfgQJ1z2eLbOhTwGO9zp9LO6M/MWUD3+euGaA8R4j+XAvM3Uinu4cF
h2ZBJnYCSmBr/ha6uTsNoj21kxbV0azwLXEowKJGoyKrtyrM9AIJrpmJAJUCBRAv
bdQmxErlmHyqa5EBAU/GA/0aEGkRgKgAAlWxg/SSJLlDrdKLHUlwy2OPCVNocJNJ
MtWyDEpDuDfxmdVuSu7p+L+a+QXjz5vAXk3r4IO2/cDJ+eM/+JgLZL1BQpGNaOqZ
W98wG2jyCB3Fq58yn3tK5s6VBCoFKuCwh3xgTug24XXwCmnJhKQVQHeMtcbgnDEA
3IkAlQIFEC9p3tmKFHeOWe3TRQEB/y8EAKvpdhoq0Uox8ls6Qp2ZSClpbRsu5b1y
CPzzb/jo/EjpzknF8WXQkpNtL+F+sAnv2jROa2OtLGgsINVlzzsEZUnI164seop/
+7QWx1YmFn/yRduT5A4KtfzCSGxoWnoYI37IJ4pkrIcqWMRK63TFANJDLHllc/6b
4KflAEGnh+xviQCVAgUQL2nedLiuOxyD0TQxAQEdrwP/dFtJtgtJWTQe+NLs+d8M
XFi5Mgf/ions0jb/KEYC0tNDPuW29jYChSxIRg0J7YOB1EwNL7CxlDXeCQZVr0mB
50JGpZGL0cs1asmzrxe9cgyYnWAPOXeMqW2pcimtZTlXhSvhWnCBa9ngSxD+1HPs
2zvBC34SNW8oVdJaeRvKH94=
=Kkj1
-----END PGP PUBLIC KEY BLOCK-----

I really need to upgrade this one soon.

Wednesday, May 30, 2007

Links for 30-May

Icebreakers -- interview questions designed to put you both at ease and break out of the scripted, stilted talk that results in bad hires and missing good hires (from the same source as the "Design a Monopoly Server" question)

Hygienic Macros -- practice safe meta-programming

Top 300 XSS sites -- Hall of Shame

Accessible expanding and collapsing menu&

Monday, May 21, 2007

Links for 21-May

Getting there…

Sins of Software Security

Evolving the Web : HTML5 -- best viewed in Opera (latest public build) which supports some of the proposed new standard

Designing for Web 2.0 

JeffCroft.com: Elegant Web Typography (link to PDF)

Why "Why Functional Programming Matters" Matters -- A good thinking piece.

Consuming OpenID in Python (Django) web apps

Rails Live CD distro

amb special form -- non-deterministic (ambiguous) computation

"inherit" behaviour via expression in IE -- still working around the omissions

Designing Interfaces: Patterns for Effective Interaction Design

Patterns in interaction design

7 JavaScript techniques you should be using today

New Recommendations for Using Strings in Microsoft .NET 2.0

Rails style creators in Java

How to prevent HTML tables from becoming too wide

Conway's Game of Life in JavaScript -- utilizing the Canvas HTML extension for procedural graphics supported at least by Firefox 1.5, Safari 1.3, Opera 9.0 and later versions of these browsers. (It will not work on Internet Explorer.)

Barrier-Free Web Design -- The essence of Accessibility

The problem with Configurability -- Usability is sensible defaults, not a dial for everything.

Code is for people to read 

Strictness and correctness

An Initiate of the Bayesian Conspiracy

Economizing can be penny wise and pound foolish -- Is your code red, yellow or green?

Contrast and Meaning

Browsers will treat all HTML as HTML 5 -- Interesting conformance constraint for the new version

Programming Tip: Learn a graphics editor -- Always good to broaden your skill-set; especially when you have to fake-up UIs

The 128-bit programming challenge -- a piece of the zeitgeist.

Securing Orcas Workflow Services with& CardSpace

What is Good Software Design?

Illiterate Programming

Learn Prolog Now

Style matters

Programming Quotations

Programming Languages: Application and Interpretation -- e-book

More than just writing code

Can software be just like Lego?

SVG browser support

That catches me up to 9-May-07

Sunday, May 20, 2007

Links for 20-May

The flood continues …

Solving FizzBuzz using compiler error messages -- or another example of how to use C++ templates as a functional programming tool

Redefining Professionalism for Software Engineers

JavaScript hijacking -- Interesting post and comment thread on poor idioms to use within AJAX/JSON type programming

Sandboxing JavaScript using <iframe> -- a technique to mitigate injection attacks

Hard-core customisation of Visual Studio 2005 -- here used to suppress the auto-generation of #region tags around automatic interface generation (which are a nice idea in theory, but soon turn into undocumentation in practice). Thinking of which

Avoiding Undocumentation -- an oldie, but a goodie

loglibrarian: How I Learn New Things These Days

UAC is for developers 

Don't have a COW, man? What Haskell teaches us about writing Enterprise-scale software -- It's surprising what light a functional language, with immutable values can cast on a problem

Optimizations That Aren't (In a Multithreaded World) -- however... (Damned if you do, damned if you don't...)

The "Yes is No" problem -- with dynamic languages, what you see in the source may not be what you get at run-time

Pick a license, any licence

Breaking 104 bit WEP in less than 60 seconds

CSSVista -- Live editing tool for CSS in Firefox and IE simultaneously

Concurrency Crisis -- Is vanilla OO the right tool for handling inherently concurrent systems?

Less programming -- more skill?

Ruby Threads considered worthless -- mainly because they are interpreter-level (aka green) thread, not ones known to the OS (though that does not apply to JRuby which uses the Java threading library instead.

JavaScript framework for Google Maps

More on HTTP.SYS and its security implications -- a must-read

Free icon sets

PPK on HTML5

Firefox as an IDE

Web 2.0 Accesibility

Typography -- compose to a vertical rhythm

The Language of Accessibility -- build it in, don't build barriers

Prioritizing Web Usabilty -- Jakob Nielsen's latest book

Ruby code that will swallow your soul  -- some of the tricks that that Evil Ruby (Extends Ruby's semantics by accessing its internals from pure Ruby code) can enable

Pattern matching with Ruby -- no, not regexes; but something much more fun

SoftCoding -- A dailty WTF essay piece that spots a problem but doesn't quite draw the lesson from it -- the lesson being that Abstraction is somewhat like Optimization.

What if web apps worked like pin-ball machines? -- an interesting view of web idiom

Markup as Craft -- aiming for maintainability and usability

Guidelines for creating better mark-up 

InfoCards and Identity Stability

CardSpace and Unique IDs 

Agile Project management and Competitive Advantage

From Abstraction to Zipf

What does Barbara Liskov have to say about Equality in Java? -- same reasoning applies in C#

Architect's notes for Varnish -- a different look at storage paradigms

The truth about Lisp

Token Description Service for Cardspace

Walking, talking and quacking in Java -- Duck typing and interfaces

When in doubt, make it public

Mount ISO as CD with a MSFT tool -- self extracting .zip with readme.

[Now playing - Uninstall]