Six things ICT Provide

ICT is used globally, and has multiple points that are useful to it.

 

Fast Repetitive Processing allows companies and individuals to process large quantities of data at once and quickly, repetitive tasks allow for people to make personalised and tailored reports and information, things like bank statements can be processed rapidly overnight at low points in the day. New technologies mean that they can perform complex calculations quickly and effectively.

 

Vast Storage Capacity means that IT systems can store larger quantities of data in smaller form factor, large businesses are able to store large quantities of data and programs are able to actively process larger quantities of data such as virtual machines or hypervisors. Additionally It has allowed for free services to store files for free, using ad supported media.

 

Improved search facilities have allowed for people to lookup information and files instantly and obtain key information effectively, such as facts and simple calculations through Google and other search engines. Additionally It has allowed for data to be collated together, such as viewing reports and files over a period of time or created by a specific editor. Doctors, for example are able to lookup a patient’s details on a computer instantly, rather than go through paperwork and personal information, they are only able to see what is necessary, this allows for additional security and customisation with reports.

 

Improved presentation of data allows for tailored reports, statistics, graphs and files. Customisation has allowed business to tailor their products and software to their customers based off the data obtained. for example, a coffee chain is able to gain knowledge of their best selling drinks based off sales data and survey information, additionally they are able to combine independent data that would otherwise not be combined, such as weather and sales. It also means that it is easy to understand for someone who does not have a great understanding of a topic.

 

Improved accessibility means that information is available in a variety of formats and has allowed for people to access their data anywhere in the world, previously data was only accessible at one location, but by connecting to the vast internet, consumers as well as businesses are able to take advantage of fast connections and information in order to overcome logistical problems such as storage capacity and even uptime through online hosting, additionally people are able to utilise single peripherals on multiple devices, such as a printer or scanner. Additionally programs are easier to use and accessible to people with special needs.

 

Improved security has meant that files and programs are safe from third party transit prying eyes and nefarious use, data can be almost impossible to access without the right information and can be stored in ways that mean that it is not possible to decrypt remotely. It has also allowed for networks to be open to multiple tiers of people, from guests to teachers accessibility is only available to those who need it and useability is not compromised.

Simulating a phone combination brute force

 

If a malicious individual were to steal your android or iPhone, plug in a device to emulate a keyboard and have it test every single pass code possible, it would take a while, using the following tutorial, you can calculate the time It would take to do so.

Screenshot_2016-03-02-16-46-31

 

 

 

 

 

 

Firstly, you need to grab Python 3.4.3, or you can probably use the version you have installed. Next we need to create the code.

Firstly we need to import datetime to convert the guesses into time it would have taken, we also need to write down what the combination is, for this example, it will be ‘3502’.

import datetime
combination = "3502"

print (" [Info] Starting")

Then we need to add a guess and how long has passed while performing a guess, as it takes time to enter the numbers into the device, we will simulate this as well as 1 second.

guess = "0000"
seconds_taken = 0

def addsec(seconds):
     global seconds_taken
     seconds_taken = seconds_taken + seconds

I could have added the seconds section into the code directly, but adding as a def allowed me to edit it if I needed to, now that we have done the basics, we need to start guessing, there are 10,000 possible combinations, thats combinations such as 0001, this is problematic as leading zeros will not be carried over into integers in python, we can fix this using .zfill(4), which will add the leading zeros back into the guess, allowing us to compare it with the actual combination. This also means that we can convert the guess back into an integer in order to see if we have exceeded our limit. We also need to add a second for a combination guess.

def addsec(seconds):
     global seconds_taken
     seconds_taken = seconds_taken + seconds

while int(guess) <= 9999:
     addsec(1)
     if guess.zfill(4) == combination:
          print (" [Alert] Combination guessed, combination is " + combination)
          break
     else:
          guess = str(int(guess) + 1)
          print (" [Info] Guess is now '" + str(guess).zfill(4) + "'")

Finally, we need to convert our result into a time, we can do this by dividing our seconds_taken (which is coincidentally the number of guesses if you add one for ‘0000’) by 5 (because it takes 5 guesses before a penalty), and then tuning that into an integer, rounding down and then multiplying by 300, to simulate 5 minutes lockout. then we combine penalties_incurred and seconds_taken, to get the time it takes to guess the combination (in seconds), then use that to convert into an hh:mm:ss format, using datetime.

penalties_incurred = int(seconds_taken / 5) * 300
time_taken = (str(datetime.timedelta(seconds=(penalties_incurred + seconds_taken))))
print (" [Finished] The combination would have taken '" + time_taken + "' to brute force. (h:m:s)")
print (" [Finished] You would have had to wait for " + str(int(penalties_incurred / 300)) + " lockout session(s)" )

What have we learnt?

  • There are 10,000 possible combinations.
  • For my combination, it would take 6 days, 30 minutes to guess.

On an Android Device,

  • It would take over 2,000 lockouts to guess every combination.
  • It would take 7 days, 1 hour, 26 minutes and 40 seconds to guess every combination.
  • It would take 8 hours, 28 minutes and 20 seconds to guess 500 combinations.
  • It would take 50 minutes and 50 seconds to guess 50 combinations, with 10 lockouts.

On an Apple Device*,

  • It would take 1666 lockouts to guess every combination.
  • It would take 5 days, 21 hours, 36 minutes and 40 seconds to guess every combination.
  • It would take 7 hours, 3 mintes and 20 seconds to guess 500 combinations.
  • It would take 40 minutes and 50 seconds to guess 50 combinations, with 8 lockouts.

*However, apple wipes their devices after 11 bad combinations, to avoid this, the combinations would have to be entered correctly after the sixth try in order for the apple device estimates to be correct, which defeats the purpose of brute forcing, for that reason apple devices are much more secure, however there is potential for data to be deleted accidentally.

This simulation is flawed because,

  • It does not take into account combinations greater than 4 digits
  • It does not take into account cumulative waiting times
  • It does not take into account device combinations that don’t involve numbers
  • You could increase the number of digits allowed in order to calculate your combination, for example if it was 67890, replacing the 13th line with 99999 would allow you to calculate it.

Here is the full code extract,