DITA is a publishing/authoring standard suited for technical documents. But it is interesting/perverse that DITA frameworks have such poor documentation.
I like the looks of DITA. I think it has a lot to offer to save time by the classic "the best way to save time is to not do it at all". But gosh I find it hard to penetrate.
Shameless dig: It seems the same as software developers who do not automate their processes ... if your profession is automation then it is perverse that you do not automate.
Rob Smyth
Thursday, 20 November 2014
Friday, 1 August 2014
Keeping an Authenticode certificate secure for signing applications
Your working for a small/medium company and the boss wants you to secure the application with digital signing ... your not in control of IT security, how are you going to ensure that the private keys are secure?
Background
Cyber security is becoming more important to software development as the risk of attack become better understood and more prevalent. Basic .Net application security requires both signing the application with an Authenticode digital certificate and strong name signing the assemblies.
Authenticode signing allows users to identify that the application came from "us" and has not been modified by somebody else since we signed it. Critical for user who download installers and is superior to MD5 checks.
Strong name signing is about ensuring that referenced assemblies have not been replaced.
Both Authenticode and strong name signing are based on the security of private keys. If an attacker obtains a copy of the private key they may impersonate your company without the end user knowing.
How build applications and keep certificates secure
Assumptions:
Best practice is to use tested binaries from a build server (artifacts) such as TeamCity and use an installer build script that recognises key available on USB device.
Using this approach:
See also: Oracle security overview.
Background
Cyber security is becoming more important to software development as the risk of attack become better understood and more prevalent. Basic .Net application security requires both signing the application with an Authenticode digital certificate and strong name signing the assemblies.
Authenticode signing allows users to identify that the application came from "us" and has not been modified by somebody else since we signed it. Critical for user who download installers and is superior to MD5 checks.
Strong name signing is about ensuring that referenced assemblies have not been replaced.
Both Authenticode and strong name signing are based on the security of private keys. If an attacker obtains a copy of the private key they may impersonate your company without the end user knowing.
How build applications and keep certificates secure
Assumptions:
- You network's security is not "perfect".
- You do not want to expose the key to all staff (principle of least privilege) ... they probably do not want to have access anyway.
- You would like separation of duties (optional with the process here).
- All encrypted storage is breakable.
- Obtain a computer with a new OS install that is normally stored, turned off, in a secure location. Purchase and download the Authenticode certificate onto this computer being careful to minimize network connection to placing the purchase and downloading the certificate only. Minimize the attack surface by keeping this secure PC normally off-line.
- Export the certificate's private keys to secure devices (e.g. IronKey). Such a device will self-destruct after N attempts making attacks near impossible.
- Delete the certificate from the PC.
- After testing binaries (testing application), sign assemblies and complete strong name signing on the secure PC with the Authenticode private key available on an inserted USB stick.
Best practice is to use tested binaries from a build server (artifacts) such as TeamCity and use an installer build script that recognises key available on USB device.
Using this approach:
- the private key is only vulnerable to the network during the installer build.
- unsigned binaries can be testing without signing.
- the PC used to perform the final installer build/signing is clean and normally off-line.
See also: Oracle security overview.
Thursday, 13 March 2014
Software R&D manager Yin & Yang
A yin and yang relationship with a software developer who's performance could be measured by how much they (or help a team to) deliver working functionality and a manger.
How do you measure what was not done?
Thursday, 27 February 2014
Resolving WatchGuard connection problem on Win 8.1
A solution I found to a WatchGuard VPN connection problem:
Works better than before now.
Background:
I had been using WatchGuard for a few months on Win 8 and then Win 8.1 successfully although the connection was often 'difficult'. But, for reasons unknown, it stopped working mid Feb 2014.
I was originally using WatchGuard 11.6.0.
Now using WatchGuard 11.8.0. (Build 425534) on Windows 8.1.
- Uninstall WatchGuard
- Delete the folder C:\Users\
\AppData\Roaming\WatchGuard - Reinstall WatchGuard
Works better than before now.
Background:
I had been using WatchGuard for a few months on Win 8 and then Win 8.1 successfully although the connection was often 'difficult'. But, for reasons unknown, it stopped working mid Feb 2014.
I was originally using WatchGuard 11.6.0.
Now using WatchGuard 11.8.0. (Build 425534) on Windows 8.1.
Cyber Security
The Australian Signals Directorate (ASD) has done a great job publishing some real useful, and practical, guides on cyber security. Nice work.
I'm interested in:
I'm interested in:
- ISASecure.
- SCADA security.
- Company IP.
Subscribe to:
Posts (Atom)