1- Secure Socket Support
2- =====================
1+ Secure PV Access
2+ ================
33
44By default, the PV Access server and client will use plain TCP sockets to communicate.
5- Secure PV Access uses encrypted Transport Layer Security (TLD) sockets.
5+ Secure PV Access uses Transport Layer Security (TLS) sockets.
6+ TLS sockets, also known as secure sockets, are encrypted.
67Clients will only communicate with trusted servers, and servers can
78determine the identity of their clients in a trusted way.
89
10+ Secure PV Access is under development for PVXS, the current C++ implementation
11+ of PV Access. This java implementation aims to be compatible with recent versions of PVXS.
12+ Secure PV Access is not supported in the original C++ (pvAccessCpp) and Java (pvAccessJava) implementations,
13+ but PVXS and this java library can still communicate with the original implementations
14+ using plain TCP sockets.
15+
916TLS relies on private and public encryption key pairs, where public keys are
1017exchanged in the form of certificates.
1118In a secure EPICS environment, the PV Access Certificate Management Service (pvacms)
@@ -16,18 +23,20 @@ validity.
1623PV Access Certificate Management Service (pvacms)
1724=================================================
1825
19- An EPICS administrator needs to deploy pvacms as a service and maintain
20- certificates for servers (IOCs) and clients (users running CS-Studio).
26+ An EPICS administrator needs to deploy ` pvacms ` as a service and maintain
27+ certificates for servers (IOCs) and clients (users running CS-Studio
28+ as well as IOCs reading from other IOCs).
2129This is an example recipe for getting started.
2230
23- 1 ) Build EPICS base and pvxs as described on
31+ 1 ) Build EPICS base and PVXS as described on
2432 https://george-mcintyre.github.io/pvxs/spvaqstart.html
2533
26342 ) Start ` pvacms -v ` . It will create several files, including
2735
2836 * ` ~/.config/pva/1.3/admin.p12 ` : Certificate for the ` admin ` user
2937
30- 3 ) Request a server (IOC) certificate, note its "Certificate identifier":
38+ 3 ) For an IOC, request a hybrid server and client certificate.
39+ Note its "Certificate identifier":
3140
3241 ```
3342 $ authnstd --name ioc --cert-usage hybrid
@@ -43,7 +52,7 @@ This is an example recipe for getting started.
4352 Approve ==> CERT:STATUS:e53ed409:15273288300286014953 ==> Completed Successfully
4453 ```
4554
46- * ` ~/.config/pva/1.3/server.p12 ` : Our server ( IOC) certificate
55+ * ` ~/.config/pva/1.3/server.p12 ` : Our server certificate (hybrid, for IOC)
4756
48574 ) Request a client certificate, note its identifier:
4958
@@ -64,8 +73,8 @@ This is an example recipe for getting started.
6473 * ` ~/.config/pva/1.3/client.p12 ` : Our client (user) certificate
6574
6675
67- You now have a server and client certificate.
68- To check the status:
76+ You now have a server and a client certificate.
77+ Example for checking the status:
6978
7079```
7180$ pvxcert -f ~/.config/pva/1.3/client.p12
@@ -80,15 +89,16 @@ Status : VALID
8089```
8190
8291To list certificate details:
92+
8393```
8494keytool -list -v -keystore ~/.config/pva/1.3/client.p12 -storepass ""
8595```
8696
87-
8897For a test setup, all the above can be executed by a single user on one host.
89- In a production setup, however, human user clients should only have a client.p12 file.
90- Pseudo-users running IOCs would have a server.p12 file,
91- and only an admin user on a designated host would have the remaining pvacms files.
98+ In a production setup, however, each human user should only have access to their own ` client.p12 ` file.
99+ Pseudo-users running IOCs would have a ` server.p12 ` file.
100+ Only an admin user on a designated host would have access to the remaining ` pvacms ` files,
101+ including the ` admin.p12 ` file that permits accepting and revoking certificates.
92102
93103
94104Secure IOC
@@ -123,6 +133,8 @@ $ phoebus.sh
123133```
124134
125135
136+ For more, refer to the PVXS documentation.
137+
126138
127139--------------------------------------------------------
128140
@@ -131,7 +143,7 @@ Manually creating certificates
131143==============================
132144
133145In this section we describe an earlier approach to creating certificates.
134- It is left for reference, the preferred method is now pvacms.
146+ It is left for reference, the suggested approach is now based on ` pvacms ` .
135147
136148We start with a minimal setup for initial tests.
137149
0 commit comments