Changes for page SFTP Known Hosts
Last modified by Danniar Firdausy on 2024/09/18 20:35
From version 23.1
edited by Erik Bakker
on 2022/08/30 15:28
on 2022/08/30 15:28
Change comment:
There is no comment for this version
To version 28.1
edited by Erik Bakker
on 2024/06/20 09:19
on 2024/06/20 09:19
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -SFTP Security1 +SFTP Known Hosts - Parent
-
... ... @@ -1,1 +1,1 @@ 1 -WebHome 1 +Main.eMagiz Academy.Microlearnings.Intermediate Level.File based connectivity.WebHome - Content
-
... ... @@ -1,6 +1,6 @@ 1 1 {{container}}{{container layoutStyle="columns"}}((( 2 2 3 -In the lastmicrolearning, we discussed how to connect to an SFTP from eMagiz. In this microlearning, we want to expand our knowledge and look at amorecomplexsecurityconfigurationwhenconnectingtoSFTPinstances.Theconfigurationwe aretalkingaboutistheprivatekey configuration.3 +In an earlier [[microlearning>>Main.eMagiz Academy.Microlearnings.Intermediate Level.File based connectivity.intermediate-file-based-connectivity-sftp-connectivity||target="blank"]], we discussed how to connect to an SFTP from eMagiz. Later on we zoomed in on an alternative security method to authenticate yourself at the SFTP. More on this can be found in this [[microlearning>>Main.eMagiz Academy.Microlearnings.Intermediate Level.File based connectivity.intermediate-file-based-connectivity-sftp-security||target="blank"]]. In this microlearning, we want to expand our knowledge and look at a way to store the unique fingerprint of the SFTP to avoid that someone else can pretend to be the SFTP when you want to send data (i.e. a "man in the middle attack"). 4 4 5 5 Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]]. 6 6 ... ... @@ -11,58 +11,49 @@ 11 11 12 12 == 2. Key concepts == 13 13 14 -This microlearning is about SFTP s ecurity.14 +This microlearning is about SFTP known host files. 15 15 16 -By SFTP s ecurity, we mean: Making sure thattheSFTPwe connect toknowsthatwe are indeedeMagiz16 +By SFTP known hosts, we mean: Making sure that we are certain that we connect to the correct SFTP to prevent data theft as a result of a "man in the middle" attack. 17 17 18 -* Private key is unique per client 19 -* Private key should only be known to the client 20 -* Public key should be known to the SFTP (server), so they trust us when we set up the communication 21 -* A private key comes with a passphrase 18 +* Each SFTP has a unique fingerprint that identifies the SFTP. 19 +* To prevent a "man in the middle" attack, this fingerprint needs to be stored client side. 20 +* There are two distinct methods to generate the known hosts file. 22 22 23 -== 3. SFTP Security==22 +== 3. SFTP Known Hosts == 24 24 25 -In th e lastmicrolearning, we discussedhow toconnecttoanSFTPfromeMagiz.Inthismicrolearning,we want to expandourknowledgeandlookatmorecomplexsecurityconfigurationwhen connectingto SFTP instances. Theconfigurationweare talkingaboutis theprivatekeyconfiguration.24 +In this microlearning, we want to expand our knowledge and look at a way to store the unique fingerprint of the SFTP to avoid that someone else can pretend to be the SFTP when you want to send data (i.e. a "man in the middle attack"). To retrieve the unique fingerprint of an SFTP you first need to connect to the SFTP in question. This way you can retrieve the unique fingerprint and secure it in a file for future use to prevent the "man in the middle attack". 26 26 27 -* Private key is unique per client 28 -* Private key should only be known to the client 29 -* Public key should be known to the SFTP (server), so they trust us when we set up the communication 30 -* A private key comes with a passphrase 26 +There are two distinct ways of retrieving and storing the unique fingerprint of the SFTP in a "known hosts file". The first option is portal based and the second option is command line based. The preferred option is the portal based one. Do note that the first option only works if the SFTP is **publicly** accessible without any IP restrictions. 31 31 32 - Ifyouare looking for some introductoryreading intocertificates, please checkthis[[microlearning>>doc:Main.eMagizAcademy.Microlearnings.Novice.Securing Data Traffic.novice-securing-your-data-traffic-what-are-certificates.WebHome||target="blank"]].28 +=== 3.1 Known Hosts File Generation - Portal === 33 33 34 - As the private key is yours, you can ask a trusted party to generate the key, or you could create it yourself.The latter part happens a lotwhenconnectingto an SFTP. Youcould useatool like PuttyGen to achievethis. As aresult, you will havea keypair. The privatekey shouldbe keptsafely with you in eMagiz,and you need tosharethepublic key with the SFTP server party.Inthis microlearning,I will not explain howPuttyGen works in detail. Instead, wewillfocus on the partineMagiz. In eMagiz, we need torefer to the key file (linked under Resources),and we needto refer to the password we use to save our key file securely.30 +To configure the preferred option we start at the flow level in Create. 35 35 36 - [[image:Main.Images.Microlearning.WebHome@intermediate-file-based-connectivity-sftp-security--private-key-config.png]]32 +=== 3.2 Known Hosts File Generation - Command Line === 37 37 38 -Note that the use of a password and a private key are mutually exclusive. So you need to either provide a password or a private key for authentication. In the help text provided by eMagiz, you can see how the reference to the key file should be made. 34 +The secondary option, when there are IP restrictions, provides you with the option to execute several commands after gaining access to the correct server to generate the known hosts file. These steps are detailed below. 35 + 36 +* Gain access to the server in question from which you can reach the SFTP. 37 +* Execute the following command (compatible with both Linux and Windows): {{code}}ssh-keyscan -p [port] [host] > [known-hosts target path]{{/code}} 38 +** An example would be: {{code}}ssh-keyscan -p 22 localhost > C:\tmp\generated_known_hosts{{/code}} 39 +* Navigate to the generated file and open it. The file should contain one or more lines in the format {{code}}hostname/ip key-type value 40 +e.g. 127.0.0.1 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAICZPI5pQ6PSXgS4QOPsai2QjC2EcVjFejvUM5RMYOmwbwW{{/code}} 41 +* Open eMagiz and navigate to the flow where the file is needed. 42 +* Upload the known_hosts file as a flow resource, and click on the "eye" icon to see its unique name. 43 +* Define a property for the known hosts field in the SFTP (caching) session factory. 44 +** Provide a value for the property upon deploying the release that follows the following structure: {{code}}classpath:emagiz-resources/[filename]{{/code}} 39 39 40 - Whenyouhaveconfigured these settings,youhave finishedthe configuration ineMagiz. Nowyou could test whether the configuration is set up correctlybetween eMagiz and the SFTP. If thisis not the case, eMagiz will notify you via the Manage phase, either as an error message or a log entry.46 +== 4. Key takeaways == 41 41 42 -Using this setting gives the server the option to verify if the communication request came from eMagiz (or at least from the party that holds the private key of eMagiz). This is an additional security measure to ensure data integrity and quality. 48 +* Each SFTP has a unique fingerprint that identifies the SFTP. 49 +* To prevent a "man in the middle" attack, this fingerprint needs to be stored client side. 50 +* There are two distinct methods to generate the known hosts file. 43 43 44 -== 4.Assignment==52 +== 5. Suggested Additional Readings == 45 45 46 -Check within your project(s) whether an SFTP connection is secured with the help of private key construction. 47 -This assignment can be completed with the help of the (Academy) project that you have created/used in the previous assignment. 48 - 49 -== 5. Key takeaways == 50 - 51 -* Private key is unique per client 52 -* Private key should only be known to the client 53 -* Public key should be known to the SFTP (server), so they trust us when we set up the communication 54 -* A private key comes with a passphrase 55 - 56 -== 6. Suggested Additional Readings == 57 - 58 58 If you are interested in this topic and want more information, please read the release notes provided by eMagiz. Furthermore, check out these links: 59 59 60 -* https://docs.spring.io/spring-integration/docs/2.2.6.RELEASE/reference/html/sftp.html#sftp-outbound 61 -* https://docs.spring.io/spring-integration/docs/2.2.6.RELEASE/reference/html/sftp.html#sftp-session-factory 62 -* https://www.2brightsparks.com/resources/articles/sftp-authentication.html 56 +* [[Known Hosts Files explained>>https://stackoverflow.com/questions/33243393/what-is-actually-in-known-hosts||target="blank"]] 57 +* [[SFTP Session Factory>>https://docs.spring.io/spring-integration/docs/2.2.6.RELEASE/reference/html/sftp.html#sftp-session-factory||target="blank"]] 63 63 64 -== 7. Silent demonstration video == 65 - 66 -As this is a more theoretical microlearning, there is no video. 67 - 68 68 )))((({{toc/}}))){{/container}}{{/container}}