Эх сурвалжийг харах

Added Computer Security lesson 2 3

Federico Amedeo Izzo 9 жил өмнө
parent
commit
6e4d5314bd

+ 151 - 0
Computer Security/lesson_02.md

@@ -0,0 +1,151 @@
+# Computer Security - lesson 2
+#### Stefano Zanero
+###### 11 March 2016
+## Security as risk management
+In the equation Risk=AssetxVulnerabilities X Threats
+
+We can control only the vulnerabilities, and we need to reduce the risk by
+reducing vulnerabilites.
+There is a __direct cost__ of doing security and it is composed of:
+- Management cost
+- Operational cost
+- Equipment
+
+But the more relevant part are the __indirect costs__
+- Less usability es: a phone with pinlock is more slow than a locked one
+or airport security makes traveling slower.
+- Slower performance
+
+Doing some types of security checks can reduce productivity
+We need to balance these costs with the risk reduction.
+
+Security is not a problem that can be solved by throwing money at it,
+For example adding another layer of metal to the caveau will not
+ make it more secure if the keypad is still broken.
+
+### Airport security example
+Under the airport security *identity checks* are not a security measure,
+because we have not a list of terrorist names and anyway they won't use
+their real name; *identity checks* are only a commercial measure, 
+to avoid ticket reselling.
+
+The *buddy systems*: requiring two different people for doing a particular job
+is used in finance, nuclear weapons or flights cockpit.
+The *positive bag match* is making sure that the luggage is loaded on the plane
+only if the passenger is taking the plane - Backerby disaster
+
+The airlines policies are thought to avoid anything but the suicide attacks
+
+Before 9/11 policies were only considering non suicide hijackers
+After 9/11 the plane is considered as a weapon and the cabin is locked during flight
+And in case of hijacking the pilot has to land the plane somewhere regardless of 
+what happens outside the cabin.
+
+The liquid restriction policy was made after a failed liquid bomb attack,
+it failed because the metal detector avoided carrying a detonator.
+and it was not necessary but it was made because people wanted to know 
+that a countermeasure was taken.
+
+The liquid restraint is still there because it can't be taken away,
+otherwise someone could blame you even if the restraint would have been not effective.
+
+Bad security measures are taken because they fit well in the agenda of people
+taking decisions.
+More things often result in more hassle and in more cost but they do not raise security.
+On the contrary the illusion of security is a security breach itself.
+
+For example lithium batteries are a more serious issue for security but a cellphone ban
+would destroy the business.
+
+### Boundaries
+A __trusted__ element is not a *trustworthy* one but is the one that when compromised,
+breaks the system.
+For example in a computer the CPU is a trusted device because you trust it on making its work.
+So we set a __boundary__ on things you can't control.
+
+A little more paranoia is *helpful*, but in general you need to be secure against the enemy
+that you think you're facing, for example the NSA, your employer, your fiancee.
+
+## Cryptography
+Starting from the greek society writing became more diffused and some
+ systems were created like the strip of sheep skin rounded over a particular stick
+In the following centuries cryptography was more of a wit game (creating/breaking it)
+While during WWII cryptography (and its cracking by Turing) played a key role.
+
+Alan Turing worked at Bletchley Park and created The Bomb, based on poland models
+it was not general purpose but it breaked the Enigma code.
+
+Shannon was also an important subject for Crypto history.
+In 1949 wrote a paper named "Communication theory of secrecy"
+And we are still using the same terminology (plaintext, cyphertext)
+
+Shannon used the Kerckhoffs principle (1883) in his paper and it is the following:
+A cryptographic system is secure only if the attacker can't break it even knowing the algorithm.
+This makes necessary a key to use with the algorithm to avoid the algorithm itself being sufficient to decrypt
+Also we must not be able to derive the key from a plaintext and cyphertext couple.
+
+Shannon wondered if there exists a perfect cipher.
+A perfect cipher should not diffuse information.
+An example of information diffusion is the other players moves in a card game.
+
+__Shannon theorem__
+```
+In a perfect cipher the number of keys must be greater or equal to the number of possible messages
+```
+If we have less keys than messages, i can say that the ciphertext generated by those keys are excluded
+this way we have an information leak.
+
+So perfect cipher exists, the minimal one is called __one time pad__
+__XOR__ is an operation used often in cryptography because it is reversible.
+
+The key used in one time pad is burned when used, and you need to communicate securely a key
+as long as the message, so it is practically unusable.
+
+Practically *no real world cypher is perfect*
+
+### Imperfections and brute force
+The keys can be found by __bruteforcing__ or trying all the possible keys
+until you find an output that makes sense.
+If the key is as long as the message, we can get all the possible cyphertexts that makes sense
+not only the right one.
+
+```
+Any real world algorithm is vulnerable to bruteforce
+```
+
+That is an uneliminable issue
+An algorithm is broken if there is a faster way than bruteforce to break it
+
+### Breaking cyphers
+- __cyphertext attack__ analyst has only ciphertexts with the same given key.
+This attack is the most powerful because we need only cyphertext (less requirements)
+- __known plaintext attack__
+- __chosen plaintext attack__
+
+```
+We don't have a way to know if an algorithm is robust, we can only try to break it and if we succeed we know it wasn't
+```
+In symmetric cryphtography we need to share securely the key, this is an `Elephant in the room` problem, 
+(a problem that is enourmous but nobody speaks about).
+
+It was an issue until in 1976 Diffie and Hellman introduced asymmetric encryption.
+
+exercise: broke the zip example without bruteforcing
+
+### Symmetric encryption
+__Substitution__ also called Caesar cipher, every letter is shifted of the key amount.
+- issues: english have only 26 charachters so we have only 25 keys (bruteforce).
+It is also a monoalphabetic cypher, so repetitions and structured of the words are visible.
+- polyalphabetic way: More secure way of doing it
+__Transposition__ (or diffusion) means swapping the values of given bits
+- For example by writing horizontally in a matrix the charachters of the plaintext 
+and reading vertically the cyphertext
+- It can't be breaked by pen and paper but with a simple python program.
+
+Modern diffusion and substitution algorithms: DES, IDEA, AES
+
+### Case study: DES
+During auditing NSA suggested the adoption of different S-boxes than the originals
+S-Boxes: tables for doing substitutions.
+
+

+ 48 - 0
Computer Security/lesson_03.md

@@ -0,0 +1,48 @@
+# Computer Security - lesson 3
+#### Stefano Zanero
+###### 17 March 2016
+## Note on previous exercize
+__Transposition exercize__
+To solve the symmetric cypher exercize with transposition, we can use 
+the unix tool 'aspell' as an oracle, it will return the syntactically corrected
+version and the number of errors, and we can find the string with the
+minimum number of errors.
+__Zipfile exercize__
+We can look at the magic number (first 4 bytes) to distinguish which file is
+Then i can compare the encrypted header with the standard one and find the 
+key (if it is 4bytes) or the first 4 bytes of the key (if it is longer).
+
+##Keyspace and bruteforcing
+Halving the size of the key we are not halving the number of bruteforce attempts required
+because the number of attempts (or different keys) is exponential to the size of the key (#bits)
+We have to evaluate if the time and the money needed for bruteforcing is worth for the content
+i'm bruteforcing.
+
+##Asymmetric encryption
+It is called *asymmetric* because we use two keys for encryptyng and decrypting respectively
+Contrary to the simmetric example, now the sender uses the public key of the recipient for encrypting
+and its private key for signing.
+__Common asymmetric cyphers__
+- Diffie Hellman, RSA, ECC, DSS
+__Diffie-Hellman exchange__
+Alice and Bob exchange two files.
+The matemathical mechanism is a one-way trapdoor function:
+- It is very easy to compute example a^x
+- It is very difficult knowing y to compute x=loga(x)
+
+We can use the exponentiation to compute the public key Y, but given Y it is practically
+impossible to find X (the secret key)
+In particular
+Pick p prime number, a primitive root of p
+__Primitive root__: a number a such that raising it to any number between 1 and p-1 and computing the modulo p
+we obtain each number between 1 and p-1
+So Alice and Bob chooses a key: number between 1 and P-1 and compute the exponentiation: Ya^Xb mod p 
+
+## RSA Algorithm
+Instead of using the modulo calculus, we can use two large prime numbers
+- Factoring n is exponential to the number of bits of n
+- Computation time for encryptions grows linearly in the number of bits of n (square-and-multiply algorithm in hardware)
+Usually the asymmetric encryption is used to exchange a common secret then a symmetric encryption is used because of performance.
+
+## Hashing function
+