SlideShare uma empresa Scribd logo
1 de 132
Baixar para ler offline
CRYPTOGRAPHY WITH PHP
MARK NIEBERGALL
ZendCon 2017 Workshop
https://joind.in/talk/7b305
CRYPTOGRAPHY WITH PHP
ABOUT MARK NIEBERGALL
▸ PHP since 2005
▸ Masters degree in MIS
▸ Senior Software Engineer
▸ Drug screening project
▸ UPHPU President
▸ SSCP, CSSLP Certified and SME
▸ Drones, fishing, skiing, father, husband
CRYPTOGRAPHY WITH PHP
ABOUT MARK NIEBERGALL
CRYPTOGRAPHY WITH PHP
ABOUT MARK NIEBERGALL
CRYPTOGRAPHY WITH PHP
ABOUT MARK NIEBERGALL
CRYPTOGRAPHY WITH PHP
OBJECTIVES
▸ Time on the keyboard
▸ Learn about and use PHP cryptography and hashing
libraries
▸ Security considerations with implementation
CRYPTOGRAPHY WITH PHP
OBJECTIVES
▸ Coding time!
▸ Various modules
▸ Estimated time (5, 10, or 15 minutes)
▸ Cryptography games will apply what was covered
CRYPTOGRAPHY WITH PHP
SCHEDULE
▸ 9:00-9:30 Setup and covering slides that including terminology and
cryptography
▸ 9:30-9:50 PHP hash, password hashing
▸ 9:50-10:00 Break, lock picking
▸ 10:00-10:50 CSPRNG, OpenSSL
▸ 10:50-11:00 Break, more lock picking
▸ 11:00-11:15 libsodium
▸ 11:15-11:55 Cryptography Games
▸ 11:55-12:00 Regroup and conclusion
CRYPTOGRAPHY WITH PHP
OVERVIEW
▸ Environment Setup
▸ Why Cryptography
▸ Definitions
▸ Role of Cryptography
▸ Algorithms
▸ Encryption with PHP
▸ Considerations
▸ Cryptography Games
CRYPTOGRAPHY WITH PHP
ENVIRONMENT SETUP
CRYPTOGRAPHY WITH PHP
ENVIRONMENT SETUP
▸ PHP 5.5+, best is 7.0+
▸ Ideally have libsodium PECL extension (see https://
paragonie.com/book/pecl-libsodium/read/00-
intro.md#installing-libsodium) or 7.2 (RC)
▸ Once you are up and running, please help others
▸ Worse case, use https://3v4l.org/
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
▸ Over 100,000 incidents in 2016 with 3,141 confirmed
breaches
▸ Attacks largely for financial gain
▸ Many going after sensitive data
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
▸ Review Verizon 2017 Data Breach Investigations Report
▸ Yearly report
▸ Cybersecurity investigations report
▸ Pulls from many sources
▸ Lots of informative charts
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
Incidents by industry
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
▸ No organization is immune
▸ Cryptography significantly reduces breach cost
▸ Cryptography can prevent leak of actual sensitive data
CRYPTOGRAPHY WITH PHP
WHY CRYPTOGRAPHY
▸ Attack Countermeasures
▸ Good password policy
▸ Encrypt sensitive data
▸ Encrypt computer disks and devices
▸ Keep current with patches
CRYPTOGRAPHY WITH PHP
DEFINITIONS
CRYPTOGRAPHY WITH PHP
DEFINITIONS
▸ Cryptography
▸ The process of writing or reading secret messages or
codes
▸ Classical cryptography started thousands of years ago
▸ Advanced during wars of 20th century
▸ The science or study of secret communications
CRYPTOGRAPHY WITH PHP
DEFINITIONS
▸ Encryption
▸ To change information from one form to another
especially to hide its meaning
▸ En: to make
▸ Crypto: secret or hidden
▸ The actual changing of a communication
CRYPTOGRAPHY WITH PHP
DEFINITIONS
▸ Algorithm
▸ A set of steps that are followed in order to solve a
mathematical problem or to complete a computer
process
CRYPTOGRAPHY WITH PHP
DEFINITIONS
▸ Cipher
▸ A way of changing a message to keep it secret
▸ An algorithm used to encrypt or decrypt
▸ Classically included substitution and transposition
▸ A becomes 1
▸ A becomes Z
▸ Abc123 becomes 123Abc
▸ Backwards
CRYPTOGRAPHY WITH PHP
DEFINITIONS
▸ Hash
▸ To chop into small pieces
▸ Maps data to a string
▸ One-way hash functions
▸ Schneier “workhorses of modern cryptography”
▸ Input is the message, output is the digest
CRYPTOGRAPHY WITH PHP
ROLE OF CRYPTOGRAPHY
CRYPTOGRAPHY WITH PHP
ROLE OF CRYPTOGRAPHY
▸ World War II
▸ Enigma Machine used by Nazi Germany
▸ Code breaking by Allies, including Alan Turing
CRYPTOGRAPHY WITH PHP
ROLE OF CRYPTOGRAPHY
▸ Secure communications from third parties
▸ Confidentiality of communications
CRYPTOGRAPHY WITH PHP
ROLE OF CRYPTOGRAPHY
▸ Secure data at rest
▸ Secure data in transit
CRYPTOGRAPHY WITH PHP
ROLE OF CRYPTOGRAPHY
▸ First 2 A’s in the AAA Framework
▸ Authentication: credentials
▸ Authorization: encrypt and decrypt data
▸ Accounting
CRYPTOGRAPHY WITH PHP
ALGORITHMS
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ One Way Hash
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ One Way Hash
▸ Data is hashed
▸ Cannot go backwards
▸ Integrity checks
▸ Password checks
▸ Identifiers; ex: Git and Mercurial
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ One Way Hash
▸ MD5
▸ SHA-1, SHA-2, SHA-3
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Symmetric-Key
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Symmetric-Key
▸ Same key to encrypt and decrypt
▸ Shared secret key
▸ Susceptible to plaintext attacks (known and chosen) and
cryptanalysis (differential and linear)
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Symmetric-Key
▸ DES
▸ Triple DES
▸ AES
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Symmetric-Key
▸ Blowfish
▸ Twofish
▸ Threefish
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Asymmetric-Key
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Asymmetric-Key
▸ Heavily used in cryptography
▸ Public and private keys
▸ Public key is publicly available
▸ Private key is kept secret
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Asymmetric-Key
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Asymmetric-Key
▸ Public key used to authenticate messages from owner of
the private key
▸ Public key used to encrypt message to send to owner of
the private key
▸ Private key used to decrypt inbound messages
▸ Private key used to encrypt outbound messages
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Asymmetric-Key (Public-Key)
▸ RSA
▸ DSA
CRYPTOGRAPHY WITH PHP
ALGORITHMS
▸ Broken
▸ DES
▸ MD2, MD4, MD5
▸ SHA-1
▸ GOST
▸ Panama
▸ RC4
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ String functions just don’t cut it
▸ bin2hex
▸ strrev
▸ base64_encode
▸ dechex
▸ ord and chr (ASCII)
▸ str_replace
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash
▸ Password hashing
▸ mcrypt
▸ CSPRNG
▸ openssl
▸ libsodium
▸ StupidPass
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash
▸ hash_algos for array of options
▸ hash($algorithm, $message, $raw = false);
▸ hash_file for file contents hash
▸ hash_equals for comparing hashed values
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash - Coding time!
▸ 5 minutes
▸ hash_algos for array of algorithms
▸ Output available algorithms



<?php

print_r(hash_algos());
▸ See https://en.wikipedia.org/wiki/
Comparison_of_cryptographic_hash_functions
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash - Coding time!
▸ 10 minutes
▸ hash($algorithm, $message, $raw = false);
▸ foreach hash_algos generate hash
▸ Review output content, including characters, length
▸ Does different message or message length impact hash
length?
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash - Coding time!
▸ 5 minutes
▸ hash_file for file contents hash
▸ make a text file with some text in it
▸ compare with hash of plain text
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash
▸ == and === are not timing safe comparisons
▸ Nuances with PHP == returning true

var_dump(md5('240610708') == md5(‘QNKCDZO'));

var_dump(md5('aabg7XSs') == md5('aabC9RqS'));

var_dump(sha1('aaroZmOk') == sha1('aaK1STfY'));

var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));

var_dump('0010e2' == '1e3');

var_dump('0x1234Ab' == '1193131');

var_dump('0xABCdef' == ' 0xABCdef');
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Hash - Coding time!
▸ 15 minutes
▸ hash_equals as a timing safe hash comparison
▸ run thousands of iterations, look for patterns with averages
▸ $timeStart = microtime(true); … $timeEnd =
mircotime(true);
▸ array_multisort($timing, SORT_NUMERIC);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ 10 minute break
▸ Lock picking
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ CSPRNG
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ CSPRNG
▸ Cryptographically Secure Pseudo-Random Number
Generator (CSPRNG)
▸ Part of PHP 7 core
▸ For PHP < 7:

composer require paragonie/random_compat
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ CSPRNG - Coding time!
▸ 10 minutes
▸ random_bytes($length)
▸ bin2hex($randomBytes) for human readable version
▸ random_int($min, $max)
▸ PHP_INT_MIN and PHP_INT_MAX
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing
▸ $insecure = md5($password);
▸ Too fast
▸ Brute force
▸ 5f4dcc3b5aa765d61d8327deb882cf99
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing
▸ Anthony Ferrara RFC in 2012 to simplify password hashing
▸ Use password_hash and password_verfiy (PHP 5.5+)
▸ $current = password_hash($password,
PASSWORD_DEFAULT);
▸ PASSWORD_DEFAULT can change over time, currently is
blowfish, max password length of 72
▸ $isValid = password_verify($password, $current);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing
▸ Salt generated automatically
▸ Deprecated as option in PHP 7
▸ Option ‘cost’, target time it takes
▸ password_hash($password, PASSWORD_DEFAULT,
[‘cost’ => 10]);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing - Coding time!
▸ 10 minutes
▸ password_hash($password, PASSWORD_DEFAULT, [‘cost’ => 10]);
▸ notice output pattern, repeat for same password, try variations,
different costs
▸ $2y$10$i49TRWieyhYtQ6P.76R5aOwRisUIqnQJxS6tszUobVkGG8bP9/XsW
▸ $2y$ for algorithm
▸ 10 for cost
▸ 22 character salt, varies by algorithm
▸ Hash as the rest
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ Password hashing - Coding time!
▸ 10 minutes
▸ password_verify($plaintext, $hash);
▸ password_needs_rehash($hash, PASSWORD_DEFAULT,
$options)
▸ Timing safe check
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ mcrypt
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ mcrypt
▸ Encrypt and decrypt
▸ Uses libmcrypt, which hasn’t been updated since 2007
▸ Bug fixes and patches
▸ Use libsodium or OpenSSL instead!
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl
▸ Generate and verify signatures
▸ Certificate Signing Requests (CSR)
▸ Encrypt and decrypt data
▸ Actively supported
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl
▸ Private key generation
▸ openssl_pkey_new([$configs]);
▸ openssl_pkey_export_to_file($privateKey, $fileName);
▸ openssl_free_key($privateKey);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl
▸ Configuration defaults to openssl.conf
▸ digest_alg: Digest method to use
▸ x509_extensions: Extensions to use for x509 cert
▸ req_extensions: Extensions to use for CSR
▸ private_key_bits: Bits for private key generation
▸ private_key_type: Type of key
▸ encrypt_key: Export key with passphrase
▸ encrypt_key_cipher: Cipher for key
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl - Coding time!
▸ 5 minutes
▸ Private key generation
▸ $config = [‘private_key_bits’ => 2048, 'private_key_type' =>
OPENSSL_KEYTYPE_RSA];
▸ openssl_pkey_new([$configs]);
▸ openssl_pkey_export_to_file($privateKey, $fileName);
▸ openssl_free_key($privateKey);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl - Coding time!
▸ 5 minutes
▸ Public key generation
▸ Continue on from private key generation
▸ openssl_pkey_get_details($privateKey);
▸ file_put_contents(‘public.pem’, $details[‘key’]);
▸ Array with keys ‘bits’, ‘key’ (public key), ‘rsa’, ‘type’
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl - Coding time!
▸ 5 minutes
▸ Encrypting data with the public key, decrypt with private
▸ $isEncrypted = openssl_public_encrypt($message,
$encrypted, file_get_contents(‘public.pem’));
▸ $isDecrypted = openssl_private_decrypt($encrypted,
$decrypted, file_get_contents(‘private.pem’);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ openssl - Coding time!
▸ 5 minutes
▸ Encrypting data with the private key, decrypt with public
▸ $isEncrypted = openssl_private_encrypt($message,
$encrypted, file_get_contents(‘private.pem’));
▸ $isDecrypted = openssl_public_decrypt($encrypted,
$decrypted, file_get_contents(‘public.pem’);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ cracklib
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ cracklib
▸ PECL extension, must be installed
▸ Checks complexity of passwords
▸ Still experimental
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ cracklib
▸ crack_opendict(‘/path/to/dictionary’)
▸ crack_check($dictionary, $password)
▸ crack_getlastmessage()
▸ crack_closedict($dictionary)
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ cracklib
▸ it's WAY too short
▸ it is too short
▸ it does not contain enough DIFFERENT characters
▸ it is all whitespace
▸ it is too simplistic/systematic
▸ it looks like a National Insurance number.
▸ it is based on a dictionary word
▸ it is based on a (reversed) dictionary word
▸ strong password
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ 10 minute break
▸ Find group of up to 4 for games
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium
▸ PECL extension
▸ PHP 7.2 core
▸ modern cryptography library
▸ namespaced as Sodiumfunction_name
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium - Coding time!
▸ 10 minutes
▸ Cryptographically secure randomness
▸ Sodiumrandombytes_buf($numberBytes) with each byte being a
random value between 0 and 255 (bin2hex for readability)
▸ Sodiumrandombytes_random16() for random integer between 0
and 65535
▸ Sodiumrandombytes_uniform($maxPlusOne) for uniformly
distributed random integers between 0 and max
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium - Coding time!
▸ 10 minutes
▸ Secret-key encryption and decryption
▸ $key =
Sodiumrandombytes_buf(SodiumCRYPTO_SECRETBOX_KEYBYTES);
▸ $nonce =
Sodiumrandombytes_buf(SodiumCRYPTO_SECRETBOX_NONCEBYTES);
▸ $ciphertext = Sodiumcrypto_secretbox('test', $nonce, $key);
▸ $plaintext = Sodiumcrypto_secretbox_open($ciphertext, $nonce, $key);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium
▸ Public-key encryption and decryption
▸ Sodiumcrypto_box_* functions
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ libsodium
▸ Much more functionality
▸ Password hashing and checking
▸ Key signing
▸ Message Authentication Code (MAC)
▸ Hashing
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ StupidPass
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ StupidPass
▸ composer require northox/stupid-password
▸ $stupidPass = new StupidPass;
▸ $isValid = $stupidPass->validate($password);
▸ $stupidPass->getErrors();
▸ new StupidPass($maxLength, $environmental,
$pathToDictionary, $errorText, $options);
CRYPTOGRAPHY WITH PHP
ENCRYPTION WITH PHP
▸ StupidPass - Coding time!
▸ 10 minutes
▸ install composer, StupidPass
▸ Try out common passwords, custom dictionary, see the errors
▸ composer require northox/stupid-password
▸ $stupidPass = new StupidPass;
▸ $isValid = $stupidPass->validate($password);
▸ $stupidPass->getErrors();
▸ new StupidPass($maxLength, $environmental, $pathToDictionary, $errorText, $options);
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Salts
▸ Algorithm costs
▸ Timing attacks
▸ Brute force attacks
▸ Rainbow tables
▸ Max message length
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Salts
▸ Increased security for digest if done correctly
▸ Ex: $salt . $password
▸ Pepper debate
▸ Let password_hash generate the salt for you
▸ Different salt per password or message
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Algorithm Costs
▸ Default cost for password_hash is 10
▸ Higher cost leads to more processing time
▸ 8-12 is generally a good baseline
▸ Might change depending on hardware available
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Timing Attacks
▸ Analyzing timing for algorithms
▸ Time variation for hashing, encrypting, decrypting
▸ Ex: Username not found, no password check attempted
▸ Ex: String comparisons stop after first mismatch
▸ Timing safety built into functions, take same time for
positive or negative match
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Brute Force Attacks
▸ Timing attack used to brute force list of usernames
▸ Dictionary attack using dictionary and common
passwords
▸ Take time
▸ Advanced Persistent Threat (APT)
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Brute Force Attacks
▸ Countermeasures
▸ Lock accounts, but causes Denial of Service
▸ Add time to each login
▸ Lock by IP address
▸ Vary failed login attempt behavior (Ex: HTTP status,
redirect)
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Brute Force Attacks
▸ Countermeasures
▸ Key words in HTML comments (invalid login, bad
username or password)
▸ Security questions
▸ CAPTCHA
▸ Add another factor (multi-factor authentication)
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Rainbow Tables
▸ Table with hashes already figured out
▸ Used for hashing that always generates same hash for
an input
▸ Counter with modern algorithms, salts
▸ Common for MD5, SHA1, and other older algorithms
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Rainbow Tables
▸ Internet search for the hash
▸ Online hash cracking sites
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Max Message Length
▸ Only X characters considered when generating hash
▸ Ex: MD5 max is 128 characters in, 32 hex out
▸ Ex: password_hash max is 72 characters
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Identify sensitive data
▸ Determine appropriate encryption
▸ Use cryptography to keep data safe
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Cryptography can help minimize damage
▸ Electronic data breaches
▸ Stolen electronic devices
▸ Data transmission
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Cryptography cannot help minimize damage
▸ Phishing attacks
▸ Credential theft
▸ Escalation of privileges
▸ DoS/DDoS
▸ Social engineering
CRYPTOGRAPHY WITH PHP
CONSIDERATIONS
▸ Security education
▸ Verizon Data Breach Investigation Report
▸ SANS Institution, email digest
▸ Krebs on Security blog
▸ OWASP
▸ BrightTALK
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Groups of up to 4
▸ 11:15-11:20 Instructions and rules, get in groups
▸ 11:20-11:45 Coding time!
▸ 11:45-11:55 Review answers
▸ 11:55-12:00 Closing
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Get into your groups of up to 4
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Instructions and rules
▸ Use PHP
▸ Decrypt the data
▸ Record how you decrypted the message
▸ Record plain text answer
▸ Winning team is team with most correct answers
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Time is up!
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Answers
CRYPTOGRAPHY WITH PHP
CRYPTOGRAPHY GAMES
▸ Conclusion
▸ Leverage PHP cryptography and hashing features
▸ Use modern libraries
▸ Encrypt sensitive information
▸ Hash passwords correctly
CRYPTOGRAPHY WITH PHP
QUESTIONS?
▸ Rate on joind.in
▸ https://joind.in/talk/7b305
CRYPTOGRAPHY WITH PHP
SOURCES
▸ Merriam-Webster Dictionary online
▸ PHP.net documentation
▸ Virendra Chandak https://www.virendrachandak.com
▸ OWASP
▸ Verizon 2017 Data Breach Investigations Report
▸ https://paragonie.com/book/pecl-libsodium/read/00-intro.md
▸ https://www.cryptologie.net/article/268/how-to-compare-password-hashes-
in-php/
▸ http://blog.ircmaxell.com/2014/11/its-all-about-time.html

Mais conteúdo relacionado

Semelhante a Cryptography With PHP - ZendCon 2017 Workshop

Go from PHP engineer's perspective
Go from PHP engineer's perspectiveGo from PHP engineer's perspective
Go from PHP engineer's perspectiveSobit Akhmedov
 
Static analysis saved my code tonight
Static analysis saved my code tonightStatic analysis saved my code tonight
Static analysis saved my code tonightDamien Seguy
 
Strong cryptography in PHP
Strong cryptography in PHPStrong cryptography in PHP
Strong cryptography in PHPEnrico Zimuel
 
Cryptography with Zend Framework
Cryptography with Zend FrameworkCryptography with Zend Framework
Cryptography with Zend FrameworkEnrico Zimuel
 
[2017.03.18] hst binary training part 1
[2017.03.18] hst binary training   part 1[2017.03.18] hst binary training   part 1
[2017.03.18] hst binary training part 1Chia-Hao Tsai
 
A Battle Against the Industry - Beating Antivirus for Meterpreter and More
A Battle Against the Industry - Beating Antivirus for Meterpreter and MoreA Battle Against the Industry - Beating Antivirus for Meterpreter and More
A Battle Against the Industry - Beating Antivirus for Meterpreter and MoreCTruncer
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hosterCombell NV
 
The Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year RetrospectiveThe Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year RetrospectiveTahir Hashmi
 
Password (in)security
Password (in)securityPassword (in)security
Password (in)securityEnrico Zimuel
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Combell NV
 
Bitcoin’s blockchain - from hashes to Escrow and beyond
Bitcoin’s blockchain - from hashes to Escrow and beyondBitcoin’s blockchain - from hashes to Escrow and beyond
Bitcoin’s blockchain - from hashes to Escrow and beyondGrzegorz Gawron
 
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...hacktivity
 
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Sri Ambati
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Bastian Feder
 
Cryptography Based Research Projects Ideas
Cryptography Based Research Projects IdeasCryptography Based Research Projects Ideas
Cryptography Based Research Projects IdeasPhdtopiccom
 
Course_Presentation cyber --------------.pptx
Course_Presentation cyber --------------.pptxCourse_Presentation cyber --------------.pptx
Course_Presentation cyber --------------.pptxssuser020436
 
Securing TodoMVC Using the Web Cryptography API
Securing TodoMVC Using the Web Cryptography APISecuring TodoMVC Using the Web Cryptography API
Securing TodoMVC Using the Web Cryptography APIKevin Hakanson
 
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Sandro Zaccarini
 

Semelhante a Cryptography With PHP - ZendCon 2017 Workshop (20)

Go from PHP engineer's perspective
Go from PHP engineer's perspectiveGo from PHP engineer's perspective
Go from PHP engineer's perspective
 
Static analysis saved my code tonight
Static analysis saved my code tonightStatic analysis saved my code tonight
Static analysis saved my code tonight
 
Strong cryptography in PHP
Strong cryptography in PHPStrong cryptography in PHP
Strong cryptography in PHP
 
Cryptography in PHP: Some Use Cases
Cryptography in PHP: Some Use CasesCryptography in PHP: Some Use Cases
Cryptography in PHP: Some Use Cases
 
Cryptography with Zend Framework
Cryptography with Zend FrameworkCryptography with Zend Framework
Cryptography with Zend Framework
 
[2017.03.18] hst binary training part 1
[2017.03.18] hst binary training   part 1[2017.03.18] hst binary training   part 1
[2017.03.18] hst binary training part 1
 
A Battle Against the Industry - Beating Antivirus for Meterpreter and More
A Battle Against the Industry - Beating Antivirus for Meterpreter and MoreA Battle Against the Industry - Beating Antivirus for Meterpreter and More
A Battle Against the Industry - Beating Antivirus for Meterpreter and More
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hoster
 
The Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year RetrospectiveThe Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year Retrospective
 
Password (in)security
Password (in)securityPassword (in)security
Password (in)security
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
 
Bitcoin’s blockchain - from hashes to Escrow and beyond
Bitcoin’s blockchain - from hashes to Escrow and beyondBitcoin’s blockchain - from hashes to Escrow and beyond
Bitcoin’s blockchain - from hashes to Escrow and beyond
 
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
 
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
Open Source h2oGPT with Retrieval Augmented Generation (RAG), Web Search, and...
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1
 
Cryptography Based Research Projects Ideas
Cryptography Based Research Projects IdeasCryptography Based Research Projects Ideas
Cryptography Based Research Projects Ideas
 
Course_Presentation cyber --------------.pptx
Course_Presentation cyber --------------.pptxCourse_Presentation cyber --------------.pptx
Course_Presentation cyber --------------.pptx
 
Securing TodoMVC Using the Web Cryptography API
Securing TodoMVC Using the Web Cryptography APISecuring TodoMVC Using the Web Cryptography API
Securing TodoMVC Using the Web Cryptography API
 
Cryptography 101
Cryptography 101Cryptography 101
Cryptography 101
 
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
 

Mais de Mark Niebergall

Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Mark Niebergall
 
Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Mark Niebergall
 
Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Mark Niebergall
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Mark Niebergall
 
Unit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentUnit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentMark Niebergall
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatMark Niebergall
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatMark Niebergall
 
Relational Database Design Bootcamp
Relational Database Design BootcampRelational Database Design Bootcamp
Relational Database Design BootcampMark Niebergall
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Mark Niebergall
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Mark Niebergall
 
Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Mark Niebergall
 
Defensive Coding Crash Course Tutorial
Defensive Coding Crash Course TutorialDefensive Coding Crash Course Tutorial
Defensive Coding Crash Course TutorialMark Niebergall
 
Inheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalInheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalMark Niebergall
 
Cybersecurity State of the Union
Cybersecurity State of the UnionCybersecurity State of the Union
Cybersecurity State of the UnionMark Niebergall
 
Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Mark Niebergall
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsMark Niebergall
 

Mais de Mark Niebergall (20)

Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023
 
Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023
 
Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022
 
Developing SOLID Code
Developing SOLID CodeDeveloping SOLID Code
Developing SOLID Code
 
Unit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentUnit Testing from Setup to Deployment
Unit Testing from Setup to Deployment
 
Stacking Up Middleware
Stacking Up MiddlewareStacking Up Middleware
Stacking Up Middleware
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
Hacking with PHP
Hacking with PHPHacking with PHP
Hacking with PHP
 
Relational Database Design Bootcamp
Relational Database Design BootcampRelational Database Design Bootcamp
Relational Database Design Bootcamp
 
Starting Out With PHP
Starting Out With PHPStarting Out With PHP
Starting Out With PHP
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018
 
Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018
 
Defensive Coding Crash Course Tutorial
Defensive Coding Crash Course TutorialDefensive Coding Crash Course Tutorial
Defensive Coding Crash Course Tutorial
 
Inheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalInheritance: Vertical or Horizontal
Inheritance: Vertical or Horizontal
 
Cybersecurity State of the Union
Cybersecurity State of the UnionCybersecurity State of the Union
Cybersecurity State of the Union
 
Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing Projects
 

Último

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Último (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Cryptography With PHP - ZendCon 2017 Workshop