The slides are from a one hour talk introducing the various security mechanisms used in postgres. It includes an overview of authentication, session encryption and high performance querying techniques of asymmetric (public key) encrypted data using functional indexes. The talk was given in 2015 LinuxFest at Bellingham Washington
PostgresOpen 2013 A Comparison of PostgreSQL Encryption OptionsFaisal Akber
Are you looking to encrypt your data within PostgreSQL? We will review the various options available for encrypting data with PostgreSQL. We will also look at various options available to employ encryption and review various configuration and performance for using encryption.
There are a number of options available when encrypting data with PostgreSQL. When determining the mechanisms to use, it is important to understand the data, the application and how it is being used. We will compare different methods of encrypting data in their feature-sets and performance.
We will try to answer the following questions: Where do I enable the encryption? Where is my data safe and where is it exposed? Why should I use the various encryption modules available?
Magnus Hagander
PostgreSQL supports several options for securing communications when deployed outside the typical webserver/database combination. This talk will go into some details about the features that make this possible, with some extra focus on the changes in 8.4. The main areas discussed are:
* Securing the channel between client and server using SSL, including an overview of the threats and how to secure against them
* Securing the login process, using LDAP, Kerberos or SSL certificates, including the use of smartcards to log into the database
The talk will not focus on security and access control inside the database once the user is connected and authenticated.
This document discusses data encryption in PostgreSQL databases. It describes different layers where encryption can occur, including at the application level, database level and storage level. It provides details on using the pgcrypto extension for encryption and decryption functions. It also covers network encryption methods like using SSL and SSH tunnels. Benchmark results show around a 20% performance overhead for TPC-B tests when encrypting and decrypting column data during transactions.
A Performance Characterization of Postgres on Different Storage SystemsDong Ye
This document evaluates the performance of PostgreSQL on different storage systems including Fibre Channel, NFS, local storage, and VSAN using benchmarks like TPC-C and TPC-H. It finds that Fibre Channel through RDM/Passthrough and NFS mounted by the hypervisor performed best on the TPC-C benchmark, while local SSD storage was fastest on the TPC-H benchmark. The results provide insights into which storage systems are best suited for different types of PostgreSQL workloads.
Joined by Rick Nelson, Technical Solutions architect from NGINX Server Density take you though the do's and don'ts of monitoring NGINX. Critical and non critical metrics to monitor, important alerts to configure and the best monitoring tools available.
This document provides instructions for configuring a Squid proxy server on CentOS. It discusses obtaining information about the system like the OS distribution, hardware architecture, and installed application versions. It also outlines basic Squid configuration steps like backing up the default configuration file, checking the port Squid listens on, and ensuring the log file location is set correctly before starting Squid. Configuring access controls and caching policies would be covered in more depth in subsequent sections.
Nginx is a lightweight web server that was created in 2002 to address the C10K problem of scaling to 10,000 concurrent connections. It uses an asynchronous event-driven architecture that uses less memory and CPU than traditional multi-threaded models. Key features include acting as a reverse proxy, load balancer, HTTP cache, and web server. Nginx has grown in popularity due to its high performance, low memory usage, simple configuration, and rich feature set including modules for streaming, caching, and dynamic content.
Learn how to load balance your applications following best practices with NGINX and NGINX Plus.
Join this webinar to learn:
- How to configure basic HTTP load balancing features
- The essential elements of load balancing: session persistence, health checks, and SSL termination
- How to load balance MySQL, DNS, and other common TCP/UDP applications
- How to have NGINX Plus automatically discover new service instances in an auto-scaling or microservices environment
Nginx is a popular tool for load balancing and caching. It offers high performance, reliability and flexibility for load balancing through features like upstream modules, health checks, and request distribution methods. It can also improve response times and handle traffic spikes through caching static content and supporting techniques like stale caching.
Extending functionality in nginx, with modules!Trygve Vea
A presentation about module-writing for nginx.
Example code can be found at github: https://github.com/kvisle/nginx_module_samples
Load Balancing MySQL with HAProxy - SlidesSeveralnines
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
This document provides information about configuring and using the Squid caching proxy server. It discusses Squid versions and improvements between versions, how to configure access control lists and ports in Squid's configuration file squid.conf, and provides a sample configuration file with ACL rules and cache directory settings. Advantages discussed include improved caching and access control capabilities.
It goes without saying that DNS is only as secure as its servers. To ensure the successful and secure operation of a DNS server, secure configuration is paramount.
The new BIND 9 version 9.11 is a major version of the popular DNS server, released in August by ISC.
In this webinar Mr. Carsten Strotmann will demonstrate new features such as:
- Catalog Zones,
- dnssec-keymgr, new *rndc* functions
- CDS/CDNSKEY auto generation
- Negative Trust Anchor
- DNS cookies
-Refuse “any”
-and more.
Choosing A Proxy Server - Apachecon 2014bryan_call
This document summarizes a presentation about choosing a proxy server. It discusses several popular proxy options including Apache Traffic Server (ATS), Nginx, Squid, Varnish, and Apache HTTP Server. It covers the types of proxies each supports, features, architectures, caching, performance, and pros and cons. Benchmark tests show ATS has the best cache scaling and performance overall while using less CPU than alternatives like Squid. Nginx and Squid had some issues with latency and HTTP compliance. The document recommends ATS as a good choice for its scaling, efficient caching, and plugin support.
Basic concept of nginx , Apache Vs Nginx , Nginx as Loadbalancer , Nginx as Reverse proxy , Configuration of nginx as load balancer and reverse proxy .
Hitch TLS is a TLS terminator that can be used with Varnish Plus to handle client-side TLS connections. It provides a fast and scalable TLS termination solution. Varnish Plus also supports TLS to the backend by adding ".ssl = 1" to the backend definition. Both solutions provide high performance TLS handling. Future improvements to Hitch TLS and backend TLS in Varnish Plus are ongoing to improve configuration flexibility and add features like OCSP stapling.
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
Squid Proxy Server on RHEL introduces Squid, a free and open-source proxy server software that provides caching, authentication, bandwidth management, and web filtering capabilities. It discusses configuring Squid on Red Hat Linux including installing packages, editing configuration files, starting services, and testing the proxy functionality. Browser and client settings are also covered to allow systems to route traffic through the Squid proxy server.
This document summarizes a talk given at ApacheCon 2015 about replacing Squid with Apache Traffic Server (ATS) as the proxy server at Yahoo. It discusses the history of using Squid at Yahoo, limitations with Squid that led to considering ATS, key differences in configuration between the two, how features like caching, logging, and peering are implemented in each, and lessons learned from the migration process.
A proxy server acts as an intermediary between clients and the internet or other network resources. Squid is a caching and forwarding proxy server that can improve performance by caching frequently requested files. It can restrict access based on client IP, domain, or time of day. Configuring Squid involves installing it, editing the squid.conf file to define access controls and caching, and configuring clients to use the proxy. The access log can be tailed to view current proxy requests.
Nginx is a web server and proxy server that is modular, allowing users to specify which modules they want. It has a main configuration file located at /etc/nginx/nginx.conf that includes other configuration files. Nginx uses server blocks and location directives to map URI requests to resources. It can serve static content from a specified root directory or act as a proxy server by forwarding requests to another server. Rewrite rules using the return or rewrite directives allow changing URLs in client requests to redirect users.
Rate Limiting with NGINX and NGINX PlusNGINX, Inc.
On-demand recording: https://www.nginx.com/resources/webinars/rate-limiting-nginx/
Learn how to mitigate DDoS and password-guessing attacks by limiting the number of HTTP requests a user can make in a given period of time.
This webinar will teach you how to:
* How to protect application servers from being overwhelmed with request limits
* About the burst and no‑delay features for minimizing delay while handling large bursts of user requests
* How to use the map and geo blocks to impose different rate limits on different HTTP user requests
* About using the limit_req_log_level directive to set logging levels for rate‑limiting events
About the webinar
A delay of even a few seconds for a screen to render is interpreted by many users as a breakdown in the experience. There are many reasons for these breakdowns in the user experience, one of which is DDoS attacks which tie up your system’s resources.
Rate limiting is a powerful feature of NGINX that can mitigate DDoS attacks, which would otherwise overload your servers and hinder application performance. In this webinar, we’ll cover basic concepts as well as advanced configuration. We will finish with a live demo that shows NGINX rate limiting in action.
This document discusses Squid Proxy in Red Hat Enterprise Linux 6 (RHEL 6). It provides instructions on installing RHEL 6, including selecting packages during installation such as PHP, MySQL, and Eclipse IDE. It then discusses proxy servers and their uses such as filtering content, caching to improve performance, and load balancing between multiple web servers. Common proxy types include forward, reverse, and open proxies.
A web proxy is a server that acts as an intermediary for client requests to access resources from other servers. Squid is a commonly used open source web proxy caching server that improves performance by caching content and controlling bandwidth usage. It provides access logging and filtering capabilities. To install Squid, it is downloaded and configured on a Linux system. Access control lists (ACLs) are defined in the configuration file to restrict access based on source/destination IP addresses, domains, URLs, or time of day.
How To Set Up SQL Load Balancing with HAProxy - SlidesSeveralnines
We continuously see great interest in MySQL load balancing and HAProxy, so we thought it was about time we organised a live webinar on the topic! Here is the replay of that webinar!
As most of you will know, database clusters and load balancing go hand in hand.
Once your data is distributed and replicated across multiple database nodes, a load balancing mechanism helps distribute database requests, and gives applications a single database endpoint to connect to.
Instance failures or maintenance operations like node additions/removals, reconfigurations or version upgrades can be masked behind a load balancer. This provides an efficient way of isolating changes in the database layer from the rest of the infrastructure.
In this webinar, we cover the concepts around the popular open-source HAProxy load balancer, and show you how to use it with your SQL-based database clusters. We also discuss HA strategies for HAProxy with Keepalived and Virtual IP.
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
Keeping DNS server up-and-running with “runitMen and Mice
A traditional Unix/Linux init system like SystemV-Init or BSD rc does start a DNS server process on server boot, but it does not restart the service in case of an abnormal termination. Modern init replacements like systemd provide process supervision, but bring extra complexities and possible stability and security issues.
This webinar demonstrates an alternative, open source process supervision system called “runit”.
“runit” is lean and fast and sticks to the Unix tradition to do one thing, and do that right.
In this webinar you will learn how to manage DNS server processes such as BIND 9, Unbound and NSD from runit.
This document describes a swarm cluster with an overlay network containing multiple containers running various Docker services and images. The cluster has one container manager and three worker containers running the dind image. Services like HAProxy, a registry, nginx-proxy, and echo are distributed across the worker containers and load balanced with an overlay network for high availability.
We will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data. Using the popular AAA (Authentication, Authorization, Auditing) framework we will cover:
Best practices for authentication (trust, certificate, MD5, Scram, etc).
Advanced approaches, such as password profiles.
Deep dive of authorization and data access control for roles, database objects (tables etc), view usage, row level security and data redaction.
Auditing, encryption and SQL injection attack prevention.
The webinar will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data.
Using the popular AAA (Authentication, Authorization, Auditing) framework we will cover:
- Best practices for authentication (trust, certificate, MD5, Scram, etc).
- Advanced approaches, such as password profiles.
- Deep dive of authorization and data access control for roles, database objects (tables, etc), view usage, row-level security, and data redaction.
- Auditing, encryption, and SQL injection attack prevention.
Note: this session is delivered in French
Nginx is a popular tool for load balancing and caching. It offers high performance, reliability and flexibility for load balancing through features like upstream modules, health checks, and request distribution methods. It can also improve response times and handle traffic spikes through caching static content and supporting techniques like stale caching.
Extending functionality in nginx, with modules!Trygve Vea
A presentation about module-writing for nginx.
Example code can be found at github: https://github.com/kvisle/nginx_module_samples
Load Balancing MySQL with HAProxy - SlidesSeveralnines
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
This document provides information about configuring and using the Squid caching proxy server. It discusses Squid versions and improvements between versions, how to configure access control lists and ports in Squid's configuration file squid.conf, and provides a sample configuration file with ACL rules and cache directory settings. Advantages discussed include improved caching and access control capabilities.
It goes without saying that DNS is only as secure as its servers. To ensure the successful and secure operation of a DNS server, secure configuration is paramount.
The new BIND 9 version 9.11 is a major version of the popular DNS server, released in August by ISC.
In this webinar Mr. Carsten Strotmann will demonstrate new features such as:
- Catalog Zones,
- dnssec-keymgr, new *rndc* functions
- CDS/CDNSKEY auto generation
- Negative Trust Anchor
- DNS cookies
-Refuse “any”
-and more.
Choosing A Proxy Server - Apachecon 2014bryan_call
This document summarizes a presentation about choosing a proxy server. It discusses several popular proxy options including Apache Traffic Server (ATS), Nginx, Squid, Varnish, and Apache HTTP Server. It covers the types of proxies each supports, features, architectures, caching, performance, and pros and cons. Benchmark tests show ATS has the best cache scaling and performance overall while using less CPU than alternatives like Squid. Nginx and Squid had some issues with latency and HTTP compliance. The document recommends ATS as a good choice for its scaling, efficient caching, and plugin support.
Basic concept of nginx , Apache Vs Nginx , Nginx as Loadbalancer , Nginx as Reverse proxy , Configuration of nginx as load balancer and reverse proxy .
Hitch TLS is a TLS terminator that can be used with Varnish Plus to handle client-side TLS connections. It provides a fast and scalable TLS termination solution. Varnish Plus also supports TLS to the backend by adding ".ssl = 1" to the backend definition. Both solutions provide high performance TLS handling. Future improvements to Hitch TLS and backend TLS in Varnish Plus are ongoing to improve configuration flexibility and add features like OCSP stapling.
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
Squid Proxy Server on RHEL introduces Squid, a free and open-source proxy server software that provides caching, authentication, bandwidth management, and web filtering capabilities. It discusses configuring Squid on Red Hat Linux including installing packages, editing configuration files, starting services, and testing the proxy functionality. Browser and client settings are also covered to allow systems to route traffic through the Squid proxy server.
This document summarizes a talk given at ApacheCon 2015 about replacing Squid with Apache Traffic Server (ATS) as the proxy server at Yahoo. It discusses the history of using Squid at Yahoo, limitations with Squid that led to considering ATS, key differences in configuration between the two, how features like caching, logging, and peering are implemented in each, and lessons learned from the migration process.
A proxy server acts as an intermediary between clients and the internet or other network resources. Squid is a caching and forwarding proxy server that can improve performance by caching frequently requested files. It can restrict access based on client IP, domain, or time of day. Configuring Squid involves installing it, editing the squid.conf file to define access controls and caching, and configuring clients to use the proxy. The access log can be tailed to view current proxy requests.
Nginx is a web server and proxy server that is modular, allowing users to specify which modules they want. It has a main configuration file located at /etc/nginx/nginx.conf that includes other configuration files. Nginx uses server blocks and location directives to map URI requests to resources. It can serve static content from a specified root directory or act as a proxy server by forwarding requests to another server. Rewrite rules using the return or rewrite directives allow changing URLs in client requests to redirect users.
Rate Limiting with NGINX and NGINX PlusNGINX, Inc.
On-demand recording: https://www.nginx.com/resources/webinars/rate-limiting-nginx/
Learn how to mitigate DDoS and password-guessing attacks by limiting the number of HTTP requests a user can make in a given period of time.
This webinar will teach you how to:
* How to protect application servers from being overwhelmed with request limits
* About the burst and no‑delay features for minimizing delay while handling large bursts of user requests
* How to use the map and geo blocks to impose different rate limits on different HTTP user requests
* About using the limit_req_log_level directive to set logging levels for rate‑limiting events
About the webinar
A delay of even a few seconds for a screen to render is interpreted by many users as a breakdown in the experience. There are many reasons for these breakdowns in the user experience, one of which is DDoS attacks which tie up your system’s resources.
Rate limiting is a powerful feature of NGINX that can mitigate DDoS attacks, which would otherwise overload your servers and hinder application performance. In this webinar, we’ll cover basic concepts as well as advanced configuration. We will finish with a live demo that shows NGINX rate limiting in action.
This document discusses Squid Proxy in Red Hat Enterprise Linux 6 (RHEL 6). It provides instructions on installing RHEL 6, including selecting packages during installation such as PHP, MySQL, and Eclipse IDE. It then discusses proxy servers and their uses such as filtering content, caching to improve performance, and load balancing between multiple web servers. Common proxy types include forward, reverse, and open proxies.
A web proxy is a server that acts as an intermediary for client requests to access resources from other servers. Squid is a commonly used open source web proxy caching server that improves performance by caching content and controlling bandwidth usage. It provides access logging and filtering capabilities. To install Squid, it is downloaded and configured on a Linux system. Access control lists (ACLs) are defined in the configuration file to restrict access based on source/destination IP addresses, domains, URLs, or time of day.
How To Set Up SQL Load Balancing with HAProxy - SlidesSeveralnines
We continuously see great interest in MySQL load balancing and HAProxy, so we thought it was about time we organised a live webinar on the topic! Here is the replay of that webinar!
As most of you will know, database clusters and load balancing go hand in hand.
Once your data is distributed and replicated across multiple database nodes, a load balancing mechanism helps distribute database requests, and gives applications a single database endpoint to connect to.
Instance failures or maintenance operations like node additions/removals, reconfigurations or version upgrades can be masked behind a load balancer. This provides an efficient way of isolating changes in the database layer from the rest of the infrastructure.
In this webinar, we cover the concepts around the popular open-source HAProxy load balancer, and show you how to use it with your SQL-based database clusters. We also discuss HA strategies for HAProxy with Keepalived and Virtual IP.
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
Keeping DNS server up-and-running with “runitMen and Mice
A traditional Unix/Linux init system like SystemV-Init or BSD rc does start a DNS server process on server boot, but it does not restart the service in case of an abnormal termination. Modern init replacements like systemd provide process supervision, but bring extra complexities and possible stability and security issues.
This webinar demonstrates an alternative, open source process supervision system called “runit”.
“runit” is lean and fast and sticks to the Unix tradition to do one thing, and do that right.
In this webinar you will learn how to manage DNS server processes such as BIND 9, Unbound and NSD from runit.
This document describes a swarm cluster with an overlay network containing multiple containers running various Docker services and images. The cluster has one container manager and three worker containers running the dind image. Services like HAProxy, a registry, nginx-proxy, and echo are distributed across the worker containers and load balanced with an overlay network for high availability.
We will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data. Using the popular AAA (Authentication, Authorization, Auditing) framework we will cover:
Best practices for authentication (trust, certificate, MD5, Scram, etc).
Advanced approaches, such as password profiles.
Deep dive of authorization and data access control for roles, database objects (tables etc), view usage, row level security and data redaction.
Auditing, encryption and SQL injection attack prevention.
The webinar will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data.
Using the popular AAA (Authentication, Authorization, Auditing) framework we will cover:
- Best practices for authentication (trust, certificate, MD5, Scram, etc).
- Advanced approaches, such as password profiles.
- Deep dive of authorization and data access control for roles, database objects (tables, etc), view usage, row-level security, and data redaction.
- Auditing, encryption, and SQL injection attack prevention.
Note: this session is delivered in French
The webinar will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data.
Using the popular AAA (Authentication, Authorization, Auditing) framework we will cover:
- Best practices for authentication (trust, certificate, MD5, Scram, etc).
- Advanced approaches, such as password profiles.
- Deep dive of authorization and data access control for roles, database objects (tables, etc), view usage, row-level security, and data redaction.
- Auditing, encryption, and SQL injection attack prevention.
Note: this session is delivered in German
Speaker:
Borys Neselovskyi, Sales Engineer, EDB
Enterprise-class security with PostgreSQL - 1Ashnikbiz
For businesses that handle personal data everyday, the security aspect of their database is of utmost importance.
With an increasing number of hack attacks and frauds, organizations want their open source databases to be fully equipped with the top security features.
FOSSASIA PGDAY ASIA 2017 presentation material.
FOSSASIA PGDAY ASIA 2017 の発表資料です。
In this presentation, I will talk about the following two topics.
* Considerations for securing a database system.
* Current status of database audit on PostgreSQL
FOSSASIA 2017
http://2017.fossasia.org/
PGDAY ASIA 2017
http://2017.pgday.asia/
NTT pgaudit
https://github.com/ossc-db/pgaudit
PostgreSQL Security. How Do We Think? at PGCon 2017Ohyama Masanori
PGCon 2017 presentation material.
"PostgreSQL Security How Do We Think?"
https://www.pgcon.org/2017/schedule/events/1070.en.html
In this presentation, I will talk about the following two topics.
* Considerations for securing a database system.
* Current status of database audit on PostgreSQL
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Haganderpgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
PostgreSQL supports several options for securing communications when deployed outside of the typical webserver/database combination, or in a high security environments. This talk will go into some details about the features that make this possible. The main areas discussed are:
Securing the PostgreSQL infrastructure and runtime environment.
Securing the channel between client and server using SSL, including an overview of the threats and how to secure against them.
Securing the login process with methods including LDAP, Kerberos or SSL certificates.
Expanding with EDB Postgres Advanced Server 9.5EDB
Building on PostgreSQL 9.5 with developer and DBA enhancements, EDB Postgres Advanced Server 9.5 delivers significant enhancements in performance, security, integration and other productivity enhancements. Together, these advances propel EDB Postgres deeper into enterprise use cases, allowing IT to transform their core DBMS to drive application innovation.
Learn how EDB Postgres Advanced Server 9.5 can help IT get more out of EDB Postgres deployments such as:
• Performance: 133% improvement over 9.4 for 128 clients
• Security: Password profiles adding to EDB Postgres security blueprint
• Integration: Data adapters for MongoDB, Hadoop and MySQL eliminating data silos in IT
• Developer productivity: Session tag auditing
• Database compatibility for Oracle: New functions, EDB Loader options, etc… that help make Oracle migrations to EDB Postgres even easier
Target Audience: If you are currently using a Postgres database, or are interested in adding Postgres to your datacenter, this is the perfect presentation to learn more about EnterpriseDB’s Postgres Advanced Server 9.5. This presentation is intended for IT Decision-makers exploring Postgres, and any member of IT involved in Postgres database deployment, design, architecture and maintenance.
This document summarizes techniques for securing data in Postgres, including host-based authentication, access control lists, row-level security, SSL/TLS, auditing, and encryption. It also discusses upcoming features in Postgres 10 like SSL configuration reload and more restrictive row-level security policies. Desired future features mentioned include data redaction, Active Directory support, and features similar to Oracle TDE for encryption key management.
The document discusses transparent data encryption in PostgreSQL. It describes threats to unencrypted database servers like privilege abuse and SQL injections. It then covers using buffer-level encryption in PostgreSQL to encrypt data in shared memory and at rest on disk. This provides encryption with less performance overhead than per-query encryption. The document proposes encrypting WAL files, system catalogs, and temporary files in addition to table data for stronger security. It also discusses key management with a two-tier architecture involving master and tablespace keys.
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Masahiko Sawada
The document discusses transparent data encryption in PostgreSQL databases. It proposes encrypting data at the tablespace and buffer levels for minimal performance impact. A two-tier key architecture with separate master and data encryption keys enables fast key rotation. Integrating with key management systems provides flexible and robust key management. The solution aims to securely encrypt database content with low overhead.
The Three Musketeers (Authentication, Authorization, Accounting)Sarah Conway
The document discusses authentication, authorization and accounting (AAA) in PostgreSQL. It provides an overview of the AAA model and covers topics like authentication methods, user accounts, SSL configuration, and authorization files like pg_hba.conf and postgresql.conf. Specific configuration options for authentication timeouts, SSL certificates and other security settings are also examined.
Creating a Multi-Layered Secured Postgres DatabaseEDB
Join EDB’s SVP of Product Development and Support, Marc Linster in this webinar, he discusses the process of creating a multi-layered security architecture for your Postgres database.
During this session, we will cover:
- Aspects of Data Security
- Authentication, Authorization & Auditing
- Multiple Layers of Security
Learn security best practices for managing your Postgres databases.
Presented by: Bruce Momjian
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: This talk explores the ways attackers with no authorized database access can steal Postgres passwords, see database queries and results, and even intercept database sessions and return false data. Postgres supports features to eliminate all of these threats, but administrators must understand the attack vulnerabilities to protect against them. This talk covers all known Postgres external attack methods.
Enterprise grade deployment and security with PostgreSQLHimanchali -
This document summarizes an enterprise deployment of PostgreSQL at a large mobile advertising company. It discusses:
1) The company uses PostgreSQL for transaction processing and reporting across 60 servers storing 10GB to 20TB of data each, with the critical databases averaging 80GB and handling 18,000 queries per second.
2) To achieve 99.99% uptime, the company employs disaster recovery planning including cascaded replication across data centers and regular disaster drills to test backups.
3) The company uses Puppet for configuration management, stored procedures to optimize queries, monitoring tools, and access control and encryption to secure user access and network traffic.
Kangaroot EDB Webinar Best Practices in Security with PostgreSQLKangaroot
The webinar will review a multi-layered framework for PostgreSQL security, with a deeper focus on limiting access to the database and data, as well as securing the data.
Using the popular AAA (Authentication, Authorisation, Auditing) framework EnterpriseDB will cover:
- Best practices for authentication (trust, certificate, MD5, Scram, etc).
- Advanced approaches, such as password profiles.
- Deep dive of authorisation and data access control for roles, database objects (tables, etc), view usage, row-level security, and data redaction.
- Auditing, encryption, and SQL injection attack prevention
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Introduction
2. Installation
3. The psql client
4. Authentication and privileges
5. Backup and restoration
6. Internal Architecture
7. Performance optimization
8. Stats and monitoring
9. Logs
10. Replication
Learn how to setup encrypted access to an IBM Db2 database running under Linux, Unix and Windows. Also details are given how to configure the client side.
The document provides an overview of Grand Unified Configuration Settings (GUCS) in PostgreSQL. It discusses the different types of GUCS, how they can be configured via postgresql.conf, SET commands, and other methods. Specific GUCS that are commonly adjusted are highlighted. The document also covers new features related to GUCS in recent PostgreSQL versions.
Adtran’s SDG 9000 Series brings high-performance, cloud-managed Wi-Fi 7 to homes, businesses and public spaces. Built on a unified SmartOS platform, the portfolio includes outdoor access points, ceiling-mount APs and a 10G PoE router. Intellifi and Mosaic One simplify deployment, deliver AI-driven insights and unlock powerful new revenue streams for service providers.
Introducing FME Realize: A New Era of Spatial Computing and ARSafe Software
A new era for the FME Platform has arrived – and it’s taking data into the real world.
Meet FME Realize: marking a new chapter in how organizations connect digital information with the physical environment around them. With the addition of FME Realize, FME has evolved into an All-data, Any-AI Spatial Computing Platform.
FME Realize brings spatial computing, augmented reality (AR), and the full power of FME to mobile teams: making it easy to visualize, interact with, and update data right in the field. From infrastructure management to asset inspections, you can put any data into real-world context, instantly.
Join us to discover how spatial computing, powered by FME, enables digital twins, AI-driven insights, and real-time field interactions: all through an intuitive no-code experience.
In this one-hour webinar, you’ll:
-Explore what FME Realize includes and how it fits into the FME Platform
-Learn how to deliver real-time AR experiences, fast
-See how FME enables live, contextual interactions with enterprise data across systems
-See demos, including ones you can try yourself
-Get tutorials and downloadable resources to help you start right away
Whether you’re exploring spatial computing for the first time or looking to scale AR across your organization, this session will give you the tools and insights to get started with confidence.
Maxx nft market place new generation nft marketing placeusersalmanrazdelhi
PREFACE OF MAXXNFT
MaxxNFT: Powering the Future of Digital Ownership
MaxxNFT is a cutting-edge Web3 platform designed to revolutionize how
digital assets are owned, traded, and valued. Positioned at the forefront of the
NFT movement, MaxxNFT views NFTs not just as collectibles, but as the next
generation of internet equity—unique, verifiable digital assets that unlock new
possibilities for creators, investors, and everyday users alike.
Through strategic integrations with OKT Chain and OKX Web3, MaxxNFT
enables seamless cross-chain NFT trading, improved liquidity, and enhanced
user accessibility. These collaborations make it easier than ever to participate
in the NFT ecosystem while expanding the platform’s global reach.
With a focus on innovation, user rewards, and inclusive financial growth,
MaxxNFT offers multiple income streams—from referral bonuses to liquidity
incentives—creating a vibrant community-driven economy. Whether you
'
re
minting your first NFT or building a digital asset portfolio, MaxxNFT empowers
you to participate in the future of decentralized value exchange.
https://maxxnft.xyz/
UiPath Community Zurich: Release Management and Build PipelinesUiPathCommunity
Ensuring robust, reliable, and repeatable delivery processes is more critical than ever - it's a success factor for your automations and for automation programmes as a whole. In this session, we’ll dive into modern best practices for release management and explore how tools like the UiPathCLI can streamline your CI/CD pipelines. Whether you’re just starting with automation or scaling enterprise-grade deployments, our event promises to deliver helpful insights to you. This topic is relevant for both on-premise and cloud users - as well as for automation developers and software testers alike.
📕 Agenda:
- Best Practices for Release Management
- What it is and why it matters
- UiPath Build Pipelines Deep Dive
- Exploring CI/CD workflows, the UiPathCLI and showcasing scenarios for both on-premise and cloud
- Discussion, Q&A
👨🏫 Speakers
Roman Tobler, CEO@ Routinuum
Johans Brink, CTO@ MvR Digital Workforce
We look forward to bringing best practices and showcasing build pipelines to you - and to having interesting discussions on this important topic!
If you have any questions or inputs prior to the event, don't hesitate to reach out to us.
This event streamed live on May 27, 16:00 pm CET.
Check out all our upcoming UiPath Community sessions at:
👉 https://community.uipath.com/events/
Join UiPath Community Zurich chapter:
👉 https://community.uipath.com/zurich/
European Accessibility Act & Integrated Accessibility TestingJulia Undeutsch
Emma Dawson will guide you through two important topics in this session.
Firstly, she will prepare you for the European Accessibility Act (EAA), which comes into effect on 28 June 2025, and show you how development teams can prepare for it.
In the second part of the webinar, Emma Dawson will explore with you various integrated testing methods and tools that will help you improve accessibility during the development cycle, such as Linters, Storybook, Playwright, just to name a few.
Focus: European Accessibility Act, Integrated Testing tools and methods (e.g. Linters, Storybook, Playwright)
Target audience: Everyone, Developers, Testers
Improving Developer Productivity With DORA, SPACE, and DevExJustin Reock
Ready to measure and improve developer productivity in your organization?
Join Justin Reock, Deputy CTO at DX, for an interactive session where you'll learn actionable strategies to measure and increase engineering performance.
Leave this session equipped with a comprehensive understanding of developer productivity and a roadmap to create a high-performing engineering team in your company.
Measuring Microsoft 365 Copilot and Gen AI SuccessNikki Chapple
Session | Measuring Microsoft 365 Copilot and Gen AI Success with Viva Insights and Purview
Presenter | Nikki Chapple 2 x MVP and Principal Cloud Architect at CloudWay
Event | European Collaboration Conference 2025
Format | In person Germany
Date | 28 May 2025
📊 Measuring Copilot and Gen AI Success with Viva Insights and Purview
Presented by Nikki Chapple – Microsoft 365 MVP & Principal Cloud Architect, CloudWay
How do you measure the success—and manage the risks—of Microsoft 365 Copilot and Generative AI (Gen AI)? In this ECS 2025 session, Microsoft MVP and Principal Cloud Architect Nikki Chapple explores how to go beyond basic usage metrics to gain full-spectrum visibility into AI adoption, business impact, user sentiment, and data security.
🎯 Key Topics Covered:
Microsoft 365 Copilot usage and adoption metrics
Viva Insights Copilot Analytics and Dashboard
Microsoft Purview Data Security Posture Management (DSPM) for AI
Measuring AI readiness, impact, and sentiment
Identifying and mitigating risks from third-party Gen AI tools
Shadow IT, oversharing, and compliance risks
Microsoft 365 Admin Center reports and Copilot Readiness
Power BI-based Copilot Business Impact Report (Preview)
📊 Why AI Measurement Matters: Without meaningful measurement, organizations risk operating in the dark—unable to prove ROI, identify friction points, or detect compliance violations. Nikki presents a unified framework combining quantitative metrics, qualitative insights, and risk monitoring to help organizations:
Prove ROI on AI investments
Drive responsible adoption
Protect sensitive data
Ensure compliance and governance
🔍 Tools and Reports Highlighted:
Microsoft 365 Admin Center: Copilot Overview, Usage, Readiness, Agents, Chat, and Adoption Score
Viva Insights Copilot Dashboard: Readiness, Adoption, Impact, Sentiment
Copilot Business Impact Report: Power BI integration for business outcome mapping
Microsoft Purview DSPM for AI: Discover and govern Copilot and third-party Gen AI usage
🔐 Security and Compliance Insights: Learn how to detect unsanctioned Gen AI tools like ChatGPT, Gemini, and Claude, track oversharing, and apply eDLP and Insider Risk Management (IRM) policies. Understand how to use Microsoft Purview—even without E5 Compliance—to monitor Copilot usage and protect sensitive data.
📈 Who Should Watch: This session is ideal for IT leaders, security professionals, compliance officers, and Microsoft 365 admins looking to:
Maximize the value of Microsoft Copilot
Build a secure, measurable AI strategy
Align AI usage with business goals and compliance requirements
🔗 Read the blog https://nikkichapple.com/measuring-copilot-gen-ai/
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025Lorenzo Miniero
Slides for my "Multistream support in the Janus SIP and NoSIP plugins" presentation at the OpenSIPS Summit 2025 event.
They describe my efforts refactoring the Janus SIP and NoSIP plugins to allow for the gatewaying of an arbitrary number of audio/video streams per call (thus breaking the current 1-audio/1-video limitation), plus some additional considerations on what this could mean when dealing with application protocols negotiated via SIP as well.
Introducing the OSA 3200 SP and OSA 3250 ePRCAdtran
Adtran's latest Oscilloquartz solutions make optical pumping cesium timing more accessible than ever. Discover how the new OSA 3200 SP and OSA 3250 ePRC deliver superior stability, simplified deployment and lower total cost of ownership. Built on a shared platform and engineered for scalable, future-ready networks, these models are ideal for telecom, defense, metrology and more.
6th Power Grid Model Meetup
Join the Power Grid Model community for an exciting day of sharing experiences, learning from each other, planning, and collaborating.
This hybrid in-person/online event will include a full day agenda, with the opportunity to socialize afterwards for in-person attendees.
If you have a hackathon proposal, tell us when you register!
About Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
Agentic AI - The New Era of IntelligenceMuzammil Shah
This presentation is specifically designed to introduce final-year university students to the foundational principles of Agentic Artificial Intelligence (AI). It aims to provide a clear understanding of how Agentic AI systems function, their key components, and the underlying technologies that empower them. By exploring real-world applications and emerging trends, the session will equip students with essential knowledge to engage with this rapidly evolving area of AI, preparing them for further study or professional work in the field.
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...James Anderson
The Quantum Apocalypse: A Looming Threat & The Need for Post-Quantum Encryption
We explore the imminent risks posed by quantum computing to modern encryption standards and the urgent need for post-quantum cryptography (PQC).
Bio: With 30 years in cybersecurity, including as a CISO, Tommy is a strategic leader driving security transformation, risk management, and program maturity. He has led high-performing teams, shaped industry policies, and advised organizations on complex cyber, compliance, and data protection challenges.
Data Virtualization: Bringing the Power of FME to Any ApplicationSafe Software
Imagine building web applications or dashboards on top of all your systems. With FME’s new Data Virtualization feature, you can deliver the full CRUD (create, read, update, and delete) capabilities on top of all your data that exploit the full power of FME’s all data, any AI capabilities. Data Virtualization enables you to build OpenAPI compliant API endpoints using FME Form’s no-code development platform.
In this webinar, you’ll see how easy it is to turn complex data into real-time, usable REST API based services. We’ll walk through a real example of building a map-based app using FME’s Data Virtualization, and show you how to get started in your own environment – no dev team required.
What you’ll take away:
-How to build live applications and dashboards with federated data
-Ways to control what’s exposed: filter, transform, and secure responses
-How to scale access with caching, asynchronous web call support, with API endpoint level security.
-Where this fits in your stack: from web apps, to AI, to automation
Whether you’re building internal tools, public portals, or powering automation – this webinar is your starting point to real-time data delivery.
Co-Constructing Explanations for AI Systems using ProvenancePaul Groth
Explanation is not a one off - it's a process where people and systems work together to gain understanding. This idea of co-constructing explanations or explanation by exploration is powerful way to frame the problem of explanation. In this talk, I discuss our first experiments with this approach for explaining complex AI systems by using provenance. Importantly, I discuss the difficulty of evaluation and discuss some of our first approaches to evaluating these systems at scale. Finally, I touch on the importance of explanation to the comprehensive evaluation of AI systems.
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)Peter Bittner
How do you onboard new colleagues in 2025? How long does it take? Would you love a standardized setup under version control that everyone can customize for themselves? A stable desktop setup, reinstalled in just minutes. It can be done.
This talk was given in Italian, 29 May 2025, at PyCon 25, Bologna, Italy. All slides are provided in English.
Original slides at https://slides.com/bittner/pycon25-nixos-for-python-developers
4. 04/25/15 [email protected] 4
Welcome to Total
Security
About The Demo Environment
Server ISO of Ubuntu, minimal installation
http://www.ubuntu.com/download/server
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
16. 04/25/15 [email protected] 16
Welcome to Total
Security
About ROLES
DEFINING THE TYPES OF ROLES
- superuser (postgres)
- database owner
- relations owner
- role_rw (nologin)
- user account roles (with login)
- application, client, processes
- sys administrators
17. 04/25/15 [email protected] 17
Welcome to Total
Security
About ROLES
CREATING THE GENERIC ROLES
create role db_owner with nologin;
create role db with nologin;
create role db_rw with nologin;
comment on role db_owner is
'The owner of the database db';
comment on role db is
'The owner of the relations on database db';
comment on role db_rw is
'The role executing all DML operations';
18. 04/25/15 [email protected] 18
Welcome to Total
Security
About ROLES
CREATE USERS
create role robertbernier
with login
Inherit
Password '123'
valid until '31 dec 2017'
in role db_owner, db, db_rw;
create role user1
with login
inherit
password '123'
valid until '31 dec 2017' -- Do we really want this ROLE to expire?
in role db_rw;
comment on role robertbernier is 'user account assigned as administrator';
comment on role user1 is 'user account for the client application(s)';
19. 04/25/15 [email protected] 19
Welcome to Total
Security
About The Database
----------------------------------------------------
create database db with owner db_owner;
comment on database db is 'our working demo database';
----------------------------------------------------
c db
drop schema public;
create schema db authorization db;
comment on schema db is 'this is where all the relations
go';
alter database db set search_path='db';
20. 04/25/15 [email protected] 20
Welcome to Total
Security
About The Demo Tables
set ON_ERROR_STOP on
set role db;
create table t1 (
id serial primary key,
x float not null default random(),
t_stamp timestamp not null default now()
);
create table t2(like t1 including all);
create table t3(like t1 including all);
insert into t1 default values;
insert into t1 default values;
insert into t1 default values;
insert into t2 default values;
insert into t2 default values;
insert into t2 default values;
insert into t3 default values;
insert into t3 default values;
insert into t3 default values;
21. 04/25/15 [email protected] 21
Welcome to Total
Security
About The Demo Tables
----------------------------------------------------
SET PRIVILEGES
grant usage on schema db to db_rw;
grant select, insert, update, delete on all tables in schema db to db_rw;
grant usage on all sequences in schema db to db_rw;
----------------------------------------------------
VALIDATE PERMISSIONS
set role user1;
insert into t1 default values;
insert into t2 default values;
insert into t3 default values;
table t1;
table t2;
table t3;
CAVEAT: privileges must be declared for all new relations.
22. 04/25/15 [email protected] 22
Welcome to Total
Security
About The Demo Tables
CONNECTION ATTEMPTS
There's a double layer of authentication
going on:
- SQL PRIVILEGES
- pg_hba.conf
CAVEAT: This configuration prevents the
superuser to login as the other user
accounts. But he can still SET ROLE.
24. 04/25/15 [email protected] 24
Welcome to Total
Security
About CERTIFICATES, 1/2
# CREATE THE CERTIFICATE AUTHORITY (answer the questions)
/usr/lib/ssl/misc/CA.pl -newca
# CREATE A PRIVATE KEY, CRT REQUEST FOR POSTGRES SERVER
/usr/lib/ssl/misc/CA.pl -newreq
# SIGN THE CERTIFICATE REQUEST FOR POSTGRES CLIENT
/usr/lib/ssl/misc/CA.pl -sign
# RENAME KEY AND CERTIFICATE FOR POSTGRES CLIENT
mv newreq.pem robertbernier_req.pem
mv newkey.pem robertbernier_key.pem
mv newcert.pem robertbernier_crt.pem
# CREATE A PRIVATE KEY, CRT REQUEST FOR POSTGRES SERVER
/usr/lib/ssl/misc/CA.pl -newreq
# SIGN THE CERTIFICATE REQUEST FOR POSTGRES SERVER
/usr/lib/ssl/misc/CA.pl -sign
25. 04/25/15 [email protected] 25
Welcome to Total
Security
About CERTIFICATES, 2/2
# RENAME KEY AND CERTIFICATE FOR POSTGRES SERVER
mv newreq.pem postgres_req.pem
mv newkey.pem postgres_key.pem
mv newcert.pem postgres_crt.pem
# UNLOCK KEYS / REMOVE PASSPHRASE
openssl rsa -in robertbernier_key -out robertbernier.key
openssl rsa -in postgres_key.pem -out postgres.key
# INSTALL SERVER CERTIFICATE (you can still use snake oil as server certificate but client cannot validate
server)
# EDIT, postgresql.conf: ssl_key_file = '/etc/postgresql/9.3/main/cacert.pem'
cp cacert.pem /etc/postgresql/9.3/main/
# INSTALL CLIENT CERTIFICATES (ROLE: "robertbernier", DIR: ".postgresql")
cp robertbernier.key ~/.postgresql/postgresql.key
cp robertbernier_crt.pem ~/.postgresql/postgresql.crt
NOTE, alternate login: (works with any account via tcpip sockets)
psql 'host=localhost dbname=db user=robertbernier sslcert=robertbernier_crt.pem sslkey=robertbernier.key'
# CERTIFICATE PROPERTIES
openssl x509 -purpose -inform PE -in ./demoCA/cacert.pem 2>&1 |less
openssl x509 -purpose -inform PE -in robertbernier_crt.pem 2>&1 |less
openssl x509 -purpose -inform PE -in postgres_crt.pem 2>&1 |less
27. 04/25/15 [email protected] 27
Welcome to Total
Security
About DATA ENCRYPTION
select * from pg_available_extensions;
create extension pgcrypto;
df
-- functions of interest
pgp_pub_encrypt()
pgp_pub_decrypt()
28. 04/25/15 [email protected] 28
Welcome to Total
Security
About DATA ENCRYPTION
ABOUT PGP (Pretty Good Privacy)
GPG (GNU Privacy Guard)
----------------------------------------------------
USING GPG
UNIX account: robertbernier@LinuxFest
-------------
gpg --gen-key
-------------
gpg --list-secret-keys
sec 2048R/91E94413 2015-03-14
uid Robert Bernier (DBA/Architect) <[email protected]>
ssb 2048R/5E58CCAA 2015-03-14
-------------
REMOVE PASSPHRASE FROM PRIVATE KEY
RETURN BLANK WHEN ASKED TO CHANGE PASSWORD
gpg --edit-key 5E58CCAA
# getting the keys
gpg -a --export 5E58CCAA |less
gpg -a --export-secret-keys 5E58CCAA | less
29. 04/25/15 [email protected] 29
Welcome to Total
Security
WORKING WITH ENCRYPTED DATA
SETUP DATABASE
create table gpg (
id serial primary key,
type varchar,
key text
);
create table confidential (
id serial primary key,
message varchar,
message_encrypted varchar
);
------------------------------------------------------
(
#!/bin/bash
set -e
SECRET="$(gpg --list-secret-keys | grep -E "^sec" | cut -d / -f 2 | cut -d ' ' -f 1)"
PUBLIC=$(gpg -a --export $SECRET)
PRIVATE=$(gpg -a --export-secret-keys $SECRET)
psql db <<_eof_
insert into gpg(type,key) values ('public','$PUBLIC');
insert into gpg(type,key) values ('private','$PRIVATE');
_eof_
)
30. 04/25/15 [email protected] 30
Welcome to Total
Security
WORKING WITH ENCRYPTED DATA
ENCRYPT/DECRYPT DATA
-- encrypt
with a(msg) as (values('my secret message')),
b as (select msg,
pgp_pub_encrypt(msg,dearmor(key)) as msg_e
from gpg,a
where type='public')
insert into confidential(message,message_encrypted)
select msg, msg_e from b;
-- decrypt
with a as (select dearmor(key) from gpg where type='private')
select id,
pgp_pub_decrypt(message_encrypted::bytea,dearmor),
md5(message_encrypted) encrypted_checksum
from confidential,a ;
33. 04/25/15 [email protected] 33
Welcome to Total
Security
Demo: FUNCTIONS
CREATE OR REPLACE FUNCTION f_private_key (
OUT key bytea
) AS
$$
BEGIN
bytea, escape encoded, private key is shortened
key='x95039804550466450108....';
END;
$$
LANGUAGE PLPGSQL
IMMUTABLE;
CREATE OR REPLACE FUNCTION f_wrapper (
IN a BYTEA,
OUT b TEXT
) AS
$$
BEGIN
b=pgp_pub_decrypt(a,f_private_key());
END;
$$
LANGUAGE PLPGSQL
IMMUTABLE;
34. 04/25/15 [email protected] 34
Welcome to Total
Security
Demo: FUNCTIONAL INDEXES
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ]
( { column | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST |
LAST } ] [, ...] )
[ WITH ( storage_parameter = value [, ... ] ) ]
[ TABLESPACE tablespace ]
[ WHERE predicate ]
35. 04/25/15 [email protected] 35
Welcome to Total
Security
Demo: Indexes
unencrypted column
create index on t2_mb(uuid);
encrypted column, functional index
create unique index on t2_mb(f_wrapper(uuid_enc));
36. 04/25/15 [email protected] 36
Welcome to Total
Security
TYPE QUERY TIME COMMENTS
Unencrypted 00.05ms Pulling out one record at a time
Encrypted 00.05ms
Unencrypted 14.00ms Join on column “uuid”
Encrypted 6,800ms
Encrypted 23.00ms
explain analyze
select id,
passage
from t2_mb,t1_mb
where t2_mb.uuid='018cf2e7-ef0f-483d-8221-80c0d538632a';
explain analyze
select id,
passage
from t2_mb,t1_mb
where f_wrapper(t2_mb.uuid_enc)='018cf2e7-ef0f-483d-8221-80c0d538632a';
explain analyze
select id,
passage
from t1_mb
join t2_mb on t1_mb.uuid=t2_mb.uuid
order by id asc;
explain analyze
select id,
passage
from t2_mb
join t1_mb on f_wrapper(t2_mb.uuid_enc)=t1_mb.uuid::text
order by id asc;
The functional index isn't being used, this is a
postgres bug with the planner
explain analyze
select id,
passage
from t2_mb
join t1_mb on f_wrapper(t2_mb.uuid_enc)=t1_mb.uuid::text
order by id asc;
The functional index works!
Set the following runtime environment variables
before executing the query:
set enable_hashjoin to off;
set enable_mergejoin to off;