Lenovo ThinkPad P14s gen4 amd Updated +Created
Bought: November 2023 during Black Friday sale for £1,323.00 to be Ciro Santilli's main personal laptop.
Six years after, and we are 2x on every key spec (except processor Hz ;-) at about 1/2 the price and 1/2 the weight (though smaller 14" screen for greater portability), so not bad! Customized to max out each hardware spec:
Specs:
  • Processor: AMD Ryzen™ 7 PRO 7840U Processor (3.30 GHz up to 5.10 GHz)
  • Operating System: No Operating Systemselected upgrade
  • Operating System Language: No Operating System Languageselected upgrade
  • Microsoft Productivity Software: None
  • Memory: 64 GB LPDDR5X-6400MHz (Soldered)selected upgrade. Specs at: www.lenovo.com/gb/en/p/accessories-and-software/memory-and-storage/memory-and-storage-hard-drives/4xb1d04758 quotes "64 Gbps", i.e. 8 GB/s. dd count=1M if=/dev/zero of=tmp gives only 255 MB/s however.
  • Solid State Drive: 2 TB SSD M.2 2280 PCIe Gen4 Performance TLC Opalselected upgrade
  • Display: 14" WUXGA (1920 x 1200), IPS, Anti-Glare, Touch, 45%NTSC, 300 nits, 60Hz
  • Graphic Card: Integrated Graphics
    The Ubuntu 23.10 "About system GUI describes its graphics as: Radeon 780M Graphics × 16, which e.g. www.techpowerup.com/gpu-specs/radeon-780m.c4020 documents as running the RDNA 3 microarchitecture.
  • Camera: 1080P FHD RGB/IR Hybrid with Microphone
  • Color: Thunder Black
  • Factory Color Calibration: No Factory Color Calibration
  • Wireless: Qualcomm Wi-Fi 6E NFA725A 2x2 AX & Bluetooth® 5.1 or above
  • Integrated Mobile Broadband: No Wireless WAN
  • Ethernet: Wired Ethernet
  • Near Field Communication: No NFC
  • Fingerprint Reader: Fingerprint Reader
  • Keyboard: Black - English (EU)selected upgrade
  • Battery: 4 Cell Li-Polymer 52.5Whselected upgrade
  • Power Cord: 65W USB-C Slim 90% PCC 3pin AC Adapter - UKselected upgrade
  • Electronic Privacy Filter: No ePrivacy Filter
  • Adobe Elements: None
  • Adobe Acrobat: None
  • Adobe Creative Cloud: None
  • Security Software: None
  • Cloud Security Software: No Cloud Security Software
  • Warranty: 3 Year Courier or Carry-in
Identifiers:
Upon arrival:
  • Weight: 1490 g
  • Charger weight: 323 g
  • Firmware according to sudo dmidecode -t bios:
    Vendor: LENOVO
    Version: R2FET33W (1.13 )
    Release Date: 09/08/2023
Buy research:
Log:
2024-01-17: firmware update:
Vendor: LENOVO
Version: R2FET36W (1.16 )
Release Date: 10/24/2023
Actually fixed performance mode: askubuntu.com/questions/604720/setting-to-high-performance/1343879#1343879
Lenovo ThinkPad P51 (2017) Updated +Created
Bought: 2017 for approximately 2400 pounds to be Ciro Santilli's main personal laptop.
Specs:
  • screen: 15.6 inches, 16:9
  • weight: 2691g (self weight in 2023)
  • charger weight: 700g (self weight in 2023)
Identifiers:
TP Link ARCHER VR2800 Updated +Created
Microwave Updated +Created
Micro means "small wavelength compared to radio waves", not micron-sized.
Microwave production and detection is incredibly important in many modern applications:
Network switch Updated +Created
A switch is a box with a bunch of Ethernet wires coming into it:
+--------------------+
| +-+  +-+  +-+  +-+ |
| |1|  |2|  |3|  |4| |
| +-+  +-+  +-+  +-+ |
+--------------------+
Except that it doesn't have to be Ethernet, e.g. it would also be a Wi-Fi.
What the switch does is:
  • an Ethernet request came in from wire 1
  • decide which wire to send it out on, e.g. wire 2, 3, 4, 5, etc. You likely don't want to send it back through 1 where it came from.
After the destination is found, a confirmation is somehow sent back to the switch, which then learns which wire to send each MAC address to.
A switch is a bit like a router but it is a bit dumber/operates at a lower level: it basically operates only on MAC addresses, not on IP addresses.
The Internet service provider boxes most people have at home combines a switch for the local network and a router for the ISP communication.
Symmetric encryption Updated +Created
Symmetric encryption is a type of encryption where you use a password (also known as a "key") to encrypt your data, and then the same password to decrypt the data.
For example, this is the type of encryption that is used for encrypting the data in our smartphones and laptops with disk encryption.
This way, if your laptop gets stolen, the thief is not able to see your private photos without knowing your password, even though they are able to read every byte of your disk.
The downside is that that you have to type your password every time you want to login. This leads people to want to use shorter passwords, which in turn are more prone to password cracking.
The other main type of encryption is public-key cryptography.
The advantage of public-key cryptography is that it allows you to send secret messages to other people even an the attacker is able to capture the encrypted messages. This is for example what you want to do when sending a personal message to a friend over the Internet. Such encryption is especially crucial when using wireless communication such as Wi-Fi, where anyone nearby can capture the signals you send and receive, and would be able to read all your data if it weren't encrypted.
Easily sending encrypted messages over the Internet is not possible with symmetric encryption because for your friend to decrypt the message in that system, you'd need to send them the password, which the attacker would also be able to eavesdrop and then decrypt the message that follows using it. The problem of sharing a password with another person online is called key exchange.
Advanced Encryption Standard (AES) is one of the most popular families of symmetric encryption algorithms.
OpenSSL is a popular open source implementation of symmetric and public-key cryptography. A simple example of using OpenSSL for symmetric encryption from the command-line is:
echo 'Hello World!' > message.txt
openssl aes-256-cbc -a -salt -pbkdf2 -in message.txt -out message.txt.enc
This asks for a password, which we set as asdfqwer, and then produces a file message.txt.enc containing garbled text such that:
hd message.txt.enc
contains:
00000000  55 32 46 73 64 47 56 6b  58 31 38 58 48 65 2f 30  |U2FsdGVkX18XHe/0|
00000010  70 56 42 2b 70 45 6c 55  59 38 2b 54 38 7a 4e 34  |pVB+pElUY8+T8zN4|
00000020  4e 37 6d 52 2f 73 6d 4d  62 64 30 3d 0a           |N7mR/smMbd0=.|
0000002d
Then to decrypt:
openssl aes-256-cbc -d -a -pbkdf2 -in message.txt.enc -out message.new.txt
once again asks for your password and given the correct password produces a file message.new.txt containing the original message:
Hello World!
This was tested on Ubuntu 24.04, OpenSSL 3.0.13. See also: How to use OpenSSL to encrypt/decrypt files? on Stack Overflow.
There is no provably secure symmetric-key algorithm besides the one-time pad, which has the serious drawback of requiring the key to be as long as the message. This means that we believe that most encryption algorithms are secure because it is a hugely valuable target and no one has managed to crack them yet. But we don't have a mathematical proof that they are actually secure, so they could in theory be broken by new algorithms one day.
tcpdump Updated +Created
To test it, let's get two computers on the same local area network, e.g. connected to Wi-Fi on the same home modem router.
On computer B:
On computer A, run on terminal 1:
sudo tcpdump ip src 192.168.1.102 or dst 192.168.1.102
Then on terminal 2 make a test request:
curl 192.168.1.102:8000
Output on terminal 1:
17:14:22.017001 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [S], seq 2563867413, win 64240, options [mss 1460,sackOK,TS val 303966323 ecr 0,nop,wscale 7], length 0
17:14:22.073957 IP 192.168.1.102.8000 > ciro-p14s.55798: Flags [S.], seq 1371418143, ack 2563867414, win 65160, options [mss 1460,sackOK,TS val 171832817 ecr 303966323,nop,wscale 7], length 0
17:14:22.074002 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [.], ack 1, win 502, options [nop,nop,TS val 303966380 ecr 171832817], length 0
17:14:22.074195 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [P.], seq 1:82, ack 1, win 502, options [nop,nop,TS val 303966380 ecr 171832817], length 81
17:14:22.076710 IP 192.168.1.102.8000 > ciro-p14s.55798: Flags [P.], seq 1:80, ack 1, win 510, options [nop,nop,TS val 171832821 ecr 303966380], length 79
17:14:22.076710 IP 192.168.1.102.8000 > ciro-p14s.55798: Flags [.], ack 82, win 510, options [nop,nop,TS val 171832821 ecr 303966380], length 0
17:14:22.076727 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [.], ack 80, win 502, options [nop,nop,TS val 303966383 ecr 171832821], length 0
17:14:22.077006 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [F.], seq 82, ack 80, win 502, options [nop,nop,TS val 303966383 ecr 171832821], length 0
17:14:22.077564 IP 192.168.1.102.8000 > ciro-p14s.55798: Flags [F.], seq 80, ack 82, win 510, options [nop,nop,TS val 171832821 ecr 303966380], length 0
17:14:22.077578 IP ciro-p14s.55798 > 192.168.1.102.8000: Flags [.], ack 81, win 502, options [nop,nop,TS val 303966384 ecr 171832821], length 0
17:14:22.079429 IP 192.168.1.102.8000 > ciro-p14s.55798: Flags [.], ack 83, win 510, options [nop,nop,TS val 171832824 ecr 303966383], length 0
TODO understand them all! Possibly correlate with Wireshark, or use -A option to dump content.