Encrypting Laravel Eloquent models with CipherSweet


Encrypting Laravel Eloquent models with CipherSweet

July 1st, 2022

CipherSweet is a backend library developed by Paragon Initiative Enterprises for implementing searchable field-level encryption. It can encrypt and decrypt values in a very secure way. It is also able to create blind indexes. A blind index can be used to perform some targeted searches on the encrypted data. The indexes themselves are unreadable by humans.

We’ve just released laravel-ciphersweet. This package is a wrapper over CipherSweet, which allows you to easily use it with Laravel’s Eloquent models.

Preparing your model and choosing the attributes that should be encrypted#

Add the CipherSweetEncrypted interface and UsesCipherSweet trait to the model that you want to add encrypted fields to.

You’ll need to implement the configureCipherSweet method to configure CipherSweet.

use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted;
use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet;
use ParagonIE\CipherSweet\EncryptedRow;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements CipherSweetEncrypted
{
    use UsesCipherSweet;
    
    public static function configureCipherSweet(EncryptedRow $encryptedRow): void
    {
        $encryptedRow
            ->addField('email')
            ->addBlindIndex('email', new BlindIndex('email_index'));
    }
}

Generating an encryption key#

We’ve also added a small helper command to the package that allows you to generate a new key in a way that is suggested by Paragon Initiative Enterprises.

This encryption key is used to encrypt your values.

php artisan ciphersweet:generate-key

Encrypting model attributes#

Once everything is set up, you can start encrypting your model values:

php artisan ciphersweet:encrypt <your-model-class> <generated-key>

The command will update all the encrypted fields and blind indexes of the model.

If you have a lot of rows, this process can take a long time since encryption is a resource intensive operation. Don’t worry if it times out for some reason, the command is always restartable and only tries to encrypt models when it’s needed.

Updating your .env file#

After the fields have been encrypted, you should add the generated CipherSweet key to your .env file.

CIPHERSWEET_KEY=<YOUR-KEY>

The key will be used by your application to read encrypted values.

Searching on blind indexes#

Even though values are encrypted, you can still search them using a blind index. The blind indexes will have been built up when you ran the command to encrypt the model values.

Our package provides a whereBlind and orWhereBlind scope to search on blind indexes.

The first parameter is the column, the second the index name you set up when calling ->addBlindIndex, the third is the raw value, the package will automatically apply any transformations and hash the value to search on the blind index.

In closing#

CipherSweet is a very powerful library, and our package makes it very approachable. Of course, be very sure about what columns actually need encrypting, and don’t overdo it, encryption is resource intensive and comes with some downsides.

We’ll be using this package sparingly in the development of our upcoming SaaS mailcoach.cloud to protect the personal information that will be stored by our users.

Of course, laravel-ciphersweet isn’t the first package that our team has built. On our company website, check out all of our open source packages in this long list. If you want to support us, consider picking up any of our paid products.

Laravel News Links

How Shovels are Made

https://theawesomer.com/photos/2022/07/how_shovels_are_made_t.jpg

How Shovels are Made

Link

Mega Process takes us on a tour of Zion Industrial Co., which apparently is the last shovel factory in South Korea. The laborious process starts with freshly-cut oak trees, milling the timber into boards, sanding until round, trimming, then splitting, steaming, and bending the wood to hold the shape for its handle.

The Awesomer

How Shovels are Made

https://theawesomer.com/photos/2022/07/how_shovels_are_made_t.jpg

How Shovels are Made

Link

Mega Process takes us on a tour of Zion Industrial Co., which apparently is the last shovel factory in South Korea. The laborious process starts with freshly-cut oak trees, milling the timber into boards, sanding until round, trimming, then splitting, steaming, and bending the wood to hold the shape for its handle.

The Awesomer

Japan: Abe Assassinated with Electrically Fired Homemade, Double-Barreled Gun!?

https://www.ammoland.com/wp-content/uploads/2022/07/Homemade-Gun-Abe-Assassination-Twitter-731–500×337.jpg

The homemade gun was used to assassinate former PM Abe in Japan. IMG Twitter

U.S.A.-(AmmoLand.com)-— Former Japanese Prime Minister Shinzo Abe was assassinated with a homemade gun on July 8th, 2022, in the Japanese city of Nara.

From video of the event, it appears the assassin fired his weapon at Abe from a distance of 20 to 30 feet. The two distinct shots were fired about a second apart and produced copious amounts of white smoke.

Early reports were of wounds to the neck and chest. It is unknown what sort of projectiles were used in the homemade weapon.

Such firearms are extremely easy to make for anyone with a rudimentary ability to use hand tools.

This correspondent made several similar homemade, electrically actuated, multishot, muzzleloading black powder firearms 40 years ago. Electrical firing mechanisms are much easier to make than percussion systems used in modern firearms. A simple switch is a trigger for each barrel. Batteries supply the power to ignite each charge.  If you want multiple shots, multiple barrels are used. A nine-volt battery worked well in my 40-year-old experiments, as did a four-pack of AA batteries.

A simple galvanized water pipe is plenty strong to withstand black powder pressures for a few shots. The firearm used in the assassination appears to be close to a 12 gauge bore size. Larger bores and projectiles create sufficient energies at the lower velocities on such firearms.

The propellants for such guns are easily made at home. Many high school students successfully made black powder in my youth. Fireworks can be disassembled as another source of propellant. It has been reported that people in prisons and the former Soviet Union used ground-up match heads as a propellant. Making propellant is much more dangerous than making the guns.

Japan Abe Assassinated with Electrically Fired Homemade Double Barreled Gun
Japan Abe Assassinated with Electrically Fired Homemade Double-Barreled Gun

This correspondent disagrees with professor Daniel Foote of Tokyo.

From Bloomberg.com:

“This actually shows the extent that Japan gun laws are working,” said Daniel Foote, a professor at the University of Tokyo specializing in law and society. “Very few people have the ability to create such a weapon.”

It is unlikely the professor has ever done the experimental work to make such weapons. Forty years ago, this correspondent was able to make a four-shot repeater from 12 dollars of materials obtained from a hardware store and Radio Shack, using about 12 hours’ worth of labor. In order to be effective with such weapons, testing and practice is necessary. It appears the former Naval officer did the preparation required.

From the newyorkpost.com:

Police found several possible explosives during a raid on Yamagami’s home, and the suspect confessed that he had “manufactured multiple pistols and explosives so far,” NHK said.

Other local reports said that he told cops he initially planned to blow up Abe, but decided to instead build a gun because he feared a bomb was less reliable.

Some sources are saying the assassination occurred at 10 feet. In the video referenced above, the distance appears to be 20 to 30 feet.  There did not appear to be any sights on the homemade firearm. Today, some sort of laser pointer would be easy to install and bore sight. But NO mention of a laser has been made to this correspondent’s knowledge.

The successful assassination of former Japanese PM Abe, with a homemade firearm in a country with some of the most extreme firearms restrictions on the planet, shows how difficult it is to regulate what is essentially a 15th-century technology.


About Dean Weingarten:

Dean Weingarten has been a peace officer, a military officer, was on the University of Wisconsin Pistol Team for four years, and was first certified to teach firearms safety in 1973. He taught the Arizona concealed carry course for fifteen years until the goal of Constitutional Carry was attained. He has degrees in meteorology and mining engineering, and retired from the Department of Defense after a 30 year career in Army Research, Development, Testing, and Evaluation.

Dean Weingarten

AmmoLand Shooting Sports News

Transcend JetDrive Lite review: An easy way to add local storage to the MacBook Pro

https://photos5.appleinsider.com/gallery/48254-96406-Top-Down-JetDrive-in-MacBook-Pro-xl.jpg

The Transcend JetDrive Lite is as close as you can get to upgrading the internal storage on your modern MacBook Pro, but hard drive-like speeds limit its uses.

Designed for the 2021 16-inch MacBook Pro and 14-inch MacBook Pro, the Transcend JetDrive Lite 330 is a small chip of solid-state storage that slips into the SD card reader to expand capabilities. You’ll hardly even notice it is there while you can add up to 1TB of additional storage.

Design and use

When Apple first added an SD card reader to the Mac, a slew of third-paltry adapters flooded the market. We vividly remember when an early company called Nifty MiniDrive launched that had an anodized aluminum edge to blend into your Mac seamlessly.

Early Nifty MiniDrive in red anodized aluminum

There was enough space in these Mac back then that the Nifty MiniDrive would act as an adapter for microSD cards. They even came in multiple colors.

The Transcend JetDrive Lite 330

It is the Nifty MiniDrive and other early entrants that have set the stage for the Transcend JetDrive Lite 330. It isn’t Transcend’s first drive and they do have some that fit MacBooks as far back as 2010.

All of these drives slip into the SD card slots on your Mac but are sized as to only stick out a hair. Because of this, there is very little overlap in models. Each MacBook with an SD slot has its own corresponding JetDrive.

Back of the 1TB Transcend JetDrive Lite 330

The JetDrive Lite is all plastic with a little lip that protrudes out from the edge of your Mac. It is small enough that it doesn’t get in the way and is just big enough to grasp if you need to remove it.

We were able to remove the JetDrive with just our fingers, but if you have no fingernails you may struggle a bit. Some others we’ve seen have sat flush but required a tool to remove. This way, you can pop it out anytime, anywhere — no tool necessary.

Front of the JetDrive Lite

Transcend has made the JetDrive Lite available in four capacities for the 2021 MacBook Pros. We checked out the 1TB version but 512GB, 256GB, and 128GB capacities are also available.

Speed and performance

Transcend is promising speeds of 95 MB/s and 75 MB/s for reading and writing, respectively. In our copious testing, the JetDrive Lite is on par for these numbers.

Blackmagic Disk Speed Test yielded 90.2 MB/s and 75.2 MB/s, in line with expectations. This puts the JetDrive Lite on the same level as UHS-I SD cards

Testing the JetDrive speeds

As the recent MacBook Pros are capable of UHS-II speeds — up to 312 MB/s — we wanted to know why the company had opted for the slower speeds.

They told AppleInsider that the biggest benefit of the JetDrive Lite is its compact size and ability to be perpetually in your machine and ready for use, not for high-speed transfers.

While this is undoubtedly true, jumping to UHS-II speeds seems not only possible — given the size of UHS-II MicroSD cards — but significantly beneficial to the end-user. Despite the convenience, this was our biggest pain point while using the JetDrive Lite.

Moving to UHS-II speeds would surely up the cost of the drive. This may have been a compromise Transcend was unwilling to make.

Uses and applications

Apple’s current portable Mac lineup does not support user-upgradable storage. Meaning the storage you opt for on purchase is what you’ll be working with years later.

Side view of the JetDrive Lite

The JetDrive is no substitute for the blazing fast internal SSD but it is by far the easiest way to add up to 1TB of additional storage to your Mac. With its speed limitations, there are practical — and non-practical uses for such storage.

By far one of the most common ways to use the JetDrive is to employ it as your Time Machine backup. This works if you have less data on your internal than the JetDrive. If you have the 256GB or 512GB SSD and don’t use all of it, the 1TB JetDrive will be sufficient for this.

We only had about 300GB of data on our internal drive so we wanted to test using the JetDrive as a backup solution. We enabled this and allowed Time Machine to chug away overnight for the initial backup. When we woke our machine the following morning, it had finished.

Using the JetDrive as a backup device

Each subsequent backup took mere moments — depending on how much the data on our Mac changed. Don’t forget though, that if something happens to your Mac, your backup may be lost too. An off-site backup or cloud backup is always ideal.

We preferred to use our JetDrive though just for extra storage. We started saving images and documents not stored in iCloud. Accessing files is relatively speedy depending on their size.

It’s also proved useful for storing movies. When we head out on trips, we download some movies and TV shows to our Mac to access while on the go. These aren’t crucial files which means if we have to remove the card, we aren’t missing much.

It took roughly 45 seconds for us to transfer a 3.75 GB movie to the JetDrive, which isn’t instantaneous, but fast enough to be useful.

While it works well enough for everyday files, we wouldn’t rely on it for video editing. The speed required to edit a 4K video and the vast size of the library makes the JetDrive unusable for this application.

Should you buy the Transcend JetDrive Lite?

Cost-wise, the JetDrive Lite 330 is neither good nor bad. Apple charges $200 to upgrade from 512GB to 1TB of storage. You can spend less than that on the 1TB JetDrive Lite, though it is certainly slower.

1TB Transcend JetDrive Lite 330

If you opt for the 2TB MacBook Pro, Apple charges a whopping $600 from the base configuration and $400 over the 1TB option. Some may opt for slower speeds to save hundreds of dollars.

At the same time, off-brand MicroSD cards are as cheap as $50 for 1TB. Name-brand microSD cards are priced more competitively with the JetDrive Lite.

Overall, this makes JetDrive a solid choice to expand your storage without breaking the bank. It could even save you money based on your needs. Regardless, it’s absolutely the most seamless aftermarket solution out there.

Transcend JetDrive Lite Pros

  • Designed exclusively for the 2021 MacBook Pros
  • Doesn’t stick out the side of your Mac
  • Closest you can get to upgrading your internal storage
  • Good option for Time Machine backups or storing additional files
  • 64GB to 1TB options available

Transcend JetDrive Lite cons

  • All-plastic construction
  • Hard drives can be faster

Rating: 3.5 out of 5

Where to buy

AppleInsider News

Light & Magic (Trailer)

https://theawesomer.com/photos/2022/07/light_and_magic_t.jpg

Light & Magic (Trailer)

Link

This six-part documentary series tells the history of Industrial Light & Magic. It features interviews with famous filmmakers and the people behind George Lucas’ esteemed visual effects studio, and explores how they created some of the most memorable movie scenes of all time. Arrives on Disney+ 7.27.22.

The Awesomer

The FBI Said This is the Best Handgun (And Why They’re Wrong)

In response to numerous inquiries from local law enforcement departments, the FBI undertook a comprehensive evaluation of the sidearms available in 1987 (most of which are still made today) to determine which pistol was the best. Thirteen of the most talented instructors that the Federal Bureau of Investigation had to offer all met at a […]

Read More …

The post The FBI Said This is the Best Handgun (And Why They’re Wrong) appeared first on The Firearm Blog.

The Firearm Blog

Encrypt and Decrypt Eloquent Model Fields in Laravel Apps

https://laravelnews.imgix.net/images/laravel-ciphersweet.png?ixlib=php-3.3.1

Laravel Ciphersweet is a package by Spatie to integrate searchable field-level encryption in Laravel applications. The package’s readme explains the problem Ciphersweet can help solve as follows:

In your project, you might store sensitive personal data in your database. Should an unauthorised person get access to your DB, all sensitive can be read which is obviously not good.

To solve this problem, you can encrypt the personal data. This way, unauthorized persons cannot read it, but your application can still decrypt it when you need to display or work with the data.

This package is a wrapper for Ciphersweet to integrate its features into Laravel models easily. Here’s an example of a model from the readme’s setup instructions that illustrates what a model looks like using Ciphersweet:

1use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted;

2use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet;

3use ParagonIE\CipherSweet\EncryptedRow;

4use Illuminate\Database\Eloquent\Model;

5 

6class User extends Model implements CipherSweetEncrypted

7{

8 use UsesCipherSweet;

9 

10 public static function configureCipherSweet(EncryptedRow $encryptedRow): void

11 {

12 $encryptedRow

13 ->addField('email')

14 ->addBlindIndex('email', new BlindIndex('email_index'));

15 }

16}

This allows you the encrypt a user’s email to keep it safe from unauthorized people reading the data, but give you the ability to decrypt the data to display it or work with it.

Once you have configured this package and set up a model, you can search encrypted data in the database using blind indexes:

1$user = User::whereBlind('email', 'email_index', 'rias@spatie.be');

This package also aids in generating encrypting keys and encrypting model attributes to speed up integration with Ciphersweet.

I want to point out that you should not use this package blindly without understanding the ins and outs of the use case you are trying to solve. You can learn more about CipherSweet on this page, which has many linked resources.

CipherSweet also has PHP-specific documentation to help get you up to speed with the underlying PHP package.

I would also recommend reading Rias’ post, Encrypting Laravel Eloquent models with CipherSweet.

To get started with this package, check it out on GitHub at spatie/laravel-ciphersweet.

Laravel News

Here’s What Separating and Recycling an Entire Car Looks Like

https://s3files.core77.com/blog/images/1296465_81_116224_PliTBUJ7m.jpg

Do you have any idea what this crazy thing is?

So that’s a vehicle drainage rack (!) made by Seda, an Austrian company that makes machines used to dismantle automobiles. You’ve probably seen a video of a car being crushed. What you may not have realized is that prior to crushing it, the cars must be drained of all fluids (gas, oil, brake fluid, radiator fluid, etc.). Dismantling technicians cut into hoses, then the vehicle is lifted and tilted by the rack to drain every last drop of toxic goodness.

I wanted to find video of this in action, and got more than that: Here Seda demonstrates, in about 90 seconds, how to dismantle and recycle an entire car using their machines, including the draining rack:

Seeing the wiring alone was staggering. I’d heard that modern cars have nearly one mile of wiring in them, but seeing it all pulled out and placed in that bin was really something.

Core77

This is the most based pro-gun campaign ad I’ve ever seen

https://media.notthebee.com/articles/62c5f66420cd962c5f66420cda.jpg

Former ASU football standout and inspirational speaker Jerone Davison is running for Congress on the Republican ticket in Arizona. So far, it looks like Mr. Davison will be pulling ZERO punches in this fight.

Not the Bee