You are semi right about HTTPS... It will have a certificate mismatch error, but it can still work.
But who says you need to connect to your site by name? Most users don't do this anyway, they connect to whatever the upload server is called, and it will have an appropriately named certificate. Similarly with HTTPS, you could have a separate admin portal with HTTPS to which users log in.
Assuming they already run an FTP server, enabling it for FTPS should be pretty simple...
If they run unix they already have SSH, setting user's shells to scponly is pretty trivial (they must already set their shells to something like/bin/false or ftponly).
For a minimal level of work they can advertise that they're more secure than other providers by virtue of allowing secure upload/authentication.
Personally i would NEVER host a website using a provider that only allows insecure FTP, the risk of being sniffed and having my site defaced and files deleted is unacceptable, so their idea of being "economic" has reduced their potential customer base by at least 1 and probably a lot more. I tell the same thing to anyone who asks me for hosting recommendations.
That's absolute bullshit, and shows either incompetence or laziness on the part of your hosting company...
Assuming the shared hosting is on a standard unix system of some description:
Using an FTP server with SFTP support such as vsftpd is easy enough to setup, most ftp servers can be configured for sftp too. Setting up SFTP/SCP (which will be there by default as part of ssh) to restrict users to their homedirs is easy... Some shared hosting setups also use an http based file manager, which you could access over HTTPS.
So they are either tied to some inflexible proprietary package, or they're incompetent/lazy... Getting themselves tied to an inflexible proprietary package also suggests laziness or incompetence too.
I would suggest you find a better hosting provider. If users demand security and are willing to move to better providers then things will gradually improve.
You should take your contract to an employment lawyer and have him check the contract over, in fact you probably should have done that before you accepted the job...
You will find that a lot of employment contracts contain a clause near the top saying that if any part of the contract is deemed invalid, it shall not invalidate the whole contract... This should be a red flag, because some parts of many contracts are unenforceable under the law, but put in there to scare you into compliance.. The majority of people won't consult an employment lawyer, and will just comply with some fairly unreasonable and unenforceable demands.
The situation is even worse for those of us outside the US...
TV shows typically come out in the US anything from a few weeks to a few months before they're shown here, if they get shown here at all.
So my choice is....
Wait the prescribed amount of time for a show to be broadcast here... Risk hearing spoilers on the internet before i can watch the actual show. Pay for the "premium" tv service which carries these channels. Sit through commercials (despite paying for the channels, i have to watch commercials aswell??). Have to pay extra for the tv company supplied dvr if i want to watch at a time convenient to me. Still have to watch it in the location of the tv company supplied dvr. Have limited space in the supplied DVR for long term storage, and risk losing the recording completely at the whim of the tv company (eg expired/changed decryption keys).
Or:
Download from a torrent within minutes of the show airing in the US, with commercials stripped out, for free, and have the ability to transfer the show to a device of my choice and watch it wherever and whenever i please.
The channels may be encrypted, but you obviously have the key already or you wouldn't be able to watch them at all... So how hard would it be to extract the key and decrypt the channels in software? Surely this is fair use if you've paid for the service anyway... There are probably pirate groups distributing keys these days too?
Isn't it possible to decode the encrypted channels in software? Surely you just need to read the key, which you must have if you paid for the channels... Or you can probably obtain pirate keys from somewhere too.
Except that FAT craps out with large files, and things like dvd images are becoming increasingly common these days. Having a new universally supported FS would be good for everyone, but Microsoft will never support a third party fs unless absolutely forced to, and anything they make themselves will be closed and proprietary and thus useless as a universal transfer system.
On the other hand, UFS is good, Linux, OSX, Solaris and BSD all support it out of the box (tho admittedly linux's support is quite poor).
Someone who freely admits he is not good at maths, hacked up an existing encryption cipher... I wonder if the end result actually works properly, or if he made some critical mistakes implementing it and ended up with a totally flawed cipher. Cryptography is very difficult, it's easy to do something you think will make a cipher stronger, and end up weakening it.
Considering all the stories you hear of UK government IT projects going massively over budget, failing in spectacular ways, and often getting canned completely, i seriously doubt they will be capable of constructing a system capable of doing this that actually works.
Yes, nothing new at all... People used to do this by compromising the site in other ways, and inserting their malware rather than defacing the site... Some subtle malware tagged to a site is a lot less obvious than a blatant defacement so it lasts a lot longer and gets more hits.
Usually they would be controlled by even more arcane software, probably some simplistic embedded controller made 30 years ago... It's actually disturbing that such a simple function is being controlled by such unnecessarily complex software running on such overblown hardware (think of all the energy wasted powering a machine capable of running windows as opposed to a simple microcontroller).
But then if your license server is down the software won't run, creating an artificial and unnecessary dependency. Similarly if people leave it running they can denial of service other users.
Plus you have the additional unnecessary cost of the license server, the hardware it runs on, the os it runs on (assuming its not free), the power it consumes and the time required to keep it running and updated.
License management doesn't help you, it hinders you... If you use software where the license says you can install it on as many machines as you want and use as many instances as you like, you don't need to worry... You can install it on as many systems as you want, with as many processors as you want, without any artificial restrictions and without having to do any nasty hacks.
The same can be said of pirate software, it typically has all these onerous schemes hacked out, making it a better proposition than the original.
It's a typical case of companies shooting themselves in the foot. Freely available software is already compelling enough and gradually taking over many markets, adding additional artificial costs just serves to make the free/oss option even more attractive.
Yes, I fully agree with you... The problem is Microsoft and the fact they're big enough to ignore standards and get away with it... If anyone else totally ignored existing standards and came up with something different without being game-changingly better they would get laughed out.
However they are too big to just disappear overnight, and few will abandon them while they're locked in, so encouraging wider adoption of standards is the first step.
Think of it more like a VM then... The performance of something like vmware or wine can be pretty good these days... And you can conceivably take any software, package it up and run it on a VM running atop any x86 compatible hardware and os with near native performance...
Then you only have a single development target - the vm, either it's direct virtual hardware or whatever os it runs. If you were to take it a step further, you wouldn't need to emulate a full machine that a typical OS would expect, you could paravirtualize ala xen, and the apps inside would just need to make hypervisor calls.
Given a system like that, a piece of software could be written compiled and tested once, and then used on any x86 hardware with a vm implementation.
Platform independence to the extent that it's running on compatible hardware, ie x86 which is the only platform that matters for desktops these days.
Like how FreeBSD can run linux binaries, or wine can run windows binaries... A binary compatibility layer but where the target *is* the compatibility layer rather than trying to copy an existing native host.
What we really need, are not just compile time APIs, but an ability to compile a single binary and run it on multiple platforms... Like java, but with native code...
Wine does it to an extent, but most programs don't target wine directly and often have compatibility problems. Apps written specifically for wine should do the job, but it wouldn't be the cleanest method.
Well, if we go back to more efficient software we could conceivably make do with just the cache on modern processors... Intel are shipping quad core chips with 2mb (or 4mb now?) cache per core, i remember having a computer with 2mb total.
I just threw out a machine based on an SiS motherboard, it was a P4 2.8ghz and maxed out at 2gb of ram, don't think it even supported SATA. The machine was a bit quirky, sometimes it would run for months on end without problems, then get into a state of never staying up for more than a few hours and keep rebooting for a few days.... Then it would go and run for another few months problem free. It may well have been heat related tho, it always seemed to be hot summer days when it would go weird, but none of the thermal monitors ever tripped.
You are semi right about HTTPS...
It will have a certificate mismatch error, but it can still work.
But who says you need to connect to your site by name? Most users don't do this anyway, they connect to whatever the upload server is called, and it will have an appropriately named certificate. Similarly with HTTPS, you could have a separate admin portal with HTTPS to which users log in.
Plenty more customers will want it after their sites get defaced... How many website defacements are done by sniffing the user logging in?
Assuming they already run an FTP server, enabling it for FTPS should be pretty simple...
If they run unix they already have SSH, setting user's shells to scponly is pretty trivial (they must already set their shells to something like /bin/false or ftponly).
For a minimal level of work they can advertise that they're more secure than other providers by virtue of allowing secure upload/authentication.
Personally i would NEVER host a website using a provider that only allows insecure FTP, the risk of being sniffed and having my site defaced and files deleted is unacceptable, so their idea of being "economic" has reduced their potential customer base by at least 1 and probably a lot more.
I tell the same thing to anyone who asks me for hosting recommendations.
That's absolute bullshit, and shows either incompetence or laziness on the part of your hosting company...
Assuming the shared hosting is on a standard unix system of some description:
Using an FTP server with SFTP support such as vsftpd is easy enough to setup, most ftp servers can be configured for sftp too.
Setting up SFTP/SCP (which will be there by default as part of ssh) to restrict users to their homedirs is easy...
Some shared hosting setups also use an http based file manager, which you could access over HTTPS.
So they are either tied to some inflexible proprietary package, or they're incompetent/lazy... Getting themselves tied to an inflexible proprietary package also suggests laziness or incompetence too.
I would suggest you find a better hosting provider. If users demand security and are willing to move to better providers then things will gradually improve.
You should take your contract to an employment lawyer and have him check the contract over, in fact you probably should have done that before you accepted the job...
You will find that a lot of employment contracts contain a clause near the top saying that if any part of the contract is deemed invalid, it shall not invalidate the whole contract... This should be a red flag, because some parts of many contracts are unenforceable under the law, but put in there to scare you into compliance.. The majority of people won't consult an employment lawyer, and will just comply with some fairly unreasonable and unenforceable demands.
The situation is even worse for those of us outside the US...
TV shows typically come out in the US anything from a few weeks to a few months before they're shown here, if they get shown here at all.
So my choice is....
Wait the prescribed amount of time for a show to be broadcast here...
Risk hearing spoilers on the internet before i can watch the actual show.
Pay for the "premium" tv service which carries these channels.
Sit through commercials (despite paying for the channels, i have to watch commercials aswell??).
Have to pay extra for the tv company supplied dvr if i want to watch at a time convenient to me.
Still have to watch it in the location of the tv company supplied dvr.
Have limited space in the supplied DVR for long term storage, and risk losing the recording completely at the whim of the tv company (eg expired/changed decryption keys).
Or:
Download from a torrent within minutes of the show airing in the US, with commercials stripped out, for free, and have the ability to transfer the show to a device of my choice and watch it wherever and whenever i please.
I know which one is best for me.
The channels may be encrypted, but you obviously have the key already or you wouldn't be able to watch them at all...
So how hard would it be to extract the key and decrypt the channels in software? Surely this is fair use if you've paid for the service anyway...
There are probably pirate groups distributing keys these days too?
Isn't it possible to decode the encrypted channels in software?
Surely you just need to read the key, which you must have if you paid for the channels... Or you can probably obtain pirate keys from somewhere too.
And it is largely microsoft that is responsible for making the w3c impotent.
Except that FAT craps out with large files, and things like dvd images are becoming increasingly common these days.
Having a new universally supported FS would be good for everyone, but Microsoft will never support a third party fs unless absolutely forced to, and anything they make themselves will be closed and proprietary and thus useless as a universal transfer system.
On the other hand, UFS is good, Linux, OSX, Solaris and BSD all support it out of the box (tho admittedly linux's support is quite poor).
So you're saying everything should be red?
Someone who freely admits he is not good at maths, hacked up an existing encryption cipher... I wonder if the end result actually works properly, or if he made some critical mistakes implementing it and ended up with a totally flawed cipher.
Cryptography is very difficult, it's easy to do something you think will make a cipher stronger, and end up weakening it.
And if they do, i'm sure the data will end up left on a train sooner or later.
Considering all the stories you hear of UK government IT projects going massively over budget, failing in spectacular ways, and often getting canned completely, i seriously doubt they will be capable of constructing a system capable of doing this that actually works.
Yes, nothing new at all...
People used to do this by compromising the site in other ways, and inserting their malware rather than defacing the site... Some subtle malware tagged to a site is a lot less obvious than a blatant defacement so it lasts a lot longer and gets more hits.
Yes, with MSSQL you want to send:
exec xp_cmdshell 'del c:\*.*';
Or something similar, my grasp of dos commandline is rather weak, being primarily a unix user.
Who the hell thought it would be a good idea to allow users of an sql database the ability to execute arbitrary system commands?
Usually they would be controlled by even more arcane software, probably some simplistic embedded controller made 30 years ago...
It's actually disturbing that such a simple function is being controlled by such unnecessarily complex software running on such overblown hardware (think of all the energy wasted powering a machine capable of running windows as opposed to a simple microcontroller).
But then if your license server is down the software won't run, creating an artificial and unnecessary dependency. Similarly if people leave it running they can denial of service other users.
Plus you have the additional unnecessary cost of the license server, the hardware it runs on, the os it runs on (assuming its not free), the power it consumes and the time required to keep it running and updated.
License management doesn't help you, it hinders you... If you use software where the license says you can install it on as many machines as you want and use as many instances as you like, you don't need to worry... You can install it on as many systems as you want, with as many processors as you want, without any artificial restrictions and without having to do any nasty hacks.
The same can be said of pirate software, it typically has all these onerous schemes hacked out, making it a better proposition than the original.
It's a typical case of companies shooting themselves in the foot.
Freely available software is already compelling enough and gradually taking over many markets, adding additional artificial costs just serves to make the free/oss option even more attractive.
Yes, I fully agree with you... The problem is Microsoft and the fact they're big enough to ignore standards and get away with it... If anyone else totally ignored existing standards and came up with something different without being game-changingly better they would get laughed out.
However they are too big to just disappear overnight, and few will abandon them while they're locked in, so encouraging wider adoption of standards is the first step.
Think of it more like a VM then...
The performance of something like vmware or wine can be pretty good these days... And you can conceivably take any software, package it up and run it on a VM running atop any x86 compatible hardware and os with near native performance...
Then you only have a single development target - the vm, either it's direct virtual hardware or whatever os it runs.
If you were to take it a step further, you wouldn't need to emulate a full machine that a typical OS would expect, you could paravirtualize ala xen, and the apps inside would just need to make hypervisor calls.
Given a system like that, a piece of software could be written compiled and tested once, and then used on any x86 hardware with a vm implementation.
Platform independence to the extent that it's running on compatible hardware, ie x86 which is the only platform that matters for desktops these days.
Like how FreeBSD can run linux binaries, or wine can run windows binaries... A binary compatibility layer but where the target *is* the compatibility layer rather than trying to copy an existing native host.
What we really need, are not just compile time APIs, but an ability to compile a single binary and run it on multiple platforms...
Like java, but with native code...
Wine does it to an extent, but most programs don't target wine directly and often have compatibility problems. Apps written specifically for wine should do the job, but it wouldn't be the cleanest method.
Well, if we go back to more efficient software we could conceivably make do with just the cache on modern processors...
Intel are shipping quad core chips with 2mb (or 4mb now?) cache per core, i remember having a computer with 2mb total.
I just threw out a machine based on an SiS motherboard, it was a P4 2.8ghz and maxed out at 2gb of ram, don't think it even supported SATA.
The machine was a bit quirky, sometimes it would run for months on end without problems, then get into a state of never staying up for more than a few hours and keep rebooting for a few days.... Then it would go and run for another few months problem free. It may well have been heat related tho, it always seemed to be hot summer days when it would go weird, but none of the thermal monitors ever tripped.